ngx-bootstrap 10.2.1 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -5
- package/accordion/accordion-group.component.d.ts +1 -1
- package/accordion/accordion.component.d.ts +1 -1
- package/accordion/esm2022/accordion-group.component.mjs +84 -0
- package/accordion/{esm2020 → esm2022}/accordion.component.mjs +4 -4
- package/accordion/{esm2020 → esm2022}/accordion.config.mjs +4 -4
- package/accordion/{esm2020 → esm2022}/accordion.module.mjs +5 -5
- package/accordion/{fesm2020 → fesm2022}/ngx-bootstrap-accordion.mjs +29 -29
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -0
- package/accordion/package.json +8 -14
- package/alert/alert.component.d.ts +1 -1
- package/alert/esm2022/alert.component.mjs +77 -0
- package/alert/{esm2020 → esm2022}/alert.config.mjs +4 -4
- package/alert/{esm2020 → esm2022}/alert.module.mjs +5 -5
- package/alert/{fesm2015 → fesm2022}/ngx-bootstrap-alert.mjs +10 -10
- package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -0
- package/alert/package.json +8 -14
- package/buttons/button-checkbox.directive.d.ts +2 -2
- package/buttons/button-radio.directive.d.ts +1 -1
- package/buttons/{esm2020 → esm2022}/button-checkbox.directive.mjs +4 -4
- package/buttons/{esm2020 → esm2022}/button-radio-group.directive.mjs +4 -4
- package/buttons/esm2022/button-radio.directive.mjs +188 -0
- package/buttons/{esm2020 → esm2022}/buttons.module.mjs +5 -5
- package/buttons/{fesm2020 → fesm2022}/ngx-bootstrap-buttons.mjs +26 -26
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -0
- package/buttons/package.json +7 -13
- package/carousel/carousel.component.d.ts +1 -1
- package/carousel/esm2022/carousel.component.mjs +713 -0
- package/carousel/{esm2020 → esm2022}/carousel.config.mjs +4 -4
- package/carousel/{esm2020 → esm2022}/carousel.module.mjs +5 -5
- package/carousel/{esm2020 → esm2022}/slide.component.mjs +6 -6
- package/carousel/{fesm2020 → fesm2022}/ngx-bootstrap-carousel.mjs +65 -56
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -0
- package/carousel/package.json +8 -14
- package/carousel/slide.component.d.ts +1 -1
- package/chronos/duration/create.d.ts +1 -1
- package/chronos/{fesm2020 → fesm2022}/ngx-bootstrap-chronos.mjs +4 -0
- package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -0
- package/chronos/locale/locale.class.d.ts +3 -3
- package/chronos/moment/calendar.d.ts +1 -1
- package/chronos/package.json +5 -11
- package/chronos/parse/regex.d.ts +1 -1
- package/chronos/testing/chain.d.ts +3 -3
- package/chronos/types.d.ts +4 -4
- package/chronos/units/aliases.d.ts +1 -1
- package/collapse/collapse.directive.d.ts +1 -1
- package/collapse/esm2022/collapse.directive.mjs +168 -0
- package/collapse/{esm2020 → esm2022}/collapse.module.mjs +5 -5
- package/collapse/{fesm2020 → fesm2022}/ngx-bootstrap-collapse.mjs +26 -26
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -0
- package/collapse/package.json +8 -14
- package/component-loader/{esm2020 → esm2022}/component-loader.factory.mjs +4 -4
- package/component-loader/{fesm2020 → fesm2022}/ngx-bootstrap-component-loader.mjs +5 -3
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -0
- package/component-loader/listen-options.model.d.ts +1 -1
- package/component-loader/package.json +7 -13
- package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
- package/datepicker/bs-datepicker.component.d.ts +1 -1
- package/datepicker/bs-datepicker.config.d.ts +4 -0
- package/datepicker/bs-datepicker.css +6 -3
- package/datepicker/bs-datepicker.css.map +1 -1
- package/datepicker/bs-datepicker.scss +7 -2
- package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
- package/datepicker/bs-daterangepicker.component.d.ts +1 -1
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.component.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-input.directive.mjs +4 -4
- package/datepicker/esm2022/bs-datepicker.component.mjs +303 -0
- package/datepicker/esm2022/bs-datepicker.config.mjs +101 -0
- package/datepicker/{esm2020 → esm2022}/bs-datepicker.module.mjs +32 -32
- package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +163 -0
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-inline.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-input.directive.mjs +4 -4
- package/datepicker/esm2022/bs-daterangepicker.component.mjs +296 -0
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-locale.service.mjs +4 -4
- package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +143 -0
- package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.effects.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.store.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-calendar-layout.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-current-date-view.component.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-custom-dates-view.component.mjs +6 -6
- package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +192 -0
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-day-decorator.directive.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-inline-container.component.mjs +9 -9
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-navigation-view.component.mjs +6 -6
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +261 -0
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-daterangepicker-inline-container.component.mjs +9 -9
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-days-calendar-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-months-calendar-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-timepicker-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-years-calendar-view.component.mjs +6 -6
- package/datepicker/{fesm2020 → fesm2022}/ngx-bootstrap-datepicker.mjs +236 -230
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -0
- package/datepicker/models/index.d.ts +1 -1
- package/datepicker/package.json +13 -19
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
- package/datepicker/utils/matrix-utils.d.ts +1 -1
- package/dropdown/bs-dropdown.directive.d.ts +1 -1
- package/dropdown/esm2022/bs-dropdown-container.component.mjs +79 -0
- package/dropdown/{esm2020 → esm2022}/bs-dropdown-menu.directive.mjs +4 -4
- package/dropdown/{esm2020 → esm2022}/bs-dropdown-toggle.directive.mjs +4 -4
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.config.mjs +4 -4
- package/dropdown/esm2022/bs-dropdown.directive.mjs +340 -0
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.module.mjs +10 -10
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.state.mjs +4 -4
- package/dropdown/{fesm2020 → fesm2022}/ngx-bootstrap-dropdown.mjs +62 -62
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -0
- package/dropdown/package.json +10 -16
- package/fesm2022/ngx-bootstrap.mjs.map +1 -0
- package/focus-trap/boolean-property.d.ts +1 -1
- package/focus-trap/{esm2020 → esm2022}/focus-trap-manager.mjs +4 -4
- package/focus-trap/esm2022/focus-trap.mjs +399 -0
- package/focus-trap/{esm2020 → esm2022}/focus-trap.module.mjs +5 -5
- package/focus-trap/{esm2020 → esm2022}/interactivity-checker.mjs +4 -4
- package/focus-trap/{esm2020 → esm2022}/platform.mjs +4 -4
- package/focus-trap/{fesm2020 → fesm2022}/ngx-bootstrap-focus-trap.mjs +43 -39
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -0
- package/focus-trap/focus-trap.d.ts +1 -1
- package/focus-trap/package.json +8 -14
- package/locale/fesm2022/ngx-bootstrap-locale.mjs.map +1 -0
- package/locale/package.json +6 -12
- package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
- package/mini-ngrx/package.json +6 -12
- package/mini-ngrx/public_api.d.ts +1 -1
- package/modal/bs-modal.service.d.ts +1 -0
- package/modal/{esm2020 → esm2022}/bs-modal-ref.service.mjs +4 -4
- package/modal/esm2022/bs-modal.service.mjs +225 -0
- package/modal/esm2022/modal-backdrop.component.mjs +50 -0
- package/modal/esm2022/modal-container.component.mjs +151 -0
- package/modal/{esm2020 → esm2022}/modal-options.class.mjs +4 -4
- package/modal/esm2022/modal.directive.mjs +364 -0
- package/modal/{esm2020 → esm2022}/modal.module.mjs +7 -7
- package/modal/{fesm2020 → fesm2022}/ngx-bootstrap-modal.mjs +75 -59
- package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -0
- package/modal/modal-container.component.d.ts +1 -0
- package/modal/modal.directive.d.ts +2 -1
- package/modal/models/index.d.ts +1 -1
- package/modal/package.json +8 -14
- package/package.json +9 -15
- package/pagination/{esm2020 → esm2022}/pager.component.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.component.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.config.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.module.mjs +5 -5
- package/pagination/{fesm2020 → fesm2022}/ngx-bootstrap-pagination.mjs +13 -13
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -0
- package/pagination/package.json +8 -14
- package/pagination/pager.component.d.ts +1 -1
- package/pagination/pagination.component.d.ts +1 -1
- package/popover/esm2022/popover-container.component.mjs +46 -0
- package/popover/{esm2020 → esm2022}/popover.config.mjs +4 -4
- package/popover/esm2022/popover.directive.mjs +241 -0
- package/popover/{esm2020 → esm2022}/popover.module.mjs +5 -5
- package/popover/{fesm2020 → fesm2022}/ngx-bootstrap-popover.mjs +31 -31
- package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -0
- package/popover/package.json +9 -15
- package/popover/popover-container.component.d.ts +1 -1
- package/popover/popover.directive.d.ts +1 -1
- package/positioning/{esm2020 → esm2022}/positioning.service.mjs +4 -4
- package/positioning/{fesm2020 → fesm2022}/ngx-bootstrap-positioning.mjs +3 -3
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -0
- package/positioning/models/index.d.ts +1 -1
- package/positioning/package.json +10 -16
- package/progressbar/bar.component.d.ts +1 -1
- package/progressbar/{esm2020 → esm2022}/bar.component.mjs +4 -4
- package/progressbar/esm2022/progressbar.component.mjs +53 -0
- package/progressbar/{esm2020 → esm2022}/progressbar.config.mjs +4 -4
- package/progressbar/{esm2020 → esm2022}/progressbar.module.mjs +5 -5
- package/progressbar/{fesm2020 → fesm2022}/ngx-bootstrap-progressbar.mjs +24 -24
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -0
- package/progressbar/package.json +7 -13
- package/progressbar/progressbar-type.interface.d.ts +1 -1
- package/progressbar/progressbar.component.d.ts +1 -1
- package/rating/{esm2020 → esm2022}/rating.component.mjs +4 -4
- package/rating/{esm2020 → esm2022}/rating.config.mjs +4 -4
- package/rating/{esm2020 → esm2022}/rating.module.mjs +5 -5
- package/rating/{fesm2015 → fesm2022}/ngx-bootstrap-rating.mjs +10 -10
- package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -0
- package/rating/package.json +8 -14
- package/rating/rating.component.d.ts +1 -1
- package/schematics/collection.json +1 -1
- package/schematics/package.json +7 -7
- package/schematics/utils/current_dependency_versions.json +1 -1
- package/schematics/utils/index.d.ts +0 -2
- package/schematics/utils/index.js +1 -13
- package/schematics/utils/index.js.map +1 -1
- package/sortable/{esm2020 → esm2022}/draggable-item.service.mjs +4 -4
- package/sortable/esm2022/sortable.component.mjs +266 -0
- package/sortable/{esm2020 → esm2022}/sortable.module.mjs +5 -5
- package/sortable/{fesm2020 → fesm2022}/ngx-bootstrap-sortable.mjs +28 -28
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -0
- package/sortable/package.json +10 -16
- package/sortable/sortable.component.d.ts +1 -1
- package/tabs/esm2022/ng-transclude.directive.mjs +28 -0
- package/tabs/{esm2020 → esm2022}/tab-heading.directive.mjs +4 -4
- package/tabs/esm2022/tab.directive.mjs +115 -0
- package/tabs/{esm2020 → esm2022}/tabs.module.mjs +11 -11
- package/tabs/esm2022/tabset.component.mjs +216 -0
- package/tabs/{esm2020 → esm2022}/tabset.config.mjs +4 -4
- package/tabs/{fesm2015 → fesm2022}/ngx-bootstrap-tabs.mjs +63 -63
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -0
- package/tabs/ng-transclude.directive.d.ts +1 -1
- package/tabs/package.json +7 -13
- package/tabs/tab.directive.d.ts +1 -1
- package/tabs/tabset.component.d.ts +1 -1
- package/timepicker/esm2022/reducer/timepicker.actions.mjs +53 -0
- package/timepicker/{esm2020 → esm2022}/reducer/timepicker.store.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.component.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.config.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.module.mjs +5 -5
- package/timepicker/{fesm2020 → fesm2022}/ngx-bootstrap-timepicker.mjs +22 -22
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -0
- package/timepicker/package.json +10 -16
- package/timepicker/reducer/timepicker.reducer.d.ts +1 -3
- package/timepicker/timepicker.component.d.ts +1 -1
- package/timepicker/timepicker.models.d.ts +1 -1
- package/tooltip/{esm2020 → esm2022}/tooltip-container.component.mjs +9 -9
- package/tooltip/{esm2020 → esm2022}/tooltip.config.mjs +4 -4
- package/tooltip/esm2022/tooltip.directive.mjs +342 -0
- package/tooltip/{esm2020 → esm2022}/tooltip.module.mjs +5 -5
- package/tooltip/{fesm2020 → fesm2022}/ngx-bootstrap-tooltip.mjs +61 -61
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -0
- package/tooltip/package.json +10 -16
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/typeahead/esm2022/typeahead-container.component.mjs +311 -0
- package/typeahead/{esm2020 → esm2022}/typeahead.config.mjs +4 -4
- package/typeahead/{esm2020 → esm2022}/typeahead.directive.mjs +4 -4
- package/typeahead/{esm2020 → esm2022}/typeahead.module.mjs +5 -5
- package/typeahead/{fesm2020 → fesm2022}/ngx-bootstrap-typeahead.mjs +20 -20
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -0
- package/typeahead/package.json +12 -18
- package/typeahead/typeahead.directive.d.ts +3 -3
- package/utils/{esm2020 → esm2022}/triggers.mjs +5 -3
- package/utils/{fesm2020 → fesm2022}/ngx-bootstrap-utils.mjs +4 -2
- package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -0
- package/utils/package.json +6 -12
- package/utils/theme-provider.d.ts +1 -1
- package/utils/triggers.d.ts +1 -1
- package/accordion/esm2020/accordion-group.component.mjs +0 -84
- package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +0 -182
- package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +0 -1
- package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +0 -1
- package/alert/esm2020/alert.component.mjs +0 -77
- package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +0 -1
- package/alert/fesm2020/ngx-bootstrap-alert.mjs +0 -119
- package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +0 -1
- package/buttons/esm2020/button-radio.directive.mjs +0 -188
- package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +0 -448
- package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +0 -1
- package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +0 -1
- package/carousel/esm2020/carousel.component.mjs +0 -713
- package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +0 -851
- package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +0 -1
- package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +0 -1
- package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +0 -7384
- package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +0 -1
- package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +0 -1
- package/collapse/esm2020/collapse.directive.mjs +0 -168
- package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +0 -200
- package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +0 -1
- package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +0 -1
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +0 -345
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +0 -1
- package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +0 -1
- package/datepicker/esm2020/bs-datepicker.component.mjs +0 -302
- package/datepicker/esm2020/bs-datepicker.config.mjs +0 -97
- package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +0 -163
- package/datepicker/esm2020/bs-daterangepicker.component.mjs +0 -295
- package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +0 -143
- package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +0 -192
- package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +0 -261
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +0 -3965
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +0 -1
- package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +0 -1
- package/dropdown/esm2020/bs-dropdown-container.component.mjs +0 -79
- package/dropdown/esm2020/bs-dropdown.directive.mjs +0 -340
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +0 -603
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +0 -1
- package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +0 -1
- package/fesm2015/ngx-bootstrap.mjs.map +0 -1
- package/fesm2020/ngx-bootstrap.mjs +0 -6
- package/fesm2020/ngx-bootstrap.mjs.map +0 -1
- package/focus-trap/esm2020/focus-trap.mjs +0 -399
- package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +0 -800
- package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +0 -1
- package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +0 -1
- package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +0 -1
- package/locale/fesm2020/ngx-bootstrap-locale.mjs +0 -6
- package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +0 -1
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs +0 -64
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
- package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
- package/modal/esm2020/bs-modal.service.mjs +0 -219
- package/modal/esm2020/modal-backdrop.component.mjs +0 -50
- package/modal/esm2020/modal-container.component.mjs +0 -145
- package/modal/esm2020/modal.directive.mjs +0 -360
- package/modal/fesm2015/ngx-bootstrap-modal.mjs +0 -874
- package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +0 -1
- package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +0 -1
- package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +0 -565
- package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +0 -1
- package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +0 -1
- package/popover/esm2020/popover-container.component.mjs +0 -46
- package/popover/esm2020/popover.directive.mjs +0 -241
- package/popover/fesm2015/ngx-bootstrap-popover.mjs +0 -339
- package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +0 -1
- package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +0 -1
- package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +0 -1018
- package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +0 -1
- package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +0 -1
- package/progressbar/esm2020/progressbar.component.mjs +0 -53
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +0 -163
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +0 -1
- package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +0 -1
- package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +0 -1
- package/rating/fesm2020/ngx-bootstrap-rating.mjs +0 -163
- package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +0 -1
- package/sortable/esm2020/sortable.component.mjs +0 -266
- package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +0 -324
- package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +0 -1
- package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +0 -1
- package/tabs/esm2020/ng-transclude.directive.mjs +0 -28
- package/tabs/esm2020/tab.directive.mjs +0 -115
- package/tabs/esm2020/tabset.component.mjs +0 -216
- package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +0 -1
- package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +0 -427
- package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +0 -1
- package/timepicker/esm2020/reducer/timepicker.actions.mjs +0 -53
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +0 -830
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +0 -1
- package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +0 -1
- package/tooltip/esm2020/tooltip.directive.mjs +0 -342
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +0 -431
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +0 -1
- package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +0 -1
- package/typeahead/esm2020/typeahead-container.component.mjs +0 -311
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +0 -1890
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +0 -1
- package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +0 -1
- package/utils/fesm2015/ngx-bootstrap-utils.mjs +0 -521
- package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +0 -1
- package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +0 -1
- /package/accordion/{esm2020 → esm2022}/index.mjs +0 -0
- /package/accordion/{esm2020 → esm2022}/ngx-bootstrap-accordion.mjs +0 -0
- /package/accordion/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/index.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/ngx-bootstrap-alert.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/index.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/ngx-bootstrap-buttons.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/index.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/ngx-bootstrap-carousel.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/utils.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/check-overflow.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/clone.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/date-from-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-anything.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-object.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string-and-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string-and-format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/local.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/parsing-flags.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/parsing.types.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/valid.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/bubble.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/constructor.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/create.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/humanize.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/valid.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/format/format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/bg.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ca.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/cs.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/da.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/de.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/en-gb.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-do.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-pr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-us.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/et.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/fi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/fr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/gl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/he.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hu.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/id.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/it.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ja.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ka.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/kk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ko.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/lt.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/lv.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/mn.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nb.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nl-be.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/pl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/pt-br.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ro.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ru.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sq.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sv.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/th-be.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/th.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/tr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/uk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/vi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/zh-cn.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/index.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/calendar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locale.class.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locale.defaults.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locales.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/add-subtract.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/calendar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/diff.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/min-max.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/ngx-bootstrap-chronos.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/parse/regex.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/parse/token.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/testing/chain.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/types.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/aliases.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/constants.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-month.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-week.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/hour.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/index.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/millisecond.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/minute.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/month.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/offset.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/priorities.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/quarter.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/second.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/timestamp.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/timezone.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week-calendar-utils.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week-year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/abs-ceil.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/abs-round.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/compare-arrays.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-compare.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-getters.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-setters.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/defaults.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/start-end-of.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/type-checks.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/zero-fill.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/collapse-animations.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/index.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/ngx-bootstrap-collapse.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/bs-component-ref.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/component-loader.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/content-ref.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/index.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/listen-options.model.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/ngx-bootstrap-component-loader.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/base/bs-datepicker-container.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/datepicker-animations.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/calc-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-months-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-years-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-months-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-years-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/view-mode.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/index.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/ngx-bootstrap-datepicker.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/_defaults.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.reducer.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.state.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/bs-calendar-utils.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/copy-time-utils.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/matrix-utils.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/dropdown-animations.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/index.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/ngx-bootstrap-dropdown.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/ngx-bootstrap.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngx-bootstrap.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/boolean-property.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/index.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/ngx-bootstrap-focus-trap.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/index.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/ngx-bootstrap-locale.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/locale/{fesm2015 → fesm2022}/ngx-bootstrap-locale.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/index.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/state.class.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/store.class.mjs +0 -0
- /package/mini-ngrx/{fesm2020 → fesm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/index.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/modal-backdrop.options.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/ngx-bootstrap-modal.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/index.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/ngx-bootstrap-pagination.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/index.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/ngx-bootstrap-popover.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/arrow.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/flip.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/initData.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/preventOverflow.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/shift.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/ng-positioning.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/ngx-bootstrap-positioning.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/checkMargin.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/computeAutoPlacement.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/findCommonOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBordersSize.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBoundaries.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBoundingClientRect.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getClientRect.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getFixedPositionOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOppositePlacement.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOppositeVariation.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOuterSizes.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getParentNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getReferenceOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getRoot.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getScroll.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getScrollParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getStyleComputedProperty.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getTargetOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getWindowSizes.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/includeScroll.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isFixed.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isModifierEnabled.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isNumeric.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isOffsetContainer.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/setStyles.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/updateContainerClass.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/index.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/ngx-bootstrap-progressbar.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/progressbar-type.interface.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/index.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/ngx-bootstrap-rating.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/draggable-item.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/index.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/ngx-bootstrap-sortable.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/index.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/ngx-bootstrap-tabs.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/index.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/ngx-bootstrap-timepicker.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/reducer/timepicker.reducer.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker-controls.util.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker.models.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker.utils.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/index.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/ngx-bootstrap-tooltip.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/index.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/latin-map.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/ngx-bootstrap-typeahead.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-animations.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-match.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-options.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-order.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-utils.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/decorators.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/facade/browser.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/index.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/linked-list.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/ngx-bootstrap-utils.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/theme-provider.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/trigger.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/utils.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/warn-once.mjs +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-typeahead.mjs","sources":["../esm2020/latin-map.mjs","../esm2020/typeahead-options.class.mjs","../esm2020/typeahead-match.class.mjs","../esm2020/typeahead-utils.mjs","../esm2020/typeahead-animations.mjs","../esm2020/typeahead-container.component.mjs","../esm2020/typeahead.config.mjs","../esm2020/typeahead.directive.mjs","../esm2020/typeahead.module.mjs","../esm2020/ngx-bootstrap-typeahead.mjs"],"sourcesContent":["export const latinMap = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x'\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aW4tbWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC9sYXRpbi1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE4QjtJQUMvQyxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxHQUFHO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBsYXRpbk1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAnw4EnOiAnQScsXG4gICAgJ8SCJzogJ0EnLFxuICAgICfhuq4nOiAnQScsXG4gICAgJ+G6tic6ICdBJyxcbiAgICAn4bqwJzogJ0EnLFxuICAgICfhurInOiAnQScsXG4gICAgJ+G6tCc6ICdBJyxcbiAgICAnx40nOiAnQScsXG4gICAgJ8OCJzogJ0EnLFxuICAgICfhuqQnOiAnQScsXG4gICAgJ+G6rCc6ICdBJyxcbiAgICAn4bqmJzogJ0EnLFxuICAgICfhuqgnOiAnQScsXG4gICAgJ+G6qic6ICdBJyxcbiAgICAnw4QnOiAnQScsXG4gICAgJ8eeJzogJ0EnLFxuICAgICfIpic6ICdBJyxcbiAgICAnx6AnOiAnQScsXG4gICAgJ+G6oCc6ICdBJyxcbiAgICAnyIAnOiAnQScsXG4gICAgJ8OAJzogJ0EnLFxuICAgICfhuqInOiAnQScsXG4gICAgJ8iCJzogJ0EnLFxuICAgICfEgCc6ICdBJyxcbiAgICAnxIQnOiAnQScsXG4gICAgJ8OFJzogJ0EnLFxuICAgICfHuic6ICdBJyxcbiAgICAn4biAJzogJ0EnLFxuICAgICfIuic6ICdBJyxcbiAgICAnw4MnOiAnQScsXG4gICAgJ+qcsic6ICdBQScsXG4gICAgJ8OGJzogJ0FFJyxcbiAgICAnx7wnOiAnQUUnLFxuICAgICfHoic6ICdBRScsXG4gICAgJ+qctCc6ICdBTycsXG4gICAgJ+qctic6ICdBVScsXG4gICAgJ+qcuCc6ICdBVicsXG4gICAgJ+qcuic6ICdBVicsXG4gICAgJ+qcvCc6ICdBWScsXG4gICAgJ+G4gic6ICdCJyxcbiAgICAn4biEJzogJ0InLFxuICAgICfGgSc6ICdCJyxcbiAgICAn4biGJzogJ0InLFxuICAgICfJgyc6ICdCJyxcbiAgICAnxoInOiAnQicsXG4gICAgJ8SGJzogJ0MnLFxuICAgICfEjCc6ICdDJyxcbiAgICAnw4cnOiAnQycsXG4gICAgJ+G4iCc6ICdDJyxcbiAgICAnxIgnOiAnQycsXG4gICAgJ8SKJzogJ0MnLFxuICAgICfGhyc6ICdDJyxcbiAgICAnyLsnOiAnQycsXG4gICAgJ8SOJzogJ0QnLFxuICAgICfhuJAnOiAnRCcsXG4gICAgJ+G4kic6ICdEJyxcbiAgICAn4biKJzogJ0QnLFxuICAgICfhuIwnOiAnRCcsXG4gICAgJ8aKJzogJ0QnLFxuICAgICfhuI4nOiAnRCcsXG4gICAgJ8eyJzogJ0QnLFxuICAgICfHhSc6ICdEJyxcbiAgICAnxJAnOiAnRCcsXG4gICAgJ8aLJzogJ0QnLFxuICAgICfHsSc6ICdEWicsXG4gICAgJ8eEJzogJ0RaJyxcbiAgICAnw4knOiAnRScsXG4gICAgJ8SUJzogJ0UnLFxuICAgICfEmic6ICdFJyxcbiAgICAnyKgnOiAnRScsXG4gICAgJ+G4nCc6ICdFJyxcbiAgICAnw4onOiAnRScsXG4gICAgJ+G6vic6ICdFJyxcbiAgICAn4buGJzogJ0UnLFxuICAgICfhu4AnOiAnRScsXG4gICAgJ+G7gic6ICdFJyxcbiAgICAn4buEJzogJ0UnLFxuICAgICfhuJgnOiAnRScsXG4gICAgJ8OLJzogJ0UnLFxuICAgICfElic6ICdFJyxcbiAgICAn4bq4JzogJ0UnLFxuICAgICfIhCc6ICdFJyxcbiAgICAnw4gnOiAnRScsXG4gICAgJ+G6uic6ICdFJyxcbiAgICAnyIYnOiAnRScsXG4gICAgJ8SSJzogJ0UnLFxuICAgICfhuJYnOiAnRScsXG4gICAgJ+G4lCc6ICdFJyxcbiAgICAnxJgnOiAnRScsXG4gICAgJ8mGJzogJ0UnLFxuICAgICfhurwnOiAnRScsXG4gICAgJ+G4mic6ICdFJyxcbiAgICAn6p2qJzogJ0VUJyxcbiAgICAn4bieJzogJ0YnLFxuICAgICfGkSc6ICdGJyxcbiAgICAnx7QnOiAnRycsXG4gICAgJ8SeJzogJ0cnLFxuICAgICfHpic6ICdHJyxcbiAgICAnxKInOiAnRycsXG4gICAgJ8ScJzogJ0cnLFxuICAgICfEoCc6ICdHJyxcbiAgICAnxpMnOiAnRycsXG4gICAgJ+G4oCc6ICdHJyxcbiAgICAnx6QnOiAnRycsXG4gICAgJ+G4qic6ICdIJyxcbiAgICAnyJ4nOiAnSCcsXG4gICAgJ+G4qCc6ICdIJyxcbiAgICAnxKQnOiAnSCcsXG4gICAgJ+Kxpyc6ICdIJyxcbiAgICAn4bimJzogJ0gnLFxuICAgICfhuKInOiAnSCcsXG4gICAgJ+G4pCc6ICdIJyxcbiAgICAnxKYnOiAnSCcsXG4gICAgJ8ONJzogJ0knLFxuICAgICfErCc6ICdJJyxcbiAgICAnx48nOiAnSScsXG4gICAgJ8OOJzogJ0knLFxuICAgICfDjyc6ICdJJyxcbiAgICAn4biuJzogJ0knLFxuICAgICfEsCc6ICdJJyxcbiAgICAn4buKJzogJ0knLFxuICAgICfIiCc6ICdJJyxcbiAgICAnw4wnOiAnSScsXG4gICAgJ+G7iCc6ICdJJyxcbiAgICAnyIonOiAnSScsXG4gICAgJ8SqJzogJ0knLFxuICAgICfEric6ICdJJyxcbiAgICAnxpcnOiAnSScsXG4gICAgJ8SoJzogJ0knLFxuICAgICfhuKwnOiAnSScsXG4gICAgJ+qduSc6ICdEJyxcbiAgICAn6p27JzogJ0YnLFxuICAgICfqnb0nOiAnRycsXG4gICAgJ+qegic6ICdSJyxcbiAgICAn6p6EJzogJ1MnLFxuICAgICfqnoYnOiAnVCcsXG4gICAgJ+qdrCc6ICdJUycsXG4gICAgJ8S0JzogJ0onLFxuICAgICfJiCc6ICdKJyxcbiAgICAn4biwJzogJ0snLFxuICAgICfHqCc6ICdLJyxcbiAgICAnxLYnOiAnSycsXG4gICAgJ+KxqSc6ICdLJyxcbiAgICAn6p2CJzogJ0snLFxuICAgICfhuLInOiAnSycsXG4gICAgJ8aYJzogJ0snLFxuICAgICfhuLQnOiAnSycsXG4gICAgJ+qdgCc6ICdLJyxcbiAgICAn6p2EJzogJ0snLFxuICAgICfEuSc6ICdMJyxcbiAgICAnyL0nOiAnTCcsXG4gICAgJ8S9JzogJ0wnLFxuICAgICfEuyc6ICdMJyxcbiAgICAn4bi8JzogJ0wnLFxuICAgICfhuLYnOiAnTCcsXG4gICAgJ+G4uCc6ICdMJyxcbiAgICAn4rGgJzogJ0wnLFxuICAgICfqnYgnOiAnTCcsXG4gICAgJ+G4uic6ICdMJyxcbiAgICAnxL8nOiAnTCcsXG4gICAgJ+Kxoic6ICdMJyxcbiAgICAnx4gnOiAnTCcsXG4gICAgJ8WBJzogJ0wnLFxuICAgICfHhyc6ICdMSicsXG4gICAgJ+G4vic6ICdNJyxcbiAgICAn4bmAJzogJ00nLFxuICAgICfhuYInOiAnTScsXG4gICAgJ+Kxric6ICdNJyxcbiAgICAnxYMnOiAnTicsXG4gICAgJ8WHJzogJ04nLFxuICAgICfFhSc6ICdOJyxcbiAgICAn4bmKJzogJ04nLFxuICAgICfhuYQnOiAnTicsXG4gICAgJ+G5hic6ICdOJyxcbiAgICAnx7gnOiAnTicsXG4gICAgJ8adJzogJ04nLFxuICAgICfhuYgnOiAnTicsXG4gICAgJ8igJzogJ04nLFxuICAgICfHiyc6ICdOJyxcbiAgICAnw5EnOiAnTicsXG4gICAgJ8eKJzogJ05KJyxcbiAgICAnw5MnOiAnTycsXG4gICAgJ8WOJzogJ08nLFxuICAgICfHkSc6ICdPJyxcbiAgICAnw5QnOiAnTycsXG4gICAgJ+G7kCc6ICdPJyxcbiAgICAn4buYJzogJ08nLFxuICAgICfhu5InOiAnTycsXG4gICAgJ+G7lCc6ICdPJyxcbiAgICAn4buWJzogJ08nLFxuICAgICfDlic6ICdPJyxcbiAgICAnyKonOiAnTycsXG4gICAgJ8iuJzogJ08nLFxuICAgICfIsCc6ICdPJyxcbiAgICAn4buMJzogJ08nLFxuICAgICfFkCc6ICdPJyxcbiAgICAnyIwnOiAnTycsXG4gICAgJ8OSJzogJ08nLFxuICAgICfhu44nOiAnTycsXG4gICAgJ8agJzogJ08nLFxuICAgICfhu5onOiAnTycsXG4gICAgJ+G7oic6ICdPJyxcbiAgICAn4bucJzogJ08nLFxuICAgICfhu54nOiAnTycsXG4gICAgJ+G7oCc6ICdPJyxcbiAgICAnyI4nOiAnTycsXG4gICAgJ+qdiic6ICdPJyxcbiAgICAn6p2MJzogJ08nLFxuICAgICfFjCc6ICdPJyxcbiAgICAn4bmSJzogJ08nLFxuICAgICfhuZAnOiAnTycsXG4gICAgJ8afJzogJ08nLFxuICAgICfHqic6ICdPJyxcbiAgICAnx6wnOiAnTycsXG4gICAgJ8OYJzogJ08nLFxuICAgICfHvic6ICdPJyxcbiAgICAnw5UnOiAnTycsXG4gICAgJ+G5jCc6ICdPJyxcbiAgICAn4bmOJzogJ08nLFxuICAgICfIrCc6ICdPJyxcbiAgICAnxqInOiAnT0knLFxuICAgICfqnY4nOiAnT08nLFxuICAgICfGkCc6ICdFJyxcbiAgICAnxoYnOiAnTycsXG4gICAgJ8iiJzogJ09VJyxcbiAgICAn4bmUJzogJ1AnLFxuICAgICfhuZYnOiAnUCcsXG4gICAgJ+qdkic6ICdQJyxcbiAgICAnxqQnOiAnUCcsXG4gICAgJ+qdlCc6ICdQJyxcbiAgICAn4rGjJzogJ1AnLFxuICAgICfqnZAnOiAnUCcsXG4gICAgJ+qdmCc6ICdRJyxcbiAgICAn6p2WJzogJ1EnLFxuICAgICfFlCc6ICdSJyxcbiAgICAnxZgnOiAnUicsXG4gICAgJ8WWJzogJ1InLFxuICAgICfhuZgnOiAnUicsXG4gICAgJ+G5mic6ICdSJyxcbiAgICAn4bmcJzogJ1InLFxuICAgICfIkCc6ICdSJyxcbiAgICAnyJInOiAnUicsXG4gICAgJ+G5nic6ICdSJyxcbiAgICAnyYwnOiAnUicsXG4gICAgJ+KxpCc6ICdSJyxcbiAgICAn6py+JzogJ0MnLFxuICAgICfGjic6ICdFJyxcbiAgICAnxZonOiAnUycsXG4gICAgJ+G5pCc6ICdTJyxcbiAgICAnxaAnOiAnUycsXG4gICAgJ+G5pic6ICdTJyxcbiAgICAnxZ4nOiAnUycsXG4gICAgJ8WcJzogJ1MnLFxuICAgICfImCc6ICdTJyxcbiAgICAn4bmgJzogJ1MnLFxuICAgICfhuaInOiAnUycsXG4gICAgJ+G5qCc6ICdTJyxcbiAgICAnxaQnOiAnVCcsXG4gICAgJ8WiJzogJ1QnLFxuICAgICfhubAnOiAnVCcsXG4gICAgJ8iaJzogJ1QnLFxuICAgICfIvic6ICdUJyxcbiAgICAn4bmqJzogJ1QnLFxuICAgICfhuawnOiAnVCcsXG4gICAgJ8asJzogJ1QnLFxuICAgICfhua4nOiAnVCcsXG4gICAgJ8auJzogJ1QnLFxuICAgICfFpic6ICdUJyxcbiAgICAn4rGvJzogJ0EnLFxuICAgICfqnoAnOiAnTCcsXG4gICAgJ8acJzogJ00nLFxuICAgICfJhSc6ICdWJyxcbiAgICAn6pyoJzogJ1RaJyxcbiAgICAnw5onOiAnVScsXG4gICAgJ8WsJzogJ1UnLFxuICAgICfHkyc6ICdVJyxcbiAgICAnw5snOiAnVScsXG4gICAgJ+G5tic6ICdVJyxcbiAgICAnw5wnOiAnVScsXG4gICAgJ8eXJzogJ1UnLFxuICAgICfHmSc6ICdVJyxcbiAgICAnx5snOiAnVScsXG4gICAgJ8eVJzogJ1UnLFxuICAgICfhubInOiAnVScsXG4gICAgJ+G7pCc6ICdVJyxcbiAgICAnxbAnOiAnVScsXG4gICAgJ8iUJzogJ1UnLFxuICAgICfDmSc6ICdVJyxcbiAgICAn4bumJzogJ1UnLFxuICAgICfGryc6ICdVJyxcbiAgICAn4buoJzogJ1UnLFxuICAgICfhu7AnOiAnVScsXG4gICAgJ+G7qic6ICdVJyxcbiAgICAn4busJzogJ1UnLFxuICAgICfhu64nOiAnVScsXG4gICAgJ8iWJzogJ1UnLFxuICAgICfFqic6ICdVJyxcbiAgICAn4bm6JzogJ1UnLFxuICAgICfFsic6ICdVJyxcbiAgICAnxa4nOiAnVScsXG4gICAgJ8WoJzogJ1UnLFxuICAgICfhubgnOiAnVScsXG4gICAgJ+G5tCc6ICdVJyxcbiAgICAn6p2eJzogJ1YnLFxuICAgICfhub4nOiAnVicsXG4gICAgJ8ayJzogJ1YnLFxuICAgICfhubwnOiAnVicsXG4gICAgJ+qdoCc6ICdWWScsXG4gICAgJ+G6gic6ICdXJyxcbiAgICAnxbQnOiAnVycsXG4gICAgJ+G6hCc6ICdXJyxcbiAgICAn4bqGJzogJ1cnLFxuICAgICfhuognOiAnVycsXG4gICAgJ+G6gCc6ICdXJyxcbiAgICAn4rGyJzogJ1cnLFxuICAgICfhuownOiAnWCcsXG4gICAgJ+G6iic6ICdYJyxcbiAgICAnw50nOiAnWScsXG4gICAgJ8W2JzogJ1knLFxuICAgICfFuCc6ICdZJyxcbiAgICAn4bqOJzogJ1knLFxuICAgICfhu7QnOiAnWScsXG4gICAgJ+G7sic6ICdZJyxcbiAgICAnxrMnOiAnWScsXG4gICAgJ+G7tic6ICdZJyxcbiAgICAn4bu+JzogJ1knLFxuICAgICfIsic6ICdZJyxcbiAgICAnyY4nOiAnWScsXG4gICAgJ+G7uCc6ICdZJyxcbiAgICAnxbknOiAnWicsXG4gICAgJ8W9JzogJ1onLFxuICAgICfhupAnOiAnWicsXG4gICAgJ+Kxqyc6ICdaJyxcbiAgICAnxbsnOiAnWicsXG4gICAgJ+G6kic6ICdaJyxcbiAgICAnyKQnOiAnWicsXG4gICAgJ+G6lCc6ICdaJyxcbiAgICAnxrUnOiAnWicsXG4gICAgJ8SyJzogJ0lKJyxcbiAgICAnxZInOiAnT0UnLFxuICAgICfhtIAnOiAnQScsXG4gICAgJ+G0gSc6ICdBRScsXG4gICAgJ8qZJzogJ0InLFxuICAgICfhtIMnOiAnQicsXG4gICAgJ+G0hCc6ICdDJyxcbiAgICAn4bSFJzogJ0QnLFxuICAgICfhtIcnOiAnRScsXG4gICAgJ+qcsCc6ICdGJyxcbiAgICAnyaInOiAnRycsXG4gICAgJ8qbJzogJ0cnLFxuICAgICfKnCc6ICdIJyxcbiAgICAnyaonOiAnSScsXG4gICAgJ8qBJzogJ1InLFxuICAgICfhtIonOiAnSicsXG4gICAgJ+G0iyc6ICdLJyxcbiAgICAnyp8nOiAnTCcsXG4gICAgJ+G0jCc6ICdMJyxcbiAgICAn4bSNJzogJ00nLFxuICAgICfJtCc6ICdOJyxcbiAgICAn4bSPJzogJ08nLFxuICAgICfJtic6ICdPRScsXG4gICAgJ+G0kCc6ICdPJyxcbiAgICAn4bSVJzogJ09VJyxcbiAgICAn4bSYJzogJ1AnLFxuICAgICfKgCc6ICdSJyxcbiAgICAn4bSOJzogJ04nLFxuICAgICfhtJknOiAnUicsXG4gICAgJ+qcsSc6ICdTJyxcbiAgICAn4bSbJzogJ1QnLFxuICAgICfisbsnOiAnRScsXG4gICAgJ+G0mic6ICdSJyxcbiAgICAn4bScJzogJ1UnLFxuICAgICfhtKAnOiAnVicsXG4gICAgJ+G0oSc6ICdXJyxcbiAgICAnyo8nOiAnWScsXG4gICAgJ+G0oic6ICdaJyxcbiAgICAnw6EnOiAnYScsXG4gICAgJ8SDJzogJ2EnLFxuICAgICfhuq8nOiAnYScsXG4gICAgJ+G6tyc6ICdhJyxcbiAgICAn4bqxJzogJ2EnLFxuICAgICfhurMnOiAnYScsXG4gICAgJ+G6tSc6ICdhJyxcbiAgICAnx44nOiAnYScsXG4gICAgJ8OiJzogJ2EnLFxuICAgICfhuqUnOiAnYScsXG4gICAgJ+G6rSc6ICdhJyxcbiAgICAn4bqnJzogJ2EnLFxuICAgICfhuqknOiAnYScsXG4gICAgJ+G6qyc6ICdhJyxcbiAgICAnw6QnOiAnYScsXG4gICAgJ8efJzogJ2EnLFxuICAgICfIpyc6ICdhJyxcbiAgICAnx6EnOiAnYScsXG4gICAgJ+G6oSc6ICdhJyxcbiAgICAnyIEnOiAnYScsXG4gICAgJ8OgJzogJ2EnLFxuICAgICfhuqMnOiAnYScsXG4gICAgJ8iDJzogJ2EnLFxuICAgICfEgSc6ICdhJyxcbiAgICAnxIUnOiAnYScsXG4gICAgJ+G2jyc6ICdhJyxcbiAgICAn4bqaJzogJ2EnLFxuICAgICfDpSc6ICdhJyxcbiAgICAnx7snOiAnYScsXG4gICAgJ+G4gSc6ICdhJyxcbiAgICAn4rGlJzogJ2EnLFxuICAgICfDoyc6ICdhJyxcbiAgICAn6pyzJzogJ2FhJyxcbiAgICAnw6YnOiAnYWUnLFxuICAgICfHvSc6ICdhZScsXG4gICAgJ8ejJzogJ2FlJyxcbiAgICAn6py1JzogJ2FvJyxcbiAgICAn6py3JzogJ2F1JyxcbiAgICAn6py5JzogJ2F2JyxcbiAgICAn6py7JzogJ2F2JyxcbiAgICAn6py9JzogJ2F5JyxcbiAgICAn4biDJzogJ2InLFxuICAgICfhuIUnOiAnYicsXG4gICAgJ8mTJzogJ2InLFxuICAgICfhuIcnOiAnYicsXG4gICAgJ+G1rCc6ICdiJyxcbiAgICAn4baAJzogJ2InLFxuICAgICfGgCc6ICdiJyxcbiAgICAnxoMnOiAnYicsXG4gICAgJ8m1JzogJ28nLFxuICAgICfEhyc6ICdjJyxcbiAgICAnxI0nOiAnYycsXG4gICAgJ8OnJzogJ2MnLFxuICAgICfhuIknOiAnYycsXG4gICAgJ8SJJzogJ2MnLFxuICAgICfJlSc6ICdjJyxcbiAgICAnxIsnOiAnYycsXG4gICAgJ8aIJzogJ2MnLFxuICAgICfIvCc6ICdjJyxcbiAgICAnxI8nOiAnZCcsXG4gICAgJ+G4kSc6ICdkJyxcbiAgICAn4biTJzogJ2QnLFxuICAgICfIoSc6ICdkJyxcbiAgICAn4biLJzogJ2QnLFxuICAgICfhuI0nOiAnZCcsXG4gICAgJ8mXJzogJ2QnLFxuICAgICfhtpEnOiAnZCcsXG4gICAgJ+G4jyc6ICdkJyxcbiAgICAn4bWtJzogJ2QnLFxuICAgICfhtoEnOiAnZCcsXG4gICAgJ8SRJzogJ2QnLFxuICAgICfJlic6ICdkJyxcbiAgICAnxownOiAnZCcsXG4gICAgJ8SxJzogJ2knLFxuICAgICfItyc6ICdqJyxcbiAgICAnyZ8nOiAnaicsXG4gICAgJ8qEJzogJ2onLFxuICAgICfHsyc6ICdkeicsXG4gICAgJ8eGJzogJ2R6JyxcbiAgICAnw6knOiAnZScsXG4gICAgJ8SVJzogJ2UnLFxuICAgICfEmyc6ICdlJyxcbiAgICAnyKknOiAnZScsXG4gICAgJ+G4nSc6ICdlJyxcbiAgICAnw6onOiAnZScsXG4gICAgJ+G6vyc6ICdlJyxcbiAgICAn4buHJzogJ2UnLFxuICAgICfhu4EnOiAnZScsXG4gICAgJ+G7gyc6ICdlJyxcbiAgICAn4buFJzogJ2UnLFxuICAgICfhuJknOiAnZScsXG4gICAgJ8OrJzogJ2UnLFxuICAgICfElyc6ICdlJyxcbiAgICAn4bq5JzogJ2UnLFxuICAgICfIhSc6ICdlJyxcbiAgICAnw6gnOiAnZScsXG4gICAgJ+G6uyc6ICdlJyxcbiAgICAnyIcnOiAnZScsXG4gICAgJ8STJzogJ2UnLFxuICAgICfhuJcnOiAnZScsXG4gICAgJ+G4lSc6ICdlJyxcbiAgICAn4rG4JzogJ2UnLFxuICAgICfEmSc6ICdlJyxcbiAgICAn4baSJzogJ2UnLFxuICAgICfJhyc6ICdlJyxcbiAgICAn4bq9JzogJ2UnLFxuICAgICfhuJsnOiAnZScsXG4gICAgJ+qdqyc6ICdldCcsXG4gICAgJ+G4nyc6ICdmJyxcbiAgICAnxpInOiAnZicsXG4gICAgJ+G1ric6ICdmJyxcbiAgICAn4baCJzogJ2YnLFxuICAgICfHtSc6ICdnJyxcbiAgICAnxJ8nOiAnZycsXG4gICAgJ8enJzogJ2cnLFxuICAgICfEoyc6ICdnJyxcbiAgICAnxJ0nOiAnZycsXG4gICAgJ8ShJzogJ2cnLFxuICAgICfJoCc6ICdnJyxcbiAgICAn4bihJzogJ2cnLFxuICAgICfhtoMnOiAnZycsXG4gICAgJ8elJzogJ2cnLFxuICAgICfhuKsnOiAnaCcsXG4gICAgJ8ifJzogJ2gnLFxuICAgICfhuKknOiAnaCcsXG4gICAgJ8SlJzogJ2gnLFxuICAgICfisagnOiAnaCcsXG4gICAgJ+G4pyc6ICdoJyxcbiAgICAn4bijJzogJ2gnLFxuICAgICfhuKUnOiAnaCcsXG4gICAgJ8mmJzogJ2gnLFxuICAgICfhupYnOiAnaCcsXG4gICAgJ8SnJzogJ2gnLFxuICAgICfGlSc6ICdodicsXG4gICAgJ8OtJzogJ2knLFxuICAgICfErSc6ICdpJyxcbiAgICAnx5AnOiAnaScsXG4gICAgJ8OuJzogJ2knLFxuICAgICfDryc6ICdpJyxcbiAgICAn4bivJzogJ2knLFxuICAgICfhu4snOiAnaScsXG4gICAgJ8iJJzogJ2knLFxuICAgICfDrCc6ICdpJyxcbiAgICAn4buJJzogJ2knLFxuICAgICfIiyc6ICdpJyxcbiAgICAnxKsnOiAnaScsXG4gICAgJ8SvJzogJ2knLFxuICAgICfhtpYnOiAnaScsXG4gICAgJ8moJzogJ2knLFxuICAgICfEqSc6ICdpJyxcbiAgICAn4bitJzogJ2knLFxuICAgICfqnbonOiAnZCcsXG4gICAgJ+qdvCc6ICdmJyxcbiAgICAn4bW5JzogJ2cnLFxuICAgICfqnoMnOiAncicsXG4gICAgJ+qehSc6ICdzJyxcbiAgICAn6p6HJzogJ3QnLFxuICAgICfqna0nOiAnaXMnLFxuICAgICfHsCc6ICdqJyxcbiAgICAnxLUnOiAnaicsXG4gICAgJ8qdJzogJ2onLFxuICAgICfJiSc6ICdqJyxcbiAgICAn4bixJzogJ2snLFxuICAgICfHqSc6ICdrJyxcbiAgICAnxLcnOiAnaycsXG4gICAgJ+Kxqic6ICdrJyxcbiAgICAn6p2DJzogJ2snLFxuICAgICfhuLMnOiAnaycsXG4gICAgJ8aZJzogJ2snLFxuICAgICfhuLUnOiAnaycsXG4gICAgJ+G2hCc6ICdrJyxcbiAgICAn6p2BJzogJ2snLFxuICAgICfqnYUnOiAnaycsXG4gICAgJ8S6JzogJ2wnLFxuICAgICfGmic6ICdsJyxcbiAgICAnyawnOiAnbCcsXG4gICAgJ8S+JzogJ2wnLFxuICAgICfEvCc6ICdsJyxcbiAgICAn4bi9JzogJ2wnLFxuICAgICfItCc6ICdsJyxcbiAgICAn4bi3JzogJ2wnLFxuICAgICfhuLknOiAnbCcsXG4gICAgJ+KxoSc6ICdsJyxcbiAgICAn6p2JJzogJ2wnLFxuICAgICfhuLsnOiAnbCcsXG4gICAgJ8WAJzogJ2wnLFxuICAgICfJqyc6ICdsJyxcbiAgICAn4baFJzogJ2wnLFxuICAgICfJrSc6ICdsJyxcbiAgICAnxYInOiAnbCcsXG4gICAgJ8eJJzogJ2xqJyxcbiAgICAnxb8nOiAncycsXG4gICAgJ+G6nCc6ICdzJyxcbiAgICAn4bqbJzogJ3MnLFxuICAgICfhup0nOiAncycsXG4gICAgJ+G4vyc6ICdtJyxcbiAgICAn4bmBJzogJ20nLFxuICAgICfhuYMnOiAnbScsXG4gICAgJ8mxJzogJ20nLFxuICAgICfhta8nOiAnbScsXG4gICAgJ+G2hic6ICdtJyxcbiAgICAnxYQnOiAnbicsXG4gICAgJ8WIJzogJ24nLFxuICAgICfFhic6ICduJyxcbiAgICAn4bmLJzogJ24nLFxuICAgICfItSc6ICduJyxcbiAgICAn4bmFJzogJ24nLFxuICAgICfhuYcnOiAnbicsXG4gICAgJ8e5JzogJ24nLFxuICAgICfJsic6ICduJyxcbiAgICAn4bmJJzogJ24nLFxuICAgICfGnic6ICduJyxcbiAgICAn4bWwJzogJ24nLFxuICAgICfhtocnOiAnbicsXG4gICAgJ8mzJzogJ24nLFxuICAgICfDsSc6ICduJyxcbiAgICAnx4wnOiAnbmonLFxuICAgICfDsyc6ICdvJyxcbiAgICAnxY8nOiAnbycsXG4gICAgJ8eSJzogJ28nLFxuICAgICfDtCc6ICdvJyxcbiAgICAn4buRJzogJ28nLFxuICAgICfhu5knOiAnbycsXG4gICAgJ+G7kyc6ICdvJyxcbiAgICAn4buVJzogJ28nLFxuICAgICfhu5cnOiAnbycsXG4gICAgJ8O2JzogJ28nLFxuICAgICfIqyc6ICdvJyxcbiAgICAnyK8nOiAnbycsXG4gICAgJ8ixJzogJ28nLFxuICAgICfhu40nOiAnbycsXG4gICAgJ8WRJzogJ28nLFxuICAgICfIjSc6ICdvJyxcbiAgICAnw7InOiAnbycsXG4gICAgJ+G7jyc6ICdvJyxcbiAgICAnxqEnOiAnbycsXG4gICAgJ+G7myc6ICdvJyxcbiAgICAn4bujJzogJ28nLFxuICAgICfhu50nOiAnbycsXG4gICAgJ+G7nyc6ICdvJyxcbiAgICAn4buhJzogJ28nLFxuICAgICfIjyc6ICdvJyxcbiAgICAn6p2LJzogJ28nLFxuICAgICfqnY0nOiAnbycsXG4gICAgJ+Kxuic6ICdvJyxcbiAgICAnxY0nOiAnbycsXG4gICAgJ+G5kyc6ICdvJyxcbiAgICAn4bmRJzogJ28nLFxuICAgICfHqyc6ICdvJyxcbiAgICAnx60nOiAnbycsXG4gICAgJ8O4JzogJ28nLFxuICAgICfHvyc6ICdvJyxcbiAgICAnw7UnOiAnbycsXG4gICAgJ+G5jSc6ICdvJyxcbiAgICAn4bmPJzogJ28nLFxuICAgICfIrSc6ICdvJyxcbiAgICAnxqMnOiAnb2knLFxuICAgICfqnY8nOiAnb28nLFxuICAgICfJmyc6ICdlJyxcbiAgICAn4baTJzogJ2UnLFxuICAgICfJlCc6ICdvJyxcbiAgICAn4baXJzogJ28nLFxuICAgICfIoyc6ICdvdScsXG4gICAgJ+G5lSc6ICdwJyxcbiAgICAn4bmXJzogJ3AnLFxuICAgICfqnZMnOiAncCcsXG4gICAgJ8alJzogJ3AnLFxuICAgICfhtbEnOiAncCcsXG4gICAgJ+G2iCc6ICdwJyxcbiAgICAn6p2VJzogJ3AnLFxuICAgICfhtb0nOiAncCcsXG4gICAgJ+qdkSc6ICdwJyxcbiAgICAn6p2ZJzogJ3EnLFxuICAgICfKoCc6ICdxJyxcbiAgICAnyYsnOiAncScsXG4gICAgJ+qdlyc6ICdxJyxcbiAgICAnxZUnOiAncicsXG4gICAgJ8WZJzogJ3InLFxuICAgICfFlyc6ICdyJyxcbiAgICAn4bmZJzogJ3InLFxuICAgICfhuZsnOiAncicsXG4gICAgJ+G5nSc6ICdyJyxcbiAgICAnyJEnOiAncicsXG4gICAgJ8m+JzogJ3InLFxuICAgICfhtbMnOiAncicsXG4gICAgJ8iTJzogJ3InLFxuICAgICfhuZ8nOiAncicsXG4gICAgJ8m8JzogJ3InLFxuICAgICfhtbInOiAncicsXG4gICAgJ+G2iSc6ICdyJyxcbiAgICAnyY0nOiAncicsXG4gICAgJ8m9JzogJ3InLFxuICAgICfihoQnOiAnYycsXG4gICAgJ+qcvyc6ICdjJyxcbiAgICAnyZgnOiAnZScsXG4gICAgJ8m/JzogJ3InLFxuICAgICfFmyc6ICdzJyxcbiAgICAn4bmlJzogJ3MnLFxuICAgICfFoSc6ICdzJyxcbiAgICAn4bmnJzogJ3MnLFxuICAgICfFnyc6ICdzJyxcbiAgICAnxZ0nOiAncycsXG4gICAgJ8iZJzogJ3MnLFxuICAgICfhuaEnOiAncycsXG4gICAgJ+G5oyc6ICdzJyxcbiAgICAn4bmpJzogJ3MnLFxuICAgICfKgic6ICdzJyxcbiAgICAn4bW0JzogJ3MnLFxuICAgICfhtoonOiAncycsXG4gICAgJ8i/JzogJ3MnLFxuICAgICfJoSc6ICdnJyxcbiAgICAn4bSRJzogJ28nLFxuICAgICfhtJMnOiAnbycsXG4gICAgJ+G0nSc6ICd1JyxcbiAgICAnxaUnOiAndCcsXG4gICAgJ8WjJzogJ3QnLFxuICAgICfhubEnOiAndCcsXG4gICAgJ8ibJzogJ3QnLFxuICAgICfItic6ICd0JyxcbiAgICAn4bqXJzogJ3QnLFxuICAgICfisaYnOiAndCcsXG4gICAgJ+G5qyc6ICd0JyxcbiAgICAn4bmtJzogJ3QnLFxuICAgICfGrSc6ICd0JyxcbiAgICAn4bmvJzogJ3QnLFxuICAgICfhtbUnOiAndCcsXG4gICAgJ8arJzogJ3QnLFxuICAgICfKiCc6ICd0JyxcbiAgICAnxacnOiAndCcsXG4gICAgJ+G1uic6ICd0aCcsXG4gICAgJ8mQJzogJ2EnLFxuICAgICfhtIInOiAnYWUnLFxuICAgICfHnSc6ICdlJyxcbiAgICAn4bW3JzogJ2cnLFxuICAgICfJpSc6ICdoJyxcbiAgICAnyq4nOiAnaCcsXG4gICAgJ8qvJzogJ2gnLFxuICAgICfhtIknOiAnaScsXG4gICAgJ8qeJzogJ2snLFxuICAgICfqnoEnOiAnbCcsXG4gICAgJ8mvJzogJ20nLFxuICAgICfJsCc6ICdtJyxcbiAgICAn4bSUJzogJ29lJyxcbiAgICAnybknOiAncicsXG4gICAgJ8m7JzogJ3InLFxuICAgICfJuic6ICdyJyxcbiAgICAn4rG5JzogJ3InLFxuICAgICfKhyc6ICd0JyxcbiAgICAnyownOiAndicsXG4gICAgJ8qNJzogJ3cnLFxuICAgICfKjic6ICd5JyxcbiAgICAn6pypJzogJ3R6JyxcbiAgICAnw7onOiAndScsXG4gICAgJ8WtJzogJ3UnLFxuICAgICfHlCc6ICd1JyxcbiAgICAnw7snOiAndScsXG4gICAgJ+G5tyc6ICd1JyxcbiAgICAnw7wnOiAndScsXG4gICAgJ8eYJzogJ3UnLFxuICAgICfHmic6ICd1JyxcbiAgICAnx5wnOiAndScsXG4gICAgJ8eWJzogJ3UnLFxuICAgICfhubMnOiAndScsXG4gICAgJ+G7pSc6ICd1JyxcbiAgICAnxbEnOiAndScsXG4gICAgJ8iVJzogJ3UnLFxuICAgICfDuSc6ICd1JyxcbiAgICAn4bunJzogJ3UnLFxuICAgICfGsCc6ICd1JyxcbiAgICAn4bupJzogJ3UnLFxuICAgICfhu7EnOiAndScsXG4gICAgJ+G7qyc6ICd1JyxcbiAgICAn4butJzogJ3UnLFxuICAgICfhu68nOiAndScsXG4gICAgJ8iXJzogJ3UnLFxuICAgICfFqyc6ICd1JyxcbiAgICAn4bm7JzogJ3UnLFxuICAgICfFsyc6ICd1JyxcbiAgICAn4baZJzogJ3UnLFxuICAgICfFryc6ICd1JyxcbiAgICAnxaknOiAndScsXG4gICAgJ+G5uSc6ICd1JyxcbiAgICAn4bm1JzogJ3UnLFxuICAgICfhtasnOiAndWUnLFxuICAgICfqnbgnOiAndW0nLFxuICAgICfisbQnOiAndicsXG4gICAgJ+qdnyc6ICd2JyxcbiAgICAn4bm/JzogJ3YnLFxuICAgICfKiyc6ICd2JyxcbiAgICAn4baMJzogJ3YnLFxuICAgICfisbEnOiAndicsXG4gICAgJ+G5vSc6ICd2JyxcbiAgICAn6p2hJzogJ3Z5JyxcbiAgICAn4bqDJzogJ3cnLFxuICAgICfFtSc6ICd3JyxcbiAgICAn4bqFJzogJ3cnLFxuICAgICfhuocnOiAndycsXG4gICAgJ+G6iSc6ICd3JyxcbiAgICAn4bqBJzogJ3cnLFxuICAgICfisbMnOiAndycsXG4gICAgJ+G6mCc6ICd3JyxcbiAgICAn4bqNJzogJ3gnLFxuICAgICfhuosnOiAneCcsXG4gICAgJ+G2jSc6ICd4JyxcbiAgICAnw70nOiAneScsXG4gICAgJ8W3JzogJ3knLFxuICAgICfDvyc6ICd5JyxcbiAgICAn4bqPJzogJ3knLFxuICAgICfhu7UnOiAneScsXG4gICAgJ+G7syc6ICd5JyxcbiAgICAnxrQnOiAneScsXG4gICAgJ+G7tyc6ICd5JyxcbiAgICAn4bu/JzogJ3knLFxuICAgICfIsyc6ICd5JyxcbiAgICAn4bqZJzogJ3knLFxuICAgICfJjyc6ICd5JyxcbiAgICAn4bu5JzogJ3knLFxuICAgICfFuic6ICd6JyxcbiAgICAnxb4nOiAneicsXG4gICAgJ+G6kSc6ICd6JyxcbiAgICAnypEnOiAneicsXG4gICAgJ+KxrCc6ICd6JyxcbiAgICAnxbwnOiAneicsXG4gICAgJ+G6kyc6ICd6JyxcbiAgICAnyKUnOiAneicsXG4gICAgJ+G6lSc6ICd6JyxcbiAgICAn4bW2JzogJ3onLFxuICAgICfhto4nOiAneicsXG4gICAgJ8qQJzogJ3onLFxuICAgICfGtic6ICd6JyxcbiAgICAnyYAnOiAneicsXG4gICAgJ++sgCc6ICdmZicsXG4gICAgJ++sgyc6ICdmZmknLFxuICAgICfvrIQnOiAnZmZsJyxcbiAgICAn76yBJzogJ2ZpJyxcbiAgICAn76yCJzogJ2ZsJyxcbiAgICAnxLMnOiAnaWonLFxuICAgICfFkyc6ICdvZScsXG4gICAgJ++shic6ICdzdCcsXG4gICAgJ+KCkCc6ICdhJyxcbiAgICAn4oKRJzogJ2UnLFxuICAgICfhtaInOiAnaScsXG4gICAgJ+KxvCc6ICdqJyxcbiAgICAn4oKSJzogJ28nLFxuICAgICfhtaMnOiAncicsXG4gICAgJ+G1pCc6ICd1JyxcbiAgICAn4bWlJzogJ3YnLFxuICAgICfigpMnOiAneCdcbn07XG4iXX0=","export class TypeaheadOptions {\n constructor(options) {\n this.placement = options.placement;\n this.animation = options.animation;\n this.typeaheadRef = options.typeaheadRef;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLW9wdGlvbnMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1vcHRpb25zLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsWUFBWSxPQUF5QjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlYWhlYWREaXJlY3RpdmUgfSBmcm9tICcuL3R5cGVhaGVhZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY2xhc3MgVHlwZWFoZWFkT3B0aW9ucyB7XG4gIHBsYWNlbWVudDogc3RyaW5nO1xuICBhbmltYXRpb246IGJvb2xlYW47XG4gIHR5cGVhaGVhZFJlZjogVHlwZWFoZWFkRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVhaGVhZE9wdGlvbnMpIHtcbiAgICB0aGlzLnBsYWNlbWVudCA9IG9wdGlvbnMucGxhY2VtZW50O1xuICAgIHRoaXMuYW5pbWF0aW9uID0gb3B0aW9ucy5hbmltYXRpb247XG4gICAgdGhpcy50eXBlYWhlYWRSZWYgPSBvcHRpb25zLnR5cGVhaGVhZFJlZjtcbiAgfVxufVxuIl19","export class TypeaheadMatch {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(item, value = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n isHeader() {\n return this.header;\n }\n toString() {\n return this.value;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLW1hdGNoLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtbWF0Y2guY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7SUFPM0IsOERBQThEO0lBQzVELFlBQVksSUFBUyxFQUFFLFFBQWdCLElBQUksRUFBRSxNQUFNLEdBQUcsS0FBSztRQUN6RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHlwZWFoZWFkTWF0Y2gge1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZWFkb25seSBpdGVtOiBhbnk7XG4gIHByb3RlY3RlZCBoZWFkZXI6IGJvb2xlYW47XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0cnVjdG9yKGl0ZW06IGFueSwgdmFsdWU6IHN0cmluZyA9IGl0ZW0sIGhlYWRlciA9IGZhbHNlKSB7XG4gICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oZWFkZXIgPSBoZWFkZXI7XG4gIH1cblxuICBpc0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXI7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59XG4iXX0=","import { latinMap } from './latin-map';\nexport function latinize(str) {\n if (!str) {\n return '';\n }\n return str.replace(/[^A-Za-z0-9[\\] ]/g, function (a) {\n return latinMap[a] || a;\n });\n}\nexport function escapeRegexp(queryToEscape) {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\nexport function tokenize(str, wordRegexDelimiters = ' ', phraseRegexDelimiters = '', delimitersForMultipleSearch) {\n let result = [];\n if (!delimitersForMultipleSearch) {\n result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\n }\n else {\n const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\n const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\n const lastToken = delimitedTokens[delimitedTokens.length - 1];\n if (lastToken > '') {\n if (wordRegexDelimiters && phraseRegexDelimiters) {\n result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\n }\n else {\n result.push(lastToken);\n }\n }\n }\n return result;\n}\nfunction tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters) {\n const result = [];\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n const preTokenized = str.split(new RegExp(regexStr, 'g'));\n const preTokenizedLength = preTokenized.length;\n let token;\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n return result;\n}\n// eslint-disable-next-line\nexport function getValueFromObject(object, option) {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n if (option.endsWith('()')) {\n const functionName = option.slice(0, option.length - 2);\n return object[functionName]().toString();\n }\n const properties = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n const propertiesArray = properties.split('.');\n for (const property of propertiesArray) {\n if (property in object) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n object = object[property];\n }\n }\n if (!object) {\n return '';\n }\n return object.toString();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsVUFBUyxDQUFTO1FBQ3hELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLGFBQXFCO0lBQ2hELHVFQUF1RTtJQUN2RSx3RUFBd0U7SUFDeEUsNEJBQTRCO0lBQzVCLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQ1gsbUJBQW1CLEdBQUcsR0FBRyxFQUN6QixxQkFBcUIsR0FBRyxFQUFFLEVBQUUsMkJBQW9DO0lBRXZGLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUMsMkJBQTJCLEVBQUU7UUFDaEMsTUFBTSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0tBQ25GO1NBQU07UUFDTCxNQUFNLHNCQUFzQixHQUFHLEtBQUssMkJBQTJCLEtBQUssQ0FBQztRQUNyRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxTQUFTLEdBQUcsRUFBRSxFQUFFO1lBQ2xCLElBQUksbUJBQW1CLElBQUkscUJBQXFCLEVBQUU7Z0JBQ2hELE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQzthQUN6RjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEdBQVcsRUFBRSxtQkFBMkIsRUFBRSxxQkFBNkI7SUFDdEcsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sUUFBUSxHQUFHLE9BQU8scUJBQXFCLFFBQVEscUJBQXFCLEtBQUs7UUFDN0UsT0FBTyxxQkFBcUIsU0FBUyxtQkFBbUIsS0FBSyxDQUFDO0lBQ2hFLE1BQU0sWUFBWSxHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEUsTUFBTSxrQkFBa0IsR0FBVyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3ZELElBQUksS0FBYSxDQUFDO0lBQ2xCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRS9FLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzlDLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLEtBQUssbUJBQW1CLEVBQUU7WUFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDekQ7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCwyQkFBMkI7QUFDM0IsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQTZDLEVBQUUsTUFBZTtJQUMvRixJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUMxQjtJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN6QixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXhELE9BQVEsTUFBTSxDQUFDLFlBQVksQ0FBa0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQzVEO0lBRUQsTUFBTSxVQUFVLEdBQVcsTUFBTTtTQUM5QixPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztTQUM1QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sZUFBZSxHQUFhLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxlQUFlLEVBQUU7UUFDdEMsSUFBSSxRQUFRLElBQUssTUFBa0MsRUFBRTtZQUNuRCw2REFBNkQ7WUFDN0QsYUFBYTtZQUNiLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0I7S0FDRjtJQUNELElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxhdGluTWFwIH0gZnJvbSAnLi9sYXRpbi1tYXAnO1xuXG5leHBvcnQgZnVuY3Rpb24gbGF0aW5pemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBzdHIucmVwbGFjZSgvW15BLVphLXowLTlbXFxdIF0vZywgZnVuY3Rpb24oYTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbGF0aW5NYXBbYV0gfHwgYTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdleHAocXVlcnlUb0VzY2FwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gUmVnZXg6IGNhcHR1cmUgdGhlIHdob2xlIHF1ZXJ5IHN0cmluZyBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBzdHJpbmdcbiAgLy8gdGhhdCB3aWxsIGJlIHVzZWQgdG8gbWF0Y2ggdGhlIHJlc3VsdHMsIGZvciBleGFtcGxlIGlmIHRoZSBjYXB0dXJlIGlzXG4gIC8vICdhJyB0aGUgcmVzdWx0IHdpbGwgYmUgXFxhXG4gIHJldHVybiBxdWVyeVRvRXNjYXBlLnJlcGxhY2UoLyhbLj8qK14kW1xcXVxcXFwoKXt9fC1dKS9nLCAnXFxcXCQxJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbml6ZShzdHI6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICB3b3JkUmVnZXhEZWxpbWl0ZXJzID0gJyAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgIHBocmFzZVJlZ2V4RGVsaW1pdGVycyA9ICcnLCBkZWxpbWl0ZXJzRm9yTXVsdGlwbGVTZWFyY2g/OiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcblxuICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoIWRlbGltaXRlcnNGb3JNdWx0aXBsZVNlYXJjaCkge1xuICAgIHJlc3VsdCA9IHRva2VuaXplV29yZHNBbmRQaHJhc2VzKHN0ciwgd29yZFJlZ2V4RGVsaW1pdGVycywgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtdWx0aXBsZVNlYXJjaFJlZ2V4U3RyID0gYChbJHtkZWxpbWl0ZXJzRm9yTXVsdGlwbGVTZWFyY2h9XSspYDtcbiAgICBjb25zdCBkZWxpbWl0ZWRUb2tlbnMgPSBzdHIuc3BsaXQobmV3IFJlZ0V4cChtdWx0aXBsZVNlYXJjaFJlZ2V4U3RyLCAnZycpKTtcbiAgICBjb25zdCBsYXN0VG9rZW4gPSBkZWxpbWl0ZWRUb2tlbnNbZGVsaW1pdGVkVG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgIGlmIChsYXN0VG9rZW4gPiAnJykge1xuICAgICAgaWYgKHdvcmRSZWdleERlbGltaXRlcnMgJiYgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzKSB7XG4gICAgICAgIHJlc3VsdCA9IHRva2VuaXplV29yZHNBbmRQaHJhc2VzKGxhc3RUb2tlbiwgd29yZFJlZ2V4RGVsaW1pdGVycywgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGxhc3RUb2tlbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdG9rZW5pemVXb3Jkc0FuZFBocmFzZXMoc3RyOiBzdHJpbmcsIHdvcmRSZWdleERlbGltaXRlcnM6IHN0cmluZywgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCByZWdleFN0ciA9IGAoPzpbJHtwaHJhc2VSZWdleERlbGltaXRlcnN9XSkoW14ke3BocmFzZVJlZ2V4RGVsaW1pdGVyc31dKylgICtcbiAgICBgKD86WyR7cGhyYXNlUmVnZXhEZWxpbWl0ZXJzfV0pfChbXiR7d29yZFJlZ2V4RGVsaW1pdGVyc31dKylgO1xuICBjb25zdCBwcmVUb2tlbml6ZWQ6IHN0cmluZ1tdID0gc3RyLnNwbGl0KG5ldyBSZWdFeHAocmVnZXhTdHIsICdnJykpO1xuICBjb25zdCBwcmVUb2tlbml6ZWRMZW5ndGg6IG51bWJlciA9IHByZVRva2VuaXplZC5sZW5ndGg7XG4gIGxldCB0b2tlbjogc3RyaW5nO1xuICBjb25zdCByZXBsYWNlUGhyYXNlRGVsaW1pdGVycyA9IG5ldyBSZWdFeHAoYFske3BocmFzZVJlZ2V4RGVsaW1pdGVyc31dK2AsICdnJyk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVUb2tlbml6ZWRMZW5ndGg7IGkgKz0gMSkge1xuICAgIHRva2VuID0gcHJlVG9rZW5pemVkW2ldO1xuICAgIGlmICh0b2tlbiAmJiB0b2tlbi5sZW5ndGggJiYgdG9rZW4gIT09IHdvcmRSZWdleERlbGltaXRlcnMpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHRva2VuLnJlcGxhY2UocmVwbGFjZVBocmFzZURlbGltaXRlcnMsICcnKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KG9iamVjdDogc3RyaW5nIHwgUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYW55Piwgb3B0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFvcHRpb24gfHwgdHlwZW9mIG9iamVjdCAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAob3B0aW9uLmVuZHNXaXRoKCcoKScpKSB7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gb3B0aW9uLnNsaWNlKDAsIG9wdGlvbi5sZW5ndGggLSAyKTtcblxuICAgIHJldHVybiAob2JqZWN0W2Z1bmN0aW9uTmFtZV0gYXMgKCkgPT4gc3RyaW5nKSgpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0aWVzOiBzdHJpbmcgPSBvcHRpb25cbiAgICAucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csICcuJDEnKVxuICAgIC5yZXBsYWNlKC9eXFwuLywgJycpO1xuICBjb25zdCBwcm9wZXJ0aWVzQXJyYXk6IHN0cmluZ1tdID0gcHJvcGVydGllcy5zcGxpdCgnLicpO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllc0FycmF5KSB7XG4gICAgaWYgKHByb3BlcnR5IGluIChvYmplY3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvYmplY3QgPSBvYmplY3RbcHJvcGVydHldO1xuICAgIH1cbiAgfVxuICBpZiAoIW9iamVjdCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBvYmplY3QudG9TdHJpbmcoKTtcbn1cbiJdfQ==","import { animate, style, state, transition, trigger } from '@angular/animations';\nexport const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nexport const typeaheadAnimation = trigger('typeaheadAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUVMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsa0NBQWtDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzdCLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM1QixLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDakUsVUFBVSxDQUFDLG9CQUFvQixFQUFFO1FBQy9CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQztLQUNwQyxDQUFDO0lBQ0YsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQy9ELFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtRQUM3QixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7S0FDcEMsQ0FBQztJQUNGLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSxcbiAgc3RhdGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBUWVBFQUhFQURfQU5JTUFUSU9OX1RJTUlORyA9ICcyMjBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG5cbmV4cG9ydCBjb25zdCB0eXBlYWhlYWRBbmltYXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9XG4gIHRyaWdnZXIoJ3R5cGVhaGVhZEFuaW1hdGlvbicsIFtcbiAgICBzdGF0ZSgnYW5pbWF0ZWQtZG93bicsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJ30pKSxcbiAgICB0cmFuc2l0aW9uKCcqID0+IGFuaW1hdGVkLWRvd24nLCBbXG4gICAgICBzdHlsZSh7IGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgYW5pbWF0ZShUWVBFQUhFQURfQU5JTUFUSU9OX1RJTUlORylcbiAgICBdKSxcbiAgICBzdGF0ZSgnYW5pbWF0ZWQtdXAnLCBzdHlsZSh7IGhlaWdodDogJyonLCBvdmVyZmxvdzogJ2hpZGRlbid9KSksXG4gICAgdHJhbnNpdGlvbignKiA9PiBhbmltYXRlZC11cCcsIFtcbiAgICAgIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcbiAgICAgIGFuaW1hdGUoVFlQRUFIRUFEX0FOSU1BVElPTl9USU1JTkcpXG4gICAgXSksXG4gICAgdHJhbnNpdGlvbignKiA9PiB1bmFuaW1hdGVkJywgYW5pbWF0ZSgnMHMnKSlcbiAgXSk7XG4iXX0=","import { ChangeDetectorRef, Component, ElementRef, HostListener, QueryList, Renderer2, ViewChild, ViewChildren, Output, EventEmitter } from '@angular/core';\nimport { Utils } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { Subscription } from 'rxjs';\nimport { latinize } from './typeahead-utils';\nimport { typeaheadAnimation } from './typeahead-animations';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-bootstrap/positioning\";\nimport * as i2 from \"@angular/common\";\nlet nextWindowId = 0;\nexport class TypeaheadContainerComponent {\n constructor(positionService, renderer, element, changeDetectorRef) {\n this.positionService = positionService;\n this.renderer = renderer;\n this.element = element;\n this.changeDetectorRef = changeDetectorRef;\n // eslint-disable-next-line @angular-eslint/no-output-rename\n this.activeChangeEvent = new EventEmitter();\n this.isFocused = false;\n this.positionServiceSubscription = new Subscription();\n this.height = 0;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._matches = [];\n this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n this.positionServiceSubscription.add(this.positionService.event$?.subscribe(() => {\n if (this.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n this.changeDetectorRef.detectChanges();\n return;\n }\n this.animationState = 'unanimated';\n this.changeDetectorRef.detectChanges();\n }));\n }\n get typeaheadTemplateMethods() {\n return {\n selectMatch: this.selectMatch.bind(this),\n selectActive: this.selectActive.bind(this),\n isActive: this.isActive.bind(this)\n };\n }\n get active() {\n return this._active;\n }\n set active(active) {\n this._active = active;\n this.activeChanged();\n }\n get matches() {\n return this._matches;\n }\n set matches(value) {\n this.positionService.setOptions({\n modifiers: { flip: { enabled: this.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n this._matches = value;\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n if (this.typeaheadScrollable) {\n setTimeout(() => {\n this.setScrollableMode();\n });\n }\n if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n this.setActive(this._matches[0]);\n if (this._active?.isHeader()) {\n this.nextActiveMatch();\n }\n }\n if (this._active && !this.typeaheadIsFirstItemActive) {\n const concurrency = this._matches.find(match => match.value === this._active?.value);\n if (concurrency) {\n this.selectActive(concurrency);\n return;\n }\n this.active = void 0;\n }\n }\n get isTopPosition() {\n return this.element.nativeElement.classList.contains('top');\n }\n get optionsListTemplate() {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n get isAnimated() {\n return this.parent ? this.parent.isAnimated : false;\n }\n get adaptivePosition() {\n return this.parent ? this.parent.adaptivePosition : false;\n }\n get typeaheadScrollable() {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n get typeaheadOptionsInScrollableView() {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n get typeaheadIsFirstItemActive() {\n return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get itemTemplate() {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n get canSelectItemsOnBlur() {\n return !!this.parent?.selectItemOnBlur;\n }\n selectActiveMatch(isActiveItemChanged) {\n if (this._active && this.parent?.typeaheadSelectFirstItem) {\n this.selectMatch(this._active);\n }\n if (!this.parent?.typeaheadSelectFirstItem && isActiveItemChanged) {\n this.selectMatch(this._active);\n }\n }\n activeChanged() {\n if (!this._active) {\n return;\n }\n const index = this.matches.indexOf(this._active);\n this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n }\n prevActiveMatch() {\n if (!this._active) {\n return;\n }\n const index = this.matches.indexOf(this._active);\n this.setActive(this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1]);\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n nextActiveMatch() {\n const index = this._active ? this.matches.indexOf(this._active) : -1;\n this.setActive(this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1]);\n if (this._active?.isHeader()) {\n this.nextActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n selectActive(value) {\n this.isFocused = true;\n this.setActive(value);\n }\n highlight(match, query) {\n let itemStr = match.value;\n let itemStrHelper = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n let startIdx;\n let tokenLen;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n const queryLen = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n }\n else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n return itemStr;\n }\n focusLost() {\n this.isFocused = false;\n if (!this.canSelectItemsOnBlur) {\n this.setActive(void 0);\n }\n }\n isActive(value) {\n return this.active === value;\n }\n selectMatch(value, event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n this.parent?.changeModel(value);\n setTimeout(() => this.parent?.typeaheadOnSelect.emit(value), 0);\n return false;\n }\n setScrollableMode() {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n if (this.liElements?.first) {\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n .replace('px', ''));\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n .replace('px', ''));\n const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n .replace('px', ''));\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n scrollPrevious(index) {\n if (index === 0) {\n this.scrollToBottom();\n return;\n }\n if (this.liElements && this.ulElement) {\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n scrollNext(index) {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n return;\n }\n if (this.liElements && this.ulElement) {\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n Number(this.ulElement.nativeElement.offsetHeight) +\n Number(liElement.nativeElement.offsetHeight);\n }\n }\n }\n ngOnDestroy() {\n this.positionServiceSubscription.unsubscribe();\n }\n setActive(value) {\n this._active = value;\n let preview;\n if (!(this._active == null || this._active.isHeader())) {\n preview = value;\n }\n this.parent?.typeaheadOnPreview.emit(preview);\n }\n isScrolledIntoView(elem) {\n if (!this.ulElement) {\n return false;\n }\n const containerViewTop = this.ulElement.nativeElement.scrollTop;\n const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.offsetHeight;\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n }\n ;\n scrollToBottom() {\n if (!this.ulElement?.nativeElement) {\n return;\n }\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n scrollToTop() {\n if (!this.ulElement?.nativeElement) {\n return;\n }\n this.ulElement.nativeElement.scrollTop = 0;\n }\n}\nTypeaheadContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadContainerComponent, deps: [{ token: i1.PositioningService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nTypeaheadContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: TypeaheadContainerComponent, selector: \"typeahead-container\", outputs: { activeChangeEvent: \"activeChange\" }, host: { listeners: { \"mouseleave\": \"focusLost()\", \"blur\": \"focusLost()\" }, properties: { \"style.height\": \"needScrollbar ? guiHeight: 'auto'\", \"style.visibility\": \"'inherit'\", \"class.dropup\": \"dropup\", \"attr.role\": \"'listbox'\" }, styleAttribute: \"position: absolute;display: block;\", classAttribute: \"dropdown open bottom dropdown-menu\" }, viewQueries: [{ propertyName: \"ulElement\", first: true, predicate: [\"ulElement\"], descendants: true }, { propertyName: \"liElements\", predicate: [\"liElements\"], descendants: true }], ngImport: i0, template: \"<!-- inject options list template -->\\n<ng-template [ngTemplateOutlet]=\\\"optionsListTemplate || bs4Template\\\"\\n [ngTemplateOutletContext]=\\\"{\\n matches: matches,\\n itemTemplate: itemTemplate || bsItemTemplate,\\n query: query,\\n $implicit: typeaheadTemplateMethods\\n }\\\">\\n</ng-template>\\n\\n<!-- default options item template -->\\n<ng-template #bsItemTemplate let-match=\\\"match\\\" let-query=\\\"query\\\">\\n <span [innerHtml]=\\\"highlight(match, query)\\\"></span>\\n</ng-template>\\n\\n<!-- Bootstrap 4 options list template -->\\n<ng-template #bs4Template>\\n <ng-template ngFor let-match let-i=\\\"index\\\" [ngForOf]=\\\"matches\\\">\\n <h6 *ngIf=\\\"match.isHeader()\\\" class=\\\"dropdown-header\\\">{{ match }}</h6>\\n <ng-template [ngIf]=\\\"!match.isHeader()\\\">\\n <button #liElements\\n [id]=\\\"popupId + '-' + i\\\"\\n role=\\\"option\\\"\\n [@typeaheadAnimation]=\\\"animationState\\\"\\n class=\\\"dropdown-item\\\"\\n (click)=\\\"selectMatch(match, $event)\\\"\\n (mouseenter)=\\\"selectActive(match)\\\"\\n [class.active]=\\\"isActive(match)\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemTemplate || bsItemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{item: match.item, index: i, match: match, query: query}\\\">\\n </ng-template>\\n </button>\\n </ng-template>\\n </ng-template>\\n</ng-template>\\n\", styles: [\":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], animations: [typeaheadAnimation] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'typeahead-container', host: {\n class: 'dropdown open bottom dropdown-menu',\n '[style.height]': `needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `'inherit'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;',\n '[attr.role]': `'listbox'`\n }, animations: [typeaheadAnimation], template: \"<!-- inject options list template -->\\n<ng-template [ngTemplateOutlet]=\\\"optionsListTemplate || bs4Template\\\"\\n [ngTemplateOutletContext]=\\\"{\\n matches: matches,\\n itemTemplate: itemTemplate || bsItemTemplate,\\n query: query,\\n $implicit: typeaheadTemplateMethods\\n }\\\">\\n</ng-template>\\n\\n<!-- default options item template -->\\n<ng-template #bsItemTemplate let-match=\\\"match\\\" let-query=\\\"query\\\">\\n <span [innerHtml]=\\\"highlight(match, query)\\\"></span>\\n</ng-template>\\n\\n<!-- Bootstrap 4 options list template -->\\n<ng-template #bs4Template>\\n <ng-template ngFor let-match let-i=\\\"index\\\" [ngForOf]=\\\"matches\\\">\\n <h6 *ngIf=\\\"match.isHeader()\\\" class=\\\"dropdown-header\\\">{{ match }}</h6>\\n <ng-template [ngIf]=\\\"!match.isHeader()\\\">\\n <button #liElements\\n [id]=\\\"popupId + '-' + i\\\"\\n role=\\\"option\\\"\\n [@typeaheadAnimation]=\\\"animationState\\\"\\n class=\\\"dropdown-item\\\"\\n (click)=\\\"selectMatch(match, $event)\\\"\\n (mouseenter)=\\\"selectActive(match)\\\"\\n [class.active]=\\\"isActive(match)\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemTemplate || bsItemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{item: match.item, index: i, match: match, query: query}\\\">\\n </ng-template>\\n </button>\\n </ng-template>\\n </ng-template>\\n</ng-template>\\n\", styles: [\":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.PositioningService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }], ulElement: [{\n type: ViewChild,\n args: ['ulElement', { static: false }]\n }], liElements: [{\n type: ViewChildren,\n args: ['liElements']\n }], focusLost: [{\n type: HostListener,\n args: ['mouseleave']\n }, {\n type: HostListener,\n args: ['blur']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNULFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRzVELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQTZCckIsTUFBTSxPQUFPLDJCQUEyQjtJQW9DdEMsWUFDVSxlQUFtQyxFQUNuQyxRQUFtQixFQUNwQixPQUFtQixFQUNsQixpQkFBb0M7UUFIcEMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBdkM5Qyw0REFBNEQ7UUFDcEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkvRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU2xCLGdDQUEyQixHQUFH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QkFEaEIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlqQyxVQUFVO3NCQURqQixZQUFZO3VCQUFDLFlBQVk7Z0JBK00xQixTQUFTO3NCQUZSLFlBQVk7dUJBQUMsWUFBWTs7c0JBQ3pCLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3V0aWxzJztcbmltcG9ydCB7IFBvc2l0aW9uaW5nU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvcG9zaXRpb25pbmcnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGxhdGluaXplIH0gZnJvbSAnLi90eXBlYWhlYWQtdXRpbHMnO1xuaW1wb3J0IHsgVHlwZWFoZWFkTWF0Y2ggfSBmcm9tICcuL3R5cGVhaGVhZC1tYXRjaC5jbGFzcyc7XG5pbXBvcnQgeyBUeXBlYWhlYWREaXJlY3RpdmUgfSBmcm9tICcuL3R5cGVhaGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdHlwZWFoZWFkQW5pbWF0aW9uIH0gZnJvbSAnLi90eXBlYWhlYWQtYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBUeXBlYWhlYWRPcHRpb25JdGVtQ29udGV4dCwgVHlwZWFoZWFkT3B0aW9uTGlzdENvbnRleHQsIFR5cGVhaGVhZFRlbXBsYXRlTWV0aG9kcyB9IGZyb20gJy4vbW9kZWxzJztcblxubGV0IG5leHRXaW5kb3dJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3R5cGVhaGVhZC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkcm9wZG93biBvcGVuIGJvdHRvbSBkcm9wZG93bi1tZW51JyxcbiAgICAnW3N0eWxlLmhlaWdodF0nOiBgbmVlZFNjcm9sbGJhciA/IGd1aUhlaWdodDogJ2F1dG8nYCxcbiAgICAnW3N0eWxlLnZpc2liaWxpdHldJzogYCdpbmhlcml0J2AsXG4gICAgJ1tjbGFzcy5kcm9wdXBdJzogJ2Ryb3B1cCcsXG4gICAgc3R5bGU6ICdwb3NpdGlvbjogYWJzb2x1dGU7ZGlzcGxheTogYmxvY2s7JyxcbiAgICAnW2F0dHIucm9sZV0nOiBgJ2xpc3Rib3gnYFxuICB9LFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgOmhvc3QuZHJvcGRvd24ge1xuICAgICAgei1pbmRleDogMTAwMDtcbiAgICB9XG5cbiAgICA6aG9zdC5kcm9wZG93bi1tZW51LCAuZHJvcGRvd24tbWVudSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICB9XG4gIGBcbiAgXSxcbiAgYW5pbWF0aW9uczogW3R5cGVhaGVhZEFuaW1hdGlvbl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgnYWN0aXZlQ2hhbmdlJykgYWN0aXZlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcGFyZW50PzogVHlwZWFoZWFkRGlyZWN0aXZlO1xuICBxdWVyeT86IHN0cmluZ1tdIHwgc3RyaW5nO1xuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgdG9wPzogc3RyaW5nO1xuICBsZWZ0Pzogc3RyaW5nO1xuICBkaXNwbGF5Pzogc3RyaW5nO1xuICBwbGFjZW1lbj86IHN0cmluZztcbiAgZHJvcHVwPzogYm9vbGVhbjtcbiAgZ3VpSGVpZ2h0Pzogc3RyaW5nO1xuICBuZWVkU2Nyb2xsYmFyPzogYm9vbGVhbjtcbiAgYW5pbWF0aW9uU3RhdGU/OiBzdHJpbmc7XG4gIHBvc2l0aW9uU2VydmljZVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgaGVpZ2h0ID0gMDtcbiAgcG9wdXBJZCA9IGBuZ2ItdHlwZWFoZWFkLSR7bmV4dFdpbmRvd0lkKyt9YDtcblxuICBnZXQgdHlwZWFoZWFkVGVtcGxhdGVNZXRob2RzKCk6IFR5cGVhaGVhZFRlbXBsYXRlTWV0aG9kcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdE1hdGNoOiB0aGlzLnNlbGVjdE1hdGNoLmJpbmQodGhpcyksXG4gICAgICBzZWxlY3RBY3RpdmU6IHRoaXMuc2VsZWN0QWN0aXZlLmJpbmQodGhpcyksXG4gICAgICBpc0FjdGl2ZTogdGhpcy5pc0FjdGl2ZS5iaW5kKHRoaXMpXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfYWN0aXZlPzogVHlwZWFoZWFkTWF0Y2g7XG4gIHByb3RlY3RlZCBfbWF0Y2hlczogVHlwZWFoZWFkTWF0Y2hbXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3VsRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIHVsRWxlbWVudD86IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbignbGlFbGVtZW50cycpXG4gIHByaXZhdGUgbGlFbGVtZW50cz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBvc2l0aW9uU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2lkJywgdGhpcy5wb3B1cElkKTtcbiAgICB0aGlzLnBvc2l0aW9uU2VydmljZVN1YnNjcmlwdGlvbi5hZGQodGhpcy5wb3NpdGlvblNlcnZpY2UuZXZlbnQkPy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzQW5pbWF0ZWQpIHtcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gdGhpcy5pc1RvcFBvc2l0aW9uID8gJ2FuaW1hdGVkLXVwJyA6ICdhbmltYXRlZC1kb3duJztcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndW5hbmltYXRlZCc7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZSgpOiBUeXBlYWhlYWRNYXRjaCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuXG4gIHNldCBhY3RpdmUoYWN0aXZlOiBUeXBlYWhlYWRNYXRjaCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGdldCBtYXRjaGVzKCk6IFR5cGVhaGVhZE1hdGNoW10ge1xuICAgIHJldHVybiB0aGlzLl9tYXRjaGVzO1xuICB9XG5cbiAgc2V0IG1hdGNoZXModmFsdWU6IFR5cGVhaGVhZE1hdGNoW10pIHtcbiAgICB0aGlzLnBvc2l0aW9uU2VydmljZS5zZXRPcHRpb25zKHtcbiAgICAgIG1vZGlmaWVyczogeyBmbGlwOiB7IGVuYWJsZWQ6IHRoaXMuYWRhcHRpdmVQb3NpdGlvbiB9IH0sXG4gICAgICBhbGxvd2VkUG9zaXRpb25zOiBbJ3RvcCcsICdib3R0b20nXVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbWF0Y2hlcyA9IHZhbHVlO1xuXG4gICAgdGhpcy5uZWVkU2Nyb2xsYmFyID0gdGhpcy50eXBlYWhlYWRTY3JvbGxhYmxlICYmIHRoaXMudHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXcgPCB0aGlzLm1hdGNoZXMubGVuZ3RoO1xuXG4gICAgaWYgKHRoaXMudHlwZWFoZWFkU2Nyb2xsYWJsZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsYWJsZU1vZGUoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGVhaGVhZElzRmlyc3RJdGVtQWN0aXZlICYmIHRoaXMuX21hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZXRBY3RpdmUodGhpcy5fbWF0Y2hlc1swXSk7XG5cbiAgICAgIGlmICh0aGlzLl9hY3RpdmU/LmlzSGVhZGVyKCkpIHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aXZlTWF0Y2goKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYWN0aXZlICYmICF0aGlzLnR5cGVhaGVhZElzRmlyc3RJdGVtQWN0aXZlKSB7XG4gICAgICBjb25zdCBjb25jdXJyZW5jeSA9IHRoaXMuX21hdGNoZXMuZmluZChtYXRjaCA9PiBtYXRjaC52YWx1ZSA9PT0gdGhpcy5fYWN0aXZlPy52YWx1ZSk7XG5cbiAgICAgIGlmIChjb25jdXJyZW5jeSkge1xuICAgICAgICB0aGlzLnNlbGVjdEFjdGl2ZShjb25jdXJyZW5jeSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFjdGl2ZSA9IHZvaWQgMDtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNUb3BQb3NpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd0b3AnKTtcbiAgfVxuXG4gIGdldCBvcHRpb25zTGlzdFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPFR5cGVhaGVhZE9wdGlvbkxpc3RDb250ZXh0PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQub3B0aW9uc0xpc3RUZW1wbGF0ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBpc0FuaW1hdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmlzQW5pbWF0ZWQgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCBhZGFwdGl2ZVBvc2l0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmFkYXB0aXZlUG9zaXRpb24gOiBmYWxzZTtcbiAgfVxuXG4gIGdldCB0eXBlYWhlYWRTY3JvbGxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LnR5cGVhaGVhZFNjcm9sbGFibGUgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCB0eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlldygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LnR5cGVhaGVhZE9wdGlvbnNJblNjcm9sbGFibGVWaWV3IDogNTtcbiAgfVxuXG4gIGdldCB0eXBlYWhlYWRJc0ZpcnN0SXRlbUFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC50eXBlYWhlYWRJc0ZpcnN0SXRlbUFjdGl2ZSA6IHRydWU7XG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxUeXBlYWhlYWRPcHRpb25JdGVtQ29udGV4dD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LnR5cGVhaGVhZEl0ZW1UZW1wbGF0ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBjYW5TZWxlY3RJdGVtc09uQmx1cigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnBhcmVudD8uc2VsZWN0SXRlbU9uQmx1cjtcbiAgfVxuXG4gIHNlbGVjdEFjdGl2ZU1hdGNoKGlzQWN0aXZlSXRlbUNoYW5nZWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSAmJiB0aGlzLnBhcmVudD8udHlwZWFoZWFkU2VsZWN0Rmlyc3RJdGVtKSB7XG4gICAgICB0aGlzLnNlbGVjdE1hdGNoKHRoaXMuX2FjdGl2ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBhcmVudD8udHlwZWFoZWFkU2VsZWN0Rmlyc3RJdGVtICYmIGlzQWN0aXZlSXRlbUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0TWF0Y2godGhpcy5fYWN0aXZlKTtcbiAgICB9XG4gIH1cblxuICBhY3RpdmVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tYXRjaGVzLmluZGV4T2YodGhpcy5fYWN0aXZlKTtcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZUV2ZW50LmVtaXQoYCR7dGhpcy5wb3B1cElkfS0ke2luZGV4fWApO1xuICB9XG5cbiAgcHJldkFjdGl2ZU1hdGNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1hdGNoZXMuaW5kZXhPZih0aGlzLl9hY3RpdmUpO1xuICAgIHRoaXMuc2V0QWN0aXZlKHRoaXMubWF0Y2hlc1tcbiAgICAgIGluZGV4IC0gMSA8IDAgPyB0aGlzLm1hdGNoZXMubGVuZ3RoIC0gMSA6IGluZGV4IC0gMVxuICAgICAgXSk7XG5cbiAgICBpZiAodGhpcy5fYWN0aXZlLmlzSGVhZGVyKCkpIHtcbiAgICAgIHRoaXMucHJldkFjdGl2ZU1hdGNoKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZWFoZWFkU2Nyb2xsYWJsZSkge1xuICAgICAgdGhpcy5zY3JvbGxQcmV2aW91cyhpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgbmV4dEFjdGl2ZU1hdGNoKCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fYWN0aXZlID8gdGhpcy5tYXRjaGVzLmluZGV4T2YodGhpcy5fYWN0aXZlKSA6IC0xO1xuICAgIHRoaXMuc2V0QWN0aXZlKHRoaXMubWF0Y2hlc1tcbiAgICAgIGluZGV4ICsgMSA+IHRoaXMubWF0Y2hlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXSk7XG5cbiAgICBpZiAodGhpcy5fYWN0aXZlPy5pc0hlYWRlcigpKSB7XG4gICAgICB0aGlzLm5leHRBY3RpdmVNYXRjaCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGVhaGVhZFNjcm9sbGFibGUpIHtcbiAgICAgIHRoaXMuc2Nyb2xsTmV4dChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWN0aXZlKHZhbHVlOiBUeXBlYWhlYWRNYXRjaCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLnNldEFjdGl2ZSh2YWx1ZSk7XG4gIH1cblxuICBoaWdobGlnaHQobWF0Y2g6IFR5cGVhaGVhZE1hdGNoLCBxdWVyeTogc3RyaW5nW10gfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBpdGVtU3RyOiBzdHJpbmcgPSBtYXRjaC52YWx1ZTtcbiAgICBsZXQgaXRlbVN0ckhlbHBlcjogc3RyaW5nID0gKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LnR5cGVhaGVhZExhdGluaXplXG4gICAgICA/IGxhdGluaXplKGl0ZW1TdHIpXG4gICAgICA6IGl0ZW1TdHIpLnRvTG93ZXJDYXNlKCk7XG4gICAgbGV0IHN0YXJ0SWR4OiBudW1iZXI7XG4gICAgbGV0IHRva2VuTGVuOiBudW1iZXI7XG4gICAgLy8gUmVwbGFjZXMgdGhlIGNhcHR1cmUgc3RyaW5nIHdpdGggdGhlIHNhbWUgc3RyaW5nIGluc2lkZSBvZiBhIFwic3Ryb25nXCIgdGFnXG4gICAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5TGVuOiBudW1iZXIgPSBxdWVyeS5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXJ5TGVuOyBpICs9IDEpIHtcbiAgICAgICAgLy8gcXVlcnlbaV0gaXMgYWxyZWFkeSBsYXRpbml6ZWQgYW5kIGxvd2VyIGNhc2VcbiAgICAgICAgc3RhcnRJZHggPSBpdGVtU3RySGVscGVyLmluZGV4T2YocXVlcnlbaV0pO1xuICAgICAgICB0b2tlbkxlbiA9IHF1ZXJ5W2ldLmxlbmd0aDtcbiAgICAgICAgaWYgKHN0YXJ0SWR4ID49IDAgJiYgdG9rZW5MZW4gPiAwKSB7XG4gICAgICAgICAgaXRlbVN0ciA9XG4gICAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZygwLCBzdGFydElkeCl9PHN0cm9uZz4ke2l0ZW1TdHIuc3Vic3RyaW5nKHN0YXJ0SWR4LCBzdGFydElkeCArIHRva2VuTGVuKX08L3N0cm9uZz5gICtcbiAgICAgICAgICAgIGAke2l0ZW1TdHIuc3Vic3RyaW5nKHN0YXJ0SWR4ICsgdG9rZW5MZW4pfWA7XG4gICAgICAgICAgaXRlbVN0ckhlbHBlciA9XG4gICAgICAgICAgICBgJHtpdGVtU3RySGVscGVyLnN1YnN0cmluZygwLCBzdGFydElkeCl9ICAgICAgICAkeycgJy5yZXBlYXQodG9rZW5MZW4pfSAgICAgICAgIGAgK1xuICAgICAgICAgICAgYCR7aXRlbVN0ckhlbHBlci5zdWJzdHJpbmcoc3RhcnRJZHggKyB0b2tlbkxlbil9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocXVlcnkpIHtcbiAgICAgIC8vIHF1ZXJ5IGlzIGFscmVhZHkgbGF0aW5pemVkIGFuZCBsb3dlciBjYXNlXG4gICAgICBzdGFydElkeCA9IGl0ZW1TdHJIZWxwZXIuaW5kZXhPZihxdWVyeSk7XG4gICAgICB0b2tlbkxlbiA9IHF1ZXJ5Lmxlbmd0aDtcbiAgICAgIGlmIChzdGFydElkeCA+PSAwICYmIHRva2VuTGVuID4gMCkge1xuICAgICAgICBpdGVtU3RyID1cbiAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZygwLCBzdGFydElkeCl9PHN0cm9uZz4ke2l0ZW1TdHIuc3Vic3RyaW5nKHN0YXJ0SWR4LCBzdGFydElkeCArIHRva2VuTGVuKX08L3N0cm9uZz5gICtcbiAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZyhzdGFydElkeCArIHRva2VuTGVuKX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtU3RyO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBmb2N1c0xvc3QoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuY2FuU2VsZWN0SXRlbXNPbkJsdXIpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlKHZvaWQgMCk7XG4gICAgfVxuICB9XG5cbiAgaXNBY3RpdmUodmFsdWU6IFR5cGVhaGVhZE1hdGNoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID09PSB2YWx1ZTtcbiAgfVxuXG4gIHNlbGVjdE1hdGNoKHZhbHVlPzogVHlwZWFoZWFkTWF0Y2gsIGV2ZW50PzogRXZlbnQpOiBib29sZWFuIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgdGhpcy5wYXJlbnQ/LmNoYW5nZU1vZGVsKHZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucGFyZW50Py50eXBlYWhlYWRPblNlbGVjdC5lbWl0KHZhbHVlKSwgMCk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXRTY3JvbGxhYmxlTW9kZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudWxFbGVtZW50KSB7XG4gICAgICB0aGlzLnVsRWxlbWVudCA9IHRoaXMuZWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saUVsZW1lbnRzPy5maXJzdCkge1xuICAgICAgY29uc3QgdWxTdHlsZXMgPSBVdGlscy5nZXRTdHlsZXModGhpcy51bEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCBsaVN0eWxlcyA9IFV0aWxzLmdldFN0eWxlcyh0aGlzLmxpRWxlbWVudHMuZmlyc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCB1bFBhZGRpbmdCb3R0b20gPSBwYXJzZUZsb2F0KCh1bFN0eWxlc1sncGFkZGluZy1ib3R0b20nXSA/IHVsU3R5bGVzWydwYWRkaW5nLWJvdHRvbSddIDogJycpXG4gICAgICAgIC5yZXBsYWNlKCdweCcsICcnKSk7XG4gICAgICBjb25zdCB1bFBhZGRpbmdUb3AgPSBwYXJzZUZsb2F0KCh1bFN0eWxlc1sncGFkZGluZy10b3AnXSA/IHVsU3R5bGVzWydwYWRkaW5nLXRvcCddIDogJzAnKVxuICAgICAgICAucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgY29uc3Qgb3B0aW9uSGVpZ2h0ID0gcGFyc2VGbG9hdCgobGlTdHlsZXMuaGVpZ2h0ID8gbGlTdHlsZXMuaGVpZ2h0IDogJzAnKVxuICAgICAgICAucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy50eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlldyAqIG9wdGlvbkhlaWdodDtcbiAgICAgIHRoaXMuZ3VpSGVpZ2h0ID0gYCR7aGVpZ2h0ICsgdWxQYWRkaW5nVG9wICsgdWxQYWRkaW5nQm90dG9tfXB4YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XG4gIH1cblxuICBzY3JvbGxQcmV2aW91cyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGlFbGVtZW50cyAmJiB0aGlzLnVsRWxlbWVudCkge1xuICAgICAgY29uc3QgbGlFbGVtZW50ID0gdGhpcy5saUVsZW1lbnRzLnRvQXJyYXkoKVtpbmRleCAtIDFdO1xuICAgICAgaWYgKGxpRWxlbWVudCAmJiAhdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcobGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMudWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gbGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNjcm9sbE5leHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChpbmRleCArIDEgPiB0aGlzLm1hdGNoZXMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxpRWxlbWVudHMgJiYgdGhpcy51bEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGxpRWxlbWVudCA9IHRoaXMubGlFbGVtZW50cy50b0FycmF5KClbaW5kZXggKyAxXTtcbiAgICAgIGlmIChsaUVsZW1lbnQgJiYgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGxpRWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgbGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wIC1cbiAgICAgICAgICBOdW1iZXIodGhpcy51bEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpICtcbiAgICAgICAgICBOdW1iZXIobGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uU2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEFjdGl2ZSh2YWx1ZT86IFR5cGVhaGVhZE1hdGNoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG4gICAgbGV0IHByZXZpZXc7XG4gICAgaWYgKCEodGhpcy5fYWN0aXZlID09IG51bGwgfHwgdGhpcy5fYWN0aXZlLmlzSGVhZGVyKCkpKSB7XG4gICAgICBwcmV2aWV3ID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMucGFyZW50Py50eXBlYWhlYWRPblByZXZpZXcuZW1pdChwcmV2aWV3KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTY3JvbGxlZEludG9WaWV3KGVsZW06IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnVsRWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJWaWV3VG9wOiBudW1iZXIgPSB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCBjb250YWluZXJWaWV3Qm90dG9tID0gY29udGFpbmVyVmlld1RvcCArIE51bWJlcih0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCk7XG4gICAgY29uc3QgZWxlbVRvcCA9IGVsZW0ub2Zmc2V0VG9wO1xuICAgIGNvbnN0IGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgZWxlbS5vZmZzZXRIZWlnaHQ7XG5cbiAgICByZXR1cm4gKChlbGVtQm90dG9tIDw9IGNvbnRhaW5lclZpZXdCb3R0b20pICYmIChlbGVtVG9wID49IGNvbnRhaW5lclZpZXdUb3ApKTtcbiAgfTtcblxuICBwcml2YXRlIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy51bEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51bEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVsRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gIH1cbn1cbiIsIjwhLS0gaW5qZWN0IG9wdGlvbnMgbGlzdCB0ZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25zTGlzdFRlbXBsYXRlIHx8IGJzNFRlbXBsYXRlXCJcbiAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgbWF0Y2hlczogbWF0Y2hlcyxcbiAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTogaXRlbVRlbXBsYXRlIHx8IGJzSXRlbVRlbXBsYXRlLFxuICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICAgICAgICAgJGltcGxpY2l0OiB0eXBlYWhlYWRUZW1wbGF0ZU1ldGhvZHNcbiAgICAgICAgICAgICB9XCI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIGRlZmF1bHQgb3B0aW9ucyBpdGVtIHRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNic0l0ZW1UZW1wbGF0ZSBsZXQtbWF0Y2g9XCJtYXRjaFwiIGxldC1xdWVyeT1cInF1ZXJ5XCI+XG4gIDxzcGFuIFtpbm5lckh0bWxdPVwiaGlnaGxpZ2h0KG1hdGNoLCBxdWVyeSlcIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEJvb3RzdHJhcCA0IG9wdGlvbnMgbGlzdCB0ZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjYnM0VGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtbWF0Y2ggbGV0LWk9XCJpbmRleFwiIFtuZ0Zvck9mXT1cIm1hdGNoZXNcIj5cbiAgICA8aDYgKm5nSWY9XCJtYXRjaC5pc0hlYWRlcigpXCIgY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIj57eyBtYXRjaCB9fTwvaDY+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFtYXRjaC5pc0hlYWRlcigpXCI+XG4gICAgICA8YnV0dG9uICNsaUVsZW1lbnRzXG4gICAgICAgICAgICAgIFtpZF09XCJwb3B1cElkICsgJy0nICsgaVwiXG4gICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbQHR5cGVhaGVhZEFuaW1hdGlvbl09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNYXRjaChtYXRjaCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNlbGVjdEFjdGl2ZShtYXRjaClcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImlzQWN0aXZlKG1hdGNoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlIHx8IGJzSXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogbWF0Y2guaXRlbSwgaW5kZXg6IGksIG1hdGNoOiBtYXRjaCwgcXVlcnk6IHF1ZXJ5fVwiPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/** Default values provider for typeahead */\nexport class TypeaheadConfig {\n constructor() {\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** used to hide results on blur */\n this.hideResultsOnBlur = true;\n /** if true, typeahead will cancel async request on blur */\n this.cancelRequestOnFocusLost = false;\n /** used to choose the first item in typeahead container */\n this.selectFirstItem = true;\n /** used to active/inactive the first item in typeahead container */\n this.isFirstItemActive = true;\n /** used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n */\n this.minLength = 1;\n /**\n * used to choose item on blur event\n */\n this.selectItemOnBlur = false;\n }\n}\nTypeaheadConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTypeaheadConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlYWhlYWQvdHlwZWFoZWFkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyw0Q0FBNEM7QUFFNUMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFRSxpQ0FBaUM7UUFDakMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDRCQUE0QjtRQUM1QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1DQUFtQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsMkRBQTJEO1FBQzNELDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNqQywyREFBMkQ7UUFDM0Qsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsb0VBQW9FO1FBQ3BFLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6Qjs7V0FFRztRQUNILGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZDs7V0FFRztRQUNILHFCQUFnQixHQUFHLEtBQUssQ0FBQztLQUMxQjs7NEdBckJZLGVBQWU7Z0hBQWYsZUFBZSxjQURGLE1BQU07MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogRGVmYXVsdCB2YWx1ZXMgcHJvdmlkZXIgZm9yIHR5cGVhaGVhZCAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb25maWcge1xuICAvKiogc2V0cyB1c2UgYWRhcHRpdmUgcG9zaXRpb24gKi9cbiAgYWRhcHRpdmVQb3NpdGlvbiA9IGZhbHNlO1xuICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbiAgLyoqIHVzZWQgdG8gaGlkZSByZXN1bHRzIG9uIGJsdXIgKi9cbiAgaGlkZVJlc3VsdHNPbkJsdXIgPSB0cnVlO1xuICAvKiogaWYgdHJ1ZSwgdHlwZWFoZWFkIHdpbGwgY2FuY2VsIGFzeW5jIHJlcXVlc3Qgb24gYmx1ciAqL1xuICBjYW5jZWxSZXF1ZXN0T25Gb2N1c0xvc3QgPSBmYWxzZTtcbiAgLyoqIHVzZWQgdG8gY2hvb3NlIHRoZSBmaXJzdCBpdGVtIGluIHR5cGVhaGVhZCBjb250YWluZXIgKi9cbiAgc2VsZWN0Rmlyc3RJdGVtID0gdHJ1ZTtcbiAgLyoqIHVzZWQgdG8gYWN0aXZlL2luYWN0aXZlIHRoZSBmaXJzdCBpdGVtIGluIHR5cGVhaGVhZCBjb250YWluZXIgKi9cbiAgaXNGaXJzdEl0ZW1BY3RpdmUgPSB0cnVlO1xuICAvKiogdXNlZCB0byBjaG9vc2Ugc2V0IG1pbmltYWwgbm8gb2YgY2hhcmFjdGVycyB0aGF0IG5lZWRzIHRvXG4gICAqIGJlIGVudGVyZWQgYmVmb3JlIHR5cGVhaGVhZCBraWNrcy1pblxuICAgKi9cbiAgbWluTGVuZ3RoID0gMTtcbiAgLyoqXG4gICAqIHVzZWQgdG8gY2hvb3NlIGl0ZW0gb24gYmx1ciBldmVudFxuICAgKi9cbiAgc2VsZWN0SXRlbU9uQmx1ciA9IGZhbHNlO1xufVxuIl19","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { EMPTY, from, isObservable } from 'rxjs';\nimport { debounceTime, filter, mergeMap, switchMap, tap, toArray } from 'rxjs/operators';\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\nimport { TypeaheadConfig } from './typeahead.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-bootstrap/component-loader\";\nimport * as i2 from \"./typeahead.config\";\nimport * as i3 from \"@angular/forms\";\nexport class TypeaheadDirective {\n constructor(cis, config, changeDetection, element, ngControl, renderer, viewContainerRef) {\n this.changeDetection = changeDetection;\n this.element = element;\n this.ngControl = ngControl;\n this.renderer = renderer;\n /** minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n this.typeaheadMinLength = 1;\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** minimal wait time after last character typed before typeahead kicks-in */\n this.typeaheadWaitMs = 0;\n /** match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n this.typeaheadLatinize = true;\n /** Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n this.typeaheadSingleWords = true;\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n this.typeaheadWordDelimiters = ' ';\n /** should be used only in case typeaheadMultipleSearch attribute is true.\n * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\n * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\n * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\n * to use it together with multiple search.\n */\n this.typeaheadMultipleSearchDelimiters = ',';\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n this.typeaheadPhraseDelimiters = '\\'\"';\n /** specifies if typeahead is scrollable */\n this.typeaheadScrollable = false;\n /** specifies number of options to show in scroll view */\n this.typeaheadOptionsInScrollableView = 5;\n /** fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n */\n this.typeaheadSelectFirstItem = true;\n /** makes active first item in a list */\n this.typeaheadIsFirstItemActive = true;\n /** fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n this.typeaheadLoading = new EventEmitter();\n /** fired on every key event and returns true\n * in case of matches are not detected\n */\n this.typeaheadNoResults = new EventEmitter();\n /** fired when option was selected, return object with data of this option. */\n this.typeaheadOnSelect = new EventEmitter();\n /** fired when option was previewed, return object with data of this option. */\n this.typeaheadOnPreview = new EventEmitter();\n /** fired when blur event occurs. returns the active item */\n this.typeaheadOnBlur = new EventEmitter();\n /** This attribute indicates that the dropdown should be opened upwards */\n this.dropup = false;\n this.isOpen = false;\n this.list = 'list';\n this.isActiveItemChanged = false;\n this.isFocused = false;\n this.cancelRequestOnFocusLost = false;\n this.selectItemOnBlur = false;\n this.keyUpEventEmitter = new EventEmitter();\n this.placement = 'bottom left';\n this._matches = [];\n this._subscriptions = [];\n this._outsideClickListener = () => void 0;\n this._typeahead = cis.createLoader(element, viewContainerRef, renderer)\n .provide({ provide: TypeaheadConfig, useValue: config });\n Object.assign(this, {\n typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n typeaheadSelectFirstItem: config.selectFirstItem,\n typeaheadIsFirstItemActive: config.isFirstItemActive,\n typeaheadMinLength: config.minLength,\n adaptivePosition: config.adaptivePosition,\n isAnimated: config.isAnimated,\n selectItemOnBlur: config.selectItemOnBlur\n });\n }\n get matches() {\n return this._matches;\n }\n ngOnInit() {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n this.typeaheadMinLength =\n this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {\n this.typeaheadAsync = false;\n }\n if (isObservable(this.typeahead)) {\n this.typeaheadAsync = true;\n }\n if (this.typeaheadAsync) {\n this.asyncActions();\n }\n else {\n this.syncActions();\n }\n this.checkDelimitersConflict();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInput(e) {\n // For `<input>`s, use the `value` property. For others that don't have a\n // `value` (such as `<span contenteditable=\"true\">`), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n const value = e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n }\n else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n onChange(event) {\n if (this._container) {\n // esc\n if (event.keyCode === 27 || event.key === 'Escape') {\n this.hide();\n return;\n }\n // up\n if (event.keyCode === 38 || event.key === 'ArrowUp') {\n this.isActiveItemChanged = true;\n this._container.prevActiveMatch();\n return;\n }\n // down\n if (event.keyCode === 40 || event.key === 'ArrowDown') {\n this.isActiveItemChanged = true;\n this._container.nextActiveMatch();\n return;\n }\n // enter\n if (event.keyCode === 13 || event.key === 'Enter') {\n this._container.selectActiveMatch();\n return;\n }\n }\n }\n onFocus() {\n this.isFocused = true;\n // add setTimeout to fix issue #5251\n // to get and emit updated value if it's changed on focus\n setTimeout(() => {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }, 0);\n }\n onBlur() {\n this.isFocused = false;\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n if (!this.container && this._matches?.length === 0) {\n this.typeaheadOnBlur.emit(new TypeaheadMatch(this.element.nativeElement.value, this.element.nativeElement.value, false));\n }\n }\n onKeydown(event) {\n // no container - no problems\n if (!this._container) {\n return;\n }\n if (event.keyCode === 9 || event.key === 'Tab') {\n this.onBlur();\n }\n if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n event.preventDefault();\n if (this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch();\n return;\n }\n if (!this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch(this.isActiveItemChanged);\n this.isActiveItemChanged = false;\n this.hide();\n }\n }\n }\n changeModel(match) {\n if (!match) {\n return;\n }\n let valueStr;\n if (this.typeaheadMultipleSearch && this._allEnteredValue) {\n const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\n this._allEnteredValue = tokens.slice(0, tokens.length - 1).concat(match.value).join('');\n valueStr = this._allEnteredValue;\n }\n else {\n valueStr = match.value;\n }\n this.ngControl.viewToModelUpdate(valueStr);\n this.ngControl.control?.setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n show() {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n .to(this.container)\n .position({ attachment: `${this.dropup ? 'top' : 'bottom'} left` })\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n this._outsideClickListener = this.renderer\n .listen('document', 'click', (event) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(event.target)) {\n return;\n }\n if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(event.target)) {\n return;\n }\n this.onOutsideClick();\n });\n if (!this._typeahead.instance || !this.ngControl.control) {\n return;\n }\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n this._container.activeChangeEvent.subscribe((activeId) => {\n this.activeDescendant = activeId;\n this.changeDetection.markForCheck();\n });\n this.isOpen = true;\n }\n hide() {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = void 0;\n this.isOpen = false;\n this.changeDetection.markForCheck();\n }\n this.typeaheadOnPreview.emit();\n }\n onOutsideClick() {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n ngOnDestroy() {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n asyncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), tap(value => this._allEnteredValue = value), switchMap(() => {\n if (!this.typeahead) {\n return EMPTY;\n }\n return this.typeahead;\n }))\n .subscribe((matches) => {\n this.finalizeAsyncCall(matches);\n }));\n }\n syncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), mergeMap((value) => {\n this._allEnteredValue = value;\n const normalizedQuery = this.normalizeQuery(value);\n if (!this.typeahead) {\n return EMPTY;\n }\n const typeahead = isObservable(this.typeahead) ? this.typeahead : from(this.typeahead);\n return typeahead\n .pipe(filter((option) => {\n return !!option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n }), toArray());\n }))\n .subscribe((matches) => {\n this.finalizeAsyncCall(matches);\n }));\n }\n normalizeOption(option) {\n const optionValue = getValueFromObject(option, this.typeaheadOptionField);\n const normalizedOption = this.typeaheadLatinize\n ? latinize(optionValue)\n : optionValue;\n return normalizedOption.toLowerCase();\n }\n tokenizeQuery(currentQuery) {\n let query = currentQuery;\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\n if (!this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`, this.typeaheadMultipleSearchDelimiters)) {\n // single words and multiple search delimiters are different, can be used together\n query = tokenize(query, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters, this.typeaheadMultipleSearchDelimiters);\n }\n }\n else if (this.typeaheadSingleWords) {\n query = tokenize(query, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters);\n }\n else {\n // multiple searches\n query = tokenize(query, void 0, void 0, this.typeaheadMultipleSearchDelimiters);\n }\n return query;\n }\n normalizeQuery(value) {\n // If singleWords, break model here to not be doing extra work on each iteration\n let normalizedQuery = (this.typeaheadLatinize\n ? latinize(value)\n : value)\n .toString()\n .toLowerCase();\n normalizedQuery = this.tokenizeQuery(normalizedQuery);\n return normalizedQuery;\n }\n testMatch(match, test) {\n let spaceLength;\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n return match.indexOf(test) >= 0;\n }\n finalizeAsyncCall(matches) {\n this.prepareMatches(matches || []);\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n if (!this.hasMatches()) {\n this.hide();\n return;\n }\n if (!this.isFocused && this.cancelRequestOnFocusLost) {\n return;\n }\n if (this._container && this.ngControl.control) {\n // fix: remove usage of ngControl internals\n const _controlValue = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value) || '';\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = _controlValue.toString().toLowerCase();\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n }\n else {\n this.show();\n }\n }\n prepareMatches(options) {\n const limited = options.slice(0, this.typeaheadOptionsLimit);\n const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n if (this.typeaheadGroupField) {\n let matches = [];\n // extract all group names\n const groups = sorted\n .map((option) => getValueFromObject(option, this.typeaheadGroupField))\n .filter((v, i, a) => a.indexOf(v) === i);\n groups.forEach((group) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n // add each item of group to array of matches\n matches = matches.concat(sorted\n .filter((option) => getValueFromObject(option, this.typeaheadGroupField) === group)\n .map((option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField))));\n });\n this._matches = matches;\n }\n else {\n this._matches = sorted.map(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField)));\n }\n }\n orderMatches(options) {\n if (!options.length) {\n return options;\n }\n if (this.typeaheadOrderBy !== null\n && this.typeaheadOrderBy !== undefined\n && typeof this.typeaheadOrderBy === 'object'\n && Object.keys(this.typeaheadOrderBy).length === 0) {\n console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n return options;\n }\n const { field, direction } = (this.typeaheadOrderBy || {});\n if (!direction || !(direction === 'asc' || direction === 'desc')) {\n console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n return options;\n }\n if (typeof options[0] === 'string') {\n return direction === 'asc' ? options.sort() : options.sort().reverse();\n }\n if (!field || typeof field !== 'string') {\n console.error('typeaheadOrderBy field has to set according to the documentation.');\n return options;\n }\n return options.sort((a, b) => {\n const stringA = getValueFromObject(a, field);\n const stringB = getValueFromObject(b, field);\n if (stringA < stringB) {\n return direction === 'asc' ? -1 : 1;\n }\n if (stringA > stringB) {\n return direction === 'asc' ? 1 : -1;\n }\n return 0;\n });\n }\n hasMatches() {\n return this._matches.length > 0;\n }\n checkDelimitersConflict() {\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords\n && (this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`, this.typeaheadMultipleSearchDelimiters))) {\n throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\n from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\n typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\n Please refer to the documentation`);\n }\n }\n haveCommonCharacters(str1, str2) {\n for (let i = 0; i < str1.length; i++) {\n if (str1.charAt(i).indexOf(str2) > -1) {\n return true;\n }\n }\n return false;\n }\n}\nTypeaheadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadDirective, deps: [{ token: i1.ComponentLoaderFactory }, { token: i2.TypeaheadConfig }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i3.NgControl }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nTypeaheadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: TypeaheadDirective, selector: \"[typeahead]\", inputs: { typeahead: \"typeahead\", typeaheadMinLength: \"typeaheadMinLength\", adaptivePosition: \"adaptivePosition\", isAnimated: \"isAnimated\", typeaheadWaitMs: \"typeaheadWaitMs\", typeaheadOptionsLimit: \"typeaheadOptionsLimit\", typeaheadOptionField: \"typeaheadOptionField\", typeaheadGroupField: \"typeaheadGroupField\", typeaheadOrderBy: \"typeaheadOrderBy\", typeaheadAsync: \"typeaheadAsync\", typeaheadLatinize: \"typeaheadLatinize\", typeaheadSingleWords: \"typeaheadSingleWords\", typeaheadWordDelimiters: \"typeaheadWordDelimiters\", typeaheadMultipleSearch: \"typeaheadMultipleSearch\", typeaheadMultipleSearchDelimiters: \"typeaheadMultipleSearchDelimiters\", typeaheadPhraseDelimiters: \"typeaheadPhraseDelimiters\", typeaheadItemTemplate: \"typeaheadItemTemplate\", optionsListTemplate: \"optionsListTemplate\", typeaheadScrollable: \"typeaheadScrollable\", typeaheadOptionsInScrollableView: \"typeaheadOptionsInScrollableView\", typeaheadHideResultsOnBlur: \"typeaheadHideResultsOnBlur\", typeaheadSelectFirstItem: \"typeaheadSelectFirstItem\", typeaheadIsFirstItemActive: \"typeaheadIsFirstItemActive\", container: \"container\", dropup: \"dropup\" }, outputs: { typeaheadLoading: \"typeaheadLoading\", typeaheadNoResults: \"typeaheadNoResults\", typeaheadOnSelect: \"typeaheadOnSelect\", typeaheadOnPreview: \"typeaheadOnPreview\", typeaheadOnBlur: \"typeaheadOnBlur\" }, host: { listeners: { \"input\": \"onInput($event)\", \"keyup\": \"onChange($event)\", \"click\": \"onFocus()\", \"focus\": \"onFocus()\", \"blur\": \"onBlur()\", \"keydown\": \"onKeydown($event)\" }, properties: { \"attr.aria-activedescendant\": \"activeDescendant\", \"attr.aria-owns\": \"isOpen ? this._container.popupId : null\", \"attr.aria-expanded\": \"isOpen\", \"attr.aria-autocomplete\": \"list\" } }, exportAs: [\"bs-typeahead\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[typeahead]',\n exportAs: 'bs-typeahead',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isOpen ? this._container.popupId : null',\n '[attr.aria-expanded]': 'isOpen',\n '[attr.aria-autocomplete]': 'list'\n }\n }]\n }], ctorParameters: function () { return [{ type: i1.ComponentLoaderFactory }, { type: i2.TypeaheadConfig }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i3.NgControl }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }]; }, propDecorators: { typeahead: [{\n type: Input\n }], typeaheadMinLength: [{\n type: Input\n }], adaptivePosition: [{\n type: Input\n }], isAnimated: [{\n type: Input\n }], typeaheadWaitMs: [{\n type: Input\n }], typeaheadOptionsLimit: [{\n type: Input\n }], typeaheadOptionField: [{\n type: Input\n }], typeaheadGroupField: [{\n type: Input\n }], typeaheadOrderBy: [{\n type: Input\n }], typeaheadAsync: [{\n type: Input\n }], typeaheadLatinize: [{\n type: Input\n }], typeaheadSingleWords: [{\n type: Input\n }], typeaheadWordDelimiters: [{\n type: Input\n }], typeaheadMultipleSearch: [{\n type: Input\n }], typeaheadMultipleSearchDelimiters: [{\n type: Input\n }], typeaheadPhraseDelimiters: [{\n type: Input\n }], typeaheadItemTemplate: [{\n type: Input\n }], optionsListTemplate: [{\n type: Input\n }], typeaheadScrollable: [{\n type: Input\n }], typeaheadOptionsInScrollableView: [{\n type: Input\n }], typeaheadHideResultsOnBlur: [{\n type: Input\n }], typeaheadSelectFirstItem: [{\n type: Input\n }], typeaheadIsFirstItemActive: [{\n type: Input\n }], typeaheadLoading: [{\n type: Output\n }], typeaheadNoResults: [{\n type: Output\n }], typeaheadOnSelect: [{\n type: Output\n }], typeaheadOnPreview: [{\n type: Output\n }], typeaheadOnBlur: [{\n type: Output\n }], container: [{\n type: Input\n }], dropup: [{\n type: Input\n }], \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], onChange: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }], onFocus: [{\n type: HostListener,\n args: ['click']\n }, {\n type: HostListener,\n args: ['focus']\n }], onBlur: [{\n type: HostListener,\n args: ['blur']\n }], onKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlYWhlYWQvdHlwZWFoZWFkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekYsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBaUJyRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0o3QixZQUNFLEdBQTJCLEVBQzNCLE1BQXVCLEVBQ2YsZUFBa0MsRUFDbEMsT0FBbUIsRUFDbkIsU0FBb0IsRUFDcEIsUUFBbUIsRUFDM0IsZ0JBQWtDO1FBSjFCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25C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QUFLO2dCQUtHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBSUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFRyxnQ0FBZ0M7c0JBQXhDLEtBQUs7Z0JBRUcsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUtHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBSUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUlHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBS0UsU0FBUztzQkFBakIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7O1FBNkZOLDhEQUE4RDtRQUM5RCxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXlCakMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFxQ2pDLE9BQU87c0JBRk4sWUFBWTt1QkFBQyxPQUFPOztzQkFDcEIsWUFBWTt1QkFBQyxPQUFPO2dCQWNyQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTTtnQkFnQnBCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuXG5pbXBvcnQgeyBFTVBUWSwgZnJvbSwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgc3dpdGNoTWFwLCB0YXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUeXBlYWhlYWRPcHRpb25JdGVtQ29udGV4dCwgVHlwZWFoZWFkT3B0aW9uTGlzdENvbnRleHQgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IFR5cGVhaGVhZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHlwZWFoZWFkTWF0Y2ggfSBmcm9tICcuL3R5cGVhaGVhZC1tYXRjaC5jbGFzcyc7XG5pbXBvcnQgeyBUeXBlYWhlYWRPcmRlciB9IGZyb20gJy4vdHlwZWFoZWFkLW9yZGVyLmNsYXNzJztcbmltcG9ydCB7IGdldFZhbHVlRnJvbU9iamVjdCwgbGF0aW5pemUsIHRva2VuaXplIH0gZnJvbSAnLi90eXBlYWhlYWQtdXRpbHMnO1xuaW1wb3J0IHsgVHlwZWFoZWFkQ29uZmlnIH0gZnJvbSAnLi90eXBlYWhlYWQuY29uZmlnJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG50eXBlIFR5cGVhaGVhZE9wdGlvbiA9IHN0cmluZyB8IFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIGFueT47XG50eXBlIFR5cGVhaGVhZE9wdGlvbkFyciA9IFR5cGVhaGVhZE9wdGlvbltdIHwgT2JzZXJ2YWJsZTxUeXBlYWhlYWRPcHRpb25bXT47XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0eXBlYWhlYWRdJyxcbiAgZXhwb3J0QXM6ICdicy10eXBlYWhlYWQnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgICdbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdJzogJ2FjdGl2ZURlc2NlbmRhbnQnLFxuICAgICdbYXR0ci5hcmlhLW93bnNdJzogJ2lzT3BlbiA/IHRoaXMuX2NvbnRhaW5lci5wb3B1cElkIDogbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ2lzT3BlbicsXG4gICAgJ1thdHRyLmFyaWEtYXV0b2NvbXBsZXRlXSc6ICdsaXN0J1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFR5cGVhaGVhZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIG9wdGlvbnMgc291cmNlLCBjYW4gYmUgQXJyYXkgb2Ygc3RyaW5ncywgb2JqZWN0cyBvclxuICAgKiBhbiBPYnNlcnZhYmxlIGZvciBleHRlcm5hbCBtYXRjaGluZyBwcm9jZXNzXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWQ/OiBUeXBlYWhlYWRPcHRpb25BcnI7XG4gIC8qKiBtaW5pbWFsIG5vIG9mIGNoYXJhY3RlcnMgdGhhdCBuZWVkcyB0byBiZSBlbnRlcmVkIGJlZm9yZVxuICAgKiB0eXBlYWhlYWQga2lja3MtaW4uIFdoZW4gc2V0IHRvIDAsIHR5cGVhaGVhZCBzaG93cyBvbiBmb2N1cyB3aXRoIGZ1bGxcbiAgICogbGlzdCBvZiBvcHRpb25zIChsaW1pdGVkIGFzIG5vcm1hbCBieSB0eXBlYWhlYWRPcHRpb25zTGltaXQpXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRNaW5MZW5ndGggPSAxO1xuICAvKiogc2V0cyB1c2UgYWRhcHRpdmUgcG9zaXRpb24gKi9cbiAgQElucHV0KCkgYWRhcHRpdmVQb3NpdGlvbiA9IGZhbHNlO1xuICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIEBJbnB1dCgpIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbiAgLyoqIG1pbmltYWwgd2FpdCB0aW1lIGFmdGVyIGxhc3QgY2hhcmFjdGVyIHR5cGVkIGJlZm9yZSB0eXBlYWhlYWQga2lja3MtaW4gKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkV2FpdE1zID0gMDtcbiAgLyoqIG1heGltdW0gbGVuZ3RoIG9mIG9wdGlvbnMgaXRlbXMgbGlzdC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMjAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkT3B0aW9uc0xpbWl0PzogbnVtYmVyO1xuICAvKiogd2hlbiBvcHRpb25zIHNvdXJjZSBpcyBhbiBhcnJheSBvZiBvYmplY3RzLCB0aGUgbmFtZSBvZiBmaWVsZFxuICAgKiB0aGF0IGNvbnRhaW5zIHRoZSBvcHRpb25zIHZhbHVlLCB3ZSB1c2UgYXJyYXkgaXRlbSBhcyBvcHRpb24gaW4gY2FzZVxuICAgKiBvZiB0aGlzIGZpZWxkIGlzIG1pc3NpbmcuIFN1cHBvcnRzIG5lc3RlZCBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkT3B0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIC8qKiB3aGVuIG9wdGlvbnMgc291cmNlIGlzIGFuIGFycmF5IG9mIG9iamVjdHMsIHRoZSBuYW1lIG9mIGZpZWxkIHRoYXRcbiAgICogY29udGFpbnMgdGhlIGdyb3VwIHZhbHVlLCBtYXRjaGVzIGFyZSBncm91cGVkIGJ5IHRoaXMgZmllbGQgd2hlbiBzZXQuXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRHcm91cEZpZWxkPzogc3RyaW5nO1xuICAvKiogVXNlZCB0byBzcGVjaWZ5IGEgY3VzdG9tIG9yZGVyIG9mIG1hdGNoZXMuIFdoZW4gb3B0aW9ucyBzb3VyY2UgaXMgYW4gYXJyYXkgb2Ygb2JqZWN0c1xuICAgKiBhIGZpZWxkIGZvciBzb3J0aW5nIGhhcyB0byBiZSBzZXQgdXAuIEluIGNhc2Ugb2Ygb3B0aW9ucyBzb3VyY2UgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nLFxuICAgKiBhIGZpZWxkIGZvciBzb3J0aW5nIGlzIGFic2VudC4gVGhlIG9yZGVyaW5nIGRpcmVjdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIHRvIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkT3JkZXJCeT86IFR5cGVhaGVhZE9yZGVyO1xuICAvKiogc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjYXNlIG9mIHR5cGVhaGVhZCBhdHRyaWJ1dGUgaXMgT2JzZXJ2YWJsZSBvZiBhcnJheS5cbiAgICogSWYgdHJ1ZSAtIGxvYWRpbmcgb2Ygb3B0aW9ucyB3aWxsIGJlIGFzeW5jLCBvdGhlcndpc2UgLSBzeW5jLlxuICAgKiB0cnVlIG1ha2Ugc2Vuc2UgaWYgb3B0aW9ucyBhcnJheSBpcyBsYXJnZS5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGVhaGVhZEFzeW5jPzogYm9vbGVhbjtcbiAgLyoqIG1hdGNoIGxhdGluIHN5bWJvbHMuXG4gICAqIElmIHRydWUgdGhlIHdvcmQgc8O6cGVyIHdvdWxkIG1hdGNoIHN1cGVyIGFuZCB2aWNlIHZlcnNhLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkTGF0aW5pemUgPSB0cnVlO1xuICAvKiogQ2FuIGJlIHVzZSB0byBzZWFyY2ggd29yZHMgYnkgaW5zZXJ0aW5nIGEgc2luZ2xlIHdoaXRlIHNwYWNlIGJldHdlZW4gZWFjaCBjaGFyYWN0ZXJzXG4gICAqICBmb3IgZXhhbXBsZSAnQyBhIGwgaSBmIG8gciBuIGkgYScgd2lsbCBtYXRjaCAnQ2FsaWZvcm5pYScuXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRTaW5nbGVXb3JkcyA9IHRydWU7XG4gIC8qKiBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNhc2UgdHlwZWFoZWFkU2luZ2xlV29yZHMgYXR0cmlidXRlIGlzIHRydWUuXG4gICAqIFNldHMgdGhlIHdvcmQgZGVsaW1pdGVyIHRvIGJyZWFrIHdvcmRzLiBEZWZhdWx0cyB0byBzcGFjZS5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGVhaGVhZFdvcmREZWxpbWl0ZXJzID0gJyAnO1xuICAvKiogQ2FuIGJlIHVzZWQgdG8gY29uZHVjdCBhIHNlYXJjaCBvZiBtdWx0aXBsZSBpdGVtcyBhbmQgaGF2ZSBzdWdnZXN0aW9uIG5vdCBmb3IgdGhlXG4gICAqIHdob2xlIHZhbHVlIG9mIHRoZSBpbnB1dCBidXQgZm9yIHRoZSB2YWx1ZSB0aGF0IGNvbWVzIGFmdGVyIGEgZGVsaW1pdGVyIHByb3ZpZGVkIHZpYVxuICAgKiB0eXBlYWhlYWRNdWx0aXBsZVNlYXJjaERlbGltaXRlcnMgYXR0cmlidXRlLiBUaGlzIG9wdGlvbiBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGhcbiAgICogdHlwZWFoZWFkU2luZ2xlV29yZHMgb3B0aW9uIGlmIHR5cGVhaGVhZFdvcmREZWxpbWl0ZXJzIGFuZCB0eXBlYWhlYWRQaHJhc2VEZWxpbWl0ZXJzXG4gICAqIGFyZSBkaWZmZXJlbnQgZnJvbSB0eXBlYWhlYWRNdWx0aXBsZVNlYXJjaERlbGltaXRlcnMgdG8gYXZvaWQgY29uZmxpY3QgaW4gZGV0ZXJtaW5pbmdcbiAgICogd2hlbiB0byBkZWxpbWl0IG11bHRpcGxlIHNlYXJjaGVzIGFuZCB3aGVuIGEgc2luZ2xlIHdvcmQuXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRNdWx0aXBsZVNlYXJjaD86IGJvb2xlYW47XG4gIC8qKiBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNhc2UgdHlwZWFoZWFkTXVsdGlwbGVTZWFyY2ggYXR0cmlidXRlIGlzIHRydWUuXG4gICAqIFNldHMgdGhlIG11bHRpcGxlIHNlYXJjaCBkZWxpbWl0ZXIgdG8ga25vdyB3aGVuIHRvIHN0YXJ0IGEgbmV3IHNlYXJjaC4gRGVmYXVsdHMgdG8gY29tbWEuXG4gICAqIElmIHNwYWNlIG5lZWRzIHRvIGJlIHVzZWQsIHRoZW4gZXhwbGljaXRseSBzZXQgdHlwZWFoZWFkV29yZERlbGltaXRlcnMgdG8gc29tZXRoaW5nIGVsc2UgdGhhbiBzcGFjZVxuICAgKiBiZWNhdXNlIHNwYWNlIGlzIHVzZWQgYnkgZGVmYXVsdCBPUiBzZXQgdHlwZWFoZWFkU2luZ2xlV29yZHMgYXR0cmlidXRlIHRvIGZhbHNlIGlmIHlvdSBkb24ndCBuZWVkXG4gICAqIHRvIHVzZSBpdCB0b2dldGhlciB3aXRoIG11bHRpcGxlIHNlYXJjaC5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGVhaGVhZE11bHRpcGxlU2VhcmNoRGVsaW1pdGVycyA9ICcsJztcbiAgLyoqIHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY2FzZSB0eXBlYWhlYWRTaW5nbGVXb3JkcyBhdHRyaWJ1dGUgaXMgdHJ1ZS5cbiAgICogU2V0cyB0aGUgd29yZCBkZWxpbWl0ZXIgdG8gbWF0Y2ggZXhhY3QgcGhyYXNlLlxuICAgKiBEZWZhdWx0cyB0byBzaW1wbGUgYW5kIGRvdWJsZSBxdW90ZXMuXG4gICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRQaHJhc2VEZWxpbWl0ZXJzID0gJ1xcJ1wiJztcbiAgLyoqIHVzZWQgdG8gc3BlY2lmeSBhIGN1c3RvbSBpdGVtIHRlbXBsYXRlLlxuICAgKiBUZW1wbGF0ZSB2YXJpYWJsZXMgZXhwb3NlZCBhcmUgY2FsbGVkIGl0ZW0gYW5kIGluZGV4O1xuICAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkSXRlbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VHlwZWFoZWFkT3B0aW9uSXRlbUNvbnRleHQ+O1xuICAvKiogdXNlZCB0byBzcGVjaWZ5IGEgY3VzdG9tIG9wdGlvbnMgbGlzdCB0ZW1wbGF0ZS5cbiAgICogVGVtcGxhdGUgdmFyaWFibGVzOiBtYXRjaGVzLCBpdGVtVGVtcGxhdGUsIHF1ZXJ5XG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zTGlzdFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VHlwZWFoZWFkT3B0aW9uTGlzdENvbnRleHQ+O1xuICAvKiogc3BlY2lmaWVzIGlmIHR5cGVhaGVhZCBpcyBzY3JvbGxhYmxlICAqL1xuICBASW5wdXQoKSB0eXBlYWhlYWRTY3JvbGxhYmxlID0gZmFsc2U7XG4gIC8qKiBzcGVjaWZpZXMgbnVtYmVyIG9mIG9wdGlvbnMgdG8gc2hvdyBpbiBzY3JvbGwgdmlldyAgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXcgPSA1O1xuICAvKiogdXNlZCB0byBoaWRlIHJlc3VsdCBvbiBibHVyICovXG4gIEBJbnB1dCgpIHR5cGVhaGVhZEhpZGVSZXN1bHRzT25CbHVyPzogYm9vbGVhbjtcbiAgLyoqIGZpcmVkIHdoZW4gYW4gb3B0aW9ucyBsaXN0IHdhcyBvcGVuZWQgYW5kIHRoZSB1c2VyIGNsaWNrZWQgVGFiXG4gICAqIElmIGEgdmFsdWUgZXF1YWwgdHJ1ZSwgaXQgd2lsbCBiZSBjaG9zZW4gZmlyc3Qgb3IgYWN0aXZlIGl0ZW0gaW4gdGhlIGxpc3RcbiAgICogSWYgdmFsdWUgZXF1YWwgZmFsc2UsIGl0IHdpbGwgYmUgY2hvc2VuIGFuIGFjdGl2ZSBpdGVtIGluIHRoZSBsaXN0IG9yIG5vdGhpbmdcbiAgICovXG4gIEBJbnB1dCgpIHR5cGVhaGVhZFNlbGVjdEZpcnN0SXRlbSA9IHRydWU7XG4gIC8qKiBtYWtlcyBhY3RpdmUgZmlyc3QgaXRlbSBpbiBhIGxpc3QgKi9cbiAgQElucHV0KCkgdHlwZWFoZWFkSXNGaXJzdEl0ZW1BY3RpdmUgPSB0cnVlO1xuICAvKiogZmlyZWQgd2hlbiAnYnVzeScgc3RhdGUgb2YgdGhpcyBjb21wb25lbnQgd2FzIGNoYW5nZWQsXG4gICAqIGZpcmVkIG9uIGFzeW5jIG1vZGUgb25seSwgcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBAT3V0cHV0KCkgdHlwZWFoZWFkTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgLyoqIGZpcmVkIG9uIGV2ZXJ5IGtleSBldmVudCBhbmQgcmV0dXJucyB0cnVlXG4gICAqIGluIGNhc2Ugb2YgbWF0Y2hlcyBhcmUgbm90IGRldGVjdGVkXG4gICAqL1xuICBAT3V0cHV0KCkgdHlwZWFoZWFkTm9SZXN1bHRzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAvKiogZmlyZWQgd2hlbiBvcHRpb24gd2FzIHNlbGVjdGVkLCByZXR1cm4gb2JqZWN0IHdpdGggZGF0YSBvZiB0aGlzIG9wdGlvbi4gKi9cbiAgQE91dHB1dCgpIHR5cGVhaGVhZE9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUeXBlYWhlYWRNYXRjaD4oKTtcbiAgLyoqIGZpcmVkIHdoZW4gb3B0aW9uIHdhcyBwcmV2aWV3ZWQsIHJldHVybiBvYmplY3Qgd2l0aCBkYXRhIG9mIHRoaXMgb3B0aW9uLiAqL1xuICBAT3V0cHV0KCkgdHlwZWFoZWFkT25QcmV2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxUeXBlYWhlYWRNYXRjaD4oKTtcbiAgLyoqIGZpcmVkIHdoZW4gYmx1ciBldmVudCBvY2N1cnMuIHJldHVybnMgdGhlIGFjdGl2ZSBpdGVtICovXG4gIEBPdXRwdXQoKSB0eXBlYWhlYWRPbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPFR5cGVhaGVhZE1hdGNoPigpO1xuXG4gIC8qKlxuICAgKiBBIHNlbGVjdG9yIHNwZWNpZnlpbmcgdGhlIGVsZW1lbnQgdGhlIHR5cGVhaGVhZCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uXG4gICAqL1xuICBASW5wdXQoKSBjb250YWluZXI/OiBzdHJpbmc7XG5cbiAgLyoqIFRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IHRoZSBkcm9wZG93biBzaG91bGQgYmUgb3BlbmVkIHVwd2FyZHMgKi9cbiAgQElucHV0KCkgZHJvcHVwID0gZmFsc2U7XG5cbiAgLy8gbm90IHlldCBpbXBsZW1lbnRlZFxuICAvKiogaWYgZmFsc2UgcmVzdHJpY3QgbW9kZWwgdmFsdWVzIHRvIHRoZSBvbmVzIHNlbGVjdGVkIGZyb20gdGhlIHBvcHVwIG9ubHkgd2lsbCBiZSBwcm92aWRlZCAqL1xuICAvLyBASW5wdXQoKSBwcm90ZWN0ZWQgdHlwZWFoZWFkRWRpdGFibGU6Ym9vbGVhbjtcbiAgLyoqIGlmIGZhbHNlIHRoZSBmaXJzdCBtYXRjaCBhdXRvbWF0aWNhbGx5IHdpbGwgbm90IGJlIGZvY3VzZWQgYXMgeW91IHR5cGUgKi9cbiAgLy8gQElucHV0KCkgcHJvdGVjdGVkIHR5cGVhaGVhZEZvY3VzRmlyc3Q6Ym9vbGVhbjtcbiAgLyoqIGZvcm1hdCB0aGUgbmctbW9kZWwgcmVzdWx0IGFmdGVyIHNlbGVjdGlvbiAqL1xuICAvLyBASW5wdXQoKSBwcm90ZWN0ZWQgdHlwZWFoZWFkSW5wdXRGb3JtYXR0ZXI6YW55O1xuICAvKiogaWYgdHJ1ZSBhdXRvbWF0aWNhbGx5IHNlbGVjdCBhbiBpdGVtIHdoZW4gdGhlcmUgaXMgb25lIG9wdGlvbiB0aGF0IGV4YWN0bHkgbWF0Y2hlcyB0aGUgdXNlciBpbnB1dCAqL1xuICAvLyBASW5wdXQoKSBwcm90ZWN0ZWQgdHlwZWFoZWFkU2VsZWN0T25FeGFjdDpib29sZWFuO1xuICAvKiogIGlmIHRydWUgc2VsZWN0IHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgbWF0Y2ggb24gYmx1ciAqL1xuICAvLyBASW5wdXQoKSBwcm90ZWN0ZWQgdHlwZWFoZWFkU2VsZWN0T25CbHVyOmJvb2xlYW47XG4gIC8qKiAgaWYgZmFsc2UgZG9uJ3QgZm9jdXMgdGhlIGlucHV0IGVsZW1lbnQgdGhlIHR5cGVhaGVhZCBkaXJlY3RpdmUgaXMgYXNzb2NpYXRlZCB3aXRoIG9uIHNlbGVjdGlvbiAqL1xuICAgIC8vIEBJbnB1dCgpIHByb3RlY3RlZCB0eXBlYWhlYWRGb2N1c09uU2VsZWN0OmJvb2xlYW47XG5cbiAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgaXNPcGVuID0gZmFsc2U7XG4gIGxpc3QgPSAnbGlzdCc7XG4gIF9jb250YWluZXI/OiBUeXBlYWhlYWRDb250YWluZXJDb21wb25lbnQ7XG4gIGlzQWN0aXZlSXRlbUNoYW5nZWQgPSBmYWxzZTtcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIGNhbmNlbFJlcXVlc3RPbkZvY3VzTG9zdCA9IGZhbHNlO1xuICBzZWxlY3RJdGVtT25CbHVyID0gZmFsc2U7XG4gIHByb3RlY3RlZCBrZXlVcEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcGxhY2VtZW50ID0gJ2JvdHRvbSBsZWZ0JztcbiAgcHJvdGVjdGVkIF9tYXRjaGVzOiBUeXBlYWhlYWRNYXRjaFtdID0gW107XG5cbiAgcHJpdmF0ZSBfdHlwZWFoZWFkOiBDb21wb25lbnRMb2FkZXI8VHlwZWFoZWFkQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfYWxsRW50ZXJlZFZhbHVlPzogc3RyaW5nO1xuICBwcml2YXRlIF9vdXRzaWRlQ2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaXM6IENvbXBvbmVudExvYWRlckZhY3RvcnksXG4gICAgY29uZmlnOiBUeXBlYWhlYWRDb25maWcsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuXG4gICAgdGhpcy5fdHlwZWFoZWFkID0gY2lzLmNyZWF0ZUxvYWRlcjxUeXBlYWhlYWRDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZpZXdDb250YWluZXJSZWYsXG4gICAgICByZW5kZXJlclxuICAgIClcbiAgICAgIC5wcm92aWRlKHsgcHJvdmlkZTogVHlwZWFoZWFkQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH0pO1xuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLFxuICAgICAge1xuICAgICAgICB0eXBlYWhlYWRIaWRlUmVzdWx0c09uQmx1cjogY29uZmlnLmhpZGVSZXN1bHRzT25CbHVyLFxuICAgICAgICBjYW5jZWxSZXF1ZXN0T25Gb2N1c0xvc3Q6IGNvbmZpZy5jYW5jZWxSZXF1ZXN0T25Gb2N1c0xvc3QsXG4gICAgICAgIHR5cGVhaGVhZFNlbGVjdEZpcnN0SXRlbTogY29uZmlnLnNlbGVjdEZpcnN0SXRlbSxcbiAgICAgICAgdHlwZWFoZWFkSXNGaXJzdEl0ZW1BY3RpdmU6IGNvbmZpZy5pc0ZpcnN0SXRlbUFjdGl2ZSxcbiAgICAgICAgdHlwZWFoZWFkTWluTGVuZ3RoOiBjb25maWcubWluTGVuZ3RoLFxuICAgICAgICBhZGFwdGl2ZVBvc2l0aW9uOiBjb25maWcuYWRhcHRpdmVQb3NpdGlvbixcbiAgICAgICAgaXNBbmltYXRlZDogY29uZmlnLmlzQW5pbWF0ZWQsXG4gICAgICAgIHNlbGVjdEl0ZW1PbkJsdXI6IGNvbmZpZy5zZWxlY3RJdGVtT25CbHVyXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGdldCBtYXRjaGVzKCk6IFR5cGVhaGVhZE1hdGNoW10ge1xuICAgIHJldHVybiB0aGlzLl9tYXRjaGVzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50eXBlYWhlYWRPcHRpb25zTGltaXQgPSB0aGlzLnR5cGVhaGVhZE9wdGlvbnNMaW1pdCB8fCAyMDtcblxuICAgIHRoaXMudHlwZWFoZWFkTWluTGVuZ3RoID1cbiAgICAgIHRoaXMudHlwZWFoZWFkTWluTGVuZ3RoID09PSB2b2lkIDAgPyAxIDogdGhpcy50eXBlYWhlYWRNaW5MZW5ndGg7XG5cbiAgICAvLyBhc3luYyBzaG91bGQgYmUgZmFsc2UgaW4gY2FzZSBvZiBhcnJheVxuICAgIGlmICh0aGlzLnR5cGVhaGVhZEFzeW5jID09PSB1bmRlZmluZWQgJiYgIShpc09ic2VydmFibGUodGhpcy50eXBlYWhlYWQpKSkge1xuICAgICAgdGhpcy50eXBlYWhlYWRBc3luYyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChpc09ic2VydmFibGUodGhpcy50eXBlYWhlYWQpKSB7XG4gICAgICB0aGlzLnR5cGVhaGVhZEFzeW5jID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlYWhlYWRBc3luYykge1xuICAgICAgdGhpcy5hc3luY0FjdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zeW5jQWN0aW9ucygpO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tEZWxpbWl0ZXJzQ29uZmxpY3QoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgb25JbnB1dChlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBGb3IgYDxpbnB1dD5gcywgdXNlIHRoZSBgdmFsdWVgIHByb3BlcnR5LiBGb3Igb3RoZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhXG4gICAgLy8gYHZhbHVlYCAoc3VjaCBhcyBgPHNwYW4gY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiPmApLCB1c2UgZWl0aGVyXG4gICAgLy8gYHRleHRDb250ZW50YCBvciBgaW5uZXJUZXh0YCAoZGVwZW5kaW5nIG9uIHdoaWNoIG9uZSBpcyBzdXBwb3J0ZWQsIGkuZS5cbiAgICAvLyBGaXJlZm94IG9yIElFKS5cbiAgICBjb25zdCB2YWx1ZSA9XG4gICAgICBlLnRhcmdldC52YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZS50YXJnZXQudmFsdWVcbiAgICAgICAgOiBlLnRhcmdldC50ZXh0Q29udGVudCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZS50YXJnZXQudGV4dENvbnRlbnRcbiAgICAgICAgOiBlLnRhcmdldC5pbm5lclRleHQ7XG5cbiAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID49IHRoaXMudHlwZWFoZWFkTWluTGVuZ3RoKSB7XG4gICAgICB0aGlzLnR5cGVhaGVhZExvYWRpbmcuZW1pdCh0cnVlKTtcbiAgICAgIHRoaXMua2V5VXBFdmVudEVtaXR0ZXIuZW1pdChlLnRhcmdldC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHlwZWFoZWFkTG9hZGluZy5lbWl0KGZhbHNlKTtcbiAgICAgIHRoaXMudHlwZWFoZWFkTm9SZXN1bHRzLmVtaXQoZmFsc2UpO1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBvbkNoYW5nZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250YWluZXIpIHtcbiAgICAgIC8vIGVzY1xuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3IHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyB1cFxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM4IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmVJdGVtQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5wcmV2QWN0aXZlTWF0Y2goKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGRvd25cbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSA0MCB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmVJdGVtQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5uZXh0QWN0aXZlTWF0Y2goKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGVudGVyXG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5zZWxlY3RBY3RpdmVNYXRjaCgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgLy8gYWRkIHNldFRpbWVvdXQgdG8gZml4IGlzc3VlICM1MjUxXG4gICAgLy8gdG8gZ2V0IGFuZCBlbWl0IHVwZGF0ZWQgdmFsdWUgaWYgaXQncyBjaGFuZ2VkIG9uIGZvY3VzXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy50eXBlYWhlYWRNaW5MZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy50eXBlYWhlYWRMb2FkaW5nLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMua2V5VXBFdmVudEVtaXR0ZXIuZW1pdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSB8fCAnJyk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuX2NvbnRhaW5lciAmJiAhdGhpcy5fY29udGFpbmVyLmlzRm9jdXNlZCkge1xuICAgICAgdGhpcy50eXBlYWhlYWRPbkJsdXIuZW1pdCh0aGlzLl9jb250YWluZXIuYWN0aXZlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29udGFpbmVyICYmIHRoaXMuX21hdGNoZXM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50eXBlYWhlYWRPbkJsdXIuZW1pdChuZXcgVHlwZWFoZWFkTWF0Y2goXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlLFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSxcbiAgICAgICAgZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLy8gbm8gY29udGFpbmVyIC0gbm8gcHJvYmxlbXNcbiAgICBpZiAoIXRoaXMuX2NvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSA5IHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDkgfHwgZXZlbnQua2V5ID09PSAnVGFiJyB8fCBldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy50eXBlYWhlYWRTZWxlY3RGaXJzdEl0ZW0pIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnNlbGVjdEFjdGl2ZU1hdGNoKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMudHlwZWFoZWFkU2VsZWN0Rmlyc3RJdGVtKSB7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5zZWxlY3RBY3RpdmVNYXRjaCh0aGlzLmlzQWN0aXZlSXRlbUNoYW5nZWQpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlSXRlbUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlTW9kZWwobWF0Y2g/OiBUeXBlYWhlYWRNYXRjaCk6IHZvaWQge1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmc7XG4gICAgaWYgKHRoaXMudHlwZWFoZWFkTXVsdGlwbGVTZWFyY2ggJiYgdGhpcy5fYWxsRW50ZXJlZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLl9hbGxFbnRlcmVkVmFsdWUuc3BsaXQobmV3IFJlZ0V4cChgKFske3RoaXMudHlwZWFoZWFkTXVsdGlwbGVTZWFyY2hEZWxpbWl0ZXJzfV0rKWApKTtcbiAgICAgIHRoaXMuX2FsbEVudGVyZWRWYWx1ZSA9IHRva2Vucy5zbGljZSgwLCB0b2tlbnMubGVuZ3RoIC0gMSkuY29uY2F0KG1hdGNoLnZhbHVlKS5qb2luKCcnKTtcbiAgICAgIHZhbHVlU3RyID0gdGhpcy5fYWxsRW50ZXJlZFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZVN0ciA9IG1hdGNoLnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh2YWx1ZVN0cik7XG4gICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0VmFsdWUodmFsdWVTdHIpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlYWhlYWRcbiAgICAgIC5hdHRhY2goVHlwZWFoZWFkQ29udGFpbmVyQ29tcG9uZW50KVxuICAgICAgLnRvKHRoaXMuY29udGFpbmVyKVxuICAgICAgLnBvc2l0aW9uKHsgYXR0YWNobWVudDogYCR7dGhpcy5kcm9wdXAgPyAndG9wJyA6ICdib3R0b20nfSBsZWZ0YCB9KVxuICAgICAgLnNob3coe1xuICAgICAgICB0eXBlYWhlYWRSZWY6IHRoaXMsXG4gICAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2UsXG4gICAgICAgIGRyb3B1cDogdGhpcy5kcm9wdXBcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyXG4gICAgICAubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50eXBlYWhlYWRNaW5MZW5ndGggPT09IDAgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudHlwZWFoZWFkSGlkZVJlc3VsdHNPbkJsdXIgfHwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uT3V0c2lkZUNsaWNrKCk7XG4gICAgICB9KTtcblxuICAgIGlmICghdGhpcy5fdHlwZWFoZWFkLmluc3RhbmNlIHx8ICF0aGlzLm5nQ29udHJvbC5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5fdHlwZWFoZWFkLmluc3RhbmNlO1xuICAgIHRoaXMuX2NvbnRhaW5lci5wYXJlbnQgPSB0aGlzO1xuICAgIC8vIFRoaXMgaW1wcm92ZXMgdGhlIHNwZWVkIGFzIGl0IHdvbid0IGhhdmUgdG8gYmUgZG9uZSBmb3IgZWFjaCBsaXN0IGl0ZW1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9ICh0aGlzLnR5cGVhaGVhZExhdGluaXplXG4gICAgICA/IGxhdGluaXplKHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWUpXG4gICAgICA6IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWUpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRvTG93ZXJDYXNlKCk7XG5cbiAgICB0aGlzLl9jb250YWluZXIucXVlcnkgPSB0aGlzLnRva2VuaXplUXVlcnkobm9ybWFsaXplZFF1ZXJ5KTtcblxuICAgIHRoaXMuX2NvbnRhaW5lci5tYXRjaGVzID0gdGhpcy5fbWF0Y2hlcztcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgdGhpcy5fY29udGFpbmVyLmFjdGl2ZUNoYW5nZUV2ZW50LnN1YnNjcmliZSgoYWN0aXZlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50ID0gYWN0aXZlSWQ7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90eXBlYWhlYWQuaXNTaG93bikge1xuICAgICAgdGhpcy5fdHlwZWFoZWFkLmhpZGUoKTtcbiAgICAgIHRoaXMuX291dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICB0aGlzLl9jb250YWluZXIgPSB2b2lkIDA7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIHRoaXMudHlwZWFoZWFkT25QcmV2aWV3LmVtaXQoKTtcbiAgfVxuXG4gIG9uT3V0c2lkZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250YWluZXIgJiYgIXRoaXMuX2NvbnRhaW5lci5pc0ZvY3VzZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGNsZWFuIHVwIHN1YnNjcmlwdGlvbnNcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5fdHlwZWFoZWFkLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luY0FjdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5rZXlVcEV2ZW50RW1pdHRlclxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWU8c3RyaW5nPih0aGlzLnR5cGVhaGVhZFdhaXRNcyksXG4gICAgICAgICAgdGFwKHZhbHVlID0+IHRoaXMuX2FsbEVudGVyZWRWYWx1ZSA9IHZhbHVlKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnR5cGVhaGVhZCkge1xuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlYWhlYWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtYXRjaGVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5maW5hbGl6ZUFzeW5jQ2FsbChtYXRjaGVzKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bmNBY3Rpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMua2V5VXBFdmVudEVtaXR0ZXJcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lPHN0cmluZz4odGhpcy50eXBlYWhlYWRXYWl0TXMpLFxuICAgICAgICAgIG1lcmdlTWFwKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hbGxFbnRlcmVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IHRoaXMubm9ybWFsaXplUXVlcnkodmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMudHlwZWFoZWFkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdHlwZWFoZWFkID0gaXNPYnNlcnZhYmxlKHRoaXMudHlwZWFoZWFkKSA/IHRoaXMudHlwZWFoZWFkIDogZnJvbSh0aGlzLnR5cGVhaGVhZCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0eXBlYWhlYWRcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChvcHRpb246IFR5cGVhaGVhZE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICEhb3B0aW9uICYmIHRoaXMudGVzdE1hdGNoKHRoaXMubm9ybWFsaXplT3B0aW9uKG9wdGlvbiksIG5vcm1hbGl6ZWRRdWVyeSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtYXRjaGVzOiBUeXBlYWhlYWRPcHRpb25bXSkgPT4ge1xuICAgICAgICAgIHRoaXMuZmluYWxpemVBc3luY0NhbGwobWF0Y2hlcyk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBub3JtYWxpemVPcHRpb24ob3B0aW9uOiBUeXBlYWhlYWRPcHRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvblZhbHVlOiBzdHJpbmcgPSBnZXRWYWx1ZUZyb21PYmplY3QoXG4gICAgICBvcHRpb24sXG4gICAgICB0aGlzLnR5cGVhaGVhZE9wdGlvbkZpZWxkXG4gICAgKTtcbiAgICBjb25zdCBub3JtYWxpemVkT3B0aW9uID0gdGhpcy50eXBlYWhlYWRMYXRpbml6ZVxuICAgICAgPyBsYXRpbml6ZShvcHRpb25WYWx1ZSlcbiAgICAgIDogb3B0aW9uVmFsdWU7XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZE9wdGlvbi50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRva2VuaXplUXVlcnkoY3VycmVudFF1ZXJ5OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB8IHN0cmluZ1tdIHtcblxuICAgIGxldCBxdWVyeSA9IGN1cnJlbnRRdWVyeTtcbiAgICBpZiAodGhpcy50eXBlYWhlYWRNdWx0aXBsZVNlYXJjaCAmJiB0aGlzLnR5cGVhaGVhZFNpbmdsZVdvcmRzKSB7XG4gICAgICBpZiAoIXRoaXMuaGF2ZUNvbW1vbkNoYXJhY3RlcnMoYCR7dGhpcy50eXBlYWhlYWRQaHJhc2VEZWxpbWl0ZXJzfSR7dGhpcy50eXBlYWhlYWRXb3JkRGVsaW1pdGVyc31gLFxuICAgICAgICB0aGlzLnR5cGVhaGVhZE11bHRpcGxlU2VhcmNoRGVsaW1pdGVycykpIHtcbiAgICAgICAgLy8gc2luZ2xlIHdvcmRzIGFuZCBtdWx0aXBsZSBzZWFyY2ggZGVsaW1pdGVycyBhcmUgZGlmZmVyZW50LCBjYW4gYmUgdXNlZCB0b2dldGhlclxuICAgICAgICBxdWVyeSA9IHRva2VuaXplKFxuICAgICAgICAgIHF1ZXJ5IGFzIHN0cmluZyxcbiAgICAgICAgICB0aGlzLnR5cGVhaGVhZFdvcmREZWxpbWl0ZXJzLFxuICAgICAgICAgIHRoaXMudHlwZWFoZWFkUGhyYXNlRGVsaW1pdGVycyxcbiAgICAgICAgICB0aGlzLnR5cGVhaGVhZE11bHRpcGxlU2VhcmNoRGVsaW1pdGVyc1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlYWhlYWRTaW5nbGVXb3Jkcykge1xuICAgICAgcXVlcnkgPSB0b2tlbml6ZShcbiAgICAgICAgcXVlcnkgYXMgc3RyaW5nLFxuICAgICAgICB0aGlzLnR5cGVhaGVhZFdvcmREZWxpbWl0ZXJzLFxuICAgICAgICB0aGlzLnR5cGVhaGVhZFBocmFzZURlbGltaXRlcnNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG11bHRpcGxlIHNlYXJjaGVzXG4gICAgICBxdWVyeSA9IHRva2VuaXplKFxuICAgICAgICBxdWVyeSBhcyBzdHJpbmcsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgdm9pZCAwLFxuICAgICAgICB0aGlzLnR5cGVhaGVhZE11bHRpcGxlU2VhcmNoRGVsaW1pdGVyc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbm9ybWFsaXplUXVlcnkodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICAvLyBJZiBzaW5nbGVXb3JkcywgYnJlYWsgbW9kZWwgaGVyZSB0byBub3QgYmUgZG9pbmcgZXh0cmEgd29yayBvbiBlYWNoIGl0ZXJhdGlvblxuICAgIGxldCBub3JtYWxpemVkUXVlcnk6IHN0cmluZyB8IHN0cmluZ1tdID0gKHRoaXMudHlwZWFoZWFkTGF0aW5pemVcbiAgICAgID8gbGF0aW5pemUodmFsdWUpXG4gICAgICA6IHZhbHVlKVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgbm9ybWFsaXplZFF1ZXJ5ID0gdGhpcy50b2tlbml6ZVF1ZXJ5KG5vcm1hbGl6ZWRRdWVyeSk7XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZFF1ZXJ5O1xuICB9XG5cbiAgcHJvdGVjdGVkIHRlc3RNYXRjaChtYXRjaDogc3RyaW5nLCB0ZXN0OiBzdHJpbmdbXSB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBzcGFjZUxlbmd0aDogbnVtYmVyO1xuXG4gICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgc3BhY2VMZW5ndGggPSB0ZXN0Lmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhY2VMZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBpZiAodGVzdFtpXS5sZW5ndGggPiAwICYmIG1hdGNoLmluZGV4T2YodGVzdFtpXSkgPCAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaC5pbmRleE9mKHRlc3QpID49IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmluYWxpemVBc3luY0NhbGwobWF0Y2hlcz86IFR5cGVhaGVhZE9wdGlvbiB8IFR5cGVhaGVhZE9wdGlvbltdKTogdm9pZCB7XG4gICAgdGhpcy5wcmVwYXJlTWF0Y2hlcyhtYXRjaGVzIHx8IFtdKTtcblxuICAgIHRoaXMudHlwZWFoZWFkTG9hZGluZy5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLnR5cGVhaGVhZE5vUmVzdWx0cy5lbWl0KCF0aGlzLmhhc01hdGNoZXMoKSk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTWF0Y2hlcygpKSB7XG4gICAgICB0aGlzLmhpZGUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0ZvY3VzZWQgJiYgdGhpcy5jYW5jZWxSZXF1ZXN0T25Gb2N1c0xvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29udGFpbmVyICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIC8vIGZpeDogcmVtb3ZlIHVzYWdlIG9mIG5nQ29udHJvbCBpbnRlcm5hbHNcbiAgICAgIGNvbnN0IF9jb250cm9sVmFsdWUgPSAodGhpcy50eXBlYWhlYWRMYXRpbml6ZVxuICAgICAgICA/IGxhdGluaXplKHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWUpXG4gICAgICAgIDogdGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWx1ZSkgfHwgJyc7XG5cbiAgICAgIC8vIFRoaXMgaW1wcm92ZXMgdGhlIHNwZWVkIGFzIGl0IHdvbid0IGhhdmUgdG8gYmUgZG9uZSBmb3IgZWFjaCBsaXN0IGl0ZW1cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IF9jb250cm9sVmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICB0aGlzLl9jb250YWluZXIucXVlcnkgPSB0aGlzLnRva2VuaXplUXVlcnkobm9ybWFsaXplZFF1ZXJ5KTtcbiAgICAgIHRoaXMuX2NvbnRhaW5lci5tYXRjaGVzID0gdGhpcy5fbWF0Y2hlcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVNYXRjaGVzKG9wdGlvbnM6IFR5cGVhaGVhZE9wdGlvbiB8IFR5cGVhaGVhZE9wdGlvbltdKTogdm9pZCB7XG4gICAgY29uc3QgbGltaXRlZCA9IG9wdGlvbnMuc2xpY2UoMCwgdGhpcy50eXBlYWhlYWRPcHRpb25zTGltaXQpO1xuICAgIGNvbnN0IHNvcnRlZCA9ICF0aGlzLnR5cGVhaGVhZE9yZGVyQnkgPyBsaW1pdGVkIDogdGhpcy5vcmRlck1hdGNoZXMobGltaXRlZCk7XG5cbiAgICBpZiAodGhpcy50eXBlYWhlYWRHcm91cEZpZWxkKSB7XG4gICAgICBsZXQgbWF0Y2hlczogVHlwZWFoZWFkTWF0Y2hbXSA9IFtdO1xuXG4gICAgICAvLyBleHRyYWN0IGFsbCBncm91cCBuYW1lc1xuICAgICAgY29uc3QgZ3JvdXBzID0gc29ydGVkXG4gICAgICAgIC5tYXAoKG9wdGlvbjogVHlwZWFoZWFkT3B0aW9uKSA9PlxuICAgICAgICAgIGdldFZhbHVlRnJvbU9iamVjdChvcHRpb24sIHRoaXMudHlwZWFoZWFkR3JvdXBGaWVsZClcbiAgICAgICAgKVxuICAgICAgICAuZmlsdGVyKCh2OiBzdHJpbmcsIGk6IG51bWJlciwgYTogc3RyaW5nW10pID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XG5cbiAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cDogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIGFkZCBncm91cCBoZWFkZXIgdG8gYXJyYXkgb2YgbWF0Y2hlc1xuICAgICAgICBtYXRjaGVzLnB1c2gobmV3IFR5cGVhaGVhZE1hdGNoKGdyb3VwLCBncm91cCwgdHJ1ZSkpO1xuXG4gICAgICAgIC8vIGFkZCBlYWNoIGl0ZW0gb2YgZ3JvdXAgdG8gYXJyYXkgb2YgbWF0Y2hlc1xuICAgICAgICBtYXRjaGVzID0gbWF0Y2hlcy5jb25jYXQoXG4gICAgICAgICAgc29ydGVkXG4gICAgICAgICAgICAuZmlsdGVyKChvcHRpb246IFR5cGVhaGVhZE9wdGlvbikgPT5cbiAgICAgICAgICAgICAgZ2V0VmFsdWVGcm9tT2JqZWN0KG9wdGlvbiwgdGhpcy50eXBlYWhlYWRHcm91cEZpZWxkKSA9PT0gZ3JvdXBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbjogVHlwZWFoZWFkT3B0aW9uKSA9PlxuICAgICAgICAgICAgICBuZXcgVHlwZWFoZWFkTWF0Y2goXG4gICAgICAgICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgICAgICAgIGdldFZhbHVlRnJvbU9iamVjdChvcHRpb24sIHRoaXMudHlwZWFoZWFkT3B0aW9uRmllbGQpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9tYXRjaGVzID0gbWF0Y2hlcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWF0Y2hlcyA9IHNvcnRlZC5tYXAoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIChvcHRpb246IGFueSkgPT5cbiAgICAgICAgICBuZXcgVHlwZWFoZWFkTWF0Y2goXG4gICAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgICBnZXRWYWx1ZUZyb21PYmplY3Qob3B0aW9uLCB0aGlzLnR5cGVhaGVhZE9wdGlvbkZpZWxkKVxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9yZGVyTWF0Y2hlcyhvcHRpb25zOiBUeXBlYWhlYWRPcHRpb25bXSk6IFR5cGVhaGVhZE9wdGlvbltdIHtcbiAgICBpZiAoIW9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlYWhlYWRPcmRlckJ5ICE9PSBudWxsXG4gICAgICAmJiB0aGlzLnR5cGVhaGVhZE9yZGVyQnkgIT09IHVuZGVmaW5lZFxuICAgICAgJiYgdHlwZW9mIHRoaXMudHlwZWFoZWFkT3JkZXJCeSA9PT0gJ29iamVjdCdcbiAgICAgICYmIE9iamVjdC5rZXlzKHRoaXMudHlwZWFoZWFkT3JkZXJCeSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGaWVsZCBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMgZm9yIHR5cGVhaGVhZE9yZGVyQnkgaGF2ZSB0byBiZSBzZXQgYWNjb3JkaW5nIHRvIGRvY3VtZW50YXRpb24hJyk7XG5cbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZmllbGQsIGRpcmVjdGlvbiB9ID0gKHRoaXMudHlwZWFoZWFkT3JkZXJCeSB8fCB7fSk7XG5cbiAgICBpZiAoIWRpcmVjdGlvbiB8fCAhKGRpcmVjdGlvbiA9PT0gJ2FzYycgfHwgZGlyZWN0aW9uID09PSAnZGVzYycpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCd0eXBlYWhlYWRPcmRlckJ5IGRpcmVjdGlvbiBoYXMgdG8gZXF1YWwgXCJhc2NcIiBvciBcImRlc2NcIi4gUGxlYXNlIGZvbGxvdyB0aGUgZG9jdW1lbnRhdGlvbi4nKTtcblxuICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBvcHRpb25zLnNvcnQoKSA6IG9wdGlvbnMuc29ydCgpLnJldmVyc2UoKTtcbiAgICB9XG5cbiAgICBpZiAoIWZpZWxkIHx8IHR5cGVvZiBmaWVsZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ3R5cGVhaGVhZE9yZGVyQnkgZmllbGQgaGFzIHRvIHNldCBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24uJyk7XG5cbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zLnNvcnQoKGE6IFR5cGVhaGVhZE9wdGlvbiwgYjogVHlwZWFoZWFkT3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmdBID0gZ2V0VmFsdWVGcm9tT2JqZWN0KGEsIGZpZWxkKTtcbiAgICAgIGNvbnN0IHN0cmluZ0IgPSBnZXRWYWx1ZUZyb21PYmplY3QoYiwgZmllbGQpO1xuXG4gICAgICBpZiAoc3RyaW5nQSA8IHN0cmluZ0IpIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAtMSA6IDE7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdHJpbmdBID4gc3RyaW5nQikge1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IDEgOiAtMTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzTWF0Y2hlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWF0Y2hlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrRGVsaW1pdGVyc0NvbmZsaWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGVhaGVhZE11bHRpcGxlU2VhcmNoICYmIHRoaXMudHlwZWFoZWFkU2luZ2xlV29yZHNcbiAgICAgICYmICh0aGlzLmhhdmVDb21tb25DaGFyYWN0ZXJzKGAke3RoaXMudHlwZWFoZWFkUGhyYXNlRGVsaW1pdGVyc30ke3RoaXMudHlwZWFoZWFkV29yZERlbGltaXRlcnN9YCxcbiAgICAgICAgdGhpcy50eXBlYWhlYWRNdWx0aXBsZVNlYXJjaERlbGltaXRlcnMpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWxpbWl0ZXJzIHVzZWQgaW4gdHlwZWFoZWFkTXVsdGlwbGVTZWFyY2hEZWxpbWl0ZXJzIG11c3QgYmUgZGlmZmVyZW50XG4gICAgICAgICAgZnJvbSBkZWxpbWl0ZXJzIHVzZWQgaW4gdHlwZWFoZWFkV29yZERlbGltaXRlcnMgKGN1cnJlbnQgdmFsdWU6ICR7dGhpcy50eXBlYWhlYWRXb3JkRGVsaW1pdGVyc30pIGFuZFxuICAgICAgICAgIHR5cGVhaGVhZFBocmFzZURlbGltaXRlcnMgKGN1cnJlbnQgdmFsdWU6ICR7dGhpcy50eXBlYWhlYWRQaHJhc2VEZWxpbWl0ZXJzfSkuXG4gICAgICAgICAgUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uYCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhdmVDb21tb25DaGFyYWN0ZXJzKHN0cjE6IHN0cmluZywgc3RyMjogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIxLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoc3RyMS5jaGFyQXQoaSkuaW5kZXhPZihzdHIyKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport * as i0 from \"@angular/core\";\nexport class TypeaheadModule {\n static forRoot() {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService]\n };\n }\n}\nTypeaheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTypeaheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadModule, declarations: [TypeaheadContainerComponent, TypeaheadDirective], imports: [CommonModule], exports: [TypeaheadContainerComponent, TypeaheadDirective] });\nTypeaheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TypeaheadModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlYWhlYWQvdHlwZWFoZWFkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTy9ELE1BQU0sT0FBTyxlQUFlO0lBQzFCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDO1NBQ3hELENBQUM7SUFDSixDQUFDOzs0R0FOVSxlQUFlOzZHQUFmLGVBQWUsaUJBSFQsMkJBQTJCLEVBQUUsa0JBQWtCLGFBRHBELFlBQVksYUFFWiwyQkFBMkIsRUFBRSxrQkFBa0I7NkdBRWhELGVBQWUsWUFKZCxZQUFZOzJGQUliLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxrQkFBa0IsQ0FBQztvQkFDL0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsa0JBQWtCLENBQUM7aUJBQzdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFR5cGVhaGVhZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHlwZWFoZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi90eXBlYWhlYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHlwZWFoZWFkQ29udGFpbmVyQ29tcG9uZW50LCBUeXBlYWhlYWREaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtUeXBlYWhlYWRDb250YWluZXJDb21wb25lbnQsIFR5cGVhaGVhZERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVHlwZWFoZWFkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUeXBlYWhlYWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFR5cGVhaGVhZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW0NvbXBvbmVudExvYWRlckZhY3RvcnksIFBvc2l0aW9uaW5nU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC10eXBlYWhlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL25neC1ib290c3RyYXAtdHlwZWFoZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2.TypeaheadConfig"],"mappings":";;;;;;;;;;;;;;AAAY,MAAC,QAAQ,GAAG;AACxB,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,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"}
|