@openui5/sap.ui.integration 1.96.2 → 1.98.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/.reuse/dep5 +26 -31
- package/THIRDPARTY.txt +15 -21
- package/package.json +3 -3
- package/src/sap/ui/integration/.library +16 -22
- package/src/sap/ui/integration/ActionDefinition.js +2 -2
- package/src/sap/ui/integration/Designtime.js +2 -2
- package/src/sap/ui/integration/Extension.js +2 -2
- package/src/sap/ui/integration/Host.js +38 -2
- package/src/sap/ui/integration/bindingFeatures/DateRange.js +1 -1
- package/src/sap/ui/integration/cards/AdaptiveContent.js +16 -50
- package/src/sap/ui/integration/cards/AnalyticalContent.js +8 -9
- package/src/sap/ui/integration/cards/AnalyticalContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +5 -3
- package/src/sap/ui/integration/cards/AnalyticsCloudContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/BaseContent.js +56 -6
- package/src/sap/ui/integration/cards/BaseContentRenderer.js +2 -2
- package/src/sap/ui/integration/cards/BaseListContent.js +39 -69
- package/src/sap/ui/integration/cards/CalendarContent.js +16 -12
- package/src/sap/ui/integration/cards/CalendarContentRenderer.js +2 -1
- package/src/sap/ui/integration/cards/ComponentContent.js +3 -2
- package/src/sap/ui/integration/cards/ComponentContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/Footer.js +2 -2
- package/src/sap/ui/integration/cards/Header.js +3 -3
- package/src/sap/ui/integration/cards/ListContent.js +67 -23
- package/src/sap/ui/integration/cards/ListContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/NumericHeader.js +3 -3
- package/src/sap/ui/integration/cards/ObjectContent.js +353 -228
- package/src/sap/ui/integration/cards/ObjectContentRenderer.js +28 -0
- package/src/sap/ui/integration/cards/TableContent.js +6 -10
- package/src/sap/ui/integration/cards/TableContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/TimelineContent.js +10 -14
- package/src/sap/ui/integration/cards/TimelineContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/WebPageContent.js +6 -2
- package/src/sap/ui/integration/cards/WebPageContentRenderer.js +1 -1
- package/src/sap/ui/integration/cards/actions/BaseAction.js +89 -0
- package/src/sap/ui/integration/cards/actions/CardActions.js +472 -0
- package/src/sap/ui/integration/cards/actions/CustomAction.js +31 -0
- package/src/sap/ui/integration/cards/actions/DateChangeAction.js +20 -0
- package/src/sap/ui/integration/cards/actions/MonthChangeAction.js +20 -0
- package/src/sap/ui/integration/cards/actions/NavigationAction.js +63 -0
- package/src/sap/ui/integration/cards/actions/SubmitAction.js +89 -0
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +10 -10
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +3 -3
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +7 -12
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +2 -2
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputTime.js +2 -2
- package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +3 -3
- package/src/sap/ui/integration/cards/adaptivecards/elements/hostConfig.js +1 -1
- package/src/sap/ui/integration/cards/adaptivecards/overwrites/ActionRender.js +1 -1
- package/src/sap/ui/integration/cards/filters/BaseFilter.js +2 -2
- package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +63 -58
- package/src/sap/ui/integration/cards/filters/FilterBar.js +91 -0
- package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +34 -13
- package/src/sap/ui/integration/cards/filters/SearchFilter.js +95 -0
- package/src/sap/ui/integration/cards/filters/SelectFilter.js +34 -4
- package/src/sap/ui/integration/controls/ActionsStrip.js +3 -3
- package/src/sap/ui/integration/controls/ActionsToolbar.js +4 -5
- package/src/sap/ui/integration/controls/ActionsToolbarRenderer.js +1 -1
- package/src/sap/ui/integration/controls/ListContentItem.js +2 -2
- package/src/sap/ui/integration/controls/ListContentItemRenderer.js +1 -1
- package/src/sap/ui/integration/controls/Microchart.js +2 -2
- package/src/sap/ui/integration/controls/MicrochartLegend.js +2 -2
- package/src/sap/ui/integration/controls/MicrochartLegendRenderer.js +1 -1
- package/src/sap/ui/integration/customElements/CustomElementBase.js +1 -1
- package/src/sap/ui/integration/customElements/CustomElementCard.js +1 -1
- package/src/sap/ui/integration/customElements/CustomElementCardEditor.js +1 -1
- package/src/sap/ui/integration/customElements/CustomElementEditor.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_sappsd.properties +15 -11
- package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_saprigi.properties +13 -19
- package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_saptrc.properties +16 -12
- package/src/sap/ui/integration/designtime/baseEditor/layout/Form.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.fragment.xml +1 -0
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +7 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.fragment.xml +15 -0
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +116 -0
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/util/BaseDefaultValidatorModules.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/StylesheetManager.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/util/binding/resolveBinding.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/cleanupDesigntimeMetadata.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/createPromise.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/escapeParameter.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/findClosestInstance.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/hasTag.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/isTemplate.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/isValidBindingString.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsPatternMatch.js +1 -1
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +18 -3
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +2 -2
- package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +2 -2
- package/src/sap/ui/integration/designtime/cardEditor/BASEditor.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/CardEditor.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/PropertyEditor.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/PropertyEditors.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/AppConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/HeaderConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/ListCardConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/ObjectCardConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/TableCardConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/generateActionConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/generateDataConfig.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/config/index.js +13 -2
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n.properties +57 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ar.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_bg.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ca.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_cs.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_cy.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_da.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_de.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_el.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_GB.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_sappsd.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_saprigi.properties +0 -4
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_saptrc.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_es.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_es_MX.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_et.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fi.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fr.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fr_CA.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hi.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hr.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hu.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_id.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_it.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_iw.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ja.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_kk.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ko.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_lt.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_lv.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ms.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_nl.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_no.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pl.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pt.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pt_PT.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ro.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ru.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sh.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sk.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sl.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sv.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_th.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_tr.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_uk.properties +41 -1
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_vi.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_zh_CN.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_zh_TW.properties +40 -0
- package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +62 -4
- package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +2 -2
- package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +218 -0
- package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +2 -2
- package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +2 -2
- package/src/sap/ui/integration/designtime/cardEditor/util/CommonPatterns.js +1 -1
- package/src/sap/ui/integration/designtime/cardEditor/validator/IsPatternMatchList.js +1 -1
- package/src/sap/ui/integration/designtime/editor/CardEditor.js +53 -4
- package/src/sap/ui/integration/designtime/editor/CardPreview.js +31 -11
- package/src/sap/ui/integration/designtime/editor/css/CardPreview.css +18 -1
- package/src/sap/ui/integration/editor/Editor.js +219 -209
- package/src/sap/ui/integration/editor/EditorResourceBundles.js +43 -32
- package/src/sap/ui/integration/editor/Extension.js +2 -2
- package/src/sap/ui/integration/editor/Manifest.js +3 -3
- package/src/sap/ui/integration/editor/Merger.js +1 -19
- package/src/sap/ui/integration/editor/Settings.js +10 -6
- package/src/sap/ui/integration/editor/css/Editor.css +22 -0
- package/src/sap/ui/integration/editor/fields/BaseField.js +9 -12
- package/src/sap/ui/integration/editor/fields/BooleanField.js +4 -2
- package/src/sap/ui/integration/editor/fields/DateField.js +2 -2
- package/src/sap/ui/integration/editor/fields/DateTimeField.js +2 -2
- package/src/sap/ui/integration/editor/fields/DestinationField.js +2 -2
- package/src/sap/ui/integration/editor/fields/IntegerField.js +5 -2
- package/src/sap/ui/integration/editor/fields/ListField.js +274 -62
- package/src/sap/ui/integration/editor/fields/NumberField.js +2 -2
- package/src/sap/ui/integration/editor/fields/StringField.js +85 -53
- package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +10 -30
- package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +2 -4
- package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +2 -4
- package/src/sap/ui/integration/editor/languages.json +2 -2
- package/src/sap/ui/integration/formatters/DateTimeFormatter.js +1 -1
- package/src/sap/ui/integration/formatters/IconFormatter.js +1 -1
- package/src/sap/ui/integration/formatters/NumberFormatter.js +1 -1
- package/src/sap/ui/integration/formatters/TextFormatter.js +1 -1
- package/src/sap/ui/integration/library-bootstrap.js +1 -1
- package/src/sap/ui/integration/library.js +21 -4
- package/src/sap/ui/integration/messagebundle_ar.properties +4 -0
- package/src/sap/ui/integration/messagebundle_bg.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ca.properties +4 -0
- package/src/sap/ui/integration/messagebundle_cs.properties +4 -0
- package/src/sap/ui/integration/messagebundle_cy.properties +4 -0
- package/src/sap/ui/integration/messagebundle_da.properties +4 -0
- package/src/sap/ui/integration/messagebundle_de.properties +4 -0
- package/src/sap/ui/integration/messagebundle_el.properties +4 -0
- package/src/sap/ui/integration/messagebundle_en.properties +4 -0
- package/src/sap/ui/integration/messagebundle_en_GB.properties +4 -0
- package/src/sap/ui/integration/messagebundle_en_US_sappsd.properties +4 -0
- package/src/sap/ui/integration/messagebundle_en_US_saprigi.properties +55 -81
- package/src/sap/ui/integration/messagebundle_en_US_saptrc.properties +4 -0
- package/src/sap/ui/integration/messagebundle_es.properties +4 -0
- package/src/sap/ui/integration/messagebundle_es_MX.properties +4 -0
- package/src/sap/ui/integration/messagebundle_et.properties +4 -0
- package/src/sap/ui/integration/messagebundle_fi.properties +4 -0
- package/src/sap/ui/integration/messagebundle_fr.properties +4 -0
- package/src/sap/ui/integration/messagebundle_fr_CA.properties +4 -0
- package/src/sap/ui/integration/messagebundle_hi.properties +4 -0
- package/src/sap/ui/integration/messagebundle_hr.properties +4 -0
- package/src/sap/ui/integration/messagebundle_hu.properties +4 -0
- package/src/sap/ui/integration/messagebundle_id.properties +4 -0
- package/src/sap/ui/integration/messagebundle_it.properties +4 -0
- package/src/sap/ui/integration/messagebundle_iw.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ja.properties +4 -0
- package/src/sap/ui/integration/messagebundle_kk.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ko.properties +4 -0
- package/src/sap/ui/integration/messagebundle_lt.properties +4 -0
- package/src/sap/ui/integration/messagebundle_lv.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ms.properties +4 -0
- package/src/sap/ui/integration/messagebundle_nl.properties +4 -0
- package/src/sap/ui/integration/messagebundle_no.properties +4 -0
- package/src/sap/ui/integration/messagebundle_pl.properties +4 -0
- package/src/sap/ui/integration/messagebundle_pt.properties +4 -0
- package/src/sap/ui/integration/messagebundle_pt_PT.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ro.properties +4 -0
- package/src/sap/ui/integration/messagebundle_ru.properties +4 -0
- package/src/sap/ui/integration/messagebundle_sh.properties +4 -0
- package/src/sap/ui/integration/messagebundle_sk.properties +4 -0
- package/src/sap/ui/integration/messagebundle_sl.properties +4 -0
- package/src/sap/ui/integration/messagebundle_sv.properties +4 -0
- package/src/sap/ui/integration/messagebundle_th.properties +4 -0
- package/src/sap/ui/integration/messagebundle_tr.properties +4 -0
- package/src/sap/ui/integration/messagebundle_uk.properties +4 -0
- package/src/sap/ui/integration/messagebundle_vi.properties +4 -0
- package/src/sap/ui/integration/messagebundle_zh_CN.properties +4 -0
- package/src/sap/ui/integration/messagebundle_zh_TW.properties +4 -0
- package/src/sap/ui/integration/model/ContextModel.js +3 -3
- package/src/sap/ui/integration/model/ObservableModel.js +2 -2
- package/src/sap/ui/integration/sap-ui-integration-config.js +1 -1
- package/src/sap/ui/integration/sap-ui-integration-define-nojQuery.js +1 -1
- package/src/sap/ui/integration/schemas/sap-card.json +195 -8
- package/src/sap/ui/integration/services/Data.js +1 -1
- package/src/sap/ui/integration/services/Navigation.js +1 -1
- package/src/sap/ui/integration/services/Service.js +1 -1
- package/src/sap/ui/integration/themes/base/CalendarContent.less +31 -4
- package/src/sap/ui/integration/themes/base/ObjectContent.less +57 -9
- package/src/sap/ui/integration/themes/base/library.source.less +1 -1
- package/src/sap/ui/integration/themes/sap_hcb/library.source.less +1 -1
- package/src/sap/ui/integration/thirdparty/adaptive-expressions.js +1 -0
- package/src/sap/ui/integration/thirdparty/adaptivecards-templating.js +660 -952
- package/src/sap/ui/integration/thirdparty/markdown-it.js +8340 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/bundle.esm.js +27 -102
- package/src/sap/ui/integration/thirdparty/webcomponents/bundle.esm.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ar-8f9ad94e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ar-8f9ad94e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ar-f6792d81.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ar-f6792d81.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_bg-39f4bd50.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_bg-39f4bd50.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_bg-884d46bd.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_bg-884d46bd.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ca-5b6cc3e2.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ca-5b6cc3e2.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ca-d12c1ceb.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ca-d12c1ceb.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cs-307b7f69.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cs-307b7f69.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cs-c7ed5c29.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cs-c7ed5c29.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cy-0f578e7e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cy-0f578e7e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cy-9889d6f0.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cy-9889d6f0.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_da-53593542.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_da-53593542.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_da-6bb7d77b.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_da-6bb7d77b.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_de-0376c479.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_de-0376c479.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_de-eb501c07.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_de-eb501c07.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_el-45d1c326.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_el-45d1c326.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_el-e1955d32.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_el-e1955d32.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en-3bc10a88.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en-3bc10a88.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en-e41c44ec.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en-e41c44ec.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_GB-963f5beb.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_GB-963f5beb.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_GB-a4723c29.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_GB-a4723c29.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_sappsd-10d3b264.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_sappsd-10d3b264.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_sappsd-9cf5ba75.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_sappsd-9cf5ba75.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saprigi-00c865df.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saprigi-00c865df.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saprigi-8a51ede2.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saprigi-8a51ede2.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saptrc-ac48007a.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saptrc-ac48007a.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saptrc-ae1a6e4a.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_en_US_saptrc-ae1a6e4a.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es-1fe90167.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es-1fe90167.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es-288d5c23.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es-288d5c23.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es_MX-4f1305df.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es_MX-4f1305df.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es_MX-b984b6dc.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es_MX-b984b6dc.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_et-a0061a71.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_et-a0061a71.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_et-c96b504c.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_et-c96b504c.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fi-27edc9b8.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fi-27edc9b8.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fi-c943134b.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fi-c943134b.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr-16c1c577.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr-16c1c577.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr-6265990a.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr-6265990a.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr_CA-60f6fce4.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr_CA-60f6fce4.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr_CA-c0eae649.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr_CA-c0eae649.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hi-3c753818.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hi-3c753818.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hi-c4029409.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hi-c4029409.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hr-49952683.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hr-49952683.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hr-f5eadd90.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hr-f5eadd90.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hu-9eaeaf2e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hu-9eaeaf2e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hu-d57d2bfc.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hu-d57d2bfc.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_in-5f15c5a1.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_in-5f15c5a1.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_in-69efcc93.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_in-69efcc93.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_it-0b408aea.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_it-0b408aea.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_it-51d189db.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_it-51d189db.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_iw-6db571be.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_iw-6db571be.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_iw-71f66463.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_iw-71f66463.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ja-5b3dd502.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ja-5b3dd502.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ja-9c40042d.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ja-9c40042d.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_kk-b620a07a.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_kk-b620a07a.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_kk-c393c4a9.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_kk-c393c4a9.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ko-4be67a77.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ko-4be67a77.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ko-632e4f9f.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ko-632e4f9f.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lt-56b41ac8.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lt-56b41ac8.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lt-daa86622.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lt-daa86622.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lv-54381557.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lv-54381557.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lv-c58db769.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lv-c58db769.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ms-536227b5.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ms-536227b5.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ms-54fe878e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ms-54fe878e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_nl-56e48e33.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_nl-56e48e33.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_nl-71b1c190.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_nl-71b1c190.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_no-5ae816d9.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_no-5ae816d9.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_no-eecb1eec.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_no-eecb1eec.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pl-bd30a402.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pl-bd30a402.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pl-dd8107e1.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pl-dd8107e1.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt-026877c7.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt-026877c7.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt-9e9f924f.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt-9e9f924f.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt_PT-2c6cce63.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt_PT-2c6cce63.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt_PT-a24258d4.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt_PT-a24258d4.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ro-0dbe572d.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ro-0dbe572d.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ro-767b0e99.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ro-767b0e99.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ru-4291aa7d.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ru-4291aa7d.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ru-b3537542.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ru-b3537542.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sh-4047dcd1.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sh-4047dcd1.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sh-806e8ca0.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sh-806e8ca0.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sk-57daf6b1.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sk-57daf6b1.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sk-fd3049d8.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sk-fd3049d8.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sl-586b310b.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sl-586b310b.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sl-71a84189.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sl-71a84189.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sv-1796a5d2.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sv-1796a5d2.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sv-d6d000eb.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sv-d6d000eb.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_th-63398540.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_th-63398540.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_th-79715cf0.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_th-79715cf0.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_tr-c378e505.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_tr-c378e505.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_tr-f32e601b.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_tr-f32e601b.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_uk-70daf763.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_uk-70daf763.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_uk-99b5589a.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_uk-99b5589a.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_vi-3f36f453.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_vi-3f36f453.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_vi-c9a9277d.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_vi-c9a9277d.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_CN-2420a6e9.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_CN-2420a6e9.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_CN-748178a2.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_CN-748178a2.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_TW-91e89b06.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_TW-91e89b06.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_TW-ffef9f6e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_TW-ffef9f6e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-0c3377c5.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-0c3377c5.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-16ed5ab0.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-16ed5ab0.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-2b80e11c.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-2b80e11c.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-324b2fcc.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-324b2fcc.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-4809f843.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-4809f843.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-5338149e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-5338149e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-55dcf53d.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-55dcf53d.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-55e683ed.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-55e683ed.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-5bc2c0de.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-5bc2c0de.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-7bc1fa16.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-7bc1fa16.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-7f593c6e.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-7f593c6e.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-826107f5.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-826107f5.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-8b95ce95.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-8b95ce95.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-a003a2e2.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-a003a2e2.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-ab3e8649.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-ab3e8649.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-bfa33d93.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-bfa33d93.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-dec4feca.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-dec4feca.js.map +1 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-fb5a25ab.js +2 -0
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css-fb5a25ab.js.map +1 -0
- package/src/sap/ui/integration/util/BaseFactory.js +2 -2
- package/src/sap/ui/integration/util/BindingHelper.js +6 -4
- package/src/sap/ui/integration/util/BindingResolver.js +6 -5
- package/src/sap/ui/integration/util/CacheAndRequestDataProvider.js +1 -1
- package/src/sap/ui/integration/util/CardMerger.js +7 -18
- package/src/sap/ui/integration/util/CardObserver.js +2 -2
- package/src/sap/ui/integration/util/ContentFactory.js +5 -9
- package/src/sap/ui/integration/util/CsrfTokenHandler.js +296 -0
- package/src/sap/ui/integration/util/DataProvider.js +11 -2
- package/src/sap/ui/integration/util/DataProviderFactory.js +49 -12
- package/src/sap/ui/integration/util/Destinations.js +2 -2
- package/src/sap/ui/integration/util/ExtensionDataProvider.js +2 -2
- package/src/sap/ui/integration/util/HeaderFactory.js +3 -3
- package/src/sap/ui/integration/util/JSONBindingHelper.js +3 -3
- package/src/sap/ui/integration/util/LoadingProvider.js +2 -2
- package/src/sap/ui/integration/util/Manifest.js +4 -4
- package/src/sap/ui/integration/util/ManifestResolver.js +99 -0
- package/src/sap/ui/integration/util/ParameterMap.js +1 -1
- package/src/sap/ui/integration/util/RequestDataProvider.js +88 -50
- package/src/sap/ui/integration/util/ServiceDataProvider.js +2 -2
- package/src/sap/ui/integration/util/ServiceManager.js +2 -2
- package/src/sap/ui/integration/util/SkeletonCard.js +50 -0
- package/src/sap/ui/integration/util/Utils.js +74 -2
- package/src/sap/ui/integration/util/loadCardEditor.js +1 -1
- package/src/sap/ui/integration/widgets/Card.js +67 -20
- package/src/sap/ui/integration/widgets/CardRenderer.js +1 -7
- package/src/sap-ui-integration-card-editor.js +1 -1
- package/src/sap-ui-integration-editor.js +1 -1
- package/src/sap-ui-integration.js +1 -1
- package/ui5.yaml +288 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/Unicode-Data-Files-LICENSE.txt +0 -27
- package/src/sap/ui/integration/thirdparty/webcomponents/ar.43441c1da168c24d.json +0 -5906
- package/src/sap/ui/integration/thirdparty/webcomponents/ar_EG.2c9d7bc8c6cc480e.json +0 -5906
- package/src/sap/ui/integration/thirdparty/webcomponents/ar_SA.5a58dac7851f3491.json +0 -5906
- package/src/sap/ui/integration/thirdparty/webcomponents/bg.ed8d32010cf321a6.json +0 -4979
- package/src/sap/ui/integration/thirdparty/webcomponents/bundle.es5.js +0 -212
- package/src/sap/ui/integration/thirdparty/webcomponents/ca.e7ad42298985cd11.json +0 -4996
- package/src/sap/ui/integration/thirdparty/webcomponents/cs.9c679acdc4b03e38.json +0 -5498
- package/src/sap/ui/integration/thirdparty/webcomponents/da.ba9951ef39b201a6.json +0 -4888
- package/src/sap/ui/integration/thirdparty/webcomponents/de.6caccc36abcd1ecf.json +0 -4916
- package/src/sap/ui/integration/thirdparty/webcomponents/de_AT.0f4ffe37737725a0.json +0 -4917
- package/src/sap/ui/integration/thirdparty/webcomponents/de_CH.c148cbc7ceb1a7a5.json +0 -4915
- package/src/sap/ui/integration/thirdparty/webcomponents/el.11c4c67dcb9fadcc.json +0 -4883
- package/src/sap/ui/integration/thirdparty/webcomponents/el_CY.ed3bddd6e79dc343.json +0 -4883
- package/src/sap/ui/integration/thirdparty/webcomponents/en.c4465af466100b5b.json +0 -4970
- package/src/sap/ui/integration/thirdparty/webcomponents/en_AU.5cb9fccc9ce24663.json +0 -4962
- package/src/sap/ui/integration/thirdparty/webcomponents/en_GB.e31daeeb57c2f1d1.json +0 -4971
- package/src/sap/ui/integration/thirdparty/webcomponents/en_HK.0a22405bb092bec2.json +0 -4977
- package/src/sap/ui/integration/thirdparty/webcomponents/en_IE.6a062df10dabdb1c.json +0 -4971
- package/src/sap/ui/integration/thirdparty/webcomponents/en_IN.bfd20b07e9079267.json +0 -4972
- package/src/sap/ui/integration/thirdparty/webcomponents/en_NZ.18303e8298e4752a.json +0 -4971
- package/src/sap/ui/integration/thirdparty/webcomponents/en_PG.9f604c968f3ab77e.json +0 -4972
- package/src/sap/ui/integration/thirdparty/webcomponents/en_SG.cc59a6a409e1617e.json +0 -4973
- package/src/sap/ui/integration/thirdparty/webcomponents/en_ZA.198f9641a502d660.json +0 -4972
- package/src/sap/ui/integration/thirdparty/webcomponents/es.c10bf80f473caf30.json +0 -4912
- package/src/sap/ui/integration/thirdparty/webcomponents/es_AR.7708d7dd7a6d2a15.json +0 -4914
- package/src/sap/ui/integration/thirdparty/webcomponents/es_BO.4a1616d9f3425fba.json +0 -4913
- package/src/sap/ui/integration/thirdparty/webcomponents/es_CL.5637126713317a15.json +0 -4914
- package/src/sap/ui/integration/thirdparty/webcomponents/es_CO.c9436572ca8f4da8.json +0 -4913
- package/src/sap/ui/integration/thirdparty/webcomponents/es_MX.b4bce7dc951eb8f4.json +0 -4915
- package/src/sap/ui/integration/thirdparty/webcomponents/es_PE.65f448fde1f0de13.json +0 -4913
- package/src/sap/ui/integration/thirdparty/webcomponents/es_UY.9ec44031491e9b95.json +0 -4915
- package/src/sap/ui/integration/thirdparty/webcomponents/es_VE.152233c7f57ecdab.json +0 -4914
- package/src/sap/ui/integration/thirdparty/webcomponents/et.bbc93e8a17832e8f.json +0 -4967
- package/src/sap/ui/integration/thirdparty/webcomponents/fa.083b927b3586b3a3.json +0 -4883
- package/src/sap/ui/integration/thirdparty/webcomponents/fi.1b4c89f38783556e.json +0 -5008
- package/src/sap/ui/integration/thirdparty/webcomponents/fr.ddbb9df1e0bdb6ac.json +0 -4979
- package/src/sap/ui/integration/thirdparty/webcomponents/fr_BE.bf3609280b7b93ee.json +0 -4979
- package/src/sap/ui/integration/thirdparty/webcomponents/fr_CA.b64d0bcd23a5cd3e.json +0 -4973
- package/src/sap/ui/integration/thirdparty/webcomponents/fr_CH.349b221a02887244.json +0 -4997
- package/src/sap/ui/integration/thirdparty/webcomponents/fr_LU.ef7d7c8bb3328d28.json +0 -4979
- package/src/sap/ui/integration/thirdparty/webcomponents/he.d628e8bf13a8a2c8.json +0 -5378
- package/src/sap/ui/integration/thirdparty/webcomponents/hi.cc34df8229f656f5.json +0 -4829
- package/src/sap/ui/integration/thirdparty/webcomponents/hr.c920290f50173516.json +0 -4919
- package/src/sap/ui/integration/thirdparty/webcomponents/hu.2d9fa4a9163cd7c0.json +0 -4856
- package/src/sap/ui/integration/thirdparty/webcomponents/id.163fdd2a7dbd1dd3.json +0 -4658
- package/src/sap/ui/integration/thirdparty/webcomponents/it.b5acbefdd6794dfc.json +0 -4950
- package/src/sap/ui/integration/thirdparty/webcomponents/it_CH.ade4cbfb2e49424a.json +0 -4950
- package/src/sap/ui/integration/thirdparty/webcomponents/ja.d882fade5c3e04b5.json +0 -4830
- package/src/sap/ui/integration/thirdparty/webcomponents/kk.ab96b18c66676a99.json +0 -4725
- package/src/sap/ui/integration/thirdparty/webcomponents/ko.a0d63a1580dcbefd.json +0 -4738
- package/src/sap/ui/integration/thirdparty/webcomponents/lt.93bb00f91a74d613.json +0 -5481
- package/src/sap/ui/integration/thirdparty/webcomponents/lv.3c272216d7d4d61c.json +0 -5112
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ar.d20c665dc46a6f9b.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_bg.38428028ff3b1869.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ca.c46423cc94896604.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cs.d9d68b2690954b4e.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_cy.facf33e921a1a902.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_da.1189e997523b89f6.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_de.1edf86f620dd657a.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_el.b0d02877b9366e9a.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es.43fc364a8be37449.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_es_MX.ebf2828c83c4821a.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_et.8f9abcfab5eb10c2.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fi.6fc14fd0d16cc223.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr.c686ab9036b91d78.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_fr_CA.fb1250c736f2ac8c.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hi.8b8cbc4fb282adf6.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hr.bb811aa76359724a.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_hu.18417ced7dce8cf7.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_in.e3c5681fc8917143.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_it.554f904c106ab069.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_iw.487febe0c5c504ff.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ja.68cf1fa9f03cd6c3.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_kk.36e63b8f9e1fd98f.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ko.fb000c7a35009d21.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lt.6acd357e3eb3f54e.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_lv.3ffdda1a20bc15ec.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ms.218aa30a3e8f58fa.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_nl.f753744c7e08b3a5.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_no.385f0fc9f2e49ab5.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pl.6c42672479ad9687.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt.ede162cbf79f7fca.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_pt_PT.dcaa871d6b8eec75.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ro.d3f32654c57588ea.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_ru.0ec083b64484a12d.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sh.98cd3e4299919a30.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sk.fddb8b9e7b70fc1d.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sl.c55d5f817482ea06.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_sv.6d855a11d20b4335.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_th.e791b9a81f16120c.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_tr.ce83741e39606b55.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_uk.e1ea822764025a5a.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_vi.7ee7339211750379.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_CN.0cfd71faba640211.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/messagebundle_zh_TW.bc718e0187728a16.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/ms.e26b54937e5d1516.json +0 -4515
- package/src/sap/ui/integration/thirdparty/webcomponents/nb.a6e9993590a73989.json +0 -4977
- package/src/sap/ui/integration/thirdparty/webcomponents/nl.cac914c3529b7b01.json +0 -4884
- package/src/sap/ui/integration/thirdparty/webcomponents/nl_BE.a3ac6f9f99feba7b.json +0 -4884
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.34f9ef46a8f6a852.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.52d78e00faad9126.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.6c6e759e0d3534d0.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.8cc66e917327b7a4.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.966b2e43c0966351.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.97725b2cf4e77494.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.b1bf75f0b850363c.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.d164773ecb392b28.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.def3978aa5de7b11.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.dfd19a1252497415.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.e19065174fdd4592.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/parameters-bundle.css.e2ac94de83159e1e.json +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/pl.2cc1c94da23f8c37.json +0 -5176
- package/src/sap/ui/integration/thirdparty/webcomponents/pt.fc8dd9656bc363a4.json +0 -4805
- package/src/sap/ui/integration/thirdparty/webcomponents/pt_PT.be31b641eedfdb48.json +0 -4940
- package/src/sap/ui/integration/thirdparty/webcomponents/ro.fc6a48bc63cf435e.json +0 -5090
- package/src/sap/ui/integration/thirdparty/webcomponents/ru.77f0de46b3b490b1.json +0 -5407
- package/src/sap/ui/integration/thirdparty/webcomponents/ru_UA.4c4e0034fbd799c6.json +0 -5407
- package/src/sap/ui/integration/thirdparty/webcomponents/sk.0d62a8cca83c1dec.json +0 -5370
- package/src/sap/ui/integration/thirdparty/webcomponents/sl.7b303551cc238560.json +0 -5340
- package/src/sap/ui/integration/thirdparty/webcomponents/sr.7fb9ac6ed054ff7d.json +0 -5126
- package/src/sap/ui/integration/thirdparty/webcomponents/sv.6ea04dfd8d1c331b.json +0 -5011
- package/src/sap/ui/integration/thirdparty/webcomponents/th.8e8d734a66ed1c51.json +0 -4797
- package/src/sap/ui/integration/thirdparty/webcomponents/tr.dbb9aa836fc4e3f5.json +0 -4979
- package/src/sap/ui/integration/thirdparty/webcomponents/uk.4854089f0c12f77c.json +0 -5353
- package/src/sap/ui/integration/thirdparty/webcomponents/vi.e6ffbde0643d7d75.json +0 -4673
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-ce.js +0 -73
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -336
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -221
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd.js +0 -169
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/src/sap/ui/integration/thirdparty/webcomponents/webcomponentsjs/webcomponents-loader.js +0 -185
- package/src/sap/ui/integration/thirdparty/webcomponents/zh_CN.6607a3e9e0901e53.json +0 -4632
- package/src/sap/ui/integration/thirdparty/webcomponents/zh_HK.1c2563d3e4dad56e.json +0 -4640
- package/src/sap/ui/integration/thirdparty/webcomponents/zh_SG.db7f1334eecf894d.json +0 -4640
- package/src/sap/ui/integration/thirdparty/webcomponents/zh_TW.a1d00dd87c58d8f0.json +0 -4728
- package/src/sap/ui/integration/util/CardActions.js +0 -551
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.esm.js","sources":["../../ui5-webcomponents/packages/base/dist/EventProvider.js","../../ui5-webcomponents/packages/base/dist/util/setToArray.js","../../ui5-webcomponents/packages/base/dist/CustomElementsRegistry.js","../../ui5-webcomponents/packages/base/dist/locale/RTLAwareRegistry.js","../../ui5-webcomponents/packages/base/dist/Render.js","../../ui5-webcomponents/packages/base/dist/RenderQueue.js","../../ui5-webcomponents/packages/base/dist/util/getSingletonElementInstance.js","../../ui5-webcomponents/packages/base/dist/getSharedResource.js","../../ui5-webcomponents/packages/base/dist/theming/CustomStyle.js","../../ui5-webcomponents/packages/base/dist/theming/ThemeLoaded.js","../wc-boot-config.js","../../ui5-webcomponents/packages/base/dist/FeaturesRegistry.js","../../ui5-webcomponents/packages/base/dist/thirdparty/isPlainObject.js","../../ui5-webcomponents/packages/base/dist/thirdparty/_merge.js","../../ui5-webcomponents/packages/base/dist/thirdparty/merge.js","../../ui5-webcomponents/packages/base/dist/generated/AssetParameters.js","../../ui5-webcomponents/packages/base/dist/InitialConfiguration.js","../../ui5-webcomponents/packages/base/dist/asset-registries/Themes.js","../../ui5-webcomponents/packages/base/dist/util/createStyleInHead.js","../../ui5-webcomponents/packages/base/dist/ManagedStyles.js","../../ui5-webcomponents/packages/base/dist/theming/getThemeDesignerTheme.js","../../ui5-webcomponents/packages/base/dist/theming/applyTheme.js","../../ui5-webcomponents/packages/base/dist/config/Theme.js","../../ui5-webcomponents/packages/base/dist/util/getActiveElement.js","../../ui5-webcomponents/packages/base/dist/util/PopupUtils.js","../../ui5-webcomponents/packages/base/dist/features/OpenUI5Support.js","../../ui5-webcomponents/packages/base/dist/generated/css/FontFace.css.js","../../ui5-webcomponents/packages/base/dist/generated/css/OverrideFontFace.css.js","../../ui5-webcomponents/packages/base/dist/FontFace.js","../../ui5-webcomponents/packages/base/dist/generated/css/SystemCSSVars.css.js","../../ui5-webcomponents/packages/base/dist/Boot.js","../../ui5-webcomponents/packages/base/dist/util/whenDOMReady.js","../../ui5-webcomponents/packages/base/dist/SystemCSSVars.js","../../ui5-webcomponents/packages/base/dist/types/DataType.js","../../ui5-webcomponents/packages/base/dist/util/isDescendantOf.js","../../ui5-webcomponents/packages/base/dist/util/StringHelper.js","../../ui5-webcomponents/packages/base/dist/util/SlotsHelper.js","../../ui5-webcomponents/packages/base/dist/CustomElementsScope.js","../../ui5-webcomponents/packages/base/dist/UI5ElementMetadata.js","../../ui5-webcomponents/packages/base/dist/StaticArea.js","../../ui5-webcomponents/packages/base/dist/renderer/executeTemplate.js","../../ui5-webcomponents/packages/base/dist/theming/getStylesString.js","../../ui5-webcomponents/packages/base/dist/theming/getEffectiveStyle.js","../../ui5-webcomponents/packages/base/dist/theming/getConstructableStyle.js","../../ui5-webcomponents/packages/base/dist/isLegacyBrowser.js","../../ui5-webcomponents/packages/base/dist/updateShadowRoot.js","../../ui5-webcomponents/packages/base/dist/util/getEffectiveContentDensity.js","../../ui5-webcomponents/packages/base/dist/locale/languageChange.js","../../ui5-webcomponents/packages/base/dist/config/Language.js","../../ui5-webcomponents/packages/base/dist/util/getDesigntimePropertyAsArray.js","../../ui5-webcomponents/packages/base/dist/util/detectNavigatorLanguage.js","../../ui5-webcomponents/packages/base/dist/config/RTL.js","../../ui5-webcomponents/packages/base/dist/locale/getEffectiveDir.js","../../ui5-webcomponents/packages/base/dist/StaticAreaItem.js","../../ui5-webcomponents/packages/base/dist/DOMObserver.js","../../ui5-webcomponents/packages/base/dist/config/NoConflict.js","../../ui5-webcomponents/packages/base/dist/util/isValidPropertyName.js","../../ui5-webcomponents/packages/base/dist/util/arraysAreEqual.js","../../ui5-webcomponents/packages/base/dist/util/getClassCopy.js","../../ui5-webcomponents/packages/base/dist/UI5Element.js","../../ui5-webcomponents/node_modules/lit-html/lit-html.js","../../ui5-webcomponents/node_modules/lit-html/static.js","../../ui5-webcomponents/node_modules/lit-html/directive.js","../../ui5-webcomponents/node_modules/lit-html/directive-helpers.js","../../ui5-webcomponents/node_modules/lit-html/directives/repeat.js","../../ui5-webcomponents/node_modules/lit-html/directives/class-map.js","../../ui5-webcomponents/packages/base/dist/renderer/directives/style-map.js","../../ui5-webcomponents/node_modules/lit-html/directives/if-defined.js","../../ui5-webcomponents/node_modules/lit-html/directives/unsafe-html.js","../../ui5-webcomponents/packages/base/dist/renderer/LitRenderer.js","../../ui5-webcomponents/packages/base/dist/Keys.js","../../ui5-webcomponents/packages/base/dist/locale/Locale.js","../../ui5-webcomponents/packages/base/dist/locale/getLocale.js","../../ui5-webcomponents/packages/base/dist/locale/normalizeLocale.js","../../ui5-webcomponents/packages/base/dist/locale/nextFallbackLocale.js","../../ui5-webcomponents/packages/base/dist/asset-registries/i18n.js","../../ui5-webcomponents/packages/base/dist/util/formatMessage.js","../../ui5-webcomponents/packages/base/dist/i18nBundle.js","../../ui5-webcomponents/packages/base/dist/Device.js","../../ui5-webcomponents/packages/main/dist/types/ButtonDesign.js","../../ui5-webcomponents/packages/main/dist/generated/templates/ButtonTemplate.lit.js","../../ui5-webcomponents/packages/base/dist/assets-meta/IconCollectionsAlias.js","../../ui5-webcomponents/packages/base/dist/asset-registries/Icons.js","../../ui5-webcomponents/packages/main/dist/generated/templates/IconTemplate.lit.js","../../ui5-webcomponents/packages/theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Icon.css.js","../../ui5-webcomponents/packages/main/dist/Icon.js","../../ui5-webcomponents/packages/main/dist/generated/i18n/i18n-defaults.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Button.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Button.ie11.css.js","../../ui5-webcomponents/packages/main/dist/Button.js","../../ui5-webcomponents/packages/base/dist/types/ValueState.js","../../ui5-webcomponents/packages/icons/dist/v5/accept.js","../../ui5-webcomponents/packages/icons/dist/v4/accept.js","../../ui5-webcomponents/packages/icons/dist/accept.js","../../ui5-webcomponents/packages/main/dist/types/WrappingType.js","../../ui5-webcomponents/packages/main/dist/generated/templates/LabelTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Label.css.js","../../ui5-webcomponents/packages/main/dist/Label.js","../../ui5-webcomponents/packages/main/dist/generated/templates/CheckBoxTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/CheckBox.css.js","../../ui5-webcomponents/packages/main/dist/CheckBox.js","../../ui5-webcomponents/packages/base/dist/delegate/ResizeHandler.js","../../ui5-webcomponents/packages/base/dist/types/Integer.js","../../ui5-webcomponents/packages/base/dist/util/findNodeOwner.js","../../ui5-webcomponents/packages/base/dist/util/AriaLabelHelper.js","../../ui5-webcomponents/packages/icons/dist/generated/i18n/i18n-defaults.js","../../ui5-webcomponents/packages/icons/dist/v5/decline.js","../../ui5-webcomponents/packages/icons/dist/v4/decline.js","../../ui5-webcomponents/packages/icons/dist/decline.js","../../ui5-webcomponents/packages/icons/dist/v5/not-editable.js","../../ui5-webcomponents/packages/icons/dist/v4/not-editable.js","../../ui5-webcomponents/packages/icons/dist/not-editable.js","../../ui5-webcomponents/packages/main/dist/types/InputType.js","../../ui5-webcomponents/packages/base/dist/util/clamp.js","../../ui5-webcomponents/packages/base/dist/util/isNodeHidden.js","../../ui5-webcomponents/packages/base/dist/util/isNodeClickable.js","../../ui5-webcomponents/packages/base/dist/util/FocusableElements.js","../../ui5-webcomponents/packages/main/dist/generated/templates/PopupTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/PopupBlockLayerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/popup-utils/OpenedPopupsRegistry.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Popup.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/PopupStaticAreaStyles.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/PopupGlobal.css.js","../../ui5-webcomponents/packages/main/dist/Popup.js","../../ui5-webcomponents/packages/main/dist/types/PopoverPlacementType.js","../../ui5-webcomponents/packages/main/dist/types/PopoverVerticalAlign.js","../../ui5-webcomponents/packages/main/dist/types/PopoverHorizontalAlign.js","../../ui5-webcomponents/packages/main/dist/popup-utils/PopoverRegistry.js","../../ui5-webcomponents/packages/main/dist/generated/templates/PopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/BrowserScrollbar.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/PopupsCommon.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Popover.css.js","../../ui5-webcomponents/packages/main/dist/Popover.js","../../ui5-webcomponents/packages/main/dist/generated/templates/InputTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/InputPopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Input.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/ResponsivePopoverCommon.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/ValueStateMessage.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Suggestions.css.js","../../ui5-webcomponents/packages/main/dist/Input.js","../../ui5-webcomponents/packages/base/dist/util/Caret.js","../../ui5-webcomponents/packages/base/dist/types/Float.js","../../ui5-webcomponents/packages/main/dist/generated/templates/StepInputTemplate.lit.js","../../ui5-webcomponents/packages/icons/dist/v5/less.js","../../ui5-webcomponents/packages/icons/dist/v4/less.js","../../ui5-webcomponents/packages/icons/dist/less.js","../../ui5-webcomponents/packages/icons/dist/v5/add.js","../../ui5-webcomponents/packages/icons/dist/v4/add.js","../../ui5-webcomponents/packages/icons/dist/add.js","../../ui5-webcomponents/packages/main/dist/generated/themes/StepInput.css.js","../../ui5-webcomponents/packages/main/dist/StepInput.js","../../ui5-webcomponents/packages/base/dist/types/CalendarType.js","../../ui5-webcomponents/packages/base/dist/config/CalendarType.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/Core.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/ObjectPath.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/now.js","../../ui5-webcomponents/packages/localization/dist/sap/base/Log.js","../../ui5-webcomponents/packages/localization/dist/sap/base/assert.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/array/uniqueSort.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/base/Metadata.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/base/Object.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/isPlainObject.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/_merge.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/extend.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/CalendarType.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/Locale.js","../../ui5-webcomponents/packages/base/dist/asset-registries/LocaleData.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/LoaderExtensions.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/LocaleData.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/_Calendars.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/UniversalDate.js","../../ui5-webcomponents/packages/localization/dist/dates/CalendarDate.js","../../ui5-webcomponents/packages/localization/dist/dates/modifyDateBy.js","../../ui5-webcomponents/packages/localization/dist/dates/getTodayUTCTimestamp.js","../../ui5-webcomponents/packages/icons/dist/v5/appointment-2.js","../../ui5-webcomponents/packages/icons/dist/v4/appointment-2.js","../../ui5-webcomponents/packages/icons/dist/appointment-2.js","../../ui5-webcomponents/packages/localization/dist/sap/base/util/deepEqual.js","../../ui5-webcomponents/packages/localization/dist/sap/base/strings/formatMessage.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/format/DateFormat.js","../../ui5-webcomponents/packages/localization/dist/getCachedLocaleDataInstance.js","../../ui5-webcomponents/packages/localization/dist/dates/ExtremeDates.js","../../ui5-webcomponents/packages/main/dist/DateComponentBase.js","../../ui5-webcomponents/packages/main/dist/generated/templates/ResponsivePopoverTemplate.lit.js","../../ui5-webcomponents/packages/icons/dist/v5/resize-corner.js","../../ui5-webcomponents/packages/icons/dist/v4/resize-corner.js","../../ui5-webcomponents/packages/icons/dist/resize-corner.js","../../ui5-webcomponents/packages/main/dist/generated/templates/DialogTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Dialog.css.js","../../ui5-webcomponents/packages/main/dist/Dialog.js","../../ui5-webcomponents/packages/main/dist/types/TitleLevel.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TitleTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Title.css.js","../../ui5-webcomponents/packages/main/dist/Title.js","../../ui5-webcomponents/packages/main/dist/generated/themes/ResponsivePopover.css.js","../../ui5-webcomponents/packages/main/dist/ResponsivePopover.js","../../ui5-webcomponents/packages/main/dist/CalendarDate.js","../../ui5-webcomponents/packages/main/dist/CalendarPart.js","../../ui5-webcomponents/packages/icons/dist/v5/slim-arrow-left.js","../../ui5-webcomponents/packages/icons/dist/v4/slim-arrow-left.js","../../ui5-webcomponents/packages/icons/dist/slim-arrow-left.js","../../ui5-webcomponents/packages/icons/dist/v5/slim-arrow-right.js","../../ui5-webcomponents/packages/icons/dist/v4/slim-arrow-right.js","../../ui5-webcomponents/packages/icons/dist/slim-arrow-right.js","../../ui5-webcomponents/packages/main/dist/generated/templates/CalendarHeaderTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/CalendarHeader.css.js","../../ui5-webcomponents/packages/main/dist/CalendarHeader.js","../../ui5-webcomponents/packages/base/dist/config/FormatSettings.js","../../ui5-webcomponents/packages/localization/dist/dates/calculateWeekNumber.js","../../ui5-webcomponents/packages/main/dist/types/CalendarSelectionMode.js","../../ui5-webcomponents/packages/main/dist/generated/templates/DayPickerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/DayPicker.css.js","../../ui5-webcomponents/packages/main/dist/DayPicker.js","../../ui5-webcomponents/packages/main/dist/generated/templates/MonthPickerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/MonthPicker.css.js","../../ui5-webcomponents/packages/main/dist/MonthPicker.js","../../ui5-webcomponents/packages/main/dist/generated/templates/YearPickerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/YearPicker.css.js","../../ui5-webcomponents/packages/main/dist/YearPicker.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/Gregorian.js","../../ui5-webcomponents/packages/main/dist/generated/templates/CalendarTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Calendar.css.js","../../ui5-webcomponents/packages/main/dist/Calendar.js","../../ui5-webcomponents/packages/main/dist/generated/templates/DatePickerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/DatePickerPopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/DatePicker.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/DatePickerPopover.css.js","../../ui5-webcomponents/packages/main/dist/DatePicker.js","../../ui5-webcomponents/packages/localization/dist/dates/getRoundedTimestamp.js","../../ui5-webcomponents/packages/icons/dist/v5/time-entry-request.js","../../ui5-webcomponents/packages/icons/dist/v4/time-entry-request.js","../../ui5-webcomponents/packages/icons/dist/time-entry-request.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TimePickerTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TimePickerPopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TimeSelectionTemplate.lit.js","../../ui5-webcomponents/packages/icons/dist/v5/navigation-up-arrow.js","../../ui5-webcomponents/packages/icons/dist/v4/navigation-up-arrow.js","../../ui5-webcomponents/packages/icons/dist/navigation-up-arrow.js","../../ui5-webcomponents/packages/icons/dist/v5/navigation-down-arrow.js","../../ui5-webcomponents/packages/icons/dist/v4/navigation-down-arrow.js","../../ui5-webcomponents/packages/icons/dist/navigation-down-arrow.js","../../ui5-webcomponents/packages/base/dist/animations/AnimationQueue.js","../../ui5-webcomponents/packages/base/dist/animations/config.js","../../ui5-webcomponents/packages/base/dist/animations/scroll.js","../../ui5-webcomponents/packages/base/dist/animations/animate.js","../../ui5-webcomponents/packages/base/dist/delegate/ScrollEnablement.js","../../ui5-webcomponents/packages/main/dist/generated/templates/WheelSliderTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/WheelSlider.css.js","../../ui5-webcomponents/packages/main/dist/WheelSlider.js","../../ui5-webcomponents/packages/main/dist/timepicker-utils/TimeSlider.js","../../ui5-webcomponents/packages/main/dist/generated/themes/TimeSelection.css.js","../../ui5-webcomponents/packages/main/dist/TimeSelection.js","../../ui5-webcomponents/packages/main/dist/generated/themes/TimePicker.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/TimePickerPopover.css.js","../../ui5-webcomponents/packages/main/dist/TimePickerBase.js","../../ui5-webcomponents/packages/main/dist/TimePicker.js","../../ui5-webcomponents/packages/main/dist/RadioButtonGroup.js","../../ui5-webcomponents/packages/main/dist/generated/templates/RadioButtonTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/RadioButton.css.js","../../ui5-webcomponents/packages/main/dist/RadioButton.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TextAreaTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/TextAreaPopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/TextArea.css.js","../../ui5-webcomponents/packages/main/dist/TextArea.js","../../ui5-webcomponents/packages/base/dist/types/InvisibleMessageMode.js","../../ui5-webcomponents/packages/base/dist/util/InvisibleMessage.js","../../ui5-webcomponents/packages/icons/dist/v5/slim-arrow-down.js","../../ui5-webcomponents/packages/icons/dist/v4/slim-arrow-down.js","../../ui5-webcomponents/packages/icons/dist/slim-arrow-down.js","../../ui5-webcomponents/packages/main/dist/Option.js","../../ui5-webcomponents/packages/base/dist/types/NavigationMode.js","../../ui5-webcomponents/packages/base/dist/types/ItemNavigationBehavior.js","../../ui5-webcomponents/packages/base/dist/delegate/ItemNavigation.js","../../ui5-webcomponents/packages/base/dist/util/isNodeTabbable.js","../../ui5-webcomponents/packages/base/dist/util/TabbableElements.js","../../ui5-webcomponents/packages/base/dist/util/debounce.js","../../ui5-webcomponents/packages/main/dist/types/ListMode.js","../../ui5-webcomponents/packages/main/dist/types/GrowingMode.js","../../ui5-webcomponents/packages/main/dist/types/ListGrowingMode.js","../../ui5-webcomponents/packages/main/dist/types/ListSeparators.js","../../ui5-webcomponents/packages/main/dist/types/BusyIndicatorSize.js","../../ui5-webcomponents/packages/main/dist/generated/templates/BusyIndicatorTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/BusyIndicator.css.js","../../ui5-webcomponents/packages/main/dist/BusyIndicator.js","../../ui5-webcomponents/packages/main/dist/generated/templates/ListTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/List.css.js","../../ui5-webcomponents/packages/main/dist/List.js","../../ui5-webcomponents/packages/base/dist/util/isElementInView.js","../../ui5-webcomponents/packages/icons/dist/v5/edit.js","../../ui5-webcomponents/packages/icons/dist/v4/edit.js","../../ui5-webcomponents/packages/icons/dist/edit.js","../../ui5-webcomponents/packages/main/dist/types/ListItemType.js","../../ui5-webcomponents/packages/main/dist/generated/themes/ListItemBase.css.js","../../ui5-webcomponents/packages/main/dist/ListItemBase.js","../../ui5-webcomponents/packages/main/dist/generated/themes/ListItem.css.js","../../ui5-webcomponents/packages/main/dist/ListItem.js","../../ui5-webcomponents/packages/main/dist/generated/templates/AvatarTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Avatar.css.js","../../ui5-webcomponents/packages/main/dist/types/AvatarSize.js","../../ui5-webcomponents/packages/main/dist/types/AvatarShape.js","../../ui5-webcomponents/packages/main/dist/types/AvatarColorScheme.js","../../ui5-webcomponents/packages/main/dist/Avatar.js","../../ui5-webcomponents/packages/main/dist/generated/templates/StandardListItemTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/StandardListItem.js","../../ui5-webcomponents/packages/main/dist/generated/templates/SelectTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/templates/SelectPopoverTemplate.lit.js","../../ui5-webcomponents/packages/main/dist/generated/themes/Select.css.js","../../ui5-webcomponents/packages/main/dist/generated/themes/SelectPopover.css.js","../../ui5-webcomponents/packages/main/dist/Select.js","../../ui5-webcomponents/packages/main/dist/features/InputElementsFormSupport.js","../../ui5-webcomponents/packages/localization/dist/generated/json-imports/LocaleData.js","../../ui5-webcomponents/packages/theming/dist/generated/json-imports/Themes.js","../../ui5-webcomponents/packages/icons/dist/generated/json-imports/i18n.js","../../ui5-webcomponents/packages/main/dist/generated/json-imports/Themes.js","../../ui5-webcomponents/packages/main/dist/generated/json-imports/i18n.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/Buddhist.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/Islamic.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/Japanese.js","../../ui5-webcomponents/packages/localization/dist/sap/ui/core/date/Persian.js"],"sourcesContent":["class EventProvider {\n\tconstructor() {\n\t\tthis._eventRegistry = new Map();\n\t}\n\n\tattachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry.get(eventName);\n\n\t\tif (!Array.isArray(eventListeners)) {\n\t\t\teventRegistry.set(eventName, [fnFunction]);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventListeners.includes(fnFunction)) {\n\t\t\teventListeners.push(fnFunction);\n\t\t}\n\t}\n\n\tdetachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry.get(eventName);\n\n\t\tif (!eventListeners) {\n\t\t\treturn;\n\t\t}\n\t\tconst indexOfFnToDetach = eventListeners.indexOf(fnFunction);\n\n\t\tif (indexOfFnToDetach !== -1) {\n\t\t\teventListeners.splice(indexOfFnToDetach, 1);\n\t\t}\n\n\t\tif (eventListeners.length === 0) {\n\t\t\teventRegistry.delete(eventName);\n\t\t}\n\t}\n\n\t/**\n\t * Fires an event and returns the results of all event listeners as an array.\n\t *\n\t * @param eventName the event to fire\n\t * @param data optional data to pass to each event listener\n\t * @returns {Array} an array with the results of all event listeners\n\t */\n\tfireEvent(eventName, data) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry.get(eventName);\n\n\t\tif (!eventListeners) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn eventListeners.map(fn => {\n\t\t\treturn fn.call(this, data); // eslint-disable-line\n\t\t});\n\t}\n\n\t/**\n\t * Fires an event and returns a promise that will resolve once all listeners have resolved.\n\t *\n\t * @param eventName the event to fire\n\t * @param data optional data to pass to each event listener\n\t * @returns {Promise} a promise that will resolve when all listeners have resolved\n\t */\n\tfireEventAsync(eventName, data) {\n\t\treturn Promise.all(this.fireEvent(eventName, data));\n\t}\n\n\tisHandlerAttached(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry.get(eventName);\n\n\t\tif (!eventListeners) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn eventListeners.includes(fnFunction);\n\t}\n\n\thasListeners(eventName) {\n\t\treturn !!this._eventRegistry.get(eventName);\n\t}\n}\n\nexport default EventProvider;\n","// This is needed as IE11 doesn't have Set.prototype.keys/values/entries, so [...mySet.values()] is not an option\nconst setToArray = s => {\n\tconst arr = [];\n\ts.forEach(item => {\n\t\tarr.push(item);\n\t});\n\treturn arr;\n};\n\nexport default setToArray;\n","import setToArray from \"./util/setToArray.js\";\n\nconst Definitions = new Set();\nconst Failures = new Set();\nlet failureTimeout;\n\nconst registerTag = tag => {\n\tDefinitions.add(tag);\n};\n\nconst isTagRegistered = tag => {\n\treturn Definitions.has(tag);\n};\n\nconst getAllRegisteredTags = () => {\n\treturn setToArray(Definitions);\n};\n\nconst recordTagRegistrationFailure = tag => {\n\tFailures.add(tag);\n\tif (!failureTimeout) {\n\t\tfailureTimeout = setTimeout(() => {\n\t\t\tdisplayFailedRegistrations();\n\t\t\tfailureTimeout = undefined;\n\t\t}, 1000);\n\t}\n};\n\nconst displayFailedRegistrations = () => {\n\tconsole.warn(`The following tags have already been defined by a different UI5 Web Components version: ${setToArray(Failures).join(\", \")}`); // eslint-disable-line\n\tFailures.clear();\n};\n\nexport {\n\tregisterTag,\n\tisTagRegistered,\n\tgetAllRegisteredTags,\n\trecordTagRegistrationFailure,\n};\n","const rtlAwareSet = new Set();\n\nconst markAsRtlAware = klass => {\n\trtlAwareSet.add(klass);\n};\n\nconst isRtlAware = klass => {\n\treturn rtlAwareSet.has(klass);\n};\n\nexport {\n\tmarkAsRtlAware,\n\tisRtlAware,\n};\n","import EventProvider from \"./EventProvider.js\";\nimport RenderQueue from \"./RenderQueue.js\";\nimport { getAllRegisteredTags } from \"./CustomElementsRegistry.js\";\nimport { isRtlAware } from \"./locale/RTLAwareRegistry.js\";\n\nconst registeredElements = new Set();\nconst eventProvider = new EventProvider();\n\nconst invalidatedWebComponents = new RenderQueue(); // Queue for invalidated web components\n\nlet renderTaskPromise,\n\trenderTaskPromiseResolve;\n\nlet mutationObserverTimer;\n\nlet queuePromise;\n\n/**\n * Schedules a render task (if not already scheduled) to render the component\n *\n * @param webComponent\n * @returns {Promise}\n */\nconst renderDeferred = async webComponent => {\n\t// Enqueue the web component\n\tinvalidatedWebComponents.add(webComponent);\n\n\t// Schedule a rendering task\n\tawait scheduleRenderTask();\n};\n\n/**\n * Renders a component synchronously and adds it to the registry of rendered components\n *\n * @param webComponent\n */\nconst renderImmediately = webComponent => {\n\teventProvider.fireEvent(\"beforeComponentRender\", webComponent);\n\tregisteredElements.add(webComponent);\n\twebComponent._render();\n};\n\n/**\n * Cancels the rendering of a component, if awaiting to be rendered, and removes it from the registry of rendered components\n *\n * @param webComponent\n */\nconst cancelRender = webComponent => {\n\tinvalidatedWebComponents.remove(webComponent);\n\tregisteredElements.delete(webComponent);\n};\n\n/**\n * Schedules a rendering task, if not scheduled already\n */\nconst scheduleRenderTask = async () => {\n\tif (!queuePromise) {\n\t\tqueuePromise = new Promise(resolve => {\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t// Render all components in the queue\n\n\t\t\t\t// console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line\n\t\t\t\tinvalidatedWebComponents.process(renderImmediately);\n\t\t\t\t// console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line\n\n\t\t\t\t// Resolve the promise so that callers of renderDeferred can continue\n\t\t\t\tqueuePromise = null;\n\t\t\t\tresolve();\n\n\t\t\t\t// Wait for Mutation observer before the render task is considered finished\n\t\t\t\tif (!mutationObserverTimer) {\n\t\t\t\t\tmutationObserverTimer = setTimeout(() => {\n\t\t\t\t\t\tmutationObserverTimer = undefined;\n\t\t\t\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\t\t\t\t_resolveTaskPromise();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tawait queuePromise;\n};\n\n/**\n * return a promise that will be resolved once all invalidated web components are rendered\n */\nconst whenDOMUpdated = () => {\n\tif (renderTaskPromise) {\n\t\treturn renderTaskPromise;\n\t}\n\n\trenderTaskPromise = new Promise(resolve => {\n\t\trenderTaskPromiseResolve = resolve;\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\trenderTaskPromise = undefined;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t});\n\n\treturn renderTaskPromise;\n};\n\nconst whenAllCustomElementsAreDefined = () => {\n\tconst definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));\n\treturn Promise.all(definedPromises);\n};\n\nconst renderFinished = async () => {\n\tawait whenAllCustomElementsAreDefined();\n\tawait whenDOMUpdated();\n};\n\nconst _resolveTaskPromise = () => {\n\tif (!invalidatedWebComponents.isEmpty()) {\n\t\t// More updates are pending. Resolve will be called again\n\t\treturn;\n\t}\n\n\tif (renderTaskPromiseResolve) {\n\t\trenderTaskPromiseResolve();\n\t\trenderTaskPromiseResolve = undefined;\n\t\trenderTaskPromise = undefined;\n\t}\n};\n\n/**\n * Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.\n *\n * Usage:\n * reRenderAllUI5Elements() -> re-renders all components\n * reRenderAllUI5Elements({tag: \"ui5-button\"}) -> re-renders only instances of ui5-button\n * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components\n * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components\n * reRenderAllUI5Elements({themeAware: true}) -> re-renders only themeAware components\n * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware\n * etc...\n *\n * @public\n * @param {Object|undefined} filters - Object with keys that can be \"rtlAware\" or \"languageAware\"\n * @returns {Promise<void>}\n */\nconst reRenderAllUI5Elements = async filters => {\n\tregisteredElements.forEach(element => {\n\t\tconst tag = element.constructor.getMetadata().getTag();\n\t\tconst rtlAware = isRtlAware(element.constructor);\n\t\tconst languageAware = element.constructor.getMetadata().isLanguageAware();\n\t\tconst themeAware = element.constructor.getMetadata().isThemeAware();\n\t\tif (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware) || (filters.themeAware && themeAware)) {\n\t\t\trenderDeferred(element);\n\t\t}\n\t});\n\tawait renderFinished();\n};\n\nconst attachBeforeComponentRender = listener => {\n\teventProvider.attachEvent(\"beforeComponentRender\", listener);\n};\n\nconst detachBeforeComponentRender = listener => {\n\teventProvider.detachEvent(\"beforeComponentRender\", listener);\n};\n\nexport {\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n\treRenderAllUI5Elements,\n\tattachBeforeComponentRender,\n\tdetachBeforeComponentRender,\n};\n","const MAX_PROCESS_COUNT = 10;\n\nclass RenderQueue {\n\tconstructor() {\n\t\tthis.list = []; // Used to store the web components in order\n\t\tthis.lookup = new Set(); // Used for faster search\n\t}\n\n\tadd(webComponent) {\n\t\tif (this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list.push(webComponent);\n\t\tthis.lookup.add(webComponent);\n\t}\n\n\tremove(webComponent) {\n\t\tif (!this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list = this.list.filter(item => item !== webComponent);\n\t\tthis.lookup.delete(webComponent);\n\t}\n\n\tshift() {\n\t\tconst webComponent = this.list.shift();\n\t\tif (webComponent) {\n\t\t\tthis.lookup.delete(webComponent);\n\t\t\treturn webComponent;\n\t\t}\n\t}\n\n\tisEmpty() {\n\t\treturn this.list.length === 0;\n\t}\n\n\tisAdded(webComponent) {\n\t\treturn this.lookup.has(webComponent);\n\t}\n\n\t/**\n\t * Processes the whole queue by executing the callback on each component,\n\t * while also imposing restrictions on how many times a component may be processed.\n\t *\n\t * @param callback - function with one argument (the web component to be processed)\n\t */\n\tprocess(callback) {\n\t\tlet webComponent;\n\t\tconst stats = new Map();\n\n\t\twebComponent = this.shift();\n\t\twhile (webComponent) {\n\t\t\tconst timesProcessed = stats.get(webComponent) || 0;\n\t\t\tif (timesProcessed > MAX_PROCESS_COUNT) {\n\t\t\t\tthrow new Error(`Web component processed too many times this task, max allowed is: ${MAX_PROCESS_COUNT}`);\n\t\t\t}\n\t\t\tcallback(webComponent);\n\t\t\tstats.set(webComponent, timesProcessed + 1);\n\t\t\twebComponent = this.shift();\n\t\t}\n\t}\n}\n\nexport default RenderQueue;\n","const getSingletonElementInstance = (tag, parentElement = document.body) => {\n\tlet el = document.querySelector(tag);\n\n\tif (el) {\n\t\treturn el;\n\t}\n\n\tel = document.createElement(tag);\n\n\treturn parentElement.insertBefore(el, parentElement.firstChild);\n};\n\nexport default getSingletonElementInstance;\n","import getSingletonElementInstance from \"./util/getSingletonElementInstance.js\";\n\nconst getSharedResourcesInstance = () => getSingletonElementInstance(\"ui5-shared-resources\", document.head);\n\n/**\n * Use this method to initialize/get resources that you would like to be shared among UI5 Web Components runtime instances.\n * The data will be accessed via a singleton \"ui5-shared-resources\" HTML element in the \"head\" element of the page.\n *\n * @public\n * @param namespace Unique ID of the resource, may contain \".\" to denote hierarchy\n * @param initialValue Object or primitive that will be used as an initial value if the resource does not exist\n * @returns {*}\n */\nconst getSharedResource = (namespace, initialValue) => {\n\tconst parts = namespace.split(\".\");\n\tlet current = getSharedResourcesInstance();\n\n\tfor (let i = 0; i < parts.length; i++) {\n\t\tconst part = parts[i];\n\t\tconst lastPart = i === parts.length - 1;\n\t\tif (!Object.prototype.hasOwnProperty.call(current, part)) {\n\t\t\tcurrent[part] = lastPart ? initialValue : {};\n\t\t}\n\t\tcurrent = current[part];\n\t}\n\n\treturn current;\n};\n\nexport default getSharedResource;\n","import { reRenderAllUI5Elements } from \"../Render.js\";\nimport getSharedResource from \"../getSharedResource.js\";\nimport EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = getSharedResource(\"CustomStyle.eventProvider\", new EventProvider());\nconst CUSTOM_CSS_CHANGE = \"CustomCSSChange\";\n\nconst attachCustomCSSChange = listener => {\n\teventProvider.attachEvent(CUSTOM_CSS_CHANGE, listener);\n};\n\nconst detachCustomCSSChange = listener => {\n\teventProvider.detachEvent(CUSTOM_CSS_CHANGE, listener);\n};\n\nconst fireCustomCSSChange = tag => {\n\treturn eventProvider.fireEvent(CUSTOM_CSS_CHANGE, tag);\n};\n\nconst customCSSFor = getSharedResource(\"CustomStyle.customCSSFor\", {});\n\n// Listen to the eventProvider, in case other copies of this CustomStyle module fire this\n// event, and this copy would therefore need to reRender the ui5 webcomponents; but\n// don't reRender if it was this copy that fired the event to begin with.\nlet skipRerender;\nattachCustomCSSChange(tag => {\n\tif (!skipRerender) {\n\t\treRenderAllUI5Elements({ tag });\n\t}\n});\n\nconst addCustomCSS = (tag, css) => {\n\tif (!customCSSFor[tag]) {\n\t\tcustomCSSFor[tag] = [];\n\t}\n\tcustomCSSFor[tag].push(css);\n\n\tskipRerender = true;\n\ttry {\n\t\t// The event is fired and the attached event listeners are all called synchronously\n\t\t// The skipRerender flag will be used to avoid calling reRenderAllUI5Elements twice when it is this copy\n\t\t// of CustomStyle.js which is firing the `CustomCSSChange` event.\n\t\tfireCustomCSSChange(tag);\n\t} finally {\n\t\tskipRerender = false;\n\t}\n\n\treturn reRenderAllUI5Elements({ tag });\n};\n\nconst getCustomCSS = tag => {\n\treturn customCSSFor[tag] ? customCSSFor[tag].join(\"\") : \"\";\n};\n\nexport {\n\taddCustomCSS,\n\tgetCustomCSS,\n\tattachCustomCSSChange,\n\tdetachCustomCSSChange,\n};\n","import EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = new EventProvider();\nconst THEME_LOADED = \"themeLoaded\";\n\nconst attachThemeLoaded = listener => {\n\teventProvider.attachEvent(THEME_LOADED, listener);\n};\n\nconst detachThemeLoaded = listener => {\n\teventProvider.detachEvent(THEME_LOADED, listener);\n};\n\nconst fireThemeLoaded = theme => {\n\treturn eventProvider.fireEvent(THEME_LOADED, theme);\n};\n\nexport {\n\tattachThemeLoaded,\n\tdetachThemeLoaded,\n\tfireThemeLoaded,\n};\n","import {addCustomCSS} from \"@ui5/webcomponents-base/dist/Theming\";\r\n\r\naddCustomCSS(\"ui5-select\", `\r\n\t.ui5-select-root ui5-li:first-child {\r\n\t\tdisplay: none;\r\n\t}\r\n`);\r\n\r\n// We need to know when UI5 classic has loaded CSS Variables fo the WebComponents.\r\n// Currently, there are couple ways for UI5 Classic to achieve this- via xx-cssVariables (Core feature, experimental)\r\n// or by providing explicit CSS Vars for the WebComponents in the AdaptiveCards (integration library).\r\n// As checking on URL/config is fine, we cannot detect whether a custom library for which there's CSS Vars support\r\n// in cards has been created. We need to find a reliable way to detect if CSS Vars are present.\r\n// We know that removing LESS param/CSS VAriable is considered a backwards incompatibility. So, getting one of the\r\n// core Params/Vars and checking its value should be enough to detect if CSS Vars are loaded or not.\r\n//\r\n// Important: There's a certainty that UI5 Classic has been loaded prior WebComponents. WebComponents' library gets loaded\r\n// within UI5 Classic control\r\n// const computedStyles = getComputedStyle(document.documentElement),\r\n// \tisExternalThemePresent = sap && sap.ui && sap.ui.getCore &&\r\n// \t\t(!!computedStyles.getPropertyValue('--sapFontFamily') ||\r\n// !!computedStyles.getPropertyValue('--sapBrandColor') ||\r\n//!!computedStyles.getPropertyValue('--sapBaseColor'));\r\n\r\n// setExternalThemePresent(isExternalThemePresent);\r\n","const features = new Map();\n\nconst registerFeature = (name, feature) => {\n\tfeatures.set(name, feature);\n};\n\nconst getFeature = name => {\n\treturn features.get(name);\n};\n\nexport { registerFeature, getFeature };\n","var class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\nvar toString = class2type.toString;\nvar fnToString = hasOwn.toString;\nvar ObjectFunctionString = fnToString.call(Object);\nvar fnIsPlainObject = function (obj) {\n var proto, Ctor;\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = Object.getPrototypeOf(obj);\n if (!proto) {\n return true;\n }\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n};\nexport default fnIsPlainObject;\n","import isPlainObject from './isPlainObject.js';\nvar oToken = Object.create(null);\nvar fnMerge = function () {\n var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;\n if (typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (name === '__proto__' || target === copy) {\n continue;\n }\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = fnMerge(deep, arguments[1], clone, copy);\n } else if (copy !== skipToken) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n};\nexport default fnMerge;","import _merge from './_merge.js';\nvar fnMerge = function () {\n var args = [\n true,\n false\n ];\n args.push.apply(args, arguments);\n return _merge.apply(null, args);\n};\nexport default fnMerge;","const assetParameters = {\"themes\":{\"default\":\"sap_fiori_3\",\"all\":[\"sap_fiori_3\",\"sap_fiori_3_dark\",\"sap_belize\",\"sap_belize_hcb\",\"sap_belize_hcw\",\"sap_fiori_3_hcb\",\"sap_fiori_3_hcw\",\"sap_horizon\",\"sap_horizon_exp\"]},\"languages\":{\"default\":\"en\",\"all\":[\"ar\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"el\",\"en\",\"en_GB\",\"en_US_sappsd\",\"en_US_saprigi\",\"en_US_saptrc\",\"es\",\"es_MX\",\"et\",\"fi\",\"fr\",\"fr_CA\",\"hi\",\"hr\",\"hu\",\"in\",\"it\",\"iw\",\"ja\",\"kk\",\"ko\",\"lt\",\"lv\",\"ms\",\"nl\",\"no\",\"pl\",\"pt_PT\",\"pt\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sv\",\"th\",\"tr\",\"uk\",\"vi\",\"zh_CN\",\"zh_TW\"]},\"locales\":{\"default\":\"en\",\"all\":[\"ar\",\"ar_EG\",\"ar_SA\",\"bg\",\"ca\",\"cs\",\"da\",\"de\",\"de_AT\",\"de_CH\",\"el\",\"el_CY\",\"en\",\"en_AU\",\"en_GB\",\"en_HK\",\"en_IE\",\"en_IN\",\"en_NZ\",\"en_PG\",\"en_SG\",\"en_ZA\",\"es\",\"es_AR\",\"es_BO\",\"es_CL\",\"es_CO\",\"es_MX\",\"es_PE\",\"es_UY\",\"es_VE\",\"et\",\"fa\",\"fi\",\"fr\",\"fr_BE\",\"fr_CA\",\"fr_CH\",\"fr_LU\",\"he\",\"hi\",\"hr\",\"hu\",\"id\",\"it\",\"it_CH\",\"ja\",\"kk\",\"ko\",\"lt\",\"lv\",\"ms\",\"nb\",\"nl\",\"nl_BE\",\"pl\",\"pt\",\"pt_PT\",\"ro\",\"ru\",\"ru_UA\",\"sk\",\"sl\",\"sr\",\"sv\",\"th\",\"tr\",\"uk\",\"vi\",\"zh_CN\",\"zh_HK\",\"zh_SG\",\"zh_TW\"]}};\n\nconst DEFAULT_THEME = assetParameters.themes.default;\nconst DEFAULT_LANGUAGE = assetParameters.languages.default;\nconst DEFAULT_LOCALE = assetParameters.locales.default;\nconst SUPPORTED_LOCALES = assetParameters.locales.all;\n\nexport {\n\tDEFAULT_THEME,\n\tDEFAULT_LANGUAGE,\n\tDEFAULT_LOCALE,\n\tSUPPORTED_LOCALES,\n};","import merge from \"./thirdparty/merge.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\nimport { DEFAULT_THEME } from \"./generated/AssetParameters.js\";\n\nlet initialized = false;\n\nlet initialConfig = {\n\tanimationMode: \"full\",\n\ttheme: DEFAULT_THEME,\n\trtl: null,\n\tlanguage: null,\n\tcalendarType: null,\n\tnoConflict: false, // no URL\n\tformatSettings: {},\n\tfetchDefaultLanguage: false,\n};\n\n/* General settings */\nconst getAnimationMode = () => {\n\tinitConfiguration();\n\treturn initialConfig.animationMode;\n};\n\nconst getTheme = () => {\n\tinitConfiguration();\n\treturn initialConfig.theme;\n};\n\nconst getRTL = () => {\n\tinitConfiguration();\n\treturn initialConfig.rtl;\n};\n\nconst getLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.language;\n};\n\n/**\n * Returns if the default language, that is inlined at build time,\n * should be fetched over the network instead.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.fetchDefaultLanguage;\n};\n\nconst getNoConflict = () => {\n\tinitConfiguration();\n\treturn initialConfig.noConflict;\n};\n\nconst getCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.calendarType;\n};\n\nconst getFormatSettings = () => {\n\tinitConfiguration();\n\treturn initialConfig.formatSettings;\n};\n\nconst booleanMapping = new Map();\nbooleanMapping.set(\"true\", true);\nbooleanMapping.set(\"false\", false);\n\nconst parseConfigurationScript = () => {\n\tconst configScript = document.querySelector(\"[data-ui5-config]\") || document.querySelector(\"[data-id='sap-ui-config']\"); // for backward compatibility\n\n\tlet configJSON;\n\n\tif (configScript) {\n\t\ttry {\n\t\t\tconfigJSON = JSON.parse(configScript.innerHTML);\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"Incorrect data-sap-ui-config format. Please use JSON\"); /* eslint-disable-line */\n\t\t}\n\n\t\tif (configJSON) {\n\t\t\tinitialConfig = merge(initialConfig, configJSON);\n\t\t}\n\t}\n};\n\nconst parseURLParameters = () => {\n\tconst params = new URLSearchParams(window.location.search);\n\n\t// Process \"sap-*\" params first\n\tparams.forEach((value, key) => {\n\t\tconst parts = key.split(\"sap-\").length;\n\t\tif (parts === 0 || parts === key.split(\"sap-ui-\").length) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap\");\n\t});\n\n\t// Process \"sap-ui-*\" params\n\tparams.forEach((value, key) => {\n\t\tif (!key.startsWith(\"sap-ui\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap-ui\");\n\t});\n};\n\nconst normalizeParamValue = (param, value) => {\n\tif (param === \"theme\" && value.includes(\"@\")) { // the theme parameter might have @<URL-TO-THEME> in the value - strip this\n\t\treturn value.split(\"@\")[0];\n\t}\n\n\treturn value;\n};\n\nconst applyURLParam = (key, value, paramType) => {\n\tconst lowerCaseValue = value.toLowerCase();\n\tconst param = key.split(`${paramType}-`)[1];\n\n\tif (booleanMapping.has(value)) {\n\t\tvalue = booleanMapping.get(lowerCaseValue);\n\t}\n\n\tvalue = normalizeParamValue(param, value);\n\n\tinitialConfig[param] = value;\n};\n\nconst applyOpenUI5Configuration = () => {\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (!OpenUI5Support || !OpenUI5Support.isLoaded()) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Config = OpenUI5Support.getConfigurationSettingsObject();\n\tinitialConfig = merge(initialConfig, OpenUI5Config);\n};\n\nconst initConfiguration = () => {\n\tif (initialized) {\n\t\treturn;\n\t}\n\n\t// 1. Lowest priority - configuration script\n\tparseConfigurationScript();\n\n\t// 2. URL parameters overwrite configuration script parameters\n\tparseURLParameters();\n\n\t// 3. If OpenUI5 is detected, it has the highest priority\n\tapplyOpenUI5Configuration();\n\n\tinitialized = true;\n};\n\nexport {\n\tgetAnimationMode,\n\tgetTheme,\n\tgetRTL,\n\tgetLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tgetCalendarType,\n\tgetFormatSettings,\n};\n","import { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\n\nconst themeStyles = new Map();\nconst loaders = new Map();\nconst registeredPackages = new Set();\nconst registeredThemes = new Set();\n\n/**\n * Used to provide CSS Vars for a specific theme for a specific package.\n * The CSS Vars can be passed directly as a string (containing them), as an object with a \"_\" property(containing them in the \"_\" property), or as a URL.\n * This URL must point to a JSON file, containing a \"_\" property.\n *\n * Example usage:\n * 1) Pass the CSS Vars as a string directly.\n * registerThemeProperties(\"my-package\", \"my_theme\", \":root{--var1: red;}\");\n *\n * @public\n * @param packageName - the NPM package for which CSS Vars are registered\n * @param themeName - the theme which the CSS Vars implement\n * @param style - the style content directly\n * @deprecated\n */\nconst registerThemeProperties = (_packageName, _themeName, _style) => {\n\tthrow new Error(\"`registerThemeProperties` has been depracated. Use `registerThemePropertiesLoader` instead.\");\n};\n\nconst registerThemePropertiesLoader = (packageName, themeName, loader) => {\n\tloaders.set(`${packageName}/${themeName}`, loader);\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n};\n\nconst getThemeProperties = async (packageName, themeName) => {\n\tconst style = themeStyles.get(`${packageName}_${themeName}`);\n\tif (style !== undefined) { // it's valid for style to be an empty string\n\t\treturn style;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn themeStyles.get(`${packageName}_${DEFAULT_THEME}`);\n\t}\n\n\tconst loader = loaders.get(`${packageName}/${themeName}`);\n\tif (!loader) {\n\t\t// no themes for package\n\t\tconsole.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tlet data;\n\ttry {\n\t\tdata = await loader(themeName);\n\t} catch (e) {\n\t\tconsole.error(packageName, e.message); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tconst themeProps = data._ || data;\n\n\tthemeStyles.set(`${packageName}_${themeName}`, themeProps);\n\treturn themeProps;\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nconst isThemeRegistered = theme => {\n\treturn registeredThemes.has(theme);\n};\n\nexport {\n\tregisterThemePropertiesLoader,\n\tregisterThemeProperties,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n\tisThemeRegistered,\n};\n","/**\n * Creates a <style> tag in the <head> tag\n * @param cssText - the CSS\n * @param attributes - optional attributes to add to the tag\n * @returns {HTMLElement}\n */\nconst createStyleInHead = (cssText, attributes = {}) => {\n\tconst style = document.createElement(\"style\");\n\tstyle.type = \"text/css\";\n\n\tObject.entries(attributes).forEach(pair => style.setAttribute(...pair));\n\n\tstyle.textContent = cssText;\n\tdocument.head.appendChild(style);\n\treturn style;\n};\n\nexport default createStyleInHead;\n","import createStyleInHead from \"./util/createStyleInHead.js\";\nimport createLinkInHead from \"./util/createLinkInHead.js\";\nimport { shouldUseLinks, getUrl } from \"./CSP.js\";\n\nconst getStyleId = (name, value) => {\n\treturn value ? `${name}|${value}` : name;\n};\n\nconst createStyle = (data, name, value = \"\") => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\n\tif (shouldUseLinks()) {\n\t\tconst attributes = {};\n\t\tattributes[name] = value;\n\t\tconst href = getUrl(data.packageName, data.fileName);\n\t\tcreateLinkInHead(href, attributes);\n\t} else if (document.adoptedStyleSheets) {\n\t\tconst stylesheet = new CSSStyleSheet();\n\t\tstylesheet.replaceSync(content);\n\t\tstylesheet._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later\n\t\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];\n\t} else {\n\t\tconst attributes = {};\n\t\tattributes[name] = value;\n\t\tcreateStyleInHead(content, attributes);\n\t}\n};\n\nconst updateStyle = (data, name, value = \"\") => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\n\tif (shouldUseLinks()) {\n\t\tdocument.querySelector(`head>link[${name}=\"${value}\"]`).href = getUrl(data.packageName, data.fileName);\n\t} else if (document.adoptedStyleSheets) {\n\t\tdocument.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value)).replaceSync(content || \"\");\n\t} else {\n\t\tdocument.querySelector(`head>style[${name}=\"${value}\"]`).textContent = content || \"\";\n\t}\n};\n\nconst hasStyle = (name, value = \"\") => {\n\tif (shouldUseLinks()) {\n\t\treturn !!document.querySelector(`head>link[${name}=\"${value}\"]`);\n\t}\n\n\tif (document.adoptedStyleSheets) {\n\t\treturn !!document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));\n\t}\n\n\treturn !!document.querySelector(`head>style[${name}=\"${value}\"]`);\n};\n\nconst removeStyle = (name, value = \"\") => {\n\tif (shouldUseLinks()) {\n\t\tconst linkElement = document.querySelector(`head>link[${name}=\"${value}\"]`);\n\t\tif (linkElement) {\n\t\t\tlinkElement.parentElement.removeChild(linkElement);\n\t\t}\n\t} else if (document.adoptedStyleSheets) {\n\t\tdocument.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => sh._ui5StyleId !== getStyleId(name, value));\n\t} else {\n\t\tconst styleElement = document.querySelector(`head > style[${name}=\"${value}\"]`);\n\t\tif (styleElement) {\n\t\t\tstyleElement.parentElement.removeChild(styleElement);\n\t\t}\n\t}\n};\n\nconst createOrUpdateStyle = (data, name, value = \"\") => {\n\tif (hasStyle(name, value)) {\n\t\tupdateStyle(data, name, value);\n\t} else {\n\t\tcreateStyle(data, name, value);\n\t}\n};\n\nexport {\n\tcreateStyle,\n\thasStyle,\n\tupdateStyle,\n\tremoveStyle,\n\tcreateOrUpdateStyle,\n};\n","const getThemeMetadata = () => {\n\t// Check if the class was already applied, most commonly to the link/style tag with the CSS Variables\n\tlet el = document.querySelector(\".sapThemeMetaData-Base-baseLib\") || document.querySelector(\".sapThemeMetaData-UI5-sap-ui-core\");\n\tif (el) {\n\t\treturn getComputedStyle(el).backgroundImage;\n\t}\n\n\tel = document.createElement(\"span\");\n\tel.style.display = \"none\";\n\tel.classList.add(\"sapThemeMetaData-Base-baseLib\");\n\tel.classList.add(\"sapThemeMetaData-UI5-sap-ui-core\");\n\tdocument.body.appendChild(el);\n\tconst metadata = getComputedStyle(el).backgroundImage;\n\tdocument.body.removeChild(el);\n\n\treturn metadata;\n};\n\nconst parseThemeMetadata = metadataString => {\n\tconst params = /\\([\"']?data:text\\/plain;utf-8,(.*?)['\"]?\\)$/i.exec(metadataString);\n\tif (params && params.length >= 2) {\n\t\tlet paramsString = params[1];\n\t\tparamsString = paramsString.replace(/\\\\\"/g, `\"`);\n\t\tif (paramsString.charAt(0) !== \"{\" && paramsString.charAt(paramsString.length - 1) !== \"}\") {\n\t\t\ttry {\n\t\t\t\tparamsString = decodeURIComponent(paramsString);\n\t\t\t} catch (ex) {\n\t\t\t\tconsole.warn(\"Malformed theme metadata string, unable to decodeURIComponent\"); // eslint-disable-line\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\treturn JSON.parse(paramsString);\n\t\t} catch (ex) {\n\t\t\tconsole.warn(\"Malformed theme metadata string, unable to parse JSON\"); // eslint-disable-line\n\t\t}\n\t}\n};\n\nconst processThemeMetadata = metadata => {\n\tlet themeName;\n\tlet baseThemeName;\n\n\ttry {\n\t\tthemeName = metadata.Path.match(/\\.([^.]+)\\.css_variables$/)[1];\n\t\tbaseThemeName = metadata.Extends[0];\n\t} catch (ex) {\n\t\tconsole.warn(\"Malformed theme metadata Object\", metadata); // eslint-disable-line\n\t\treturn;\n\t}\n\n\treturn {\n\t\tthemeName,\n\t\tbaseThemeName,\n\t};\n};\n\nconst getThemeDesignerTheme = () => {\n\tconst metadataString = getThemeMetadata();\n\tif (!metadataString || metadataString === \"none\") {\n\t\treturn;\n\t}\n\n\tconst metadata = parseThemeMetadata(metadataString);\n\treturn processThemeMetadata(metadata);\n};\n\nexport default getThemeDesignerTheme;\n","import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\n\nconst BASE_THEME_PACKAGE = \"@ui5/webcomponents-theming\";\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async theme => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssText = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tcreateOrUpdateStyle(cssText, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async theme => {\n\tconst registeredPackages = getRegisteredPackages();\n\tregisteredPackages.forEach(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssText = await getThemeProperties(packageName, theme);\n\t\tcreateOrUpdateStyle(cssText, \"data-ui5-theme-properties\", packageName);\n\t});\n};\n\nconst detectExternalTheme = () => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support) {\n\t\tconst varsLoaded = OpenUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: OpenUI5Support.getConfigurationSettingsObject().theme, // just themeName, baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst applyTheme = async theme => {\n\tconst extTheme = detectExternalTheme();\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tawait loadComponentPackages(packagesTheme);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n","import { getTheme as getConfiguredTheme } from \"../InitialConfiguration.js\";\nimport { reRenderAllUI5Elements } from \"../Render.js\";\nimport applyTheme from \"../theming/applyTheme.js\";\n\nlet theme;\n\nconst getTheme = () => {\n\tif (theme === undefined) {\n\t\ttheme = getConfiguredTheme();\n\t}\n\n\treturn theme;\n};\n\nconst setTheme = async newTheme => {\n\tif (theme === newTheme) {\n\t\treturn;\n\t}\n\n\ttheme = newTheme;\n\n\t// Update CSS Custom Properties\n\tawait applyTheme(theme);\n\tawait reRenderAllUI5Elements({ themeAware: true });\n};\n\n/**\n * Returns if the given theme name is the one currently applied.\n * @private\n * @param {String}\n * @returns {boolean}\n */\nconst isTheme = _theme => {\n\tconst currentTheme = getTheme();\n\treturn currentTheme === _theme || currentTheme === `${_theme}_exp`;\n};\n\nexport {\n\tgetTheme,\n\tsetTheme,\n\tisTheme,\n};\n","const getActiveElement = () => {\n\tlet element = document.activeElement;\n\n\twhile (element && element.shadowRoot && element.shadowRoot.activeElement) {\n\t\telement = element.shadowRoot.activeElement;\n\t}\n\n\treturn element;\n};\n\nexport default getActiveElement;\n","import getSharedResource from \"../getSharedResource.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport getActiveElement from \"./getActiveElement.js\";\n\nconst PopupUtilsData = getSharedResource(\"PopupUtilsData\", {});\nPopupUtilsData.currentZIndex = PopupUtilsData.currentZIndex || 100;\n\nconst getFocusedElement = () => {\n\tconst element = getActiveElement();\n\treturn (element && typeof element.focus === \"function\") ? element : null;\n};\n\nconst isFocusedElementWithinNode = node => {\n\tconst fe = getFocusedElement();\n\n\tif (fe) {\n\t\treturn isNodeContainedWithin(node, fe);\n\t}\n\n\treturn false;\n};\n\nconst isNodeContainedWithin = (parent, child) => {\n\tlet currentNode = parent;\n\n\tif (currentNode.shadowRoot) {\n\t\tcurrentNode = Array.from(currentNode.shadowRoot.children).find(n => n.localName !== \"style\");\n\t}\n\n\tif (currentNode === child) {\n\t\treturn true;\n\t}\n\n\tconst childNodes = currentNode.localName === \"slot\" ? currentNode.assignedNodes() : currentNode.children;\n\n\tif (childNodes) {\n\t\treturn Array.from(childNodes).some(n => isNodeContainedWithin(n, child));\n\t}\n};\n\nconst isPointInRect = (x, y, rect) => {\n\treturn x >= rect.left && x <= rect.right\n\t\t&& y >= rect.top && y <= rect.bottom;\n};\n\nconst isClickInRect = (event, rect) => {\n\tlet x;\n\tlet y;\n\n\tif (event.touches) {\n\t\tconst touch = event.touches[0];\n\t\tx = touch.clientX;\n\t\ty = touch.clientY;\n\t} else {\n\t\tx = event.clientX;\n\t\ty = event.clientY;\n\t}\n\n\treturn isPointInRect(x, y, rect);\n};\n\nconst getClosedPopupParent = el => {\n\tconst parent = el.parentElement || (el.getRootNode && el.getRootNode().host);\n\n\tif (parent && ((parent.showAt && parent.isUI5Element) || (parent.open && parent.isUI5Element) || parent === document.documentElement)) {\n\t\treturn parent;\n\t}\n\n\treturn getClosedPopupParent(parent);\n};\n\nconst getNextZIndex = () => {\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support && OpenUI5Support.isLoaded()) { // use OpenUI5 for getting z-index values, if loaded\n\t\treturn OpenUI5Support.getNextZIndex();\n\t}\n\n\tPopupUtilsData.currentZIndex += 2;\n\treturn PopupUtilsData.currentZIndex;\n};\n\nconst getCurrentZIndex = () => {\n\treturn PopupUtilsData.currentZIndex;\n};\n\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\n\tgetNextZIndex,\n\tgetCurrentZIndex,\n\tisFocusedElementWithinNode,\n};\n","import { registerFeature } from \"../FeaturesRegistry.js\";\nimport { setTheme } from \"../config/Theme.js\";\nimport { getCurrentZIndex } from \"../util/PopupUtils.js\";\n\nconst getCore = () => {\n\tconst sap = window.sap;\n\tconst core = sap && sap.ui && typeof sap.ui.getCore === \"function\" && sap.ui.getCore();\n\treturn core;\n};\n\nconst isLoaded = () => {\n\treturn !!getCore();\n};\n\nconst init = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn Promise.resolve();\n\t}\n\n\treturn new Promise(resolve => {\n\t\tcore.attachInit(() => {\n\t\t\twindow.sap.ui.require([\"sap/ui/core/LocaleData\", \"sap/ui/core/Popup\"], (LocaleData, Popup) => {\n\t\t\t\tPopup.setInitialZIndex(getCurrentZIndex());\n\t\t\t\tresolve();\n\t\t\t});\n\t\t});\n\t});\n};\n\nconst getConfigurationSettingsObject = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tconst config = core.getConfiguration();\n\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\");\n\n\treturn {\n\t\tanimationMode: config.getAnimationMode(),\n\t\tlanguage: config.getLanguage(),\n\t\ttheme: config.getTheme(),\n\t\trtl: config.getRTL(),\n\t\tcalendarType: config.getCalendarType(),\n\t\tformatSettings: {\n\t\t\tfirstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,\n\t\t},\n\t};\n};\n\nconst getLocaleDataObject = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tconst config = core.getConfiguration();\n\tconst LocaleData = window.sap.ui.require(\"sap/ui/core/LocaleData\");\n\treturn LocaleData.getInstance(config.getLocale())._get();\n};\n\nconst listenForThemeChange = () => {\n\tconst core = getCore();\n\tconst config = core.getConfiguration();\n\tcore.attachThemeChanged(async () => {\n\t\tawait setTheme(config.getTheme());\n\t});\n};\n\nconst attachListeners = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tlistenForThemeChange();\n};\n\nconst cssVariablesLoaded = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tconst link = [...document.head.children].find(el => el.id === \"sap-ui-theme-sap.ui.core\"); // more reliable than querySelector early\n\tif (!link) {\n\t\treturn;\n\t}\n\n\treturn !!link.href.match(/\\/css(-|_)variables\\.css/);\n};\n\nconst getNextZIndex = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tconst Popup = window.sap.ui.require(\"sap/ui/core/Popup\");\n\treturn Popup.getNextZIndex();\n};\n\nconst setInitialZIndex = () => {\n\tconst core = getCore();\n\tif (!core) {\n\t\treturn;\n\t}\n\n\tconst Popup = window.sap.ui.require(\"sap/ui/core/Popup\");\n\tPopup.setInitialZIndex(getCurrentZIndex());\n};\n\nconst OpenUI5Support = {\n\tisLoaded,\n\tinit,\n\tgetConfigurationSettingsObject,\n\tgetLocaleDataObject,\n\tattachListeners,\n\tcssVariablesLoaded,\n\tgetNextZIndex,\n\tsetInitialZIndex,\n};\n\nregisterFeature(\"OpenUI5Support\", OpenUI5Support);\n","export default {\n\tpackageName: \"@ui5/webcomponents-base\",\n\tfileName: \"FontFace.css\",\n\tcontent: `@font-face{font-family:\"72\";font-style:normal;font-weight:400;src:local(\"72\"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format(\"woff2\"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format(\"woff\")}@font-face{font-family:\"72full\";font-style:normal;font-weight:400;src:local('72-full'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format(\"woff2\"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format(\"woff\")}@font-face{font-family:\"72\";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format(\"woff2\"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format(\"woff\")}@font-face{font-family:\"72full\";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format(\"woff2\"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format(\"woff\")}@font-face{font-family:\"72Black\";font-style:bold;font-weight:900;src:local('72Black'),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format(\"woff2\"),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff?ui5-webcomponents) format(\"woff\")}`\n};","export default {\n\tpackageName: \"@ui5/webcomponents-base\",\n\tfileName: \"OverrideFontFace.css\",\n\tcontent: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`\n};","import { hasStyle, createStyle } from \"./ManagedStyles.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\nimport fontFaceCSS from \"./generated/css/FontFace.css.js\";\nimport overrideFontFaceCSS from \"./generated/css/OverrideFontFace.css.js\";\n\nconst insertFontFace = () => {\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\n\t// Only set the main font if there is no OpenUI5 support, or there is, but OpenUI5 is not loaded\n\tif (!OpenUI5Support || !OpenUI5Support.isLoaded()) {\n\t\tinsertMainFontFace();\n\t}\n\n\t// Always set the override font - OpenUI5 in CSS Vars mode does not set it, unlike the main font\n\tinsertOverrideFontFace();\n};\n\nconst insertMainFontFace = () => {\n\tif (!hasStyle(\"data-ui5-font-face\")) {\n\t\tcreateStyle(fontFaceCSS, \"data-ui5-font-face\");\n\t}\n};\n\nconst insertOverrideFontFace = () => {\n\tif (!hasStyle(\"data-ui5-font-face-override\")) {\n\t\tcreateStyle(overrideFontFaceCSS, \"data-ui5-font-face-override\");\n\t}\n};\n\nexport default insertFontFace;\n","export default {\n\tpackageName: \"@ui5/webcomponents-base\",\n\tfileName: \"SystemCSSVars.css\",\n\tcontent: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`\n};","import EventProvider from \"./EventProvider.js\";\nimport whenDOMReady from \"./util/whenDOMReady.js\";\nimport insertFontFace from \"./FontFace.js\";\nimport insertSystemCSSVars from \"./SystemCSSVars.js\";\nimport { getTheme } from \"./config/Theme.js\";\nimport applyTheme from \"./theming/applyTheme.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\n\nlet booted = false;\nconst eventProvider = new EventProvider();\n\n/**\n * Attach a callback that will be executed on boot\n * @public\n * @param listener\n */\nconst attachBoot = listener => {\n\teventProvider.attachEvent(\"boot\", listener);\n};\n\nconst boot = async () => {\n\tif (booted) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support) {\n\t\tawait OpenUI5Support.init();\n\t}\n\n\tawait whenDOMReady();\n\tawait applyTheme(getTheme());\n\tOpenUI5Support && OpenUI5Support.attachListeners();\n\tinsertFontFace();\n\tinsertSystemCSSVars();\n\tawait eventProvider.fireEventAsync(\"boot\");\n\tbooted = true;\n};\n\nexport {\n\tboot,\n\tattachBoot,\n};\n","const whenDOMReady = () => {\n\treturn new Promise(resolve => {\n\t\tif (document.body) {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t});\n};\n\nexport default whenDOMReady;\n","import { hasStyle, createStyle } from \"./ManagedStyles.js\";\nimport systemCSSVars from \"./generated/css/SystemCSSVars.css.js\";\n\nconst insertSystemCSSVars = () => {\n\tif (!hasStyle(\"data-ui5-system-css-vars\")) {\n\t\tcreateStyle(systemCSSVars, \"data-ui5-system-css-vars\");\n\t}\n};\n\nexport default insertSystemCSSVars;\n","/**\n * Base class for all data types.\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.types.DataType\n * @public\n */\nclass DataType {\n\tstatic isValid(value) {\n\t}\n\n\tstatic attributeToProperty(attributeValue) {\n\t\treturn attributeValue;\n\t}\n\n\tstatic propertyToAttribute(propertyValue) {\n\t\treturn `${propertyValue}`;\n\t}\n\n\tstatic valuesAreEqual(value1, value2) {\n\t\treturn value1 === value2;\n\t}\n\n\tstatic generateTypeAccessors(types) {\n\t\tObject.keys(types).forEach(type => {\n\t\t\tObject.defineProperty(this, type, {\n\t\t\t\tget() {\n\t\t\t\t\treturn types[type];\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default DataType;\n","const isDescendantOf = (klass, baseKlass, inclusive = false) => {\n\tif (typeof klass !== \"function\" || typeof baseKlass !== \"function\") {\n\t\treturn false;\n\t}\n\tif (inclusive && klass === baseKlass) {\n\t\treturn true;\n\t}\n\tlet parent = klass;\n\tdo {\n\t\tparent = Object.getPrototypeOf(parent);\n\t} while (parent !== null && parent !== baseKlass);\n\treturn parent === baseKlass;\n};\n\nexport default isDescendantOf;\n","const kebabToCamelMap = new Map();\nconst camelToKebabMap = new Map();\n\nconst kebabToCamelCase = string => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string);\n};\n\nconst camelToKebabCase = string => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string);\n};\n\nconst toCamelCase = parts => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nexport { kebabToCamelCase, camelToKebabCase };\n","/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = node => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst isSlot = el => el && el instanceof HTMLElement && el.localName === \"slot\";\n\nconst getSlottedElements = el => {\n\tif (isSlot(el)) {\n\t\treturn el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [el];\n};\n\nconst getSlottedElementsList = elList => {\n\tconst reducer = (acc, curr) => acc.concat(getSlottedElements(curr));\n\treturn elList.reduce(reducer, []);\n};\n\nexport {\n\tgetSlotName,\n\tisSlot,\n\tgetSlottedElements,\n\tgetSlottedElementsList,\n};\n","let suf;\nlet rulesObj = {\n\tinclude: [/^ui5-/],\n\texclude: [],\n};\nconst tagsCache = new Map(); // true/false means the tag should/should not be cached, undefined means not known yet.\n\n/**\n * Sets the suffix to be used for custom elements scoping, f.e. pass \"demo\" to get tags such as \"ui5-button-demo\".\n * Note: by default all tags starting with \"ui5-\" will be scoped, unless you change this by calling \"setCustomElementsScopingRules\"\n *\n * @public\n * @param suffix The scoping suffix\n */\nconst setCustomElementsScopingSuffix = suffix => {\n\tif (!suffix.match(/^[a-zA-Z0-9_-]+$/)) {\n\t\tthrow new Error(\"Only alphanumeric characters and dashes allowed for the scoping suffix\");\n\t}\n\n\tsuf = suffix;\n};\n\n/**\n * Returns the currently set scoping suffix, or undefined if not set.\n *\n * @public\n * @returns {String|undefined}\n */\nconst getCustomElementsScopingSuffix = () => {\n\treturn suf;\n};\n\n/**\n * Sets the rules, governing which custom element tags to scope and which not, f.e.\n * setCustomElementsScopingRules({include: [/^ui5-/]}, exclude: [/^ui5-mylib-/, /^ui5-carousel$/]);\n * will scope all elements starting with \"ui5-\" but not the ones starting with \"ui5-mylib-\" and not \"ui5-carousel\".\n *\n * @public\n * @param rules Object with \"include\" and \"exclude\" properties, both arrays of regular expressions. Note that \"include\"\n * rules are applied first and \"exclude\" rules second.\n */\nconst setCustomElementsScopingRules = rules => {\n\tif (!rules || !rules.include) {\n\t\tthrow new Error(`\"rules\" must be an object with at least an \"include\" property`);\n\t}\n\n\tif (!Array.isArray(rules.include) || rules.include.some(rule => !(rule instanceof RegExp))) {\n\t\tthrow new Error(`\"rules.include\" must be an array of regular expressions`);\n\t}\n\n\tif (rules.exclude && (!Array.isArray(rules.exclude) || rules.exclude.some(rule => !(rule instanceof RegExp)))) {\n\t\tthrow new Error(`\"rules.exclude\" must be an array of regular expressions`);\n\t}\n\n\trules.exclude = rules.exclude || [];\n\trulesObj = rules;\n\ttagsCache.clear(); // reset the cache upon setting new rules\n};\n\n/**\n * Returns the rules, governing which custom element tags to scope and which not. By default, all elements\n * starting with \"ui5-\" are scoped. The default rules are: {include: [/^ui5-/]}.\n *\n * @public\n * @returns {Object}\n */\nconst getCustomElementsScopingRules = () => {\n\treturn rulesObj;\n};\n\n/**\n * Determines whether custom elements with the given tag should be scoped or not.\n * The tag is first matched against the \"include\" rules and then against the \"exclude\" rules and the\n * result is cached until new rules are set.\n *\n * @public\n * @param tag\n */\nconst shouldScopeCustomElement = tag => {\n\tif (!tagsCache.has(tag)) {\n\t\tconst result = rulesObj.include.some(rule => tag.match(rule)) && !rulesObj.exclude.some(rule => tag.match(rule));\n\t\ttagsCache.set(tag, result);\n\t}\n\n\treturn tagsCache.get(tag);\n};\n\n/**\n * Returns the currently set scoping suffix, if any and if the tag should be scoped, or undefined otherwise.\n *\n * @public\n * @param tag\n * @returns {String}\n */\nconst getEffectiveScopingSuffixForTag = tag => {\n\tif (shouldScopeCustomElement(tag)) {\n\t\treturn getCustomElementsScopingSuffix();\n\t}\n};\n\nexport {\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tshouldScopeCustomElement,\n\tgetEffectiveScopingSuffixForTag,\n};\n","import DataType from \"./types/DataType.js\";\nimport isDescendantOf from \"./util/isDescendantOf.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\nimport { getSlottedElements } from \"./util/SlotsHelper.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScope.js\";\n\n/**\n *\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tconstructor(metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\tgetInitialState() {\n\t\tif (Object.prototype.hasOwnProperty.call(this, \"_initialState\")) {\n\t\t\treturn this._initialState;\n\t\t}\n\n\t\tconst initialState = {};\n\t\tconst slotsAreManaged = this.slotsAreManaged();\n\n\t\t// Initialize properties\n\t\tconst props = this.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tinitialState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tinitialState[propName] = [];\n\t\t\t} else if (propType === Object) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t} else if (propType === String) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tinitialState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tinitialState[propertyName] = [];\n\t\t\t}\n\t\t}\n\n\t\tthis._initialState = initialState;\n\t\treturn initialState;\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validatePropertyValue(value, propData) {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple) {\n\t\t\treturn value.map(propValue => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validateSlotValue(value, slotData) {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element without the scope\n\t * @public\n\t */\n\tgetPureTag() {\n\t\treturn this.metadata.tag;\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag() {\n\t\tconst pureTag = this.metadata.tag;\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Used to get the tag we need to register for backwards compatibility\n\t * @public\n\t */\n\tgetAltTag() {\n\t\tconst pureAltTag = this.metadata.altTag;\n\t\tif (!pureAltTag) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureAltTag);\n\t\tif (!suffix) {\n\t\t\treturn pureAltTag;\n\t\t}\n\n\t\treturn `${pureAltTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t * @returns {boolean}\n\t */\n\thasAttribute(propName) {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute && !propData.multiple;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetPropertiesList() {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetAttributesList() {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute, this).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\tgetSlots() {\n\t\treturn this.metadata.slots || {};\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text\n\t * @returns {boolean}\n\t */\n\tcanSlotText() {\n\t\tconst defaultSlot = this.getSlots().default;\n\t\treturn defaultSlot && defaultSlot.type === Node;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots() {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots with \"individualSlots: true\"\n\t * @public\n\t */\n\thasIndividualSlots() {\n\t\treturn this.slotsAreManaged() && Object.entries(this.getSlots()).some(([_slotName, slotData]) => slotData.individualSlots);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed\n\t * @public\n\t */\n\tslotsAreManaged() {\n\t\treturn !!this.metadata.managedSlots;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties() {\n\t\treturn this.metadata.properties || {};\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents() {\n\t\treturn this.metadata.events || {};\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)\n\t * @returns {boolean}\n\t */\n\tisLanguageAware() {\n\t\treturn !!this.metadata.languageAware;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any theme dependant carachteristics.\n\t * @returns {boolean}\n\t */\n\t isThemeAware() {\n\t\treturn !!this.metadata.themeAware;\n\t}\n\n\t/**\n\t * Matches a changed entity (property/slot) with the given name against the \"invalidateOnChildChange\" configuration\n\t * and determines whether this should cause and invalidation\n\t *\n\t * @param slotName the name of the slot in which a child was changed\n\t * @param type the type of change in the child: \"property\" or \"slot\"\n\t * @param name the name of the property/slot that changed\n\t * @returns {boolean}\n\t */\n\tshouldInvalidateOnChildChange(slotName, type, name) {\n\t\tconst config = this.getSlots()[slotName].invalidateOnChildChange;\n\n\t\t// invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component\n\t\tif (config === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The simple format was used: invalidateOnChildChange: true/false;\n\t\tif (typeof config === \"boolean\") {\n\t\t\treturn config;\n\t\t}\n\n\t\t// The complex format was used: invalidateOnChildChange: { properties, slots }\n\t\tif (typeof config === \"object\") {\n\t\t\t// A property was changed\n\t\t\tif (type === \"property\") {\n\t\t\t\t// The config object does not have a properties field\n\t\t\t\tif (config.properties === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: properties: true/false\n\t\t\t\tif (typeof config.properties === \"boolean\") {\n\t\t\t\t\treturn config.properties;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: properties: [...]\n\t\t\t\tif (Array.isArray(config.properties)) {\n\t\t\t\t\treturn config.properties.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.properties: boolean or array is expected\");\n\t\t\t}\n\n\t\t\t// A slot was changed\n\t\t\tif (type === \"slot\") {\n\t\t\t\t// The config object does not have a slots field\n\t\t\t\tif (config.slots === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: slots: true/false\n\t\t\t\tif (typeof config.slots === \"boolean\") {\n\t\t\t\t\treturn config.slots;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: slots: [...]\n\t\t\t\tif (Array.isArray(config.slots)) {\n\t\t\t\t\treturn config.slots.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.slots: boolean or array is expected\");\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Wrong format for invalidateOnChildChange: boolean or object is expected\");\n\t}\n}\n\nconst validateSingleProperty = (value, propData) => {\n\tconst propertyType = propData.type;\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\tif (propertyType === String) {\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\tif (isDescendantOf(propertyType, DataType)) {\n\t\treturn propertyType.isValid(value) ? value : propData.defaultValue;\n\t}\n};\n\nconst validateSingleSlot = (value, slotData) => {\n\tvalue && getSlottedElements(value).forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`${el} is not of type ${slotData.type}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\n","if (!customElements.get(\"ui5-static-area\")) {\n\tcustomElements.define(\"ui5-static-area\", class extends HTMLElement {});\n}\n","import { getCustomElementsScopingSuffix, shouldScopeCustomElement } from \"../CustomElementsScope.js\";\n\n/**\n * Runs a component's template with the component's current state, while also scoping HTML\n *\n * @param template - the template to execute\n * @param component - the component\n * @public\n * @returns {*}\n */\nconst executeTemplate = (template, component) => {\n\tconst tagsToScope = component.constructor.getUniqueDependencies().map(dep => dep.getMetadata().getPureTag()).filter(shouldScopeCustomElement);\n\tconst scope = getCustomElementsScopingSuffix();\n\treturn template(component, tagsToScope, scope);\n};\n\nexport default executeTemplate;\n","const getStylesString = styles => {\n\tif (Array.isArray(styles)) {\n\t\treturn flatten(styles.filter(style => !!style)).map(style => {\n\t\t\treturn typeof style === \"string\" ? style : style.content;\n\t\t}).join(\" \");\n\t}\n\n\treturn typeof styles === \"string\" ? styles : styles.content;\n};\n\nconst flatten = arr => {\n\treturn arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []);\n};\n\nexport default getStylesString;\n","import { getCustomCSS, attachCustomCSSChange } from \"./CustomStyle.js\";\nimport getStylesString from \"./getStylesString.js\";\n\nconst effectiveStyleMap = new Map();\n\nattachCustomCSSChange(tag => {\n\teffectiveStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part\n});\n\nconst getEffectiveStyle = (ElementClass, forStaticArea = false) => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tconst key = `${tag}_${forStaticArea ? \"static\" : \"normal\"}`;\n\n\tif (!effectiveStyleMap.has(key)) {\n\t\tlet effectiveStyle;\n\n\t\tif (forStaticArea) {\n\t\t\teffectiveStyle = getStylesString(ElementClass.staticAreaStyles);\n\t\t} else {\n\t\t\tconst customStyle = getCustomCSS(tag) || \"\";\n\t\t\tconst builtInStyles = getStylesString(ElementClass.styles);\n\t\t\teffectiveStyle = `${builtInStyles} ${customStyle}`;\n\t\t}\n\t\teffectiveStyleMap.set(key, effectiveStyle);\n\t}\n\n\treturn effectiveStyleMap.get(key);\n};\n\nexport default getEffectiveStyle;\n","import getEffectiveStyle from \"./getEffectiveStyle.js\";\nimport { attachCustomCSSChange } from \"./CustomStyle.js\";\n\nconst constructableStyleMap = new Map();\n\nattachCustomCSSChange(tag => {\n\tconstructableStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part\n});\n\n/**\n * Returns (and caches) a constructable style sheet for a web component class\n * Note: Chrome\n * @param ElementClass\n * @returns {*}\n */\nconst getConstructableStyle = (ElementClass, forStaticArea = false) => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tconst key = `${tag}_${forStaticArea ? \"static\" : \"normal\"}`;\n\n\tif (!constructableStyleMap.has(key)) {\n\t\tconst styleContent = getEffectiveStyle(ElementClass, forStaticArea);\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(styleContent);\n\t\tconstructableStyleMap.set(key, [style]);\n\t}\n\n\treturn constructableStyleMap.get(key);\n};\n\nexport default getConstructableStyle;\n","const isLegacyBrowser = () => !!window.ShadyDOM;\n\nexport default isLegacyBrowser;\n","import executeTemplate from \"./renderer/executeTemplate.js\";\nimport getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport getEffectiveStyle from \"./theming/getEffectiveStyle.js\";\nimport getEffectiveLinksHrefs from \"./theming/getEffectiveLinksHrefs.js\";\nimport isLegacyBrowser from \"./isLegacyBrowser.js\";\nimport { shouldUseLinks } from \"./CSP.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n * @param forStaticArea\n */\nconst updateShadowRoot = (element, forStaticArea = false) => {\n\tlet styleStrOrHrefsArr;\n\tconst template = forStaticArea ? \"staticAreaTemplate\" : \"template\";\n\tconst shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;\n\tconst renderResult = executeTemplate(element.constructor[template], element);\n\n\tif (shouldUseLinks()) {\n\t\tstyleStrOrHrefsArr = getEffectiveLinksHrefs(element.constructor, forStaticArea);\n\t} else if (document.adoptedStyleSheets) { // Chrome\n\t\tshadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);\n\t} else if (!isLegacyBrowser()) { // FF, Safari\n\t\tstyleStrOrHrefsArr = getEffectiveStyle(element.constructor, forStaticArea);\n\t}\n\n\telement.constructor.render(renderResult, shadowRoot, styleStrOrHrefsArr, { host: element });\n};\n\nexport default updateShadowRoot;\n","const GLOBAL_CONTENT_DENSITY_CSS_VAR = \"--_ui5_content_density\";\n\nconst getEffectiveContentDensity = el => getComputedStyle(el).getPropertyValue(GLOBAL_CONTENT_DENSITY_CSS_VAR);\n\nexport default getEffectiveContentDensity;\n","import EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = new EventProvider();\nconst LANG_CHANGE = \"languageChange\";\n\nconst attachLanguageChange = listener => {\n\teventProvider.attachEvent(LANG_CHANGE, listener);\n};\n\nconst detachLanguageChange = listener => {\n\teventProvider.detachEvent(LANG_CHANGE, listener);\n};\n\nconst fireLanguageChange = lang => {\n\treturn eventProvider.fireEventAsync(LANG_CHANGE, lang);\n};\n\nexport {\n\tattachLanguageChange,\n\tdetachLanguageChange,\n\tfireLanguageChange,\n};\n","import {\n\tgetLanguage as getConfiguredLanguage,\n\tgetFetchDefaultLanguage as getConfiguredFetchDefaultLanguage,\n} from \"../InitialConfiguration.js\";\nimport { fireLanguageChange } from \"../locale/languageChange.js\";\nimport { reRenderAllUI5Elements } from \"../Render.js\";\n\nlet language;\nlet fetchDefaultLanguage;\n\n/**\n * Returns the currently configured language, or the browser language as a fallback\n * @returns {String}\n */\nconst getLanguage = () => {\n\tif (language === undefined) {\n\t\tlanguage = getConfiguredLanguage();\n\t}\n\treturn language;\n};\n\n/**\n * Changes the current language, re-fetches all message bundles, updates all language-aware components\n * and returns a promise that resolves when all rendering is done\n *\n * @param newLanguage\n * @returns {Promise<void>}\n */\nconst setLanguage = async newLanguage => {\n\tif (language === newLanguage) {\n\t\treturn;\n\t}\n\n\tlanguage = newLanguage;\n\n\tawait fireLanguageChange(newLanguage);\n\tawait reRenderAllUI5Elements({ languageAware: true });\n};\n\n/**\n * Defines if the default language, that is inlined, should be\n * fetched over the network instead of using the inlined one.\n * <b>Note:</b> By default the language will not be fetched.\n *\n * @param {Boolean} fetchDefaultLanguage\n */\nconst setFetchDefaultLanguage = fetchDefaultLang => {\n\tfetchDefaultLanguage = fetchDefaultLang;\n};\n\n/**\n * Returns if the default language, that is inlined, should be fetched over the network.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tif (fetchDefaultLanguage === undefined) {\n\t\tsetFetchDefaultLanguage(getConfiguredFetchDefaultLanguage());\n\t}\n\n\treturn fetchDefaultLanguage;\n};\n\nexport {\n\tgetLanguage,\n\tsetLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n};\n","export default value => {\n\tconst m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(value);\n\treturn m && m[2] ? m[2].split(/,/) : null;\n};\n","import { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nexport default () => {\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage() || navigator.userLanguage || navigator.browserLanguage;\n\n\treturn rawLocale || DEFAULT_LANGUAGE;\n};\n","import { getRTL as getConfiguredRTL } from \"../InitialConfiguration.js\";\nimport { getLanguage } from \"./Language.js\";\nimport getDesigntimePropertyAsArray from \"../util/getDesigntimePropertyAsArray.js\";\nimport detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n\t\"sh\": \"sr\",\n};\n\nconst A_RTL_LOCALES = getDesigntimePropertyAsArray(\"$cldr-rtl-locales:ar,fa,he$\") || [];\n\nconst impliesRTL = language => {\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language]) || language;\n\n\treturn A_RTL_LOCALES.indexOf(language) >= 0;\n};\n\nconst getRTL = () => {\n\tconst configurationRTL = getConfiguredRTL();\n\n\tif (configurationRTL !== null) {\n\t\treturn !!configurationRTL;\n\t}\n\n\treturn impliesRTL(getLanguage() || detectNavigatorLanguage());\n};\n\nexport { getRTL }; // eslint-disable-line\n","import { getRTL } from \"../config/RTL.js\";\n\nconst GLOBAL_DIR_CSS_VAR = \"--_ui5_dir\";\n\nconst getEffectiveDir = element => {\n\tconst doc = window.document;\n\tconst dirValues = [\"ltr\", \"rtl\"]; // exclude \"auto\" and \"\" from all calculations\n\tconst locallyAppliedDir = getComputedStyle(element).getPropertyValue(GLOBAL_DIR_CSS_VAR);\n\n\t// In that order, inspect the CSS Var (for modern browsers), the element itself, html and body (for IE fallback)\n\tif (dirValues.includes(locallyAppliedDir)) {\n\t\treturn locallyAppliedDir;\n\t}\n\tif (dirValues.includes(element.dir)) {\n\t\treturn element.dir;\n\t}\n\tif (dirValues.includes(doc.documentElement.dir)) {\n\t\treturn doc.documentElement.dir;\n\t}\n\tif (dirValues.includes(doc.body.dir)) {\n\t\treturn doc.body.dir;\n\t}\n\n\t// Finally, check the configuration for explicitly set RTL or language-implied RTL\n\treturn getRTL() ? \"rtl\" : undefined;\n};\n\nexport default getEffectiveDir;\n","import \"./StaticArea.js\";\nimport updateShadowRoot from \"./updateShadowRoot.js\";\nimport { renderFinished } from \"./Render.js\";\nimport getEffectiveContentDensity from \"./util/getEffectiveContentDensity.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScope.js\";\nimport getEffectiveDir from \"./locale/getEffectiveDir.js\";\n\n/**\n *\n * @class\n * @author SAP SE\n * @private\n */\nclass StaticAreaItem extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._rendered = false;\n\t\tthis.attachShadow({ mode: \"open\" });\n\t}\n\n\t/**\n\t * @protected\n\t * @param ownerElement The UI5Element instance that owns this static area item\n\t */\n\tsetOwnerElement(ownerElement) {\n\t\tthis.ownerElement = ownerElement;\n\t\tthis.classList.add(this.ownerElement._id); // used for getting the popover in the tests\n\t}\n\n\t/**\n\t * Updates the shadow root of the static area item with the latest state, if rendered\n\t * @protected\n\t */\n\tupdate() {\n\t\tif (this._rendered) {\n\t\t\tthis._updateContentDensity();\n\t\t\tthis._updateDirection();\n\t\t\tupdateShadowRoot(this.ownerElement, true);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the correct content density based on the owner element's state\n\t * @private\n\t */\n\t_updateContentDensity() {\n\t\tif (getEffectiveContentDensity(this.ownerElement) === \"compact\") {\n\t\t\tthis.classList.add(\"sapUiSizeCompact\");\n\t\t\tthis.classList.add(\"ui5-content-density-compact\");\n\t\t} else {\n\t\t\tthis.classList.remove(\"sapUiSizeCompact\");\n\t\t\tthis.classList.remove(\"ui5-content-density-compact\");\n\t\t}\n\t}\n\n\t_updateDirection() {\n\t\tconst dir = getEffectiveDir(this.ownerElement);\n\t\tif (dir) {\n\t\t\tthis.setAttribute(\"dir\", dir);\n\t\t} else {\n\t\t\tthis.removeAttribute(\"dir\");\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t * Returns reference to the DOM element where the current fragment is added.\n\t */\n\tasync getDomRef() {\n\t\tthis._updateContentDensity();\n\t\tif (!this._rendered) {\n\t\t\tthis._rendered = true;\n\t\t\tupdateShadowRoot(this.ownerElement, true);\n\t\t}\n\t\tawait renderFinished(); // Wait for the content of the ui5-static-area-item to be rendered\n\t\treturn this.shadowRoot;\n\t}\n\n\tstatic getTag() {\n\t\tconst pureTag = \"ui5-static-area-item\";\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\tstatic createInstance() {\n\t\tif (!customElements.get(StaticAreaItem.getTag())) {\n\t\t\tcustomElements.define(StaticAreaItem.getTag(), StaticAreaItem);\n\t\t}\n\n\t\treturn document.createElement(this.getTag());\n\t}\n}\n\nexport default StaticAreaItem;\n","const observers = new WeakMap(); // We want just one observer per node, store them here -> DOM nodes are keys\n\n/**\n * Default implementation with MutationObserver for browsers with native support\n */\nlet _createObserver = (node, callback, options) => {\n\tconst observer = new MutationObserver(callback);\n\tobserver.observe(node, options);\n\treturn observer;\n};\n\n/**\n * Default implementation with MutationObserver for browsers with native support\n */\nlet _destroyObserver = observer => {\n\tobserver.disconnect();\n};\n\n/**\n * Allows to create an alternative DOM observer implementation\n * @param createFn\n */\nconst setCreateObserverCallback = createFn => {\n\tif (typeof createFn === \"function\") {\n\t\t_createObserver = createFn;\n\t}\n};\n\n/**\n * Allows to create an alternative DOM observer implementation\n * @param destroyFn\n */\nconst setDestroyObserverCallback = destroyFn => {\n\tif (typeof destroyFn === \"function\") {\n\t\t_destroyObserver = destroyFn;\n\t}\n};\n\n/**\n * @param node\n * @param callback\n * @param options\n */\nconst observeDOMNode = (node, callback, options) => {\n\tconst observer = _createObserver(node, callback, options);\n\tobservers.set(node, observer);\n};\n\n/**\n * @param node\n */\nconst unobserveDOMNode = node => {\n\tconst observer = observers.get(node);\n\tif (observer) {\n\t\t_destroyObserver(observer);\n\t\tobservers.delete(node);\n\t}\n};\n\nexport {\n\tsetCreateObserverCallback,\n\tsetDestroyObserverCallback,\n\tobserveDOMNode,\n\tunobserveDOMNode,\n};\n","import { getNoConflict as getConfiguredNoConflict } from \"../InitialConfiguration.js\";\n\n// Fire these events even with noConflict: true\nconst excludeList = [\n\t\"value-changed\",\n];\n\nconst shouldFireOriginalEvent = eventName => {\n\treturn excludeList.includes(eventName);\n};\n\nlet noConflict;\n\nconst shouldNotFireOriginalEvent = eventName => {\n\tconst nc = getNoConflict();\n\treturn !(nc.events && nc.events.includes && nc.events.includes(eventName));\n};\n\nconst getNoConflict = () => {\n\tif (noConflict === undefined) {\n\t\tnoConflict = getConfiguredNoConflict();\n\t}\n\n\treturn noConflict;\n};\n\nconst skipOriginalEvent = eventName => {\n\tconst nc = getNoConflict();\n\n\t// Always fire these events\n\tif (shouldFireOriginalEvent(eventName)) {\n\t\treturn false;\n\t}\n\n\t// Read from the configuration\n\tif (nc === true) {\n\t\treturn true;\n\t}\n\n\treturn !shouldNotFireOriginalEvent(eventName);\n};\n\nconst setNoConflict = noConflictData => {\n\tnoConflict = noConflictData;\n};\n\nexport {\n\tgetNoConflict,\n\tsetNoConflict,\n\tskipOriginalEvent,\n};\n","// Note: disabled is present in IE so we explicitly allow it here.\n// Others, such as title/hidden, we explicitly override, so valid too\nconst allowList = [\n\t\"disabled\",\n\t\"title\",\n\t\"hidden\",\n\t\"role\",\n\t\"draggable\",\n];\n\n/**\n * Checks whether a property name is valid (does not collide with existing DOM API properties)\n *\n * @param name\n * @returns {boolean}\n */\nconst isValidPropertyName = name => {\n\tif (allowList.includes(name) || name.startsWith(\"aria\")) {\n\t\treturn true;\n\t}\n\tconst classes = [\n\t\tHTMLElement,\n\t\tElement,\n\t\tNode,\n\t];\n\treturn !classes.some(klass => klass.prototype.hasOwnProperty(name)); // eslint-disable-line\n};\n\nexport default isValidPropertyName;\n","const arraysAreEqual = (arr1, arr2) => {\n\tif (arr1.length !== arr2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < arr1.length; i++) {\n\t\tif (arr1[i] !== arr2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nexport default arraysAreEqual;\n","const getClassCopy = (klass, constructorCallback) => {\n\treturn class classCopy extends klass {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tconstructorCallback && constructorCallback();\n\t\t}\n\t};\n};\n\nexport default getClassCopy;\n","import merge from \"./thirdparty/merge.js\";\nimport { boot } from \"./Boot.js\";\nimport UI5ElementMetadata from \"./UI5ElementMetadata.js\";\nimport EventProvider from \"./EventProvider.js\";\nimport getSingletonElementInstance from \"./util/getSingletonElementInstance.js\";\nimport StaticAreaItem from \"./StaticAreaItem.js\";\nimport updateShadowRoot from \"./updateShadowRoot.js\";\nimport { renderDeferred, renderImmediately, cancelRender } from \"./Render.js\";\nimport { registerTag, isTagRegistered, recordTagRegistrationFailure } from \"./CustomElementsRegistry.js\";\nimport { observeDOMNode, unobserveDOMNode } from \"./DOMObserver.js\";\nimport { skipOriginalEvent } from \"./config/NoConflict.js\";\nimport getEffectiveDir from \"./locale/getEffectiveDir.js\";\nimport DataType from \"./types/DataType.js\";\nimport { kebabToCamelCase, camelToKebabCase } from \"./util/StringHelper.js\";\nimport isValidPropertyName from \"./util/isValidPropertyName.js\";\nimport isDescendantOf from \"./util/isDescendantOf.js\";\nimport { isSlot, getSlotName, getSlottedElementsList } from \"./util/SlotsHelper.js\";\nimport arraysAreEqual from \"./util/arraysAreEqual.js\";\nimport getClassCopy from \"./util/getClassCopy.js\";\nimport { markAsRtlAware } from \"./locale/RTLAwareRegistry.js\";\nimport preloadLinks from \"./theming/preloadLinks.js\";\n\nlet autoId = 0;\n\nconst elementTimeouts = new Map();\nconst uniqueDependenciesCache = new Map();\n\n/**\n * Triggers re-rendering of a UI5Element instance due to state change.\n *\n * @param changeInfo An object with information about the change that caused invalidation.\n * @private\n */\nfunction _invalidate(changeInfo) {\n\t// Invalidation should be suppressed: 1) before the component is rendered for the first time 2) and during the execution of onBeforeRendering\n\t// This is necessary not only as an optimization, but also to avoid infinite loops on invalidation between children and parents (when invalidateOnChildChange is used)\n\tif (this._suppressInvalidation) {\n\t\treturn;\n\t}\n\n\t// Call the onInvalidation hook\n\tthis.onInvalidation(changeInfo);\n\n\tthis._changedState.push(changeInfo);\n\trenderDeferred(this);\n\tthis._eventProvider.fireEvent(\"invalidate\", { ...changeInfo, target: this });\n}\n\n/**\n * Base class for all UI5 Web Components\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.UI5Element\n * @extends HTMLElement\n * @public\n */\nclass UI5Element extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._changedState = []; // Filled on each invalidation, cleared on re-render (used for debugging)\n\t\tthis._suppressInvalidation = true; // A flag telling whether all invalidations should be ignored. Initialized with \"true\" because a UI5Element can not be invalidated until it is rendered for the first time\n\t\tthis._inDOM = false; // A flag telling whether the UI5Element is currently in the DOM tree of the document or not\n\t\tthis._fullyConnected = false; // A flag telling whether the UI5Element's onEnterDOM hook was called (since it's possible to have the element removed from DOM before that)\n\t\tthis._childChangeListeners = new Map(); // used to store lazy listeners per slot for the child change event of every child inside that slot\n\t\tthis._slotChangeListeners = new Map(); // used to store lazy listeners per slot for the slotchange event of all slot children inside that slot\n\t\tthis._eventProvider = new EventProvider(); // used by parent components for listening to changes to child components\n\t\tlet deferredResolve;\n\t\tthis._domRefReadyPromise = new Promise(resolve => {\n\t\t\tdeferredResolve = resolve;\n\t\t});\n\t\tthis._domRefReadyPromise._deferredResolve = deferredResolve;\n\n\t\tthis._initializeState();\n\t\tthis._upgradeAllProperties();\n\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t}\n\t}\n\n\t/**\n\t * Returns a unique ID for this UI5 Element\n\t *\n\t * @deprecated - This property is not guaranteed in future releases\n\t * @protected\n\t */\n\tget _id() {\n\t\tif (!this.__id) {\n\t\t\tthis.__id = `ui5wc_${++autoId}`;\n\t\t}\n\n\t\treturn this.__id;\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onEnterDOM\" only\n\t * @private\n\t */\n\tasync connectedCallback() {\n\t\tthis.setAttribute(this.constructor.getMetadata().getPureTag(), \"\");\n\n\t\tconst slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();\n\n\t\tthis._inDOM = true;\n\n\t\tif (slotsAreManaged) {\n\t\t\t// always register the observer before yielding control to the main thread (await)\n\t\t\tthis._startObservingDOMChildren();\n\t\t\tawait this._processChildren();\n\t\t}\n\n\t\tif (!this._inDOM) { // Component removed from DOM while _processChildren was running\n\t\t\treturn;\n\t\t}\n\n\t\trenderImmediately(this);\n\t\tthis._domRefReadyPromise._deferredResolve();\n\t\tthis._fullyConnected = true;\n\t\tif (typeof this.onEnterDOM === \"function\") {\n\t\t\tthis.onEnterDOM();\n\t\t}\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onExitDOM\" only\n\t * @private\n\t */\n\tdisconnectedCallback() {\n\t\tconst slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();\n\n\t\tthis._inDOM = false;\n\n\t\tif (slotsAreManaged) {\n\t\t\tthis._stopObservingDOMChildren();\n\t\t}\n\n\t\tif (this._fullyConnected) {\n\t\t\tif (typeof this.onExitDOM === \"function\") {\n\t\t\t\tthis.onExitDOM();\n\t\t\t}\n\t\t\tthis._fullyConnected = false;\n\t\t}\n\n\t\tif (this.staticAreaItem && this.staticAreaItem.parentElement) {\n\t\t\tthis.staticAreaItem.parentElement.removeChild(this.staticAreaItem);\n\t\t}\n\n\t\tcancelRender(this);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_startObservingDOMChildren() {\n\t\tconst shouldObserveChildren = this.constructor.getMetadata().hasSlots();\n\t\tif (!shouldObserveChildren) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst canSlotText = this.constructor.getMetadata().canSlotText();\n\t\tconst mutationObserverOptions = {\n\t\t\tchildList: true,\n\t\t\tsubtree: canSlotText,\n\t\t\tcharacterData: canSlotText,\n\t\t};\n\t\tobserveDOMNode(this, this._processChildren.bind(this), mutationObserverOptions);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_stopObservingDOMChildren() {\n\t\tunobserveDOMNode(this);\n\t}\n\n\t/**\n\t * Note: this method is also manually called by \"compatibility/patchNodeValue.js\"\n\t * @private\n\t */\n\tasync _processChildren() {\n\t\tconst hasSlots = this.constructor.getMetadata().hasSlots();\n\t\tif (hasSlots) {\n\t\t\tawait this._updateSlots();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tasync _updateSlots() {\n\t\tconst slotsMap = this.constructor.getMetadata().getSlots();\n\t\tconst canSlotText = this.constructor.getMetadata().canSlotText();\n\t\tconst domChildren = Array.from(canSlotText ? this.childNodes : this.children);\n\n\t\tconst slotsCachedContentMap = new Map(); // Store here the content of each slot before the mutation occurred\n\t\tconst propertyNameToSlotMap = new Map(); // Used for reverse lookup to determine to which slot the property name corresponds\n\n\t\t// Init the _state object based on the supported slots and store the previous values\n\t\tfor (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tpropertyNameToSlotMap.set(propertyName, slotName);\n\t\t\tslotsCachedContentMap.set(propertyName, [...this._state[propertyName]]);\n\t\t\tthis._clearSlot(slotName, slotData);\n\t\t}\n\n\t\tconst autoIncrementMap = new Map();\n\t\tconst slottedChildrenMap = new Map();\n\n\t\tconst allChildrenUpgraded = domChildren.map(async (child, idx) => {\n\t\t\t// Determine the type of the child (mainly by the slot attribute)\n\t\t\tconst slotName = getSlotName(child);\n\t\t\tconst slotData = slotsMap[slotName];\n\n\t\t\t// Check if the slotName is supported\n\t\t\tif (slotData === undefined) {\n\t\t\t\tconst validValues = Object.keys(slotsMap).join(\", \");\n\t\t\t\tconsole.warn(`Unknown slotName: ${slotName}, ignoring`, child, `Valid values are: ${validValues}`); // eslint-disable-line\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For children that need individual slots, calculate them\n\t\t\tif (slotData.individualSlots) {\n\t\t\t\tconst nextIndex = (autoIncrementMap.get(slotName) || 0) + 1;\n\t\t\t\tautoIncrementMap.set(slotName, nextIndex);\n\t\t\t\tchild._individualSlot = `${slotName}-${nextIndex}`;\n\t\t\t}\n\n\t\t\t// Await for not-yet-defined custom elements\n\t\t\tif (child instanceof HTMLElement) {\n\t\t\t\tconst localName = child.localName;\n\t\t\t\tconst isCustomElement = localName.includes(\"-\");\n\t\t\t\tif (isCustomElement) {\n\t\t\t\t\tconst isDefined = window.customElements.get(localName);\n\t\t\t\t\tif (!isDefined) {\n\t\t\t\t\t\tconst whenDefinedPromise = window.customElements.whenDefined(localName); // Class registered, but instances not upgraded yet\n\t\t\t\t\t\tlet timeoutPromise = elementTimeouts.get(localName);\n\t\t\t\t\t\tif (!timeoutPromise) {\n\t\t\t\t\t\t\ttimeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));\n\t\t\t\t\t\t\telementTimeouts.set(localName, timeoutPromise);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait Promise.race([whenDefinedPromise, timeoutPromise]);\n\t\t\t\t\t}\n\t\t\t\t\twindow.customElements.upgrade(child);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchild = this.constructor.getMetadata().constructor.validateSlotValue(child, slotData);\n\n\t\t\t// Listen for any invalidation on the child if invalidateOnChildChange is true or an object (ignore when false or not set)\n\t\t\tif (child.isUI5Element && slotData.invalidateOnChildChange) {\n\t\t\t\tchild.attachInvalidate(this._getChildChangeListener(slotName));\n\t\t\t}\n\n\t\t\t// Listen for the slotchange event if the child is a slot itself\n\t\t\tif (isSlot(child)) {\n\t\t\t\tthis._attachSlotChange(child, slotName);\n\t\t\t}\n\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\n\t\t\tif (slottedChildrenMap.has(propertyName)) {\n\t\t\t\tslottedChildrenMap.get(propertyName).push({ child, idx });\n\t\t\t} else {\n\t\t\t\tslottedChildrenMap.set(propertyName, [{ child, idx }]);\n\t\t\t}\n\t\t});\n\n\t\tawait Promise.all(allChildrenUpgraded);\n\n\t\t// Distribute the child in the _state object, keeping the Light DOM order,\n\t\t// not the order elements are defined.\n\t\tslottedChildrenMap.forEach((children, propertyName) => {\n\t\t\tthis._state[propertyName] = children.sort((a, b) => a.idx - b.idx).map(_ => _.child);\n\t\t});\n\n\t\t// Compare the content of each slot with the cached values and invalidate for the ones that changed\n\t\tlet invalidated = false;\n\t\tfor (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tif (!arraysAreEqual(slotsCachedContentMap.get(propertyName), this._state[propertyName])) {\n\t\t\t\t_invalidate.call(this, {\n\t\t\t\t\ttype: \"slot\",\n\t\t\t\t\tname: propertyNameToSlotMap.get(propertyName),\n\t\t\t\t\treason: \"children\",\n\t\t\t\t});\n\t\t\t\tinvalidated = true;\n\t\t\t}\n\t\t}\n\n\t\t// If none of the slots had an invalidation due to changes to immediate children,\n\t\t// the change is considered to be text content of the default slot\n\t\tif (!invalidated) {\n\t\t\t_invalidate.call(this, {\n\t\t\t\ttype: \"slot\",\n\t\t\t\tname: \"default\",\n\t\t\t\treason: \"textcontent\",\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Removes all children from the slot and detaches listeners, if any\n\t * @private\n\t */\n\t_clearSlot(slotName, slotData) {\n\t\tconst propertyName = slotData.propertyName || slotName;\n\t\tconst children = this._state[propertyName];\n\n\t\tchildren.forEach(child => {\n\t\t\tif (child && child.isUI5Element) {\n\t\t\t\tchild.detachInvalidate(this._getChildChangeListener(slotName));\n\t\t\t}\n\n\t\t\tif (isSlot(child)) {\n\t\t\t\tthis._detachSlotChange(child, slotName);\n\t\t\t}\n\t\t});\n\n\t\tthis._state[propertyName] = [];\n\t}\n\n\t/**\n\t * Attach a callback that will be executed whenever the component is invalidated\n\t *\n\t * @param callback\n\t * @public\n\t */\n\tattachInvalidate(callback) {\n\t\tthis._eventProvider.attachEvent(\"invalidate\", callback);\n\t}\n\n\t/**\n\t * Detach the callback that is executed whenever the component is invalidated\n\t *\n\t * @param callback\n\t * @public\n\t */\n\tdetachInvalidate(callback) {\n\t\tthis._eventProvider.detachEvent(\"invalidate\", callback);\n\t}\n\n\t/**\n\t * Callback that is executed whenever a monitored child changes its state\n\t *\n\t * @param slotName the slot in which a child was invalidated\n\t * @param childChangeInfo the changeInfo object for the child in the given slot\n\t * @private\n\t */\n\t_onChildChange(slotName, childChangeInfo) {\n\t\tif (!this.constructor.getMetadata().shouldInvalidateOnChildChange(slotName, childChangeInfo.type, childChangeInfo.name)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The component should be invalidated as this type of change on the child is listened for\n\t\t// However, no matter what changed on the child (property/slot), the invalidation is registered as \"type=slot\" for the component itself\n\t\t_invalidate.call(this, {\n\t\t\ttype: \"slot\",\n\t\t\tname: slotName,\n\t\t\treason: \"childchange\",\n\t\t\tchild: childChangeInfo.target,\n\t\t});\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element\n\t * @private\n\t */\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tconst properties = this.constructor.getMetadata().getProperties();\n\t\tconst realName = name.replace(/^ui5-/, \"\");\n\t\tconst nameInCamelCase = kebabToCamelCase(realName);\n\t\tif (properties.hasOwnProperty(nameInCamelCase)) { // eslint-disable-line\n\t\t\tconst propertyTypeClass = properties[nameInCamelCase].type;\n\t\t\tif (propertyTypeClass === Boolean) {\n\t\t\t\tnewValue = newValue !== null;\n\t\t\t} else if (isDescendantOf(propertyTypeClass, DataType)) {\n\t\t\t\tnewValue = propertyTypeClass.attributeToProperty(newValue);\n\t\t\t}\n\t\t\tthis[nameInCamelCase] = newValue;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_updateAttribute(name, newValue) {\n\t\tif (!this.constructor.getMetadata().hasAttribute(name)) {\n\t\t\treturn;\n\t\t}\n\t\tconst properties = this.constructor.getMetadata().getProperties();\n\t\tconst propertyTypeClass = properties[name].type;\n\t\tconst attrName = camelToKebabCase(name);\n\t\tconst attrValue = this.getAttribute(attrName);\n\n\t\tif (propertyTypeClass === Boolean) {\n\t\t\tif (newValue === true && attrValue === null) {\n\t\t\t\tthis.setAttribute(attrName, \"\");\n\t\t\t} else if (newValue === false && attrValue !== null) {\n\t\t\t\tthis.removeAttribute(attrName);\n\t\t\t}\n\t\t} else if (isDescendantOf(propertyTypeClass, DataType)) {\n\t\t\tthis.setAttribute(attrName, propertyTypeClass.propertyToAttribute(newValue));\n\t\t} else if (typeof newValue !== \"object\") {\n\t\t\tif (attrValue !== newValue) {\n\t\t\t\tthis.setAttribute(attrName, newValue);\n\t\t\t}\n\t\t} // else { return; } // old object handling\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeProperty(prop) {\n\t\tif (this.hasOwnProperty(prop)) { // eslint-disable-line\n\t\t\tconst value = this[prop];\n\t\t\tdelete this[prop];\n\t\t\tthis[prop] = value;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeAllProperties() {\n\t\tconst allProps = this.constructor.getMetadata().getPropertiesList();\n\t\tallProps.forEach(this._upgradeProperty, this);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_initializeState() {\n\t\tthis._state = { ...this.constructor.getMetadata().getInitialState() };\n\t}\n\n\t/**\n\t * Returns a singleton event listener for the \"change\" event of a child in a given slot\n\t *\n\t * @param slotName the name of the slot, where the child is\n\t * @returns {any}\n\t * @private\n\t */\n\t_getChildChangeListener(slotName) {\n\t\tif (!this._childChangeListeners.has(slotName)) {\n\t\t\tthis._childChangeListeners.set(slotName, this._onChildChange.bind(this, slotName));\n\t\t}\n\t\treturn this._childChangeListeners.get(slotName);\n\t}\n\n\t/**\n\t * Returns a singleton slotchange event listener that invalidates the component due to changes in the given slot\n\t *\n\t * @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is\n\t * @returns {any}\n\t * @private\n\t */\n\t_getSlotChangeListener(slotName) {\n\t\tif (!this._slotChangeListeners.has(slotName)) {\n\t\t\tthis._slotChangeListeners.set(slotName, this._onSlotChange.bind(this, slotName));\n\t\t}\n\t\treturn this._slotChangeListeners.get(slotName);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_attachSlotChange(child, slotName) {\n\t\tchild.addEventListener(\"slotchange\", this._getSlotChangeListener(slotName));\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_detachSlotChange(child, slotName) {\n\t\tchild.removeEventListener(\"slotchange\", this._getSlotChangeListener(slotName));\n\t}\n\n\t/**\n\t * Whenever a slot element is slotted inside a UI5 Web Component, its slotchange event invalidates the component\n\t *\n\t * @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is\n\t * @private\n\t */\n\t_onSlotChange(slotName) {\n\t\t_invalidate.call(this, {\n\t\t\ttype: \"slot\",\n\t\t\tname: slotName,\n\t\t\treason: \"slotchange\",\n\t\t});\n\t}\n\n\t/**\n\t * A callback that is executed each time an already rendered component is invalidated (scheduled for re-rendering)\n\t *\n\t * @param changeInfo An object with information about the change that caused invalidation.\n\t * The object can have the following properties:\n\t * - type: (property|slot) tells what caused the invalidation\n\t * 1) property: a property value was changed either directly or as a result of changing the corresponding attribute\n\t * 2) slot: a slotted node(nodes) changed in one of several ways (see \"reason\")\n\t *\n\t * - name: the name of the property or slot that caused the invalidation\n\t *\n\t * - reason: (children|textcontent|childchange|slotchange) relevant only for type=\"slot\" only and tells exactly what changed in the slot\n\t * 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot\n\t * 2) textcontent: text nodes in the slot changed value (or nested text nodes were added or changed value). Can only trigger for slots of \"type: Node\"\n\t * 3) slotchange: a slot element, slotted inside that slot had its \"slotchange\" event listener called. This practically means that transitively slotted children changed.\n\t * Can only trigger if the child of a slot is a slot element itself.\n\t * 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.\n\t * Can only trigger for slots with \"invalidateOnChildChange\" metadata descriptor\n\t *\n\t * - newValue: the new value of the property (for type=\"property\" only)\n\t *\n\t * - oldValue: the old value of the property (for type=\"property\" only)\n\t *\n\t * - child the child that was changed (for type=\"slot\" and reason=\"childchange\" only)\n\t *\n\t * @public\n\t */\n\tonInvalidation(changeInfo) {}\n\n\t/**\n\t * Do not call this method directly, only intended to be called by js\n\t * @protected\n\t */\n\t_render() {\n\t\tconst hasIndividualSlots = this.constructor.getMetadata().hasIndividualSlots();\n\n\t\t// suppress invalidation to prevent state changes scheduling another rendering\n\t\tthis._suppressInvalidation = true;\n\n\t\tif (typeof this.onBeforeRendering === \"function\") {\n\t\t\tthis.onBeforeRendering();\n\t\t}\n\n\t\t// Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered\n\t\tif (this._onComponentStateFinalized) {\n\t\t\tthis._onComponentStateFinalized();\n\t\t}\n\n\t\t// resume normal invalidation handling\n\t\tthis._suppressInvalidation = false;\n\n\t\t// Update the shadow root with the render result\n\t\t/*\n\t\tif (this._changedState.length) {\n\t\t\tlet element = this.localName;\n\t\t\tif (this.id) {\n\t\t\t\telement = `${element}#${this.id}`;\n\t\t\t}\n\t\t\tconsole.log(\"Re-rendering:\", element, this._changedState.map(x => { // eslint-disable-line\n\t\t\t\tlet res = `${x.type}`;\n\t\t\t\tif (x.reason) {\n\t\t\t\t\tres = `${res}(${x.reason})`;\n\t\t\t\t}\n\t\t\t\tres = `${res}: ${x.name}`;\n\t\t\t\tif (x.type === \"property\") {\n\t\t\t\t\tres = `${res} ${x.oldValue} => ${x.newValue}`;\n\t\t\t\t}\n\n\t\t\t\treturn res;\n\t\t\t}));\n\t\t}\n\t\t*/\n\t\tthis._changedState = [];\n\n\t\t// Update shadow root and static area item\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tupdateShadowRoot(this);\n\t\t}\n\t\tif (this.staticAreaItem) {\n\t\t\tthis.staticAreaItem.update();\n\t\t}\n\n\t\t// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM\n\t\tif (hasIndividualSlots) {\n\t\t\tthis._assignIndividualSlotsToChildren();\n\t\t}\n\n\t\t// Call the onAfterRendering hook\n\t\tif (typeof this.onAfterRendering === \"function\") {\n\t\t\tthis.onAfterRendering();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_assignIndividualSlotsToChildren() {\n\t\tconst domChildren = Array.from(this.children);\n\n\t\tdomChildren.forEach(child => {\n\t\t\tif (child._individualSlot) {\n\t\t\t\tchild.setAttribute(\"slot\", child._individualSlot);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_waitForDomRef() {\n\t\treturn this._domRefReadyPromise;\n\t}\n\n\t/**\n\t * Returns the DOM Element inside the Shadow Root that corresponds to the opening tag in the UI5 Web Component's template\n\t * *Note:* For logical (abstract) elements (items, options, etc...), returns the part of the parent's DOM that represents this option\n\t * Use this method instead of \"this.shadowRoot\" to read the Shadow DOM, if ever necessary\n\t *\n\t * @public\n\t */\n\tgetDomRef() {\n\t\t// If a component set _getRealDomRef to its children, use the return value of this function\n\t\tif (typeof this._getRealDomRef === \"function\") {\n\t\t\treturn this._getRealDomRef();\n\t\t}\n\n\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst children = [...this.shadowRoot.children].filter(child => ![\"link\", \"style\"].includes(child.localName));\n\t\tif (children.length !== 1) {\n\t\t\tconsole.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t}\n\n\t\treturn children[0];\n\t}\n\n\t/**\n\t * Returns the DOM Element marked with \"data-sap-focus-ref\" inside the template.\n\t * This is the element that will receive the focus by default.\n\t * @public\n\t */\n\tgetFocusDomRef() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (domRef) {\n\t\t\tconst focusRef = domRef.querySelector(\"[data-sap-focus-ref]\");\n\t\t\treturn focusRef || domRef;\n\t\t}\n\t}\n\n\t/**\n\t * Waits for dom ref and then returns the DOM Element marked with \"data-sap-focus-ref\" inside the template.\n\t * This is the element that will receive the focus by default.\n\t * @public\n\t */\n\tasync getFocusDomRefAsync() {\n\t\tawait this._waitForDomRef();\n\t\treturn this.getFocusDomRef();\n\t}\n\n\t/**\n\t * Set the focus to the element, returned by \"getFocusDomRef()\" (marked by \"data-sap-focus-ref\")\n\t * @public\n\t */\n\tasync focus() {\n\t\tawait this._waitForDomRef();\n\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\tif (focusDomRef && typeof focusDomRef.focus === \"function\") {\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @public\n\t * @param name - name of the event\n\t * @param data - additional data for the event\n\t * @param cancelable - true, if the user can call preventDefault on the event object\n\t * @param bubbles - true, if the event bubbles\n\t * @returns {boolean} false, if the event was cancelled (preventDefault called), true otherwise\n\t */\n\tfireEvent(name, data, cancelable = false, bubbles = true) {\n\t\tconst eventResult = this._fireEvent(name, data, cancelable, bubbles);\n\t\tconst camelCaseEventName = kebabToCamelCase(name);\n\n\t\tif (camelCaseEventName !== name) {\n\t\t\treturn eventResult && this._fireEvent(camelCaseEventName, data, cancelable);\n\t\t}\n\n\t\treturn eventResult;\n\t}\n\n\t_fireEvent(name, data, cancelable = false, bubbles = true) {\n\t\tconst noConflictEvent = new CustomEvent(`ui5-${name}`, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the no-conflict event is prevented\n\t\tconst noConflictEventResult = this.dispatchEvent(noConflictEvent);\n\n\t\tif (skipOriginalEvent(name)) {\n\t\t\treturn noConflictEventResult;\n\t\t}\n\n\t\tconst normalEvent = new CustomEvent(name, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the normal event is prevented\n\t\tconst normalEventResult = this.dispatchEvent(normalEvent);\n\n\t\t// Return false if any of the two events was prevented (its result was false).\n\t\treturn normalEventResult && noConflictEventResult;\n\t}\n\n\t/**\n\t * Returns the actual children, associated with a slot.\n\t * Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.\n\t * @public\n\t */\n\tgetSlottedNodes(slotName) {\n\t\treturn getSlottedElementsList(this[slotName]);\n\t}\n\n\t/**\n\t * Determines whether the component should be rendered in RTL mode or not.\n\t * Returns: \"rtl\", \"ltr\" or undefined\n\t *\n\t * @public\n\t * @returns {String|undefined}\n\t */\n\tget effectiveDir() {\n\t\tmarkAsRtlAware(this.constructor); // if a UI5 Element calls this method, it's considered to be rtl-aware\n\t\treturn getEffectiveDir(this);\n\t}\n\n\t/**\n\t * Used to duck-type UI5 elements without using instanceof\n\t * @returns {boolean}\n\t * @public\n\t */\n\tget isUI5Element() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element, use metadata properties instead\n\t * @private\n\t */\n\tstatic get observedAttributes() {\n\t\treturn this.getMetadata().getAttributesList();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsShadowDOM() {\n\t\treturn !!this.template;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsStaticArea() {\n\t\treturn !!this.staticAreaTemplate;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetStaticAreaItemDomRef() {\n\t\tif (!this.constructor._needsStaticArea()) {\n\t\t\tthrow new Error(\"This component does not use the static area\");\n\t\t}\n\n\t\tif (!this.staticAreaItem) {\n\t\t\tthis.staticAreaItem = StaticAreaItem.createInstance();\n\t\t\tthis.staticAreaItem.setOwnerElement(this);\n\t\t}\n\t\tif (!this.staticAreaItem.parentElement) {\n\t\t\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(this.staticAreaItem);\n\t\t}\n\n\t\treturn this.staticAreaItem.getDomRef();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _generateAccessors() {\n\t\tconst proto = this.prototype;\n\t\tconst slotsAreManaged = this.getMetadata().slotsAreManaged();\n\n\t\t// Properties\n\t\tconst properties = this.getMetadata().getProperties();\n\t\tfor (const [prop, propData] of Object.entries(properties)) { // eslint-disable-line\n\t\t\tif (!isValidPropertyName(prop)) {\n\t\t\t\tconsole.warn(`\"${prop}\" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */\n\t\t\t}\n\n\t\t\tif (propData.type === Boolean && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All booleans are false by default.`);\n\t\t\t}\n\n\t\t\tif (propData.type === Array) {\n\t\t\t\tthrow new Error(`Wrong type for property \"${prop}\". Properties cannot be of type Array - use \"multiple: true\" and set \"type\" to the single value type, such as \"String\", \"Object\", etc...`);\n\t\t\t}\n\n\t\t\tif (propData.type === Object && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All properties of type \"Object\" are empty objects by default.`);\n\t\t\t}\n\n\t\t\tif (propData.multiple && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All multiple properties are empty arrays by default.`);\n\t\t\t}\n\n\t\t\tObject.defineProperty(proto, prop, {\n\t\t\t\tget() {\n\t\t\t\t\tif (this._state[prop] !== undefined) {\n\t\t\t\t\t\treturn this._state[prop];\n\t\t\t\t\t}\n\n\t\t\t\t\tconst propDefaultValue = propData.defaultValue;\n\n\t\t\t\t\tif (propData.type === Boolean) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (propData.type === String) { // eslint-disable-line\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t} else if (propData.multiple) { // eslint-disable-line\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tlet isDifferent;\n\t\t\t\t\tvalue = this.constructor.getMetadata().constructor.validatePropertyValue(value, propData);\n\n\t\t\t\t\tconst oldState = this._state[prop];\n\t\t\t\t\tif (propData.multiple && propData.compareValues) {\n\t\t\t\t\t\tisDifferent = !arraysAreEqual(oldState, value);\n\t\t\t\t\t} else if (isDescendantOf(propData.type, DataType)) {\n\t\t\t\t\t\tisDifferent = !propData.type.valuesAreEqual(oldState, value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisDifferent = oldState !== value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isDifferent) {\n\t\t\t\t\t\tthis._state[prop] = value;\n\t\t\t\t\t\t_invalidate.call(this, {\n\t\t\t\t\t\t\ttype: \"property\",\n\t\t\t\t\t\t\tname: prop,\n\t\t\t\t\t\t\tnewValue: value,\n\t\t\t\t\t\t\toldValue: oldState,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis._updateAttribute(prop, value);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getMetadata().getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\t\tif (!isValidPropertyName(slotName)) {\n\t\t\t\t\tconsole.warn(`\"${slotName}\" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */\n\t\t\t\t}\n\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tObject.defineProperty(proto, propertyName, {\n\t\t\t\t\tget() {\n\t\t\t\t\t\tif (this._state[propertyName] !== undefined) {\n\t\t\t\t\t\t\treturn this._state[propertyName];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t},\n\t\t\t\t\tset() {\n\t\t\t\t\t\tthrow new Error(\"Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)\");\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the metadata object for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get metadata() {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Returns the CSS for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get styles() {\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns the Static Area CSS for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get staticAreaStyles() {\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns an array with the dependencies for this UI5 Web Component, which could be:\n\t * - composed components (used in its shadow root or static area item)\n\t * - slotted components that the component may need to communicate with\n\t *\n\t * @protected\n\t */\n\tstatic get dependencies() {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns a list of the unique dependencies for this UI5 Web Component\n\t *\n\t * @public\n\t */\n\tstatic getUniqueDependencies() {\n\t\tif (!uniqueDependenciesCache.has(this)) {\n\t\t\tconst filtered = this.dependencies.filter((dep, index, deps) => deps.indexOf(dep) === index);\n\t\t\tuniqueDependenciesCache.set(this, filtered);\n\t\t}\n\n\t\treturn uniqueDependenciesCache.get(this);\n\t}\n\n\t/**\n\t * Returns a promise that resolves whenever all dependencies for this UI5 Web Component have resolved\n\t *\n\t * @returns {Promise<any[]>}\n\t */\n\tstatic whenDependenciesDefined() {\n\t\treturn Promise.all(this.getUniqueDependencies().map(dep => dep.define()));\n\t}\n\n\t/**\n\t * Hook that will be called upon custom element definition\n\t *\n\t * @protected\n\t * @returns {Promise<void>}\n\t */\n\tstatic async onDefine() {\n\t\treturn Promise.resolve();\n\t}\n\n\t/**\n\t * Registers a UI5 Web Component in the browser window object\n\t * @public\n\t * @returns {Promise<UI5Element>}\n\t */\n\tstatic async define() {\n\t\tawait boot();\n\n\t\tawait Promise.all([\n\t\t\tthis.whenDependenciesDefined(),\n\t\t\tthis.onDefine(),\n\t\t]);\n\n\t\tconst tag = this.getMetadata().getTag();\n\t\tconst altTag = this.getMetadata().getAltTag();\n\n\t\tconst definedLocally = isTagRegistered(tag);\n\t\tconst definedGlobally = customElements.get(tag);\n\n\t\tif (definedGlobally && !definedLocally) {\n\t\t\trecordTagRegistrationFailure(tag);\n\t\t} else if (!definedGlobally) {\n\t\t\tthis._generateAccessors();\n\t\t\tregisterTag(tag);\n\t\t\twindow.customElements.define(tag, this);\n\t\t\tpreloadLinks(this);\n\n\t\t\tif (altTag && !customElements.get(altTag)) {\n\t\t\t\tregisterTag(altTag);\n\t\t\t\twindow.customElements.define(altTag, getClassCopy(this, () => {\n\t\t\t\t\tconsole.log(`The ${altTag} tag is deprecated and will be removed in the next release, please use ${tag} instead.`); // eslint-disable-line\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')\n\t * Note: not to be confused with the \"get metadata()\" method, which returns an object for this class's metadata only\n\t * @public\n\t * @returns {UI5ElementMetadata}\n\t */\n\tstatic getMetadata() {\n\t\tif (this.hasOwnProperty(\"_metadata\")) { // eslint-disable-line\n\t\t\treturn this._metadata;\n\t\t}\n\n\t\tconst metadataObjects = [this.metadata];\n\t\tlet klass = this; // eslint-disable-line\n\t\twhile (klass !== UI5Element) {\n\t\t\tklass = Object.getPrototypeOf(klass);\n\t\t\tmetadataObjects.unshift(klass.metadata);\n\t\t}\n\t\tconst mergedMetadata = merge({}, ...metadataObjects);\n\n\t\tthis._metadata = new UI5ElementMetadata(mergedMetadata);\n\t\treturn this._metadata;\n\t}\n}\n\nexport default UI5Element;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=globalThis.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+e,n=`<${o}>`,l=document,h=(t=\"\")=>l.createComment(t),r=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,d=Array.isArray,u=t=>{var i;return d(t)||\"function\"==typeof(null===(i=t)||void 0===i?void 0:i[Symbol.iterator])},c=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,a=/>/g,f=/>|[ \t\\n\f\\r](?:([^\\s\"'>=/]+)([ \t\\n\f\\r]*=[ \t\\n\f\\r]*(?:[^ \t\\n\f\\r\"'`<>=]|(\"|')|))|$)/g,_=/'/g,m=/\"/g,g=/^(?:script|style|textarea)$/i,$=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),p=$(1),y=$(2),b=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),x=new WeakMap,w=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new N(i.insertBefore(h(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l},A=l.createTreeWalker(l,129,null,!1),C=(t,i)=>{const o=t.length-1,l=[];let h,r=2===i?\"<svg>\":\"\",d=c;for(let i=0;i<o;i++){const s=t[i];let o,u,$=-1,p=0;for(;p<s.length&&(d.lastIndex=p,u=d.exec(s),null!==u);)p=d.lastIndex,d===c?\"!--\"===u[1]?d=v:void 0!==u[1]?d=a:void 0!==u[2]?(g.test(u[2])&&(h=RegExp(\"</\"+u[2],\"g\")),d=f):void 0!==u[3]&&(d=f):d===f?\">\"===u[0]?(d=null!=h?h:c,$=-1):void 0===u[1]?$=-2:($=d.lastIndex-u[2].length,o=u[1],d=void 0===u[3]?f:'\"'===u[3]?m:_):d===m||d===_?d=f:d===v||d===a?d=c:(d=f,h=void 0);const y=d===f&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=d===c?s+n:$>=0?(l.push(o),s.slice(0,$)+\"$lit$\"+s.slice($)+e+y):s+e+(-2===$?(l.push(void 0),i):y)}const u=r+(t[o]||\"<?>\")+(2===i?\"</svg>\":\"\");return[void 0!==s?s.createHTML(u):u,l]};class P{constructor({strings:t,_$litType$:s},n){let l;this.parts=[];let r=0,d=0;const u=t.length-1,c=this.parts,[v,a]=C(t,s);if(this.el=P.createElement(v,n),A.currentNode=this.el.content,2===s){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(l=A.nextNode())&&c.length<u;){if(1===l.nodeType){if(l.hasAttributes()){const t=[];for(const i of l.getAttributeNames())if(i.endsWith(\"$lit$\")||i.startsWith(e)){const s=a[d++];if(t.push(i),void 0!==s){const t=l.getAttribute(s.toLowerCase()+\"$lit$\").split(e),i=/([.?@])?(.*)/.exec(s);c.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?M:\"?\"===i[1]?k:\"@\"===i[1]?H:S})}else c.push({type:6,index:r})}for(const i of t)l.removeAttribute(i)}if(g.test(l.tagName)){const t=l.textContent.split(e),s=t.length-1;if(s>0){l.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)l.append(t[i],h()),A.nextNode(),c.push({type:2,index:++r});l.append(t[s],h())}}}else if(8===l.nodeType)if(l.data===o)c.push({type:2,index:r});else{let t=-1;for(;-1!==(t=l.data.indexOf(e,t+1));)c.push({type:7,index:r}),t+=e.length-1}r++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function V(t,i,s=t,e){var o,n,l,h;if(i===b)return i;let d=void 0!==e?null===(o=s._$Cl)||void 0===o?void 0:o[e]:s._$Cu;const u=r(i)?void 0:i._$litDirective$;return(null==d?void 0:d.constructor)!==u&&(null===(n=null==d?void 0:d._$AO)||void 0===n||n.call(d,!1),void 0===u?d=void 0:(d=new u(t),d._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Cl)&&void 0!==l?l:h._$Cl=[])[e]=d:s._$Cu=d),void 0!==d&&(i=V(t,d._$AS(t,i.values),d,e)),i}class E{constructor(t,i){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:l).importNode(s,!0);A.currentNode=o;let n=A.nextNode(),h=0,r=0,d=e[0];for(;void 0!==d;){if(h===d.index){let i;2===d.type?i=new N(n,n.nextSibling,this,t):1===d.type?i=new d.ctor(n,d.name,d.strings,this,t):6===d.type&&(i=new I(n,this,t)),this.v.push(i),d=e[++r]}h!==(null==d?void 0:d.index)&&(n=A.nextNode(),h++)}return o}m(t){let i=0;for(const s of this.v)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class N{constructor(t,i,s,e){var o;this.type=2,this._$AH=T,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cg=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=V(this,t,i),r(t)?t===T||null==t||\"\"===t?(this._$AH!==T&&this._$AR(),this._$AH=T):t!==this._$AH&&t!==b&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):u(t)?this.M(t):this.$(t)}A(t,i=this._$AB){return this._$AA.parentNode.insertBefore(t,i)}S(t){this._$AH!==t&&(this._$AR(),this._$AH=this.A(t))}$(t){this._$AH!==T&&r(this._$AH)?this._$AA.nextSibling.data=t:this.S(l.createTextNode(t)),this._$AH=t}T(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=P.createElement(e.h,this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.m(s);else{const t=new E(o,this),i=t.p(this.options);t.m(s),this.S(i),this._$AH=t}}_$AC(t){let i=x.get(t.strings);return void 0===i&&x.set(t.strings,i=new P(t)),i}M(t){d(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new N(this.A(h()),this.A(h()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cg=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class S{constructor(t,i,s,e,o){this.type=1,this._$AH=T,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=V(this,t,i,0),n=!r(t)||t!==this._$AH&&t!==b,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=V(this,e[s+l],i,l),h===b&&(h=this._$AH[l]),n||(n=!r(h)||h!==this._$AH[l]),h===T?t=T:t!==T&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.k(t)}k(t){t===T?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class M extends S{constructor(){super(...arguments),this.type=3}k(t){this.element[this.name]=t===T?void 0:t}}class k extends S{constructor(){super(...arguments),this.type=4}k(t){t&&t!==T?this.element.setAttribute(this.name,\"\"):this.element.removeAttribute(this.name)}}class H extends S{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=V(this,t,i,0))&&void 0!==s?s:T)===b)return;const e=this._$AH,o=t===T&&e!==T||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==T&&(e===T||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class I{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){V(this,t)}}const L={P:\"$lit$\",V:e,L:o,I:1,N:C,R:E,D:u,j:V,H:N,O:S,F:k,B:H,W:M,Z:I},R=window.litHtmlPolyfillSupport;null==R||R(P,N),(null!==(t=globalThis.litHtmlVersions)&&void 0!==t?t:globalThis.litHtmlVersions=[]).push(\"2.0.1\");export{L as _$LH,p as html,b as noChange,T as nothing,w as render,y as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{html as t,svg as e}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=t=>({_$litStatic$:t}),r=(t,...e)=>({_$litStatic$:e.reduce(((e,o,r)=>e+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(o)+t[r+1]),t[0])}),i=new Map,a=t=>(e,...o)=>{var r;const a=o.length;let l,s;const n=[],u=[];let c,$=0,v=!1;for(;$<a;){for(c=e[$];$<a&&void 0!==(s=o[$],l=null===(r=s)||void 0===r?void 0:r._$litStatic$);)c+=l+e[++$],v=!0;u.push(s),n.push(c),$++}if($===a&&n.push(e[a]),v){const t=n.join(\"$$lit$$\");void 0===(e=i.get(t))&&i.set(t,e=n),o=u}return t(e,...o)},l=a(t),s=a(e);export{l as html,r as literal,s as svg,o as unsafeStatic,a as withStatic};\n//# sourceMappingURL=static.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{H:i}=o,t=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2},v=(o,i)=>{var t,n;return void 0===i?void 0!==(null===(t=o)||void 0===t?void 0:t._$litType$):(null===(n=o)||void 0===n?void 0:n._$litType$)===i},l=o=>{var i;return void 0!==(null===(i=o)||void 0===i?void 0:i._$litDirective$)},d=o=>{var i;return null===(i=o)||void 0===i?void 0:i._$litDirective$},r=o=>void 0===o.strings,e=()=>document.createComment(\"\"),u=(o,t,n)=>{var v;const l=o._$AA.parentNode,d=void 0===t?o._$AB:t._$AA;if(void 0===n){const t=l.insertBefore(e(),d),v=l.insertBefore(e(),d);n=new i(t,v,o,o.options)}else{const i=n._$AB.nextSibling,t=n._$AM,r=t!==o;if(r){let i;null===(v=n._$AQ)||void 0===v||v.call(n,o),n._$AM=o,void 0!==n._$AP&&(i=o._$AU)!==t._$AU&&n._$AP(i)}if(i!==d||r){let o=n._$AA;for(;o!==i;){const i=o.nextSibling;l.insertBefore(o,d),o=i}}}return n},c=(o,i,t=o)=>(o._$AI(i,t),o),f={},s=(o,i=f)=>o._$AH=i,a=o=>o._$AH,m=o=>{var i;null===(i=o._$AP)||void 0===i||i.call(o,!1,!0);let t=o._$AA;const n=o._$AB.nextSibling;for(;t!==n;){const o=t.nextSibling;t.remove(),t=o}},p=o=>{o._$AR()};export{n as TemplateResultType,p as clearPart,a as getCommittedValue,d as getDirectiveClass,u as insertPart,l as isDirectiveResult,t as isPrimitive,r as isSingleExpression,v as isTemplateResult,m as removePart,c as setChildPartValue,s as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){var d;const a=l(s),{values:p,keys:v}=this.dt(t,r,c);if(!Array.isArray(a))return this.ct=v,p;const h=null!==(d=this.ct)&&void 0!==d?d:this.ct=[],m=[];let y,x,j=0,k=a.length-1,w=0,A=p.length-1;for(;j<=k&&w<=A;)if(null===a[j])j++;else if(null===a[k])k--;else if(h[j]===v[w])m[w]=o(a[j],p[w]),j++,w++;else if(h[k]===v[A])m[A]=o(a[k],p[A]),k--,A--;else if(h[j]===v[A])m[A]=o(a[j],p[A]),i(s,m[A+1],a[j]),j++,A--;else if(h[k]===v[w])m[w]=o(a[k],p[w]),i(s,a[j],a[k]),k--,w++;else if(void 0===y&&(y=u(v,w,A),x=u(h,j,k)),y.has(h[j]))if(y.has(h[k])){const e=x.get(v[w]),t=void 0!==e?a[e]:null;if(null===t){const e=i(s,a[j]);o(e,p[w]),m[w]=e}else m[w]=o(t,p[w]),i(s,a[j],t),a[e]=null;w++}else n(a[k]),k--;else n(a[j]),j++;for(;w<=A;){const e=i(s,m[A+1]);o(e,p[w]),m[w++]=e}for(;j<=k;){const e=a[j++];null!==e&&n(e)}return this.ct=v,f(s,m),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.st){this.st=new Set,void 0!==i.strings&&(this.et=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.et)||void 0===r?void 0:r.has(t))&&this.st.add(t);return this.render(s)}const e=i.element.classList;this.st.forEach((t=>{t in s||(e.remove(t),this.st.delete(t))}));for(const t in s){const i=!!s[t];i===this.st.has(t)||(null===(o=this.et)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.st.add(t)):(e.remove(t),this.st.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * This is the original style-map.js directive from lit-html 2 with the only difference that \"render\" is not called even for the first rendering (update is used instead)\n */\n\nimport { noChange } from 'lit-html';\nimport { directive, Directive, PartType, } from 'lit-html/directive.js';\nclass StyleMapDirective extends Directive {\n\tconstructor(partInfo) {\n\t\tvar _a;\n\t\tsuper(partInfo);\n\t\tif (partInfo.type !== PartType.ATTRIBUTE ||\n\t\t\tpartInfo.name !== 'style' ||\n\t\t\t((_a = partInfo.strings) === null || _a === void 0 ? void 0 : _a.length) > 2) {\n\t\t\tthrow new Error('The `styleMap` directive must be used in the `style` attribute ' +\n\t\t\t\t'and must be the only part in the attribute.');\n\t\t}\n\t}\n\trender(styleInfo) {\n\t\treturn \"\";\n\t}\n\tupdate(part, [styleInfo]) {\n\t\tconst { style } = part.element;\n\t\tif (this._previousStyleProperties === undefined) {\n\t\t\tthis._previousStyleProperties = new Set();\n\t\t\tfor (const name in styleInfo) {\n\t\t\t\tthis._previousStyleProperties.add(name);\n\t\t\t}\n\t\t\t// return this.render(styleInfo);\n\t\t}\n\t\t// Remove old properties that no longer exist in styleInfo\n\t\t// We use forEach() instead of for-of so that re don't require down-level\n\t\t// iteration.\n\t\tthis._previousStyleProperties.forEach((name) => {\n\t\t\t// If the name isn't in styleInfo or it's null/undefined\n\t\t\tif (styleInfo[name] == null) {\n\t\t\t\tthis._previousStyleProperties.delete(name);\n\t\t\t\tif (name.includes('-')) {\n\t\t\t\t\tstyle.removeProperty(name);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Note reset using empty string (vs null) as IE11 does not always\n\t\t\t\t\t// reset via null (https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style#setting_styles)\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\tstyle[name] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Add or update properties\n\t\tfor (const name in styleInfo) {\n\t\t\tconst value = styleInfo[name];\n\t\t\tif (value != null) {\n\t\t\t\tthis._previousStyleProperties.add(name);\n\t\t\t\tif (name.includes('-')) {\n\t\t\t\t\tstyle.setProperty(name, value);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\tstyle[name] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn noChange;\n\t}\n}\n\nexport const styleMap = directive(StyleMapDirective);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this.vt=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this.vt;this.it=r;const s=[r];return s.raw=s,this.vt={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { render } from \"lit-html\";\nimport {\n\thtml,\n\tsvg,\n\tunsafeStatic,\n} from \"lit-html/static.js\";\n\nconst litRender = (templateResult, domNode, styleStrOrHrefsArr, { host } = {}) => {\n\tif (typeof styleStrOrHrefsArr === \"string\") {\n\t\ttemplateResult = html`<style>${styleStrOrHrefsArr}</style>${templateResult}`;\n\t} else if (Array.isArray(styleStrOrHrefsArr) && styleStrOrHrefsArr.length) {\n\t\ttemplateResult = html`${styleStrOrHrefsArr.map(href => html`<link type=\"text/css\" rel=\"stylesheet\" href=\"${href}\">`)}${templateResult}`;\n\t}\n\trender(templateResult, domNode, { host });\n};\n\nconst scopeTag = (tag, tags, suffix) => {\n\tconst resultTag = suffix && (tags || []).includes(tag) ? `${tag}-${suffix}` : tag;\n\treturn unsafeStatic(resultTag);\n};\n\nexport {\n\thtml,\n\tsvg,\n\tunsafeStatic,\n};\nexport { scopeTag };\nexport { repeat } from \"lit-html/directives/repeat.js\";\nexport { classMap } from \"lit-html/directives/class-map.js\";\nexport { styleMap } from \"./directives/style-map.js\";\nexport { ifDefined } from \"lit-html/directives/if-defined.js\";\nexport { unsafeHTML } from \"lit-html/directives/unsafe-html.js\";\n\nexport default litRender;\n","const KeyCodes = {\n\tBACKSPACE: 8,\n\tTAB: 9,\n\tENTER: 13,\n\tSHIFT: 16,\n\tCONTROL: 17,\n\tALT: 18,\n\tBREAK: 19,\n\tCAPS_LOCK: 20,\n\tESCAPE: 27,\n\tSPACE: 32,\n\tPAGE_UP: 33,\n\tPAGE_DOWN: 34,\n\tEND: 35,\n\tHOME: 36,\n\tARROW_LEFT: 37,\n\tARROW_UP: 38,\n\tARROW_RIGHT: 39,\n\tARROW_DOWN: 40,\n\tPRINT: 44,\n\tINSERT: 45,\n\tDELETE: 46,\n\tDIGIT_0: 48,\n\tDIGIT_1: 49,\n\tDIGIT_2: 50,\n\tDIGIT_3: 51,\n\tDIGIT_4: 52,\n\tDIGIT_5: 53,\n\tDIGIT_6: 54,\n\tDIGIT_7: 55,\n\tDIGIT_8: 56,\n\tDIGIT_9: 57,\n\tA: 65,\n\tB: 66,\n\tC: 67,\n\tD: 68,\n\tE: 69,\n\tF: 70,\n\tG: 71,\n\tH: 72,\n\tI: 73,\n\tJ: 74,\n\tK: 75,\n\tL: 76,\n\tM: 77,\n\tN: 78,\n\tO: 79,\n\tP: 80,\n\tQ: 81,\n\tR: 82,\n\tS: 83,\n\tT: 84,\n\tU: 85,\n\tV: 86,\n\tW: 87,\n\tX: 88,\n\tY: 89,\n\tZ: 90,\n\tWINDOWS: 91,\n\tCONTEXT_MENU: 93,\n\tTURN_OFF: 94,\n\tSLEEP: 95,\n\tNUMPAD_0: 96,\n\tNUMPAD_1: 97,\n\tNUMPAD_2: 98,\n\tNUMPAD_3: 99,\n\tNUMPAD_4: 100,\n\tNUMPAD_5: 101,\n\tNUMPAD_6: 102,\n\tNUMPAD_7: 103,\n\tNUMPAD_8: 104,\n\tNUMPAD_9: 105,\n\tNUMPAD_ASTERISK: 106,\n\tNUMPAD_PLUS: 107,\n\tNUMPAD_MINUS: 109,\n\tNUMPAD_COMMA: 110,\n\tNUMPAD_SLASH: 111,\n\tF1: 112,\n\tF2: 113,\n\tF3: 114,\n\tF4: 115,\n\tF5: 116,\n\tF6: 117,\n\tF7: 118,\n\tF8: 119,\n\tF9: 120,\n\tF10: 121,\n\tF11: 122,\n\tF12: 123,\n\tNUM_LOCK: 144,\n\tSCROLL_LOCK: 145,\n\tOPEN_BRACKET: 186,\n\tPLUS: 187,\n\tCOMMA: 188,\n\tSLASH: 189,\n\tDOT: 190,\n\tPIPE: 191,\n\tSEMICOLON: 192,\n\tMINUS: 219,\n\tGREAT_ACCENT: 220,\n\tEQUALS: 221,\n\tSINGLE_QUOTE: 222,\n\tBACKSLASH: 226,\n};\n\nconst isEnter = event => (event.key ? event.key === \"Enter\" : event.keyCode === KeyCodes.ENTER) && !hasModifierKeys(event);\n\nconst isEnterShift = event => (event.key ? event.key === \"Enter\" : event.keyCode === KeyCodes.ENTER) && checkModifierKeys(event, false, false, true);\n\nconst isSpace = event => (event.key ? (event.key === \"Spacebar\" || event.key === \" \") : event.keyCode === KeyCodes.SPACE) && !hasModifierKeys(event);\n\nconst isSpaceShift = event => (event.key ? (event.key === \"Spacebar\" || event.key === \" \") : event.keyCode === KeyCodes.SPACE) && checkModifierKeys(event, false, false, true);\n\nconst isLeft = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && !hasModifierKeys(event);\n\nconst isRight = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && !hasModifierKeys(event);\n\nconst isUp = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && !hasModifierKeys(event);\n\nconst isDown = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && !hasModifierKeys(event);\n\nconst isLeftCtrl = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, false);\n\nconst isRightCtrl = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, false);\n\nconst isUpCtrl = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, false);\n\nconst isDownCtrl = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, false);\n\nconst isUpShift = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, false, true);\n\nconst isDownShift = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, false, true);\n\nconst isLeftShift = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, false, false, true);\n\nconst isRightShift = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, false, false, true);\n\nconst isUpShiftCtrl = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, true);\n\nconst isDownShiftCtrl = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, true);\n\nconst isHome = event => (event.key ? event.key === \"Home\" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);\n\nconst isEnd = event => (event.key ? event.key === \"End\" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);\n\nconst isHomeCtrl = event => (event.key ? event.key === \"Home\" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, true, false, false);\n\nconst isEndCtrl = event => (event.key ? event.key === \"End\" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, true, false, false);\n\nconst isEscape = event => (event.key ? event.key === \"Escape\" || event.key === \"Esc\" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);\n\nconst isTabNext = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);\n\nconst isTabPrevious = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ false, /* Shift */ true);\n\nconst isBackSpace = event => (event.key ? event.key === \"Backspace\" : event.keyCode === KeyCodes.BACKSPACE) && !hasModifierKeys(event);\n\nconst isDelete = event => (event.key ? event.key === \"Delete\" : event.keyCode === KeyCodes.DELETE) && !hasModifierKeys(event);\n\nconst isPageUp = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && !hasModifierKeys(event);\n\nconst isPageDown = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && !hasModifierKeys(event);\n\nconst isPageUpShift = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, false, true);\n\nconst isPageUpAlt = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, true, false);\n\nconst isPageDownShift = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, false, true);\n\nconst isPageDownAlt = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, true, false);\n\nconst isPageUpShiftCtrl = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, true, false, true);\n\nconst isPageDownShiftCtrl = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, true, false, true);\n\nconst isPlus = event => (event.key ? event.key === \"+\" : event.keyCode === KeyCodes.PLUS) || (event.keyCode === KeyCodes.NUMPAD_PLUS && !hasModifierKeys(event));\n\nconst isMinus = event => (event.key ? event.key === \"-\" : event.keyCode === KeyCodes.MINUS) || (event.keyCode === KeyCodes.NUMPAD_MINUS && !hasModifierKeys(event));\n\nconst isShow = event => {\n\tif (event.key) {\n\t\treturn isF4(event) || isShowByArrows(event);\n\t}\n\n\treturn (event.keyCode === KeyCodes.F4 && !hasModifierKeys(event)) || (event.keyCode === KeyCodes.ARROW_DOWN && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));\n};\n\nconst isF4 = event => {\n\treturn event.key === \"F4\" && !hasModifierKeys(event);\n};\n\nconst isF4Shift = event => (event.key ? event.key === \"F4\" : event.keyCode === KeyCodes.F4) && checkModifierKeys(event, false, false, true);\n\nconst isF7 = event => (event.key ? event.key === \"F7\" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);\n\nconst isShowByArrows = event => {\n\treturn ((event.key === \"ArrowDown\" || event.key === \"Down\") || (event.key === \"ArrowUp\" || event.key === \"Up\")) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false);\n};\n\nconst hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);\n\nconst getCtrlKey = event => !!(event.metaKey || event.ctrlKey); // double negation doesn't have effect on boolean but ensures null and undefined are equivalent to false.\n\nconst checkModifierKeys = (event, bCtrlKey, bAltKey, bShiftKey) => event.shiftKey === bShiftKey && event.altKey === bAltKey && getCtrlKey(event) === bCtrlKey;\n\nexport {\n\tisEnter,\n\tisEnterShift,\n\tisSpace,\n\tisSpaceShift,\n\tisLeft,\n\tisRight,\n\tisUp,\n\tisDown,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisUpShiftCtrl,\n\tisDownShiftCtrl,\n\tisHome,\n\tisEnd,\n\tisPlus,\n\tisMinus,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisF4,\n\tisF4Shift,\n\tisF7,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n};\n","const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\n\nclass Locale {\n\tconstructor(sLocaleId) {\n\t\tconst aResult = rLocale.exec(sLocaleId.replace(/_/g, \"-\"));\n\t\tif (aResult === null) {\n\t\t\tthrow new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);\n\t\t}\n\t\tthis.sLocaleId = sLocaleId;\n\t\tthis.sLanguage = aResult[1] || null;\n\t\tthis.sScript = aResult[2] || null;\n\t\tthis.sRegion = aResult[3] || null;\n\t\tthis.sVariant = (aResult[4] && aResult[4].slice(1)) || null;\n\t\tthis.sExtension = (aResult[5] && aResult[5].slice(1)) || null;\n\t\tthis.sPrivateUse = aResult[6] || null;\n\t\tif (this.sLanguage) {\n\t\t\tthis.sLanguage = this.sLanguage.toLowerCase();\n\t\t}\n\t\tif (this.sScript) {\n\t\t\tthis.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, s => {\n\t\t\t\treturn s.toUpperCase();\n\t\t\t});\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tthis.sRegion = this.sRegion.toUpperCase();\n\t\t}\n\t}\n\n\tgetLanguage() {\n\t\treturn this.sLanguage;\n\t}\n\n\tgetScript() {\n\t\treturn this.sScript;\n\t}\n\n\tgetRegion() {\n\t\treturn this.sRegion;\n\t}\n\n\tgetVariant() {\n\t\treturn this.sVariant;\n\t}\n\n\tgetVariantSubtags() {\n\t\treturn this.sVariant ? this.sVariant.split(\"-\") : [];\n\t}\n\n\tgetExtension() {\n\t\treturn this.sExtension;\n\t}\n\n\tgetExtensionSubtags() {\n\t\treturn this.sExtension ? this.sExtension.slice(2).split(\"-\") : [];\n\t}\n\n\tgetPrivateUse() {\n\t\treturn this.sPrivateUse;\n\t}\n\n\tgetPrivateUseSubtags() {\n\t\treturn this.sPrivateUse ? this.sPrivateUse.slice(2).split(\"-\") : [];\n\t}\n\n\thasPrivateUseSubtag(sSubtag) {\n\t\treturn this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n\t}\n\n\ttoString() {\n\t\tconst r = [this.sLanguage];\n\n\t\tif (this.sScript) {\n\t\t\tr.push(this.sScript);\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tr.push(this.sRegion);\n\t\t}\n\t\tif (this.sVariant) {\n\t\t\tr.push(this.sVariant);\n\t\t}\n\t\tif (this.sExtension) {\n\t\t\tr.push(this.sExtension);\n\t\t}\n\t\tif (this.sPrivateUse) {\n\t\t\tr.push(this.sPrivateUse);\n\t\t}\n\t\treturn r.join(\"-\");\n\t}\n}\n\nexport default Locale;\n","import detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\nimport { getLanguage as getConfigLanguage } from \"../config/Language.js\";\nimport Locale from \"./Locale.js\";\n\nconst cache = new Map();\n\nconst getLocaleInstance = lang => {\n\tif (!cache.has(lang)) {\n\t\tcache.set(lang, new Locale(lang));\n\t}\n\n\treturn cache.get(lang);\n};\n\nconst convertToLocaleOrNull = lang => {\n\ttry {\n\t\tif (lang && typeof lang === \"string\") {\n\t\t\treturn getLocaleInstance(lang);\n\t\t}\n\t} catch (e) {\n\t\t// ignore\n\t}\n};\n\n/**\n * Returns the locale based on the parameter or configured language Configuration#getLanguage\n * If no language has been configured - a new locale based on browser language is returned\n */\nconst getLocale = lang => {\n\tif (lang) {\n\t\treturn convertToLocaleOrNull(lang);\n\t}\n\n\tif (getConfigLanguage()) {\n\t\treturn getLocaleInstance(getConfigLanguage());\n\t}\n\n\treturn convertToLocaleOrNull(detectNavigatorLanguage());\n};\n\nexport default getLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\nconst localeRegEX = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\nconst SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;\n\n/* Map for old language names for a few ISO639 codes. */\nconst M_ISO639_NEW_TO_OLD = {\n\t\"he\": \"iw\",\n\t\"yi\": \"ji\",\n\t\"id\": \"in\",\n\t\"sr\": \"sh\",\n};\n\n/**\n * Normalizes the given locale in BCP-47 syntax.\n * @param {string} locale locale to normalize\n * @returns {string} Normalized locale, \"undefined\" if the locale can't be normalized or the default locale, if no locale provided.\n */\nconst normalizeLocale = locale => {\n\tlet m;\n\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (typeof locale === \"string\" && (m = localeRegEX.exec(locale.replace(/_/g, \"-\")))) {/* eslint-disable-line */\n\t\tlet language = m[1].toLowerCase();\n\t\tlet region = m[3] ? m[3].toUpperCase() : undefined;\n\t\tconst script = m[2] ? m[2].toLowerCase() : undefined;\n\t\tconst variants = m[4] ? m[4].slice(1) : undefined;\n\t\tconst isPrivate = m[6];\n\n\t\tlanguage = M_ISO639_NEW_TO_OLD[language] || language;\n\n\t\t// recognize and convert special SAP supportability locales (overwrites m[]!)\n\t\tif ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||\n\t\t\t(variants && (m = SAPSupportabilityLocales.exec(variants)))) {/* eslint-disable-line */\n\t\t\treturn `en_US_${m[1].toLowerCase()}`; // for now enforce en_US (agreed with SAP SLS)\n\t\t}\n\n\t\t// Chinese: when no region but a script is specified, use default region for each script\n\t\tif (language === \"zh\" && !region) {\n\t\t\tif (script === \"hans\") {\n\t\t\t\tregion = \"CN\";\n\t\t\t} else if (script === \"hant\") {\n\t\t\t\tregion = \"TW\";\n\t\t\t}\n\t\t}\n\n\t\treturn language + (region ? \"_\" + region + (variants ? \"_\" + variants.replace(\"-\", \"_\") : \"\") : \"\"); /* eslint-disable-line */\n\t}\n};\n\nexport default normalizeLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\n/**\n * Calculates the next fallback locale for the given locale.\n *\n * @param {string} locale Locale string in Java format (underscores) or null\n * @returns {string} Next fallback Locale or \"en\" if no fallbacks found.\n */\nconst nextFallbackLocale = locale => {\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (locale === \"zh_HK\") {\n\t\treturn \"zh_TW\";\n\t}\n\n\t// if there are multiple segments (separated by underscores), remove the last one\n\tconst p = locale.lastIndexOf(\"_\");\n\tif (p >= 0) {\n\t\treturn locale.slice(0, p);\n\t}\n\n\t// for any language but the default, fallback to the default first before falling back to the 'raw' language (empty string)\n\treturn locale !== DEFAULT_LOCALE ? DEFAULT_LOCALE : \"\";\n};\n\nexport default nextFallbackLocale;\n","import getLocale from \"../locale/getLocale.js\";\nimport { attachLanguageChange } from \"../locale/languageChange.js\";\nimport normalizeLocale from \"../locale/normalizeLocale.js\";\nimport nextFallbackLocale from \"../locale/nextFallbackLocale.js\";\nimport { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\nimport { getFetchDefaultLanguage } from \"../config/Language.js\";\n\n// contains package names for which the warning has been shown\nconst warningShown = new Set();\nconst reportedErrors = new Set();\n\nconst bundleData = new Map();\nconst bundlePromises = new Map();\nconst loaders = new Map();\n\n/**\n *\n * @param {string} packageName for which package this loader can fetch data\n * @param {function} loader async function that will be passed a localeId and should return a JSON object\n * @param {Array} localeIds Array of locale IDs that this loader can handle\n */\nconst registerI18nLoader = (packageName, localeId, loader) => {\n\t// register loader by key\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tloaders.set(bundleKey, loader);\n};\n\nconst _setI18nBundleData = (packageName, data) => {\n\tbundleData.set(packageName, data);\n};\n\nconst getI18nBundleData = packageName => {\n\treturn bundleData.get(packageName);\n};\n\n/**\n * @public\n * @deprecated\n */\nconst registerI18nBundle = (_packageName, _bundle) => {\n\tthrow new Error(\"This method has been removed. Use `registerI18nLoader` instead.\");\n};\n\nconst _hasLoader = (packageName, localeId) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\treturn loaders.has(bundleKey);\n};\n\n// load bundle over the network once\nconst _loadMessageBundleOnce = (packageName, localeId) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tconst loadMessageBundle = loaders.get(bundleKey);\n\n\tif (!bundlePromises.get(bundleKey)) {\n\t\tbundlePromises.set(bundleKey, loadMessageBundle(localeId));\n\t}\n\n\treturn bundlePromises.get(bundleKey);\n};\n\nconst _showAssetsWarningOnce = packageName => {\n\tif (!warningShown.has(packageName)) {\n\t\tconsole.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */\n\t\t` Add \\`import \"${packageName}/dist/Assets.js\"\\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section \"Assets\" in the documentation for more information.`); /* eslint-disable-line */\n\t\twarningShown.add(packageName);\n\t}\n};\n\n/**\n * This method preforms the asynchronous task of fetching the actual text resources. It will fetch\n * each text resource over the network once (even for multiple calls to the same method).\n * It should be fully finished before the i18nBundle class is created in the webcomponents.\n * This method uses the bundle URLs that are populated by the <code>registerI18nBundle</code> method.\n * To simplify the usage, the synchronization of both methods happens internally for the same <code>bundleId</code>\n * @param {packageName} packageName the NPM package name\n * @public\n */\nconst fetchI18nBundle = async packageName => {\n\tconst language = getLocale().getLanguage();\n\tconst region = getLocale().getRegion();\n\tlet localeId = normalizeLocale(language + (region ? `-${region}` : ``));\n\n\twhile (localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId)) {\n\t\tlocaleId = nextFallbackLocale(localeId);\n\t}\n\n\t// use default language unless configured to always fetch it from the network\n\tconst fetchDefaultLanguage = getFetchDefaultLanguage();\n\tif (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {\n\t\t_setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)\n\t\treturn;\n\t}\n\n\tif (!_hasLoader(packageName, localeId)) {\n\t\t_showAssetsWarningOnce(packageName);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst data = await _loadMessageBundleOnce(packageName, localeId);\n\t\t_setI18nBundleData(packageName, data);\n\t} catch (e) {\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\n// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles\nattachLanguageChange(() => {\n\tconst allPackages = [...bundleData.keys()];\n\treturn Promise.all(allPackages.map(fetchI18nBundle));\n});\n\nexport {\n\tregisterI18nLoader,\n\tfetchI18nBundle,\n\tregisterI18nBundle,\n\tgetI18nBundleData,\n};\n","const messageFormatRegEX = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\\{([0-9]+(?:\\s*,[^{}]*)?)\\}|[{}]/g;\n\nconst formatMessage = (text, values) => {\n\tvalues = values || [];\n\n\treturn text.replace(messageFormatRegEX, ($0, $1, $2, $3, offset) => {\n\t\tif ($1) {\n\t\t\treturn '\\''; /* eslint-disable-line */\n\t\t}\n\n\t\tif ($2) {\n\t\t\treturn $2.replace(/''/g, '\\''); /* eslint-disable-line */\n\t\t}\n\n\t\tif ($3) {\n\t\t\treturn String(values[parseInt($3)]);\n\t\t}\n\n\t\tthrow new Error(`[i18n]: pattern syntax error at pos ${offset}`);\n\t});\n};\n\nexport default formatMessage;\n","import { registerI18nLoader, fetchI18nBundle, getI18nBundleData } from \"./asset-registries/i18n.js\";\nimport formatMessage from \"./util/formatMessage.js\";\n\nconst I18nBundleInstances = new Map();\n\nlet customGetI18nBundle;\n\n/**\n * @class\n * @public\n */\nclass I18nBundle {\n\tconstructor(packageName) {\n\t\tthis.packageName = packageName;\n\t}\n\n\t/**\n\t * Returns a text in the currently loaded language\n\t *\n\t * @public\n\t * @param {Object|String} textObj key/defaultText pair or just the key\n\t * @param params Values for the placeholders\n\t * @returns {*}\n\t */\n\tgetText(textObj, ...params) {\n\t\tif (typeof textObj === \"string\") {\n\t\t\ttextObj = { key: textObj, defaultText: textObj };\n\t\t}\n\n\t\tif (!textObj || !textObj.key) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst bundle = getI18nBundleData(this.packageName);\n\t\tif (bundle && !bundle[textObj.key]) {\n\t\t\tconsole.warn(`Key ${textObj.key} not found in the i18n bundle, the default text will be used`); // eslint-disable-line\n\t\t}\n\t\tconst messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : (textObj.defaultText || textObj.key);\n\n\t\treturn formatMessage(messageText, params);\n\t}\n}\n\nconst getI18nBundleSync = packageName => {\n\tif (I18nBundleInstances.has(packageName)) {\n\t\treturn I18nBundleInstances.get(packageName);\n\t}\n\n\tconst i18nBundle = new I18nBundle(packageName);\n\tI18nBundleInstances.set(packageName, i18nBundle);\n\treturn i18nBundle;\n};\n\n/**\n * Allows developers to provide a custom getI18nBundle implementation\n * If this function is called, the custom implementation will be used for all components and will completely\n * replace the default implementation.\n *\n * @public\n * @param customGet the function to use instead of the standard getI18nBundle implementation\n */\nconst registerCustomI18nBundleGetter = customGet => {\n\tcustomGetI18nBundle = customGet;\n};\n\n/**\n * Fetches and returns the I18nBundle instance for the given package\n *\n * @public\n * @param packageName\n * @returns {Promise<I18nBundle>}\n */\nconst getI18nBundle = async packageName => {\n\tif (customGetI18nBundle) {\n\t\treturn customGetI18nBundle(packageName);\n\t}\n\n\tawait fetchI18nBundle(packageName);\n\treturn getI18nBundleSync(packageName);\n};\n\nexport {\n\tregisterI18nLoader,\n\tgetI18nBundle,\n\tregisterCustomI18nBundleGetter,\n};\n","const ua = navigator.userAgent;\nconst touch = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\nconst ie = /(msie|trident)/i.test(ua);\nconst chrome = !ie && /(Chrome|CriOS)/.test(ua);\nconst safari = !ie && !chrome && /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/.test(ua);\nconst webkit = !ie && /webkit/.test(ua);\nconst windows = navigator.platform.indexOf(\"Win\") !== -1;\nconst android = !windows && /Android/.test(ua);\nconst androidPhone = android && /(?=android)(?=.*mobile)/i.test(ua);\nconst ipad = /ipad/i.test(ua);\n\nlet windowsVersion;\nlet webkitVersion;\nlet tablet;\n\nconst isWindows8OrAbove = () => {\n\tif (!windows) {\n\t\treturn false;\n\t}\n\n\tif (windowsVersion === undefined) {\n\t\tconst matches = ua.match(/Windows NT (\\d+).(\\d)/);\n\t\twindowsVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn windowsVersion >= 8;\n};\n\nconst isWebkit537OrAbove = () => {\n\tif (!webkit) {\n\t\treturn false;\n\t}\n\n\tif (webkitVersion === undefined) {\n\t\tconst matches = ua.match(/(webkit)[ /]([\\w.]+)/);\n\t\twebkitVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn webkitVersion >= 537.10;\n};\n\nconst detectTablet = () => {\n\tif (tablet !== undefined) {\n\t\treturn;\n\t}\n\n\tif (ipad) {\n\t\ttablet = true;\n\t\treturn;\n\t}\n\n\tif (touch) {\n\t\tif (isWindows8OrAbove()) {\n\t\t\ttablet = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (chrome && android) {\n\t\t\ttablet = !/Mobile Safari\\/[.0-9]+/.test(ua);\n\t\t\treturn;\n\t\t}\n\n\t\tlet densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\n\t\tif (android && isWebkit537OrAbove()) {\n\t\t\tdensityFactor = 1;\n\t\t}\n\n\t\ttablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);\n\t\treturn;\n\t}\n\n\ttablet = (ie && ua.indexOf(\"Touch\") !== -1) || (android && !androidPhone);\n};\n\nconst supportsTouch = () => touch;\nconst isIE = () => ie;\nconst isSafari = () => safari;\nconst isChrome = () => chrome;\n\nconst isTablet = () => {\n\tdetectTablet();\n\treturn (touch || isWindows8OrAbove()) && tablet;\n};\n\nconst isPhone = () => {\n\tdetectTablet();\n\treturn touch && !tablet;\n};\n\nconst isDesktop = () => {\n\treturn (!isTablet() && !isPhone()) || isWindows8OrAbove();\n};\n\nconst isCombi = () => {\n\treturn isTablet() && isDesktop();\n};\n\nexport {\n\tsupportsTouch,\n\tisIE,\n\tisSafari,\n\tisChrome,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n};\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ButtonDesign.prototype\n * @public\n */\nconst ButtonTypes = {\n\t/**\n\t * default type (no special styling)\n\t * @public\n\t * @type {Default}\n\t */\n\tDefault: \"Default\",\n\n\t/**\n\t * accept type (green button)\n\t * @public\n\t * @type {Positive}\n\t */\n\tPositive: \"Positive\",\n\n\t/**\n\t * reject style (red button)\n\t * @public\n\t * @type {Negative}\n\t */\n\tNegative: \"Negative\",\n\n\t/**\n\t * transparent type\n\t * @public\n\t * @type {Transparent}\n\t */\n\tTransparent: \"Transparent\",\n\n\t/**\n\t * emphasized type\n\t * @public\n\t * @type {Emphasized}\n\t */\n\tEmphasized: \"Emphasized\",\n\n\t/**\n\t * attention type\n\t * @public\n\t * @type {Attention}\n\t */\n\tAttention: \"Attention\",\n};\n\n/**\n * @class\n * Different types of Button.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ButtonDesign\n * @public\n * @enum {string}\n */\nclass ButtonDesign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ButtonTypes[value];\n\t}\n}\n\nButtonDesign.generateTypeAccessors(ButtonTypes);\n\nexport default ButtonDesign;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<button type=\"button\" class=\"ui5-button-root\" ?disabled=\"${context.disabled}\" data-sap-focus-ref dir=\"${ifDefined(context.effectiveDir)}\" @focusout=${context._onfocusout} @focusin=${context._onfocusin} @click=${context._onclick} @mousedown=${context._onmousedown} @mouseup=${context._onmouseup} @keydown=${context._onkeydown} @keyup=${context._onkeyup} @touchstart=\"${context._ontouchstart}\" @touchend=\"${context._ontouchend}\" tabindex=${ifDefined(context.tabIndexValue)} aria-expanded=\"${ifDefined(context.accInfo.ariaExpanded)}\" aria-controls=\"${ifDefined(context.accInfo.ariaControls)}\" aria-haspopup=\"${ifDefined(context.accInfo.ariaHaspopup)}\" aria-label=\"${ifDefined(context.accessibleName)}\" title=\"${ifDefined(context.accInfo.title)}\" part=\"button\">${ context.icon ? block1(context, tags, suffix) : undefined }<span id=\"${ifDefined(context._id)}-content\" class=\"ui5-button-text\"><bdi><slot></slot></bdi></span>${ context.hasButtonType ? block2(context, tags, suffix) : undefined }</button> `;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-button-icon\" name=\"${ifDefined(context.icon)}\" part=\"icon\" ?show-tooltip=${context.showIconTooltip}></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<span class=\"ui5-hidden-text\">${ifDefined(context.buttonTypeText)}</span>`;\n\n\nexport default block0;","/**\n * Supported icon collection names and aliases.\n *\n * Users might specify a collection, using both the key and the value in the following key-value pairs,\n * e.g the following pairs are completely exchangeable:\n * \"SAP-icons-TNT/actor\" and \"tnt/actor\", \"BusinessSuiteInAppSymbols/3d\" and \"business-suite/3d\",\n * \"SAP-icons-v5/accept\" and \"horizon/accept\".\n *\n * Note: technically, in the code we maintain the collections under the \"value\" name - \"tnt\", \"business-suite\",\n * SAP-icons-v5\" and \"SAP-icons\"(which does not have an alias).\n */\nconst IconCollectionsAlias = {\n\t\"SAP-icons-TNT\": \"tnt\",\n\t\"BusinessSuiteInAppSymbols\": \"business-suite\",\n\t\"horizon\": \"SAP-icons-v5\",\n};\n\nexport default IconCollectionsAlias;\n","import getSharedResource from \"../getSharedResource.js\";\nimport IconCollectionsAlias from \"../assets-meta/IconCollectionsAlias.js\";\nimport { isTheme } from \"../config/Theme.js\";\n\nconst loaders = new Map();\nconst registry = getSharedResource(\"SVGIcons.registry\", new Map());\nconst iconCollectionPromises = getSharedResource(\"SVGIcons.promises\", new Map());\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\n/**\n * @deprecated\n */\nconst registerIconBundle = async (collectionName, bundleData) => {\n\tthrow new Error(\"This method has been removed. Use `registerIconLoader` instead.\");\n};\n\nconst registerIconLoader = async (collectionName, loader) => {\n\tloaders.set(collectionName, loader);\n};\n\nconst _loadIconCollectionOnce = async collectionName => {\n\tif (!iconCollectionPromises.has(collectionName)) {\n\t\tif (!loaders.has(collectionName)) {\n\t\t\tthrow new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the \"AllIcons.js\" module for the respective package.`);\n\t\t}\n\t\tconst loadIcons = loaders.get(collectionName);\n\t\ticonCollectionPromises.set(collectionName, loadIcons(collectionName));\n\t}\n\n\treturn iconCollectionPromises.get(collectionName);\n};\n\nconst _fillRegistry = bundleData => {\n\tObject.keys(bundleData.data).forEach(iconName => {\n\t\tconst iconData = bundleData.data[iconName];\n\n\t\tregisterIcon(iconName, {\n\t\t\tpathData: iconData.path,\n\t\t\tltr: iconData.ltr,\n\t\t\taccData: iconData.acc,\n\t\t\tcollection: bundleData.collection,\n\t\t\tpackageName: bundleData.packageName,\n\t\t });\n\t});\n};\n\n// set\nconst registerIcon = (name, { pathData, ltr, accData, collection, packageName } = {}) => { // eslint-disable-line\n\tif (!collection) {\n\t\tcollection = _getDefaultCollection();\n\t}\n\n\tconst key = `${collection}/${name}`;\n\tregistry.set(key, {\n\t\tpathData,\n\t\tltr,\n\t\taccData,\n\t\tpackageName,\n\t});\n};\n\nconst _parseName = name => {\n\t// silently support ui5-compatible URIs\n\tif (name.startsWith(\"sap-icon://\")) {\n\t\tname = name.replace(\"sap-icon://\", \"\");\n\t}\n\n\tlet collection;\n\t[name, collection] = name.split(\"/\").reverse();\n\tcollection = collection || _getDefaultCollection();\n\n\t// Normalize collection name.\n\t// - resolve `SAP-icons-TNT` to `tnt`.\n\t// - resolve `BusinessSuiteInAppSymbols` to `business-suite`.\n\t// - resolve `horizon` to `SAP-icons-v5`,\n\t// Note: aliases can be made as a feature, if more collections need it or more aliases are needed.\n\tcollection = _normalizeCollection(collection);\n\tname = name.replace(\"icon-\", \"\");\n\n\tconst registryKey = `${collection}/${name}`;\n\treturn { name, collection, registryKey };\n};\n\nconst getIconDataSync = nameProp => {\n\tconst { registryKey } = _parseName(nameProp);\n\treturn registry.get(registryKey);\n};\n\nconst getIconData = async nameProp => {\n\tconst { collection, registryKey } = _parseName(nameProp);\n\n\tlet iconData = ICON_NOT_FOUND;\n\ttry {\n\t\ticonData = await _loadIconCollectionOnce(collection);\n\t} catch (e) {\n\t\tconsole.error(e.message); /* eslint-disable-line */\n\t}\n\n\tif (iconData === ICON_NOT_FOUND) {\n\t\treturn iconData;\n\t}\n\n\tif (!registry.has(registryKey)) {\n\t\t// not filled by another await. many getters will await on the same loader, but fill only once\n\t\t_fillRegistry(iconData);\n\t}\n\treturn registry.get(registryKey);\n};\n\n// test page usage only\nconst _getRegisteredNames = async () => {\n\t// fetch one icon of each collection to trigger the bundle load\n\tawait getIconData(\"edit\");\n\tawait getIconData(\"tnt/arrow\");\n\tawait getIconData(\"business-suite/3d\");\n\treturn Array.from(registry.keys());\n};\n\nconst _getDefaultCollection = () => {\n\treturn isTheme(\"sap_horizon\") ? \"SAP-icons-v5\" : \"SAP-icons\";\n};\n\nconst _normalizeCollection = collectionName => {\n\tif (IconCollectionsAlias[collectionName]) {\n\t\treturn IconCollectionsAlias[collectionName];\n\t}\n\n\treturn collectionName;\n};\n\nexport {\n\tregisterIconBundle,\n\tregisterIconLoader,\n\tgetIconData,\n\tgetIconDataSync,\n\tregisterIcon,\n\t_getRegisteredNames,\n};\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<svg class=\"ui5-icon-root\" tabindex=\"${ifDefined(context.tabIndex)}\" dir=\"${ifDefined(context._dir)}\" viewBox=\"0 0 512 512\" role=\"${ifDefined(context.effectiveAccessibleRole)}\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" aria-label=\"${ifDefined(context.effectiveAccessibleName)}\" aria-hidden=${ifDefined(context.effectiveAriaHidden)} xmlns=\"http://www.w3.org/2000/svg\" @focusin=${context._onfocusin} @focusout=${context._onfocusout} @keydown=${context._onkeydown} @keyup=${context._onkeyup} @click=${context._onclick}>${blockSVG1(context, tags, suffix)}</svg>`;\nconst block1 = (context, tags, suffix) => svg`<title id=\"${ifDefined(context._id)}-tooltip\">${ifDefined(context.effectiveAccessibleName)}</title>`;\n\nconst blockSVG1 = (context, tags, suffix) => svg`${ context.hasIconTooltip ? block1(context, tags, suffix) : undefined }<g role=\"presentation\"><path d=\"${ifDefined(context.pathData)}\"/></g>`;\n\nexport default block0;","export default {packageName:\"@ui5/webcomponents-theming\",fileName:\"themes\\sap_fiori_3\\parameters-bundle.css\",content:\":root{--sapBrandColor:#0a6ed1;--sapHighlightColor:#0854a0;--sapBaseColor:#fff;--sapShellColor:#354a5f;--sapBackgroundColor:#f7f7f7;--sapFontFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontLightFamily:\\\"72-Light\\\",\\\"72-Lightfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontBoldFamily:\\\"72-Bold\\\",\\\"72-Boldfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontBlackFamily:\\\"72Black\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontHeaderFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontSize:.875rem;--sapFontSmallSize:.75rem;--sapFontLargeSize:1rem;--sapFontHeader1Size:2.25rem;--sapFontHeader2Size:1.5rem;--sapFontHeader3Size:1.25rem;--sapFontHeader4Size:1.125rem;--sapFontHeader5Size:1rem;--sapFontHeader6Size:.875rem;--sapTextColor:#32363a;--sapLinkColor:#0a6ed1;--sapLink_Hover_Color:#0854a0;--sapLink_Active_Color:#0a6ed1;--sapLink_Visited_Color:#0a6ed1;--sapLink_InvertedColor:#d3e8fd;--sapLink_SubtleColor:#074888;--sapCompanyLogo:none;--sapBackgroundImage:none;--sapBackgroundImageOpacity:1.0;--sapBackgroundImageRepeat:false;--sapSelectedColor:#0854a0;--sapActiveColor:#0854a0;--sapHighlightTextColor:#fff;--sapTitleColor:#32363a;--sapNegativeColor:#b00;--sapCriticalColor:#df6e0c;--sapPositiveColor:#107e3e;--sapInformativeColor:#0a6ed1;--sapNeutralColor:#6a6d70;--sapNegativeElementColor:#b00;--sapCriticalElementColor:#df6e0c;--sapPositiveElementColor:#107e3e;--sapInformativeElementColor:#0a6ed1;--sapNeutralElementColor:#6a6d70;--sapNegativeTextColor:#b00;--sapPositiveTextColor:#107e3e;--sapCriticalTextColor:#df6e0c;--sapInformativeTextColor:#0a6ed1;--sapNeutralTextColor:#6a6d70;--sapNeutralBorderColor:#6a6d70;--sapErrorColor:#b00;--sapErrorBorderColor:#b00;--sapWarningColor:#df6e0c;--sapWarningBorderColor:#df6e0c;--sapSuccessColor:#107e3e;--sapSuccessBorderColor:#107e3e;--sapInformationColor:#0a6ed1;--sapInformationBorderColor:#0a6ed1;--sapErrorBackground:#ffebeb;--sapWarningBackground:#fef7f1;--sapSuccessBackground:#f1fdf6;--sapInformationBackground:#f5faff;--sapNeutralBackground:#f4f4f4;--sapIndicationColor_1:#800;--sapIndicationColor_1_Hover_Background:#6f0000;--sapIndicationColor_1_Active_Background:#500;--sapIndicationColor_1_TextColor:#fff;--sapIndicationColor_2:#b00;--sapIndicationColor_2_Hover_Background:#a20000;--sapIndicationColor_2_Active_Background:#800;--sapIndicationColor_2_TextColor:#fff;--sapIndicationColor_3:#df6e0c;--sapIndicationColor_3_Hover_Background:#d0670b;--sapIndicationColor_3_Active_Background:#c2600a;--sapIndicationColor_3_TextColor:#fff;--sapIndicationColor_4:#107e3e;--sapIndicationColor_4_Hover_Background:#0d6733;--sapIndicationColor_4_Active_Background:#0a5128;--sapIndicationColor_4_TextColor:#fff;--sapIndicationColor_5:#0a6ed1;--sapIndicationColor_5_Hover_Background:#0961b9;--sapIndicationColor_5_Active_Background:#0854a0;--sapIndicationColor_5_TextColor:#fff;--sapIndicationColor_6:#0f828f;--sapIndicationColor_6_Hover_Background:#0d6d78;--sapIndicationColor_6_Active_Background:#0a5861;--sapIndicationColor_6_TextColor:#fff;--sapIndicationColor_7:#925ace;--sapIndicationColor_7_Hover_Background:#8546c8;--sapIndicationColor_7_Active_Background:#7838bd;--sapIndicationColor_7_TextColor:#fff;--sapIndicationColor_8:#c0399f;--sapIndicationColor_8_Hover_Background:#ac338f;--sapIndicationColor_8_Active_Background:#992d7e;--sapIndicationColor_8_TextColor:#fff;--sapElement_LineHeight:2.75rem;--sapElement_Height:2.25rem;--sapElement_BorderWidth:.0625rem;--sapElement_BorderCornerRadius:.25rem;--sapElement_Compact_LineHeight:2rem;--sapElement_Compact_Height:1.625rem;--sapElement_Condensed_LineHeight:1.5rem;--sapElement_Condensed_Height:1.375rem;--sapContent_LineHeight:1.4;--sapContent_IconHeight:1rem;--sapContent_IconColor:#0854a0;--sapContent_ContrastIconColor:#fff;--sapContent_NonInteractiveIconColor:#6a6d70;--sapContent_MarkerIconColor:#286eb4;--sapContent_MarkerTextColor:#0e7581;--sapContent_ImagePlaceholderBackground:#ccc;--sapContent_ImagePlaceholderForegroundColor:#fff;--sapContent_RatedColor:#d08014;--sapContent_UnratedColor:#89919a;--sapContent_FocusColor:#000;--sapContent_FocusStyle:dotted;--sapContent_FocusWidth:.0625rem;--sapContent_ContrastFocusColor:#fff;--sapContent_ShadowColor:#000;--sapContent_ContrastShadowColor:#fff;--sapContent_Shadow0:0 0 0 0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.5rem 0 rgba(0,0,0,0.1);--sapContent_Shadow1:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.125rem 0.5rem 0 rgba(0,0,0,0.3);--sapContent_Shadow2:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.625rem 1.875rem 0 rgba(0,0,0,0.3);--sapContent_Shadow3:0 0 0 0.0625rem rgba(0,0,0,0.42),0 1.25rem 5rem 0 rgba(0,0,0,0.3);--sapContent_TextShadow:0 0 0.125rem #fff;--sapContent_ContrastTextShadow:0 0 0.0625rem rgba(0,0,0,0.7);--sapContent_HeaderShadow:0 0 0.25rem 0 rgba(0,0,0,0.15),inset 0 -0.0625rem 0 0 #d9d9d9;--sapContent_Interaction_Shadow:none;--sapContent_Selected_Shadow:none;--sapContent_Negative_Shadow:none;--sapContent_Critical_Shadow:none;--sapContent_Positive_Shadow:none;--sapContent_Informative_Shadow:none;--sapContent_Neutral_Shadow:none;--sapContent_SearchHighlightColor:#d4f7db;--sapContent_HelpColor:#3f8600;--sapContent_LabelColor:#6a6d70;--sapContent_MonospaceFontFamily:\\\"72Mono\\\",\\\"72Monofull\\\",lucida console,monospace;--sapContent_MonospaceBoldFontFamily:\\\"72Mono-Bold\\\",\\\"72Mono-Boldfull\\\",lucida console,monospace;--sapContent_IconFontFamily:\\\"SAP-icons\\\";--sapContent_DisabledTextColor:rgba(50,54,58,0.6);--sapContent_DisabledOpacity:0.4;--sapContent_ContrastTextThreshold:0.65;--sapContent_ContrastTextColor:#fff;--sapContent_ForegroundColor:#efefef;--sapContent_ForegroundBorderColor:#89919a;--sapContent_ForegroundTextColor:#32363a;--sapContent_BadgeBackground:#d04343;--sapContent_BadgeTextColor:#fff;--sapContent_Placeholderloading_Background:#ccc;--sapContent_Placeholderloading_Gradient:linear-gradient(90deg,#ccc 0%,#ccc 20%,#999 50%,#ccc 80%,#ccc);--sapContent_DragAndDropActiveColor:#0854a0;--sapContent_Selected_Background:#0854a0;--sapContent_Selected_TextColor:#fff;--sapContent_Selected_Hover_Background:#095caf;--sapContent_Selected_ForegroundColor:#0854a0;--sapContent_Illustrative_Color1:#0a6ed1;--sapContent_Illustrative_Color2:#72b5f8;--sapContent_Illustrative_Color3:#ffba10;--sapContent_Illustrative_Color4:#4a5055;--sapContent_Illustrative_Color5:#9da4aa;--sapContent_Illustrative_Color6:#c6cace;--sapContent_Illustrative_Color7:#e7e9ea;--sapContent_Illustrative_Color8:#fff;--sapContent_Illustrative_Color9:#64edd2;--sapContent_Illustrative_Color10:#e7e9ea;--sapContent_Illustrative_Color11:#f31ded;--sapContent_Illustrative_Color12:#5dc122;--sapContent_Illustrative_Color13:#4ba1f6;--sapContent_Illustrative_Color14:#298ff4;--sapContent_Illustrative_Color15:#e6a400;--sapContent_Illustrative_Color16:#085aaa;--sapContent_Illustrative_Color17:#00a5a8;--sapContent_Illustrative_Color18:#d9ddde;--sapContent_Illustrative_Color19:#ccd0d2;--sapContent_Illustrative_Color20:#bec4c6;--sapShell_Background:#edeff0;--sapShell_BackgroundImage:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundGradient:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundImageOpacity:1.0;--sapShell_BackgroundImageRepeat:false;--sapShell_BorderColor:#354a5f;--sapShell_TextColor:#fff;--sapShell_InteractiveBackground:#354a5f;--sapShell_InteractiveTextColor:#d1e8ff;--sapShell_InteractiveBorderColor:#7996b4;--sapShell_GroupTitleTextColor:#32363a;--sapShell_GroupTitleTextShadow:0 0 0.125rem #fff;--sapShell_Hover_Background:#283848;--sapShell_Active_Background:#23303e;--sapShell_Active_TextColor:#fff;--sapShell_Selected_Background:#23303e;--sapShell_Selected_TextColor:#fff;--sapShell_Selected_Hover_Background:#23303e;--sapShell_Favicon:none;--sapShell_Navigation_Background:#354a5f;--sapShell_Navigation_SelectedColor:#d1e8ff;--sapShell_Navigation_Selected_TextColor:#d1e8ff;--sapShell_Navigation_TextColor:#fff;--sapShell_Navigation_Hover_Background:#283848;--sapShell_Navigation_Active_Background:#23303e;--sapShell_Navigation_Active_TextColor:#fff;--sapShell_Shadow:0 0 0.25rem 0 rgba(0,0,0,0.4),inset 0 -0.0625rem 0 0 rgba(0,0,0,0.2);--sapShell_NegativeColor:#f88;--sapShell_CriticalColor:#f8b67d;--sapShell_PositiveColor:#abe2c2;--sapShell_InformativeColor:#b1d6fb;--sapShell_NeutralColor:#d4d6d7;--sapButton_BorderWidth:.0625rem;--sapButton_BorderCornerRadius:.25rem;--sapButton_Background:#fff;--sapButton_BorderColor:#0854a0;--sapButton_TextColor:#0854a0;--sapButton_Hover_Background:#ebf5fe;--sapButton_Hover_BorderColor:#0854a0;--sapButton_Hover_TextColor:#0854a0;--sapButton_IconColor:#0854a0;--sapButton_Active_Background:#0854a0;--sapButton_Active_BorderColor:#0854a0;--sapButton_Active_TextColor:#fff;--sapButton_Emphasized_Background:#0a6ed1;--sapButton_Emphasized_BorderColor:#0a6ed1;--sapButton_Emphasized_TextColor:#fff;--sapButton_Emphasized_Hover_Background:#085caf;--sapButton_Emphasized_Hover_BorderColor:#085caf;--sapButton_Emphasized_Hover_TextColor:#fff;--sapButton_Emphasized_Active_Background:#0854a0;--sapButton_Emphasized_Active_BorderColor:#0854a0;--sapButton_Emphasized_Active_TextColor:#fff;--sapButton_Emphasized_TextShadow:transparent;--sapButton_Reject_Background:#fff;--sapButton_Reject_BorderColor:#b00;--sapButton_Reject_Hover_Background:#ffebeb;--sapButton_Reject_Hover_BorderColor:#b00;--sapButton_Reject_Hover_TextColor:#b00;--sapButton_Reject_Active_Background:#a20000;--sapButton_Reject_Active_BorderColor:#a20000;--sapButton_Reject_Active_TextColor:#fff;--sapButton_Reject_TextColor:#b00;--sapButton_Reject_Selected_Background:#a20000;--sapButton_Reject_Selected_BorderColor:#a20000;--sapButton_Reject_Selected_TextColor:#fff;--sapButton_Reject_Selected_Hover_Background:#b00;--sapButton_Reject_Selected_Hover_BorderColor:#b00;--sapButton_Accept_Background:#fff;--sapButton_Accept_BorderColor:#107e3e;--sapButton_Accept_Hover_Background:#f1fdf6;--sapButton_Accept_Hover_BorderColor:#107e3e;--sapButton_Accept_Hover_TextColor:#107e3e;--sapButton_Accept_Active_Background:#0d6733;--sapButton_Accept_Active_BorderColor:#0d6733;--sapButton_Accept_Active_TextColor:#fff;--sapButton_Accept_TextColor:#107e3e;--sapButton_Accept_Selected_Background:#0d6733;--sapButton_Accept_Selected_BorderColor:#0d6733;--sapButton_Accept_Selected_TextColor:#fff;--sapButton_Accept_Selected_Hover_Background:#107e3e;--sapButton_Accept_Selected_Hover_BorderColor:#107e3e;--sapButton_Lite_Background:transparent;--sapButton_Lite_BorderColor:transparent;--sapButton_Lite_TextColor:#0854a0;--sapButton_Lite_Hover_Background:#ebf5fe;--sapButton_Lite_Hover_BorderColor:#0854a0;--sapButton_Lite_Hover_TextColor:#0854a0;--sapButton_Lite_Active_Background:#0854a0;--sapButton_Lite_Active_BorderColor:#0854a0;--sapButton_Selected_Background:#0854a0;--sapButton_Selected_BorderColor:#0854a0;--sapButton_Selected_TextColor:#fff;--sapButton_Selected_Hover_Background:#095caf;--sapButton_Selected_Hover_BorderColor:#095caf;--sapButton_Attention_Background:#fff;--sapButton_Attention_BorderColor:#df6e0c;--sapButton_Attention_TextColor:#32363a;--sapButton_Attention_Hover_Background:#fef7f1;--sapButton_Attention_Hover_BorderColor:#df6e0c;--sapButton_Attention_Hover_TextColor:#32363a;--sapButton_Attention_Active_Background:#f3801c;--sapButton_Attention_Active_BorderColor:#f3801c;--sapButton_Attention_Active_TextColor:#fff;--sapButton_Attention_Selected_Background:#f3801c;--sapButton_Attention_Selected_BorderColor:#f3801c;--sapButton_Attention_Selected_TextColor:#fff;--sapButton_Attention_Selected_Hover_Background:#f48e34;--sapButton_Attention_Selected_Hover_BorderColor:#f48e34;--sapButton_Negative_Background:#b00;--sapButton_Negative_BorderColor:#b00;--sapButton_Negative_TextColor:#fff;--sapButton_Negative_Hover_Background:#970000;--sapButton_Negative_Hover_BorderColor:#970000;--sapButton_Negative_Hover_TextColor:#fff;--sapButton_Negative_Active_Background:#800;--sapButton_Negative_Active_BorderColor:#800;--sapButton_Negative_Active_TextColor:#fff;--sapButton_Critical_Background:#df6e0c;--sapButton_Critical_BorderColor:#df6e0c;--sapButton_Critical_TextColor:#fff;--sapButton_Critical_Hover_Background:#f3801c;--sapButton_Critical_Hover_BorderColor:#f3801c;--sapButton_Critical_Hover_TextColor:#fff;--sapButton_Critical_Active_Background:#f5933e;--sapButton_Critical_Active_BorderColor:#f5933e;--sapButton_Critical_Active_TextColor:#fff;--sapButton_Success_Background:#107e3e;--sapButton_Success_BorderColor:#107e3e;--sapButton_Success_TextColor:#fff;--sapButton_Success_Hover_Background:#0c5e2e;--sapButton_Success_Hover_BorderColor:#0c5e2e;--sapButton_Success_Hover_TextColor:#fff;--sapButton_Success_Active_Background:#0a5128;--sapButton_Success_Active_BorderColor:#0a5128;--sapButton_Success_Active_TextColor:#fff;--sapButton_Information_Background:#0a6ed1;--sapButton_Information_BorderColor:#0a6ed1;--sapButton_Information_TextColor:#fff;--sapButton_Information_Hover_Background:#0961b9;--sapButton_Information_Hover_BorderColor:#0961b9;--sapButton_Information_Hover_TextColor:#fff;--sapButton_Information_Active_Background:#0854a0;--sapButton_Information_Active_BorderColor:#0854a0;--sapButton_Neutral_Background:#6a6d70;--sapButton_Neutral_BorderColor:#6a6d70;--sapButton_Neutral_TextColor:#fff;--sapButton_Neutral_Hover_Background:#595b5e;--sapButton_Neutral_Hover_BorderColor:#595b5e;--sapButton_Neutral_Hover_TextColor:#fff;--sapButton_Neutral_Active_Background:#515456;--sapButton_Neutral_Active_BorderColor:#515456;--sapButton_Neutral_Active_TextColor:#fff;--sapButton_Track_Selected_Background:#ebf5fe;--sapButton_Track_Selected_TextColor:#32363a;--sapButton_Track_Background:#ededed;--sapButton_Track_TextColor:#32363a;--sapButton_TokenBackground:#fafafa;--sapButton_TokenBorderColor:#c2c2c2;--sapField_Background:#fff;--sapField_TextColor:#32363a;--sapField_PlaceholderTextColor:#74777a;--sapField_BorderColor:#89919a;--sapField_HelpBackground:#fff;--sapField_BorderWidth:.0625rem;--sapField_BorderCornerRadius:.125rem;--sapField_Hover_Background:#fff;--sapField_Hover_BorderColor:#0854a0;--sapField_Hover_HelpBackground:#ebf5fe;--sapField_Active_BorderColor:#0854a0;--sapField_Focus_Background:#fff;--sapField_Focus_BorderColor:#89919a;--sapField_Focus_HelpBackground:#fff;--sapField_ReadOnly_Background:hsla(0,0%,94.9%,0.5);--sapField_ReadOnly_BorderColor:#89919a;--sapField_ReadOnly_HelpBackground:hsla(0,0%,94.9%,0.5);--sapField_RequiredColor:#ce3b3b;--sapField_InvalidColor:#b00;--sapField_InvalidBackground:#fff;--sapField_InvalidBorderWidth:.125rem;--sapField_InvalidBorderStyle:solid;--sapField_WarningColor:#df6e0c;--sapField_WarningBackground:#fff;--sapField_WarningBorderWidth:.125rem;--sapField_WarningBorderStyle:solid;--sapField_SuccessColor:#107e3e;--sapField_SuccessBackground:#fff;--sapField_SuccessBorderWidth:.0625rem;--sapField_SuccessBorderStyle:solid;--sapField_InformationColor:#0a6ed1;--sapField_InformationBackground:#fff;--sapField_InformationBorderWidth:.125rem;--sapField_InformationBorderStyle:solid;--sapGroup_TitleBackground:transparent;--sapGroup_TitleBorderColor:#d9d9d9;--sapGroup_TitleTextColor:#32363a;--sapGroup_ContentBackground:#fff;--sapGroup_ContentBorderColor:#d9d9d9;--sapGroup_BorderWidth:.0625rem;--sapGroup_BorderCornerRadius:0;--sapGroup_FooterBackground:transparent;--sapToolbar_Background:transparent;--sapToolbar_SeparatorColor:#d9d9d9;--sapList_HeaderBackground:#f2f2f2;--sapList_HeaderBorderColor:#e5e5e5;--sapList_HeaderTextColor:#32363a;--sapList_BorderColor:#e5e5e5;--sapList_TextColor:#32363a;--sapList_Active_TextColor:#fff;--sapList_BorderWidth:.0625rem;--sapList_SelectionBackgroundColor:#e5f0fa;--sapList_SelectionBorderColor:#0854a0;--sapList_Hover_SelectionBackground:#d8e9f8;--sapList_Background:#fff;--sapList_Hover_Background:#f5f5f5;--sapList_AlternatingBackground:#f2f2f2;--sapList_GroupHeaderBackground:#fff;--sapList_GroupHeaderBorderColor:#d9d9d9;--sapList_GroupHeaderTextColor:#32363a;--sapList_FooterBackground:#fafafa;--sapList_FooterTextColor:#32363a;--sapList_TableGroupHeaderBackground:#efefef;--sapList_TableGroupHeaderBorderColor:#d9d9d9;--sapList_TableGroupHeaderTextColor:#32363a;--sapList_TableFooterBorder:#d9d9d9;--sapList_TableFixedBorderColor:#8c8c8c;--sapList_Active_Background:#0854a0;--sapScrollBar_FaceColor:#949494;--sapScrollBar_TrackColor:#fff;--sapScrollBar_BorderColor:#949494;--sapScrollBar_SymbolColor:#0854a0;--sapScrollBar_Dimension:.75rem;--sapScrollBar_Hover_FaceColor:#8c8c8c;--sapPageHeader_Background:#fff;--sapPageHeader_BorderColor:#d9d9d9;--sapPageHeader_TextColor:#32363a;--sapPageFooter_Background:#fff;--sapPageFooter_BorderColor:#d9d9d9;--sapPageFooter_TextColor:#32363a;--sapInfobar_Background:#0f828f;--sapInfobar_Hover_Background:#0e7581;--sapInfobar_Active_Background:#0a545c;--sapInfobar_NonInteractive_Background:#e6e6e6;--sapInfobar_TextColor:#fff;--sapObjectHeader_Background:#fff;--sapObjectHeader_BorderColor:#d9d9d9;--sapObjectHeader_Hover_Background:#f5f5f5;--sapBlockLayer_Background:#000;--sapTile_Background:#fff;--sapTile_Hover_Background:#f5f5f5;--sapTile_Active_Background:#f5f5f5;--sapTile_BorderColor:transparent;--sapTile_TitleTextColor:#32363a;--sapTile_TextColor:#6a6d70;--sapTile_IconColor:#5a7da0;--sapTile_SeparatorColor:#ccc;--sapTile_Interactive_BorderColor:#b3b3b3;--sapTile_OverlayBackground:rgba(0,0,0,0.8);--sapTile_OverlayForegroundColor:#fff;--sapAccentColor1:#d08014;--sapAccentColor2:#d04343;--sapAccentColor3:#db1f77;--sapAccentColor4:#c0399f;--sapAccentColor5:#6367de;--sapAccentColor6:#286eb4;--sapAccentColor7:#0f828f;--sapAccentColor8:#7ca10c;--sapAccentColor9:#925ace;--sapAccentColor10:#647987;--sapAccentBackgroundColor1:#fff3b8;--sapAccentBackgroundColor2:#ffd0e7;--sapAccentBackgroundColor3:#fff0fa;--sapAccentBackgroundColor4:#ffdcf3;--sapAccentBackgroundColor5:#ded3ff;--sapAccentBackgroundColor6:#d1efff;--sapAccentBackgroundColor7:#c2fcee;--sapAccentBackgroundColor8:#ebf5cb;--sapAccentBackgroundColor9:#dafdf5;--sapAccentBackgroundColor10:#eaecee;--sapLegend_WorkingBackground:#fafafa;--sapLegend_NonWorkingBackground:#dedede;--sapLegend_CurrentDateTime:#c0399f;--sapLegendColor1:#d58215;--sapLegendColor2:#dc5b5b;--sapLegendColor3:#db1f77;--sapLegendColor4:#9b3b3b;--sapLegendColor5:#cf5db3;--sapLegendColor6:#286eb4;--sapLegendColor7:#1193a2;--sapLegendColor8:#8b9668;--sapLegendColor9:#647987;--sapLegendColor10:#892971;--sapLegendColor11:#725a3a;--sapLegendColor12:#bb2f2f;--sapLegendColor13:#bc1b66;--sapLegendColor14:#8b714f;--sapLegendColor15:#606190;--sapLegendColor16:#597da1;--sapLegendColor17:#49797e;--sapLegendColor18:#687a33;--sapLegendColor19:#295989;--sapLegendColor20:#5154bd;--sapLegendBackgroundColor1:#fdf3e7;--sapLegendBackgroundColor2:#faeaea;--sapLegendBackgroundColor3:#fce9f2;--sapLegendBackgroundColor4:#f8ecec;--sapLegendBackgroundColor5:#f9ebf5;--sapLegendBackgroundColor6:#ebf3fa;--sapLegendBackgroundColor7:#e8fbfd;--sapLegendBackgroundColor8:#f3f4ef;--sapLegendBackgroundColor9:#f1f3f4;--sapLegendBackgroundColor10:#f9ebf6;--sapLegendBackgroundColor11:#f6f2ed;--sapLegendBackgroundColor12:#faeaea;--sapLegendBackgroundColor13:#fce9f2;--sapLegendBackgroundColor14:#f5f2ee;--sapLegendBackgroundColor15:#f0f0f5;--sapLegendBackgroundColor16:#eff2f6;--sapLegendBackgroundColor17:#eff5f6;--sapLegendBackgroundColor18:#f5f7ed;--sapLegendBackgroundColor19:#ebf2f9;--sapLegendBackgroundColor20:#ecedf8;--sapChart_OrderedColor_1:#5899da;--sapChart_OrderedColor_2:#e8743b;--sapChart_OrderedColor_3:#19a979;--sapChart_OrderedColor_4:#ed4a7b;--sapChart_OrderedColor_5:#945ecf;--sapChart_OrderedColor_6:#13a4b4;--sapChart_OrderedColor_7:#525df4;--sapChart_OrderedColor_8:#bf399e;--sapChart_OrderedColor_9:#6c8893;--sapChart_OrderedColor_10:#ee6868;--sapChart_OrderedColor_11:#2f6497;--sapChart_Bad:#dc0d0e;--sapChart_Critical:#de890d;--sapChart_Good:#3fa45b;--sapChart_Neutral:#848f94;--sapChart_Sequence_1:#5899da;--sapChart_Sequence_2:#e8743b;--sapChart_Sequence_3:#19a979;--sapChart_Sequence_4:#ed4a7b;--sapChart_Sequence_5:#945ecf;--sapChart_Sequence_6:#13a4b4;--sapChart_Sequence_7:#525df4;--sapChart_Sequence_8:#bf399e;--sapChart_Sequence_9:#6c8893;--sapChart_Sequence_10:#ee6868;--sapChart_Sequence_11:#2f6497;--sapChart_Sequence_Neutral:#848f94;}\"}","export default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\sap_fiori_3\\parameters-bundle.css\",content:\":root{--_ui5_calendar_height:24.5rem;--_ui5_calendar_width:20.5rem;--_ui5_calendar_padding:0.75rem;--_ui5_calendar_header_height:3rem;--_ui5_calendar_header_arrow_button_width:2.5rem;--_ui5_calendar_header_padding:0.25rem 0;--_ui5_checkbox_root_side_padding:.6875rem;--_ui5_checkbox_icon_size:1rem;--_ui5_checkbox_partially_icon_size:.75rem;--_ui5_custom_list_item_height:3rem;--_ui5_custom_list_item_rb_min_width:2.75rem;--_ui5_day_picker_item_width:2.25rem;--_ui5_day_picker_item_height:2.875rem;--_ui5_day_picker_empty_height:3rem;--_ui5_day_picker_item_justify_content:space-between;--_ui5_color-palette-item-height:1.75rem;--_ui5_color-palette-item-hover-height:2.375rem;--_ui5_color-palette-item-margin:calc(var(--_ui5_color-palette-item-hover-height)/2 - var(--_ui5_color-palette-item-height)/2);--_ui5_color-palette-row-width:12rem;--_ui5_datetime_picker_width:40.0625rem;--_ui5_datetime_picker_height:25rem;--_ui5_datetime_timeview_phonemode_width:19.5rem;--_ui5_datetime_timeview_padding:1rem;--_ui5_dialog_content_min_height:2.75rem;--_ui5_input_inner_padding:0 0.625rem;--_ui5_input_inner_padding_with_icon:0 0.25rem 0 0.625rem;--_ui5_input_value_state_icon_padding:var(--_ui5-input-icon-padding);--_ui5_list_no_data_height:3rem;--_ui5_list_item_cb_margin_right:0;--_ui5_list_item_title_size:var(--sapFontLargeSize);--_ui5_list_item_img_size:3rem;--_ui5_list_item_img_margin:0.5rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:2.75rem;--_ui5_list_item_icon_size:1.125rem;--_ui5_group_header_list_item_height:2.75rem;--_ui5_list_busy_row_height:3rem;--_ui5_month_picker_item_height:3rem;--_ui5_popup_default_header_height:2.75rem;--_ui5_year_picker_item_height:3rem;--_ui5_tokenizer_root_padding:0.1875rem;--_ui5_token_height:1.625rem;--_ui5_token_icon_padding:0.25rem 0.5rem;--_ui5_token_wrapper_right_padding:0.3125rem;--_ui5_tl_bubble_padding:1rem;--_ui5_tl_indicator_before_bottom:-1.625rem;--_ui5_tl_padding:1rem 1rem 1rem .5rem;--_ui5_tl_li_margin_bottom:1.625rem;--_ui5_switch_focus_width_size_horizon_exp:calc(100% + 4px);--_ui5_switch_focus_height_size_horizon_exp:calc(100% + 4px);--_ui5_switch_text_on_left:calc(-100% + 1.9125rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.875rem);--_ui5_switch_rtl_transform:translateX(1.875rem) translateX(-100%);--_ui5_switch_text_right:calc(-100% + 1.9125rem);--_ui5_tc_item_text:3rem;--_ui5_tc_item_height:4.75rem;--_ui5_tc_item_text_only_height:2.75rem;--_ui5_tc_item_text_only_with_additional_text_height:3.75rem;--_ui5_tc_item_text_line_height:normal;--_ui5_tc_item_icon_circle_size:2.75rem;--_ui5_tc_item_icon_size:1.25rem;--_ui5_tc_item_add_text_margin_top:0.375rem;--_ui5_textarea_padding:0.5625rem 0.6875rem;--_ui5_radio_button_height:2.75rem;--_ui5_radio_button_label_side_padding:.875rem;--_ui5_radio_button_focus_dist:.5rem;--_ui5_radio_button_inner_size:2.75rem;--_ui5_radio_button_svg_size:1.375rem;--_ui5_radio_button_label_width:calc(100% - 2.75rem);--_ui5_radio_button_rtl_focus_right:0.5rem;--_ui5-responsive_popover_header_height:2.75rem;--ui5_side_navigation_item_height:2.75rem;--_ui5_load_more_text_height:2.75rem;--_ui5_load_more_text_font_size:var(--sapFontMediumSize);--_ui5_load_more_desc_padding:0.375rem 2rem 0.875rem 2rem;--_ui5-tree-indent-step:1.5rem;--_ui5-tree-toggle-box-width:2.75rem;--_ui5-tree-toggle-box-height:2.25rem;--_ui5-tree-toggle-icon-size:1.0625rem;--_ui5_timeline_tli_indicator_before_bottom:-1.625rem;--_ui5_timeline_tli_indicator_before_right:-1.625rem;--_ui5_timeline_tli_indicator_before_without_icon_bottom:-1.875rem;--_ui5_timeline_tli_indicator_before_without_icon_right:-1.9375rem;--_ui5_segmented_btn_border_radius:0.375rem}.sapUiSizeCompact,.ui5-content-density-compact,:root,[data-ui5-compact-size]{--_ui5_datetime_timeview_width:17rem;--_ui5_list_item_selection_btn_margin_top:calc(var(--_ui5_checkbox_wrapper_padding)*-1);--_ui5_token_icon_size:.75rem;--_ui5_token_wrapper_left_padding:0}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_button_base_height:1.625rem;--_ui5_button_base_padding:0.4375rem;--_ui5_button_base_min_width:2rem;--_ui5_button_icon_font_size:1rem;--_ui5_calendar_height:18rem;--_ui5_calendar_width:17.75rem;--_ui5_calendar_padding:0.5rem;--_ui5_calendar_header_height:2rem;--_ui5_calendar_header_arrow_button_width:2rem;--_ui5_calendar_header_padding:0;--_ui5_checkbox_root_side_padding:var(--_ui5_checkbox_wrapped_focus_padding);--_ui5_checkbox_wrapped_content_margin_top:var(--_ui5_checkbox_compact_wrapped_label_margin_top);--_ui5_checkbox_wrapped_focus_left_top_bottom_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_checkbox_width_height:var(--_ui5_checkbox_compact_width_height);--_ui5_checkbox_wrapper_padding:var(--_ui5_checkbox_compact_wrapper_padding);--_ui5_checkbox_focus_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_checkbox_inner_width_height:var(--_ui5_checkbox_compact_inner_size);--_ui5_checkbox_icon_size:.75rem;--_ui5_checkbox_partially_icon_size:.5rem;--_ui5_color-palette-item-height:1.25rem;--_ui5_color-palette-item-focus-height:1rem;--_ui5_color-palette-item-container-sides-padding:0.1875rem;--_ui5_color-palette-item-container-rows-padding:0.8125rem;--_ui5_color-palette-item-hover-height:1.625rem;--_ui5_color-palette-item-margin:calc(var(--_ui5_color-palette-item-hover-height)/2 - var(--_ui5_color-palette-item-height)/2);--_ui5_color-palette-row-width:8.125rem;--_ui5_color-palette-item-hover-margin:0;--_ui5_color-palette-row-height:7.5rem;--_ui5_color-palette-button-height:2rem;--_ui5_custom_list_item_height:2rem;--_ui5_custom_list_item_rb_min_width:2rem;--_ui5_daypicker_weeknumbers_container_padding_top:2rem;--_ui5_day_picker_item_width:2rem;--_ui5_day_picker_item_height:2rem;--_ui5_day_picker_empty_height:2.125rem;--_ui5_day_picker_item_justify_content:flex-end;--_ui5_datetime_picker_height:17rem;--_ui5_datetime_picker_width:34.0625rem;--_ui5_datetime_timeview_phonemode_width:18.5rem;--_ui5_datetime_timeview_padding:0.5rem;--_ui5_dialog_content_min_height:2.5rem;--_ui5_input_height:var(--_ui5_input_compact_height);--_ui5_input_inner_padding:0 0.5rem;--_ui5_input_icon_min_width:var(--_ui5_input_compact_min_width);--_ui5_input_icon_padding:.25rem .5rem;--_ui5_input_value_state_icon_padding:.1875rem .5rem;--_ui5_popup_default_header_height:2.5rem;--_ui5_textarea_padding:.1875rem .5rem;--_ui5_list_no_data_height:2rem;--_ui5_list_item_cb_margin_right:.5rem;--_ui5_list_item_title_size:var(--sapFontSize);--_ui5_list_item_img_margin:0.55rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:2rem;--_ui5_list_item_icon_size:1rem;--_ui5_list_busy_row_height:2rem;--_ui5_month_picker_item_height:2rem;--_ui5_panel_header_height:2rem;--_ui5_year_picker_item_height:2rem;--_ui5_tokenizer_root_padding:0.125rem;--_ui5_token_height:1.125rem;--_ui5_token_icon_padding:0.1rem 0.25rem;--_ui5_token_wrapper_right_padding:0.25rem;--_ui5_tl_bubble_padding:.5rem;--_ui5_tl_indicator_before_bottom:-.5rem;--_ui5_tl_padding:.5rem;--_ui5_tl_li_margin_bottom:.5rem;--_ui5_wheelslider_item_width:64px;--_ui5_wheelslider_item_height:32px;--_ui5_wheelslider_height:224px;--_ui5_wheelslider_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*2);--_ui5_wheelslider_arrows_visibility:visible;--_ui5_wheelslider_mobile_selection_frame_margin_top:128px;--_ui5_switch_height:var(--_ui5_switch_compact_height);--_ui5_switch_width:var(--_ui5_switch_compact_width);--_ui5_switch_handle_height:var(--_ui5_switch_handle_compact_height);--_ui5_switch_handle_width:var(--_ui5_switch_handle_compact_width);--_ui5_switch_text_on_left:calc(-100% + 1.5625rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.5rem);--_ui5_switch_no_label_width:var(--_ui5_switch_compact_no_label_width);--_ui5_switch_no_label_width_horizon:var(--_ui5_switch_compact_no_label_width_horizon);--_ui5_switch_rtl_transform:translateX(-100%) translateX(1.5rem);--_ui5_switch_text_right:calc(-100% + 1.5625rem);--_ui5_switch_root_outline_top_bottom:var(--_ui5_switch_compact_root_outline_top_bottom);--_ui5_switch_root_outline_left_right:var(--_ui5_switch_compact_root_outline_left_right);--_ui5_switch_root_outline_top_bottom_horizon:var(--_ui5_switch_compact_root_outline_top_bottom_horizon);--_ui5_switch_root_outline_left_right_horizon:var(--_ui5_switch_compact_root_outline_left_right_horizon);--_ui5_switch_root_outline_top_bottom_hcb:var(--_ui5_switch_compact_root_outline_top_bottom_hcb);--_ui5_switch_root_outline_left_right_hcb:var(--_ui5_switch_compact_root_outline_left_right_hcb);--_ui5_tc_item_text:2rem;--_ui5_tc_item_text_line_height:1.325rem;--_ui5_tc_item_add_text_margin_top:0.3125rem;--_ui5_tc_header_height:var(--_ui5_tc_header_height_compact);--_ui5_tc_item_height:4rem;--_ui5_tc_item_icon_circle_size:2rem;--_ui5_tc_item_icon_size:1rem;--_ui5_radio_button_min_width:var(--_ui5_radio_button_min_width_compact);--_ui5_radio_button_height:2rem;--_ui5_radio_button_label_side_padding:.5rem;--_ui5_radio_button_focus_dist:.375rem;--_ui5_radio_button_inner_size:2rem;--_ui5_radio_button_svg_size:1rem;--_ui5_radio_button_label_width:calc(100% - 2rem + 1px);--_ui5_radio_button_rtl_focus_right:0.375rem;--_ui5-responsive_popover_header_height:2.5rem;--ui5_side_navigation_item_height:2rem;--_ui5_slider_handle_height:1.25rem;--_ui5_slider_handle_width:1.25rem;--_ui5_slider_handle_top:-0.6425rem;--_ui5_slider_handle_margin_left:-0.7825rem;--_ui5_slider_tooltip_height:1rem;--_ui5_slider_tooltip_padding:0.25rem;--_ui5_slider_tooltip_bottom:1.825rem;--_ui5_slider_progress_outline_offset:-0.625rem;--_ui5_slider_outer_height:1.3125rem;--_ui5_load_more_text_height:2.625rem;--_ui5_load_more_text_font_size:var(--sapFontSize);--_ui5_load_more_desc_padding:0 2rem 0.875rem 2rem;--_ui5-tree-indent-step:0.5rem;--_ui5-tree-toggle-box-width:2rem;--_ui5-tree-toggle-box-height:1.5rem;--_ui5-tree-toggle-icon-size:0.8125rem;--_ui5_timeline_tli_indicator_before_bottom:-0.5rem;--_ui5_timeline_tli_indicator_before_right:-0.5rem;--_ui5_timeline_tli_indicator_before_without_icon_bottom:-0.75rem;--_ui5_timeline_tli_indicator_before_without_icon_right:-0.8125rem}:root{--ui5-avatar-initials-color:var(--sapContent_ImagePlaceholderForegroundColor);--ui5-avatar-initials-border:none;--ui5-avatar-accent1:var(--sapAccentColor1);--ui5-avatar-accent2:var(--sapAccentColor2);--ui5-avatar-accent3:var(--sapAccentColor3);--ui5-avatar-accent4:var(--sapAccentColor4);--ui5-avatar-accent5:var(--sapAccentColor5);--ui5-avatar-accent6:var(--sapAccentColor6);--ui5-avatar-accent7:var(--sapAccentColor7);--ui5-avatar-accent8:var(--sapAccentColor8);--ui5-avatar-accent9:var(--sapAccentColor9);--ui5-avatar-accent10:var(--sapAccentColor10);--ui5-avatar-placeholder:var(--sapContent_ImagePlaceholderBackground);--ui5-avatar-accent1-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent2-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent3-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent4-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent5-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent6-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent7-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent8-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent9-color:var(--ui5-avatar-initials-color);--ui5-avatar-accent10-color:var(--ui5-avatar-initials-color);--ui5-avatar-placeholder-color:var(--ui5-avatar-initials-color);--_ui5_avatar_outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_avatar_focus_offset:1px;--_ui5_avatar_focus_width:1px;--_ui5_avatar_focus_color:var(--sapContent_FocusColor);--_ui5_avatar_fontsize_XS:0.75rem;--_ui5_avatar_fontsize_M:1.625rem;--_ui5_avatar_fontsize_L:2rem;--_ui5_avatar_fontsize_XL:2.75rem;--_ui5_avatar_fontsize_XS:1rem;--_ui5_avatar_fontsize_S:1.125rem;--_ui5_avatar_fontsize_M:1.5rem;--_ui5_avatar_fontsize_L:2.25rem;--_ui5_avatar_fontsize_XL:3rem;--ui5-badge-font-size:0.75em;--_ui5-badge-height:1rem;--_ui5-badge-border:0.0625em solid;--_ui5-badge-left-border:1px solid;--_ui5-badge-border-radius:0.5em;--_ui5-badge-font-weight:bold;--_ui5-badge-text-transform:uppercase;--_ui5-badge-cursor:default;--_ui5_badge_pointer_events:none;--ui5-badge-color-scheme-1-background:var(--sapLegendBackgroundColor1);--ui5-badge-color-scheme-1-hover-background:var(--ui5-badge-color-scheme-1-background);--ui5-badge-color-scheme-1-border:var(--sapAccentColor1);--ui5-badge-color-scheme-1-color:var(--sapAccentColor1);--ui5-badge-color-scheme-2-background:var(--sapLegendBackgroundColor2);--ui5-badge-color-scheme-2-hover-background:var(--ui5-badge-color-scheme-2-background);--ui5-badge-color-scheme-2-border:var(--sapAccentColor2);--ui5-badge-color-scheme-2-color:var(--sapAccentColor2);--ui5-badge-color-scheme-3-background:var(--sapLegendBackgroundColor3);--ui5-badge-color-scheme-3-hover-background:var(--ui5-badge-color-scheme-3-background);--ui5-badge-color-scheme-3-border:var(--sapAccentColor3);--ui5-badge-color-scheme-3-color:var(--sapAccentColor3);--ui5-badge-color-scheme-4-background:var(--sapLegendBackgroundColor5);--ui5-badge-color-scheme-4-hover-background:var(--ui5-badge-color-scheme-4-background);--ui5-badge-color-scheme-4-border:var(--sapAccentColor4);--ui5-badge-color-scheme-4-color:var(--sapAccentColor4);--ui5-badge-color-scheme-5-background:var(--sapLegendBackgroundColor20);--ui5-badge-color-scheme-5-hover-background:var(--ui5-badge-color-scheme-5-background);--ui5-badge-color-scheme-5-border:var(--sapAccentColor5);--ui5-badge-color-scheme-5-color:var(--sapAccentColor5);--ui5-badge-color-scheme-6-background:var(--sapLegendBackgroundColor6);--ui5-badge-color-scheme-6-hover-background:var(--ui5-badge-color-scheme-6-background);--ui5-badge-color-scheme-6-border:var(--sapAccentColor6);--ui5-badge-color-scheme-6-color:var(--sapAccentColor6);--ui5-badge-color-scheme-7-background:var(--sapLegendBackgroundColor7);--ui5-badge-color-scheme-7-hover-background:var(--ui5-badge-color-scheme-7-background);--ui5-badge-color-scheme-7-border:var(--sapAccentColor7);--ui5-badge-color-scheme-7-color:var(--sapAccentColor7);--ui5-badge-color-scheme-8-background:var(--sapLegendBackgroundColor18);--ui5-badge-color-scheme-8-hover-background:var(--ui5-badge-color-scheme-8-background);--ui5-badge-color-scheme-8-border:var(--sapLegendColor18);--ui5-badge-color-scheme-8-color:var(--sapLegendColor18);--ui5-badge-color-scheme-9-background:var(--sapLegendBackgroundColor10);--ui5-badge-color-scheme-9-hover-background:var(--ui5-badge-color-scheme-9-background);--ui5-badge-color-scheme-9-border:var(--sapAccentColor10);--ui5-badge-color-scheme-9-color:var(--sapAccentColor10);--ui5-badge-color-scheme-10-background:var(--sapLegendBackgroundColor9);--ui5-badge-color-scheme-10-hover-background:var(--ui5-badge-color-scheme-10-background);--ui5-badge-color-scheme-10-border:var(--sapAccentColor9);--ui5-badge-color-scheme-10-color:var(--sapAccentColor9);--_ui5_busy_indicator_color:var(--sapContent_IconColor);--_ui5_busy_indicator_focus_outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_busy_indicator_focus_border_radius:0px;--_ui5_button_base_min_width:2.5rem;--_ui5_button_base_min_compact_width:2rem;--_ui5_button_base_height:2.5rem;--_ui5_button_compact_height:1.625rem;--_ui5_button_border_radius:var(--sapButton_BorderCornerRadius);--_ui5_button_base_padding:0.6875rem;--_ui5_button_compact_padding:0.4375rem;--_ui5_button_base_icon_margin:0.563rem;--_ui5_button_icon_font_size:1.375rem;--_ui5_button_outline:1px dotted var(--sapContent_FocusColor);--_ui5_button_emphasized_outline:1px dotted var(--sapContent_FocusColor);--_ui5_button_outline_offset:-0.1875rem;--_ui5_button_emphasized_font_weight:normal;--_ui5_button_text_shadow:var(--sapContent_TextShadow);--_ui5_button_focus_offset:1px;--_ui5_button_focus_width:1px;--_ui5_button_focus_color:var(--sapContent_FocusColor);--_ui5_button_focus_outline_focus_color:var(--sapContent_ContrastFocusColor);--_ui5_button_positive_border_focus_hover_color:var(--sapContent_FocusColor);--_ui5_button_positive_focus_border_color:var(--sapButton_Accept_BorderColor);--_ui5_button_negative_focus_border_color:var(--sapButton_Reject_BorderColor);--_ui5_button_attention_focus_border_color:var(--sapButton_Negative_BorderColor);--_ui5_button_emphasized_focused_border_color:var(--sapButton_Emphasized_BorderColor);--_ui5_button_fontFamily:\\\"72override\\\",var(--sapFontFamily);--_ui5_button_emphasized_focused_border_radius:0;--_ui5_button_transparent_hover:transparent;--_ui5_button_base_min_width:2.25rem;--_ui5_button_base_height:2.25rem;--_ui5_button_base_padding:0.5625rem;--_ui5_button_base_icon_only_padding:0.5625rem;--_ui5_button_base_icon_margin:0.375rem;--_ui5_button_icon_font_size:1rem;--_ui5_button_emphasized_font_weight:bold;--_ui5_button_text_shadow:none;--_ui5_button_emphasized_focused_border:0.0625rem dotted var(--sapContent_ContrastFocusColor);--_ui5_button_emphasized_outline:1px solid var(--sapContent_FocusColor);--_ui5_card_box_shadow:var(--sapContent_Shadow0);--_ui5_card_hover_box_shadow:var(--_ui5_card_box_shadow);--_ui5_card_border_color:var(--sapTile_BorderColor);--_ui5_card_border-radius:.25rem;--_ui5_card_content_padding:1rem;--_ui5_card_header_hover_bg:var(--sapList_Hover_Background);--_ui5_card_header_active_bg:var(--_ui5_card_header_hover_bg);--_ui5_card_header_border_color:var(--sapTile_SeparatorColor);--_ui5_card_header_focus_border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_card_header_focus_radius:0px;--_ui5_card_header_focus_bottom_radius:0px;--_ui5_card_header_focus_offset:1px;--_ui5_card_header_title_font_family:\\\"72override\\\",var(--sapFontFamily);--_ui5_card_header_title_font_size:var(--sapFontHeader5Size);--_ui5_card_header_title_font_weight:normal;--ui5_carousel_button_size:2.5rem;--ui5_carousel_height:0.25rem;--ui5_carousel_width:0.25rem;--ui5_carousel_margin:0 0.375rem;--ui5_carousel_border:1px solid var(--sapContent_ForegroundBorderColor);--ui5_carousel_dot_border:none;--ui5_carousel_dot_background:var(--sapContent_NonInteractiveIconColor);--_ui5_checkbox_wrapper_padding:.8125rem;--_ui5_checkbox_width_height:3rem;--_ui5_checkbox_box_shadow:none;--_ui5_checkbox_transition:unset;--_ui5_checkbox_focus_border:none;--_ui5_checkbox_border_radius:0;--_ui5_checkbox_hover_background:var(--sapField_Hover_Background);--_ui5_checkbox_active_background:var(--sapField_Hover_Background);--_ui5_checkbox_checkmark_warning_color:var(--sapField_TextColor);--_ui5_checkbox_checkmark_color:var(--sapSelectedColor);--_ui5_checkbox_focus_position:.6875rem;--_ui5_checkbox_focus_outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_checkbox_focus_border_radius:0;--_ui5_checkbox_outer_hover_background:transparent;--_ui5_checkbox_inner_width_height:1.375rem;--_ui5_checkbox_inner_border:solid .125rem var(--sapField_BorderColor);--_ui5_checkbox_inner_hover_border_color:var(--sapField_HoverBorderColor);--_ui5_checkbox_inner_hover_checked_border_color:var(--sapField_HoverBorderColor);--_ui5_checkbox_inner_selected_border_color:var(--sapField_BorderColor);--_ui5_checkbox_inner_disabled_border_color:var(--sapField_BorderColor);--_ui5_checkbox_inner_active_border_color:var(--sapField_BorderColor);--_ui5_checkbox_inner_border_radius:0;--_ui5_checkbox_inner_error_border:0.125rem solid var(--sapField_InvalidColor);--_ui5_checkbox_inner_warning_border:0.125rem solid var(--sapField_WarningColor);--_ui5_checkbox_inner_information_border:0.125rem solid var(--sapField_InformationColor);--_ui5_checkbox_inner_information_box_shadow:none;--_ui5_checkbox_inner_warning_box_shadow:none;--_ui5_checkbox_inner_error_box_shadow:none;--_ui5_checkbox_inner_success_box_shadow:none;--_ui5_checkbox_inner_default_box_shadow:none;--_ui5_checkbox_inner_warning_background_hover:var(--sapField_WarningBackground);--_ui5_checkbox_inner_error_background_hover:var(--sapField_InvalidBackground);--_ui5_checkbox_inner_success_background_hover:var(--sapField_SuccessBackground);--_ui5_checkbox_inner_information_background_hover:var(--sapField_InformationBackground);--_ui5_checkbox_inner_success_border:var(--sapField_BorderWidth) solid var(--sapField_SuccessColor);--_ui5_checkbox_inner_readonly_border:0.125rem solid var(--sapField_ReadOnly_BorderColor);--_ui5_checkbox_inner_background:var(--sapField_Background);--_ui5_checkbox_wrapped_focus_padding:.375rem;--_ui5_checkbox_wrapped_content_margin_top:.125rem;--_ui5_checkbox_wrapped_focus_left_top_bottom_position:.5625rem;--_ui5_checkbox_compact_wrapper_padding:.5rem;--_ui5_checkbox_compact_width_height:2rem;--_ui5_checkbox_compact_inner_size:1rem;--_ui5_checkbox_compact_focus_position:.375rem;--_ui5_checkbox_compact_wrapped_label_margin_top:-1px;--_ui5_checkbox_label_color:var(--sapContent_LabelColor);--_ui5_checkbox_label_offset_left:var(--_ui5_checkbox_wrapper_padding);--_ui5_checkbox_label_offset_right:0;--_ui5_checkbox_disabled_label_color:var(--sapContent_LabelColor);--_ui5_checkbox_default_focus_border:none;--_ui5_checkbox_focus_outline_display:block;--_ui5_checkbox_wrapper_padding:.6875rem;--_ui5_checkbox_width_height:2.75rem;--_ui5_checkbox_inner_border:.0625rem solid var(--sapField_BorderColor);--_ui5_checkbox_focus_position:0.5625rem;--_ui5_checkbox_inner_border_radius:.125rem;--_ui5_checkbox_wrapped_content_margin_top:0;--_ui5_checkbox_wrapped_focus_padding:.5rem;--_ui5_checkbox_inner_readonly_border:1px solid var(--sapField_ReadOnly_BorderColor);--_ui5_checkbox_compact_wrapped_label_margin_top:-0.125rem;--_ui5_color-palette-item-container-sides-padding:0.3125rem;--_ui5_color-palette-item-container-rows-padding:0.6875rem;--_ui5_color-palette-item-focus-height:1.5rem;--_ui5_color-palette-item-container-padding:var(--_ui5_color-palette-item-container-sides-padding) var(--_ui5_color-palette-item-container-rows-padding);--_ui5_color-palette-item-hover-margin:0;--_ui5_color-palette-row-height:9.5rem;--_ui5_color-palette-button-height:3rem;--_ui5_color-palette-item-before-focus-color:0.0625rem solid #fff;--_ui5_color-palette-item-before-focus-offset:0.0625rem;--_ui5_color-palette-item-after-focus-color:0.0625rem dotted #000;--_ui5_color-palette-item-after-focus-offset:0.0625rem;--_ui5_color-palette-item-border-radius:0;--_ui5_color_picker_slider_handle_box_shadow:0.0625rem solid var(--sapField_BorderColor);--_ui5_color_picker_slider_handle_border:0.125rem solid var(--sapField_BorderColor);--_ui5_color_picker_slider_handle_outline_hover:0.125rem solid var(--sapButton_Hover_BorderColor);--_ui5_color_picker_slider_handle_outline_focus:0.0625rem dotted var(--sapContent_FocusColor);--_ui5_color_picker_slider_handle_margin_top:0.0625rem;--_ui5_color_picker_slider_handle_focus_margin_top:0.0625rem;--_ui5_datepicker_icon_border:none;--_ui5-datepicker_border_radius:0;--_ui5-datepicker-hover-background:var(--sapField_Hover_Background);--_ui5-datepicker_icon_border_radius:0;--_ui5_daypicker_item_box_shadow:inset 0 0 0 0.0625rem var(--sapContent_Selected_ForegroundColor);--_ui5_daypicker_item_margin:2px;--_ui5_daypicker_item_border:none;--_ui5_daypicker_item_selected_border_color:var(--sapList_Background);--_ui5_daypicker_daynames_container_height:2rem;--_ui5_daypicker_weeknumbers_container_padding_top:2rem;--_ui5_daypicker_item_othermonth_background_color:var(--sapList_Background);--_ui5_daypicker_item_othermonth_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_othermonth_hover_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_border_radius:0;--_ui5_daypicker_item_now_inner_border_radius:0;--_ui5_daypicker_dayname_color:var(--sapContent_LabelColor);--_ui5_daypicker_weekname_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_outline_width:1px;--_ui5_daypicker_item_outline_offset:1px;--_ui5_daypicker_item_now_selected_outline_offset:2px;--_ui5_daypicker_item_now_focus_after_width:calc(100% - 0.25rem);--_ui5_daypicker_item_now_focus_after_height:calc(100% - 0.25rem);--_ui5_daypicker_item_now_selected_focus_after_width:calc(100% - 0.375rem);--_ui5_daypicker_item_now_selected_focus_after_height:calc(100% - 0.375rem);--_ui5_daypicker_item_selected_background:transparent;--_ui5_daypicker_item_selected_box_shadow:var(--_ui5_daypicker_item_box_shadow),var(--_ui5_daypicker_item_box_shadow);--_ui5_daypicker_item_selected_daytext_hover_background:transparent;--_ui5_daypicker_item_outline_focus_after:none;--_ui5_daypicker_item_border_radius_focus_after:none;--_ui5_daypicker_item_border_focus_after:var(--_ui5_daypicker_item_outline_width) dotted var(--sapContent_FocusColor);--_ui5_daypicker_item_width_focus_after:calc(100% - 0.25rem);--_ui5_daypicker_item_height_focus_after:calc(100% - 0.25rem);--_ui5_daypicker_item_now_border:0.125rem solid var(--sapLegend_CurrentDateTime);--_ui5_daypicker_item_now_outline:none;--_ui5_daypicker_item_now_outline_offset:none;--_ui5_daypicker_item_now_outline_offset_focus_after:var(--_ui5_daypicker_item_now_outline_offset);--_ui5_daypicker_item_selected_between_border:5%;--_ui5_daypicker_item_selected_between_background:transparent;--_ui5_daypicker_item_selected_between_text_background:var(--sapList_SelectionBackgroundColor);--_ui5_daypicker_item_selected_between_text_font:inherit;--_ui5_daypicker_item_selected_between_hover_background:inherit;--_ui5_daypicker_item_now_box_shadow:inset 0 0 0 0.0625rem var(--_ui5_daypicker_item_selected_border_color);--_ui5_daypicker_item_selected_text_outline:none;--_ui5_daypicker_item_border_radius:0.25rem;--_ui5_daypicker_item_now_inner_border_radius:0.125rem;--_ui5_dialog_resize_handle_color:var(--sapButton_Lite_TextColor);--_ui5_dialog_header_focus_width:0.0625rem;--_ui5_dialog_header_focus_offset:-0.1875rem;--_ui5_dialog_outline:var(--_ui5_dialog_header_focus_width) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_dialog_header_border_radius:0px;--_ui5_dialog_resize_handle_right:-0.25rem;--_ui5_dialog_resize_handle_bottom:-0.0625rem;--ui5-group-header-listitem-background-color:var(--sapList_GroupHeaderBackground);--_ui5_input_width:13.125rem;--_ui5_input_height:2.5rem;--_ui5_input_compact_height:1.625rem;--_ui5-input-hover-border:1px solid var(--sapField_Hover_BorderColor);--_ui5-input-hover-box-shadow:none;--_ui5-input-focus-box-shadow:none;--_ui5-input-background-color:var(--sapField_Background);--_ui5-input-border-radius:var(--sapField_BorderCornerRadius);--_ui5-input-border:2px solid transparent;--_ui5-input-placeholder-style:italic;--_ui5-input-placeholder-color:var(--sapField_PlaceholderTextColor);--_ui5-input-bottom-border-height:0;--_ui5-input-bottom-border-color:transparent;--_ui5-input-focused-border-color:var(--sapField_Hover_BorderColor);--_ui5-input-focus-outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);--_ui5-input-focus-outline-offset:-3px;--_ui5_input_state_border_width:0.125rem;--_ui5-input-information_border_width:0.125rem;--_ui5_input_error_font_weight:normal;--_ui5_input_focus_border_width:1px;--_ui5_input_error_warning_border_style:solid;--_ui5_input_error_warning_font_style:inherit;--_ui5_input_disabled_color:var(--sapContent_DisabledTextColor);--_ui5_input_disabled_font_weight:normal;--_ui5_input_disabled_border_color:var(--sapField_ReadOnly_BorderColor);--_ui5-input-disabled-background:var(--sapField_ReadOnly_Background);--_ui5_input_readonly_border_color:var(--sapField_ReadOnly_BorderColor);--_ui5-input-readonly-background:var(--sapField_ReadOnly_Background);--_ui5_input_icon_padding:0.625rem .6875rem;--_ui5_input_disabled_opacity:0.5;--_ui5_input_icon_min_width:2.375rem;--_ui5_input_compact_min_width:2rem;--_ui5-input-value-state-outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);--_ui5-input-value-state-outline-offset:-4px;--_ui5-input-transition:none;--_ui5-input-value-state-icon-display:none;--_ui5-input-focused-value-state-error-background:var(--sapField_InvalidBackground);--_ui5-input-focused-value-state-warning-background:var(--sapField_WarningBackground);--_ui5-input-focused-value-state-success-background:var(--sapField_SuccessBackground);--_ui5-input-focused-value-state-information-background:var(--sapField_InformationBackground);--_ui5-input-value-state-error-border-color:var(--sapField_InvalidColor);--_ui5-input-focused-value-state-error-border-color:var(--sapField_InvalidColor);--_ui5-input-value-state-warning-border-color:var(--sapField_WarningColor);--_ui5-input-focused-value-state-warning-border-color:var(--sapField_WarningColor);--_ui5-input-value-state-success-border-color:var(--sapField_SuccessColor);--_ui5-input-focused-value-state-success-border-color:var(--sapField_SuccessColor);--_ui5-input-value-state-success-border-width:1px;--_ui5-input-value-state-information-border-color:var(--sapField_InformationColor);--_ui5-input-focused-value-state-information-border-color:var(--sapField_InformationColor);--_ui5-input-value-state-information-border-width:1px;--_ui5-input-background-image:none;--_ui5-input-information-background-image:none;--_ui5-input-success-background-image:none;--_ui5-input-error-background-image:none;--_ui5-input-warning-background-image:none;--_ui5_input_readonly_icon_display:none;--_ui5_input_height:2.25rem;--_ui5-input-border:1px solid var(--sapField_BorderColor);--_ui5_input_disabled_opacity:0.4;--_ui5_input_icon_padding:.5625rem .6875rem;--_ui5_input_icon_color:var(--sapContent_IconColor);--_ui5_input_icon_pressed_color:var(--sapButton_Active_TextColor);--_ui5_input_icon_pressed_bg:var(--sapButton_Selected_Background);--_ui5_input_icon_hover_bg:var(--sapButton_Lite_Hover_Background);--_ui5_input_icon_border_radius:0;--_ui5_input_icon_box_shadow:none;--_ui5_input_icon_border:1px solid transparent;--_ui5_input_icon_margin:0;--_ui5_link_opacity:0.5;--_ui5_link_border:0.0625rem dotted transparent;--_ui5_link_border_focus:0.0625rem dotted var(--sapContent_FocusColor);--_ui5_link_focus_border-radius:0;--_ui5_link_opacity:0.4;--_ui5_link_text_decoration:none;--_ui5_link_hover_text_decoration:underline;--ui5_list_footer_text_color:var(--sapPageFooter_TextColor);--ui5_list_footer_text_color:var(--sapTextColor);--ui5-listitem-background-color:var(--sapList_Background);--ui5-listitem-border-bottom:1px solid var(--sapList_BorderColor);--ui5-listitem-selected-border-bottom:1px solid var(--sapList_SelectionBorderColor);--ui5-listitem-active-border-color:var(--sapContent_ContrastFocusColor);--_ui5_listitembase_focus_width:1px;--_ui5-listitembase_disabled_opacity:0.5;--_ui5_product_switch_item_border:none;--_ui5_monthpicker_item_border_radius:0;--_ui5_monthpicker_item_border:none;--_ui5_monthpicker_item_margin:1px;--_ui5_monthpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_monthpicker_item_focus_after_offset:2px;--_ui5_monthpicker_item_focus_after_border_radius:0;--_ui5_monthpicker_item_selected_text_color:var(--sapContent_ContrastTextColor);--_ui5_monthpicker_item_selected_background_color:var(--sapSelectedColor);--_ui5_monthpicker_item_selected_hover_color:var(--sapContent_Selected_Background);--_ui5_monthpicker_item_selected_box_shadow:none;--_ui5_monthpicker_item_focus_after_outline:none;--_ui5_monthpicker_item_selected_font_wieght:inherit;--_ui5_monthpicker_item_border_radius:0.25rem;--_ui5_message_strip_icon_width:2.5rem;--_ui5_message_strip_border_radius:0.1875rem;--_ui5_message_strip_success_border_color:var(--sapSuccessBorderColor);--_ui5_message_strip_error_border_color:var(--sapErrorBorderColor);--_ui5_message_strip_warning_border_color:var(--sapWarningBorderColor);--_ui5_message_strip_information_border_color:var(--sapInformationBorderColor);--_ui5_message_strip_button_border_width:0;--_ui5_message_strip_button_border_style:none;--_ui5_message_strip_button_border_color:transparent;--_ui5_message_strip_button_border_radius:0;--_ui5_message_strip_padding:0.4375rem 2.5rem 0.4375rem 2.5rem;--_ui5_message_strip_padding_no_icon:0.4375rem 2.5rem 0.4375rem 1rem;--_ui5_message_strip_button_height:1.625rem;--_ui5_message_strip_border_width:1px;--_ui5_message_strip_close_button_border:none;--_ui5_message_strip_close_button_size:1.625rem;--_ui5_message_strip_icon_top:0.4375rem;--_ui5_message_strip_focus_width:1px;--_ui5_message_strip_focus_offset:-2px;--_ui5_panel_focus_border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_panel_header_height:3rem;--_ui5_panel_button_root_width:3rem;--_ui5_panel_background_color:var(--sapGroup_TitleBackground);--_ui5_panel_border_radius:0px;--_ui5_panel_border_radius_expanded:0;--_ui5_panel_border_bottom:1px solid var(--sapGroup_TitleBorderColor);--_ui5_panel_outline_offset:-3px;--_ui5_panel_title_font_weight:normal;--_ui5_panel_header_height:2.75rem;--_ui5_panel_button_root_width:2.75rem;--_ui5_popup_content_padding:.4375em;--_ui5_popup_viewport_margin:10px;--_ui5-popup-border-radius:0.25rem;--_ui5_popup_header_shadow:var(--sapContent_Shadow0);--_ui5_popup_footer_border_top:1px solid var(--sapPageFooter_BorderColor);--_ui5_popup_header_footer_font_weight:400;--_ui5_progress_indicator_background_none:var(--sapField_Background);--_ui5_progress_indicator_background_error:var(--sapField_Background);--_ui5_progress_indicator_background_warning:var(--sapField_Background);--_ui5_progress_indicator_background_success:var(--sapField_Background);--_ui5_progress_indicator_background_information:var(--sapField_Background);--_ui5_progress_indicator_value_state_none:var(--sapNeutralElementColor);--_ui5_progress_indicator_value_state_error:var(--sapNegativeElementColor);--_ui5_progress_indicator_value_state_warning:var(--sapCriticalElementColor);--_ui5_progress_indicator_value_state_success:var(--sapPositiveElementColor);--_ui5_progress_indicator_value_state_information:var(--sapInformativeElementColor);--_ui5_progress_indicator_border_color_error:var(--sapField_BorderColor);--_ui5_progress_indicator_border_color_warning:var(--sapField_BorderColor);--_ui5_progress_indicator_border_color_success:var(--sapField_BorderColor);--_ui5_progress_indicator_border_color_information:var(--sapField_BorderColor);--_ui5_progress_indicator_color:var(--sapTextColor);--_ui5_progress_indicator_bar_color:var(--sapContent_ContrastTextColor);--_ui5_progress_indicator_border:0.0625rem solid var(--sapField_BorderColor);--_ui5_progress_indicator_bar_border_max:none;--_ui5_progress_indicator_icon_visibility:none;--_ui5_radio_button_min_width:2.75rem;--_ui5_radio_button_min_width_compact:2rem;--_ui5_radio_button_hover_fill:var(--sapField_Hover_Background);--_ui5_radio_button_border_width:1px;--_ui5_radio_button_checked_fill:var(--sapSelectedColor);--_ui5_radio_button_checked_error_fill:var(--sapField_InvalidColor);--_ui5_radio_button_checked_warning_fill:var(--sapField_TextColor);--_ui5_radio_button_warning_error_border_dash:0;--_ui5_radio_button_outer_ring_color:var(--sapField_BorderColor);--_ui5_radio_button_outer_ring_width:1;--_ui5_radio_button_outer_ring_bg:var(--sapField_Background);--_ui5_radio_button_outer_ring_hover_color:var(--sapField_Hover_BorderColor);--_ui5_radio_button_outer_ring_active_color:var(--sapField_Hover_BorderColor);--_ui5_radio_button_outer_ring_checked_hover_color:var(--sapField_Hover_BorderColor);--_ui5_radio_button_outer_ring_padding:0 0.625rem;--_ui5_radio_button_outer_ring_padding_with_label:0 0.625rem;--_ui5_radio_button_outer_ring_padding_rtl:0 0.625rem;--_ui5_radio_button_border_radius:0;--_ui5_radio_button_border:none;--_ui5_radio_button_focus_border:none;--_ui5_radio_button_focus_outline:block;--_ui5_radio_button_hover_shadow:none;--_ui5_radio_button_transition:none;--_ui5_radio_button_hover_background:inherit;--_ui5_radio_button_color:var(--sapField_BorderColor);--_ui5_radio_button_label_offset:1px;--_ui5_radio_button_label_color:var(--sapContent_LabelColor);--_ui5_radio_button_items_align:unset;--_ui5_radio_button_inner_width:initial;--_ui5_radio_button_border_readonly_focus_style:var(--sapContent_FocusStyle);--_ui5_segmented_btn_inner_border:0.0625rem solid var(--sapButton_Selected_BorderColor);--_ui5_segmented_btn_inner_border_odd_child:0;--_ui5_segmented_btn_inner_pressed_border_odd_child:0;--_ui5_segmented_btn_border_radius:0.35rem;--_ui5_segmented_btn_inner_border_radius:0;--_ui5_segmented_btn_background_color:transparent;--_ui5_select_disabled_background:var(--sapField_Background);--_ui5_select_disabled_border_color:var(--sapField_BorderColor);--_ui5_select_state_error_warning_border_style:solid;--_ui5_select_state_error_warning_border_width:0.125rem;--_ui5_select_hover_icon_left_border:1px solid transparent;--_ui5_select_rtl_hover_icon_left_border:none;--_ui5_select_rtl_hover_icon_right_border:none;--_ui5_select_focus_width:1px;--_ui5_select_label_olor:var(--sapField_TextColor);--_ui5_switch_height:2.75rem;--_ui5_switch_width:3.875rem;--_ui5_switch_no_label_width:3.25rem;--_ui5_switch_no_label_width_horizon:3.875rem;--_ui5_switch_root_outline_top_bottom:0.25rem;--_ui5_switch_root_outline_left_right:-0.125rem;--_ui5_switch_root_outline_top_bottom_horizon:0.3125rem;--_ui5_switch_root_outline_left_right_horizon:-0.0625rem;--_ui5_switch_root_outline_top_bottom_hcb:0.1875rem;--_ui5_switch_root_outline_left_right_hcb:-0.1875rem;--_ui5_switch_compact_height:2rem;--_ui5_switch_compact_width:3.5rem;--_ui5_switch_compact_no_label_width:2.5rem;--_ui5_switch_compact_no_label_width_horizon:3.5rem;--_ui5_switch_compact_root_outline_top_bottom:0.0625rem;--_ui5_switch_compact_root_outline_left_right:-0.125rem;--_ui5_switch_compact_root_outline_top_bottom_horizon:0.125em;--_ui5_switch_compact_root_outline_left_right_horizon:-0.125rem;--_ui5_switch_compact_root_outline_top_bottom_hcb:0;--_ui5_switch_compact_root_outline_left_right_hcb:-0.1875rem;--_ui5_switch_foucs_border_size:1px;--_ui5_switch_focus_outline:var(--_ui5_switch_foucs_border_size) dotted var(--sapContent_FocusColor);--_ui5_switch_root_after_boreder:var(--_ui5_switch_outline) dotted var(--sapContent_FocusColor);--_ui5-switch-root-border-radius:0;--_ui5-switch-root-box-shadow:none;--_ui5_switch_root_after_outline:none;--_ui5-switch-focus:\\\"\\\";--_ui5_switch_semantic_button_background:var(--sapButton_Background);--_ui5_switch_track_height:1.375rem;--_ui5_switch_track_no_label_height:1.25rem;--_ui5_switch_track_no_label_height_horizont:var(--_ui5_switch_track_height);--_ui5-switch-track-border:1px solid;--_ui5-switch-track-border_color:var(--sapContent_ForegroundBorderColor);--_ui5-switch_handle-off-hover_box_shadow:none;--_ui5-switch_handle-on-hover_box_shadow:none;--_ui5_switch_track_semantic_success_backgroud_color:var(--sapSuccessBackground);--_ui5_switch_track_semantic_error_backgroud_color:var(----sapErrorBackground);--_ui5_switch_track_semantic_border_color:var(--sapSuccessBorderColor);--_ui5_switch_track_semantic_not_checked_border_color:var(--sapErrorBorderColor);--_ui5_switch_track_semantic_checked_hover_border_color:var(--sapSuccessBorderColor);--_ui5_switch_track_semantic_hover_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_hover_border_color:var(--sapButton_Hover_BorderColor);--_ui5_switch_track_hover_border_color:var(--_ui5_switch_track_checked_border_color);--_ui5_switch_track_hover_background_color:var(--sapButton_Track_Background);--_ui5_switch_track_hover_checked_background_color:var(--sapButton_Track_Selected_Background);--_ui5-switch_track-on-hover-background:var(--_ui5-switch_track-on-background);--_ui5_switch_track_border_radius:0.75rem;--_ui5-switch_track-off-background:var(--sapButton_Track_Background);--_ui5-switch_track-on-background:var(--sapButton_Track_Selected_Background);--_ui5-switch_track-off-hover-color:var(--_ui5-switch_track-off-background);--_ui5-switch-track-transition:none;--_ui5_switch_disabled_opacity:.4;--_ui5_switch_track_disabled_checked_bg:var(--_ui5_switch_track_checked_bg);--_ui5_switch_track_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_track_disabled_semantic_checked_bg:var(--sapSuccessBackground);--_ui5_switch_track_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_track_disabled_semantic_bg:var(--sapErrorBackground);--_ui5_switch_track_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5-switch-track-icon-display:none;--_ui5_switch_handle_width:2rem;--_ui5_switch_handle_height:2rem;--_ui5_switch_handle_border_width:1px;--_ui5_switch_handle_border_radius:1rem;--_ui5_switch_handle_bg:var(--sapButton_TokenBackground);--_ui5_switch_handle_checked_bg:var(--sapButton_Selected_Background);--_ui5_switch_handle_checked_border_color:var(--sapButton_Selected_BorderColor);--_ui5_switch_handle_semantic_hover_bg:var(--sapErrorBackground);--_ui5_switch_handle_semantic_checked_hover_bg:var(--sapSuccessBackground);--_ui5_switch_handle_semantic_hover_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_semantic_checked_hover_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_compact_width:1.625rem;--_ui5_switch_handle_compact_height:1.625rem;--_ui5-switch-handle-border:var(--_ui5_switch_handle_border_width) solid var(--sapContent_ForegroundBorderColor);--_ui5-switch-handle-left:-1px;--_ui5_switch_handle_disabled_bg:var(--_ui5_switch_handle_bg);--_ui5_switch_handle_disabled_checked_bg:var(--_ui5_switch_handle_checked_bg);--_ui5_switch_handle_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_handle_disabled_semantic_checked_bg:var(--sapButton_Background);--_ui5_switch_handle_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5-switch-handle-icon-display:none;--_ui5-switch-slider-texts-display:inline;--_ui5_switch_text_on_semantic_color:var(--sapPositiveElementColor);--_ui5_switch_text_off_semantic_color:var(--sapNegativeElementColor);--_ui5_switch_text_disabled_color:var(--sapTextColor);--_ui5_tc_header_height_text_only:var(--_ui5_tc_item_text_only_height);--_ui5_tc_header_height_text_with_additional_text:var(--_ui5_tc_item_text_only_with_additional_text_height);--_ui5_tc_header_box_shadow:var(--sapContent_HeaderShadow);--_ui5_tc_header_border_bottom:0.125rem solid var(--sapObjectHeader_Background);--_ui5_tc_headeritem_padding:0 1rem;--_ui5_tc_headerItem_color:var(--sapContent_LabelColor);--_ui5_tc_headerItem_text_hover_color:var(--_ui5_tc_headerItem_color);--_ui5_tc_headeritem_text_selected_color:var(--sapSelectedColor);--_ui5_tc_headeritem_text_selected_hover_color:var(--sapSelectedColor);--_ui5_tc_headeritem_text_font_weight:normal;--_ui5_tc_headeritem_additional_text_font_weight:normal;--_ui5_tc_headerItem_neutral_color:var(--sapNeutralColor);--_ui5_tc_headerItem_positive_color:var(--sapPositiveColor);--_ui5_tc_headerItem_negative_color:var(--sapNegativeColor);--_ui5_tc_headerItem_critical_color:var(--sapCriticalColor);--_ui5_tc_headerItem_neutral_border_color:var(--_ui5_tc_headerItem_neutral_color);--_ui5_tc_headerItem_positive_border_color:var(--_ui5_tc_headerItem_positive_color);--_ui5_tc_headerItem_negative_border_color:var(--_ui5_tc_headerItem_negative_color);--_ui5_tc_headerItem_critical_border_color:var(--_ui5_tc_headerItem_critical_color);--_ui5_tc_headerItem_neutral_selected_border_color:var(--_ui5_tc_headerItem_neutral_color);--_ui5_tc_headerItem_positive_selected_border_color:var(--_ui5_tc_headerItem_positive_color);--_ui5_tc_headerItem_negative_selected_border_color:var(--_ui5_tc_headerItem_negative_color);--_ui5_tc_headerItem_critical_selected_border_color:var(--_ui5_tc_headerItem_critical_color);--_ui5_tc_headerItem_transition:none;--_ui5_tc_headerItem_hover_border_visibility:hidden;--_ui5_tc_headerItem_focus_offset:0px;--_ui5_tc_headerItemContent_border_radius:0.125rem 0.125rem 0 0;--_ui5_tc_headerItemContent_border_bottom:0.125rem solid var(--sapSelectedColor);--_ui5_tc_headerItemContent_border_bg:transparent;--_ui5_tc_headerItem_neutral_border_bg:transparent;--_ui5_tc_headerItem_positive_border_bg:transparent;--_ui5_tc_headerItem_negative_border_bg:transparent;--_ui5_tc_headerItem_critical_border_bg:transparent;--_ui5_tc_headerItem_hover_border_bg:transparent;--_ui5_tc_headerItem_hover_selected_hover_border_bg:transparent;--_ui5_tc_headerItemContent_border_height:0;--_ui5_tc_headerItemContent_offset:1rem;--_ui5_tc_headerItemContent_focus_offset:1rem;--_ui5_tc_headerItem_focus_border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);--_ui5_tc_headerItemContent_padding:0;--_ui5_tc_headerItemContent_focus_border:none;--_ui5_tc_headerItemContent_default_focus_border:none;--_ui5_tc_headerItemContent_focus_border_radius:0;--_ui5_tc_headerItemSemanticIcon_display:none;--_ui5_tc_headerItem_focus_border_radius:0px;--_ui5_tc_overflowItem_neutral_color:var(--sapNeutralColor);--_ui5_tc_overflowItem_positive_color:var(--sapPositiveColor);--_ui5_tc_overflowItem_negative_color:var(--sapNegativeColor);--_ui5_tc_overflowItem_critical_color:var(--sapCriticalColor);--_ui5_tc_overflowItem_focus_border:0px;--_ui5_tc_headerItemIcon_border:1px solid var(--sapHighlightColor);--_ui5_tc_headerItemIcon_color:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_background:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_headerItemIcon_positive_selected_background:var(--sapPositiveColor);--_ui5_tc_headerItemIcon_negative_selected_background:var(--sapNegativeColor);--_ui5_tc_headerItemIcon_critical_selected_background:var(--sapCriticalColor);--_ui5_tc_headerItemIcon_neutral_selected_background:var(--sapNeutralColor);--_ui5_tc_headerItemIcon_semantic_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_content_border_bottom:0.125rem solid var(--sapObjectHeader_BorderColor);--_ui5_tc_headerItem_focus_border_offset:-2px;--_ui5_tc_headerItemIcon_focus_border_radius:0}.sapUiSizeCompact,.ui5-content-density-compact,:root,[data-ui5-compact-size]{--_ui5_tc_header_height:var(--_ui5_tc_item_height)}:root{--_ui5_tc_header_border_bottom:0.0625rem solid var(--sapObjectHeader_Background);--_ui5_tc_headerItemContent_border_bottom:0.1875rem solid var(--sapSelectedColor);--_ui5_tc_overflowItem_default_color:var(--sapHighlightColor);--_ui5_tc_overflowItem_current_color:CurrentColor;--_ui5_tc_content_border_bottom:0.0625rem solid var(--sapObjectHeader_BorderColor);--_ui5_textarea_focus_after_width:1px;--_ui5_textarea_warning_border_style:solid;--_ui5_textarea_state_border_width:0.125rem;--_ui5_textarea_background_image:none;--_ui5_textarea_error_background_image:none;--_ui5_textarea_warning_background_image:none;--_ui5_textarea_information_background_image:none;--_ui_textarea_success_background_image:none;--_ui5_textarea_focus_box_shadow:none;--_ui5_textarea_value_state_warning_focus_box_shadow:none;--_ui5_textarea_value_state_error_focus_box_shadow:none;--_ui5_textarea_value_state_success_focus_box_shadow:none;--_ui5_textarea_hover_box_shadow:none;--_ui5_textarea_inner_border_width:1px;--_ui5_textarea_success_border_width:1px;--_ui5_textarea_focus_outline:var(--_ui5_textarea_focus_after_width) dotted var(--sapContent_FocusColor);--_ui5_textarea_value_state_focus_outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);--_ui5_textarea_after_element_display:none;--_ui5_textarea_placeholder_font_style:italic;--_ui5-time_picker_border_radius:0;--_ui5_time_picker_border:0.0625rem solid transparent;--_ui5_toast_vertical_offset:3rem;--_ui5_toast_horizontal_offset:2rem;--_ui5_toast_background:var(--sapList_Background);--_ui5_toast_shadow:var(--sapContent_Shadow2);--_ui5_wheelslider_item_text_size:var(--sapFontSize);--_ui5_wheelslider_selected_item_hover_background_color:var(--sapList_BorderColor);--_ui5_wheelslider_label_text_size:var(--sapFontSmallSize);--_ui5_wheelslider_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*2);--_ui5_wheelslider_mobile_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*4);--_ui5_wheelslider_label_text_color:var(--sapContent_LabelColor);--_ui5_wheelslider_height:240px;--_ui5_wheelslider_mobile_height:432px;--_ui5_wheelslider_item_width:48px;--_ui5_wheelslider_item_height:46px;--_ui5_wheelslider_arrows_visibility:hidden;--_ui_wheelslider_item_expanded_hover_color:var(--sapList_Hover_Background);--_ui5_wheelslider_item_background_color:var(--sapLegend_WorkingBackground);--_ui5_wheelslider_item_text_color:var(--sapTextColor);--_ui_wheelslider_item_hover_color:var(--sapButton_Emphasized_Hover_BorderColor);--_ui5_wheelslider_item_border_color:var(--sapList_Background);--_ui5_wheelslider_item_hovered_border_color:var(--sapList_Background);--_ui5_wheelslider_collapsed_item_text_color:var(--_ui5_wheelslider_item_border_color);--_ui5_wheelslider_selected_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_selected_item_hover_background_color:var(--sapButton_Emphasized_Hover_BorderColor);--_ui5_wheelslider_active_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_active_item_text_color:var(--sapContent_Selected_TextColor);--_ui5_wheelslider_selection_frame_color:var(--sapList_SelectionBorderColor);--_ui_wheelslider_item_border_radius:var(--_ui5_button_border_radius);--_ui5_toggle_button_pressed_focussed:var(--sapButton_Selected_BorderColor);--_ui5_toggle_button_pressed_focussed_hovered:var(--sapButton_Selected_BorderColor);--_ui5_toggle_button_selected_positive_text_color:var(--sapButton_Selected_TextColor);--_ui5_toggle_button_selected_negative_text_color:var(--sapButton_Selected_TextColor);--_ui5_toggle_button_selected_attention_text_color:var(--sapButton_Selected_TextColor);--_ui5_toggle_button_emphasized_pressed_focussed_hovered:var(--sapContent_FocusColor);--_ui5_yearpicker_item_selected_focus:var(--sapContent_Selected_Background);--_ui5_yearpicker_item_selected_hover_color:var(--sapContent_Selected_Background);--_ui5_yearpicker_item_border:none;--_ui5_yearpicker_item_border_radius:0;--_ui5_yearpicker_item_margin:1px;--_ui5_yearpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_yearpicker_item_focus_after_offset:2px;--_ui5_yearpicker_item_focus_after_border_radius:0;--_ui5_yearpicker_item_selected_background_color:var(--sapSelectedColor);--_ui5_yearpicker_item_selected_text_color:var(--sapContent_ContrastTextColor);--_ui5_yearpicker_item_selected_box_shadow:none;--_ui5_yearpicker_item_focus_after_outline:none;--_ui5_yearpicker_item_border_radius:0.25rem;--_ui5_calendar_header_arrow_button_border:none;--_ui5_calendar_header_arrow_button_border_radius:0.25rem;--_ui5_calendar_header_middle_button_width:6.25rem;--_ui5_calendar_header_middle_button_flex:1 1 auto;--_ui5_calendar_header_middle_button_focus_border_radius:0.25rem;--_ui5_calendar_header_middle_button_focus_border:none;--_ui5_calendar_header_middle_button_focus_after_display:block;--_ui5_calendar_header_middle_button_focus_after_width:calc(100% - 0.25rem);--_ui5_calendar_header_middle_button_focus_after_height:calc(100% - 0.25rem);--_ui5_calendar_header_middle_button_focus_after_top_offset:1px;--_ui5_calendar_header_middle_button_focus_after_left_offset:1px;--_ui5_calendar_header_button_background_color:none;--_ui5_calendar_header_arrow_button_box_shadow:none;--_ui5_calendar_header_middle_button_focus_background:transparent;--_ui5_calendar_header_middle_button_focus_outline:none;--_ui5_calendar_header_middle_button_focus_active_outline:none;--_ui5_calendar_header_middle_button_focus_active_background:var(--sapButton_Active_Background);--_ui5_calendar_header_middle_button_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_calendar_header_middle_button_focus_after_width:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_height:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_top_offset:0.125rem;--_ui5_calendar_header_middle_button_focus_after_left_offset:0.125rem;--ui5_table_bottom_border:1px solid var(--sapList_BorderColor);--ui5_table_header_row_outline_width:1px;--ui5_table_multiselect_column_width:2.75rem;--ui5_table_header_row_font_weight:normal;--ui5_table_row_outline_width:1px;--_ui5_load_more_padding:0;--_ui5_load_more_border:1px top solid transparent;--_ui5_load_more_border_radius:none;--_ui5_load_more_outline_width:1px;--ui5_title_level_1Size:1.625rem;--ui5_title_level_2Size:1.375rem;--ui5_title_level_3Size:1.250rem;--ui5_title_level_4Size:1.125rem;--ui5_title_level_5Size:1rem;--ui5_title_level_6Size:0.875rem;--_ui5_token_background:var(--sapButton_Background);--_ui5_token_border_radius:0.125rem;--_ui5_token_text_color:var(--sapButton_TextColor);--_ui5_token_hover_background:var(--sapButton_Hover_Background);--_ui5_token_hover_border_color:var(--sapButton_Hover_BorderColor);--_ui5_token_top_margin:0;--_ui5_token_bottom_margin:0;--_ui5_token_selected_focus_outline:var(--_ui5_token_focus_outline_width) dotted var(--sapContent_ContrastFocusColor);--_ui5_token_focus_outline:var(--_ui5_token_focus_outline_width) dotted var(--sapContent_FocusColor);--_ui5_token_selected_hover_background:var(--sapButton_Selected_Hover_Background);--_ui5_token_selected_hover_border_color:var(--sapButton_Selected_Hover_BorderColor);--_ui5_token_selected_box_shadow:none;--_ui5_token_focused_border:1px solid var(--sapButton_TokenBorderColor);--_ui5_token_focused_selected_border:1px solid var(--sapButton_Selected_BorderColor);--_ui5_token_background:var(--sapButton_TokenBackground);--_ui5_token_border_radius:0.25rem;--_ui5_token_focus_outline_width:0.0625rem;--_ui5_token_text_color:var(--sapTextColor);--_ui5_token_icon_color:var(--sapContent_IconColor);--_ui5_tokenizer_n_more_indicator_font_weight:normal;--_ui5_tokenizer_n_more_indicator_color:var(--sapField_TextColor);--_ui5_value_state_message_border:none;--_ui5_value_state_message_focus_border_radius:0;--_ui5_input_value_state_icon_display:none;--_ui5_value_state_message_padding:0.5rem;--_ui5_value_state_header_padding:.5625rem 1rem;--_ui5-multi_combobox_token_margin_top:3px;--_ui5-multi_combobox_token_margin_top:1px;--_ui5_slider_progress_container_background:var(--sapField_BorderColor);--_ui5_slider_progress_container_dot_display:none;--_ui5_slider_progress_container_dot_background:var(--sapField_BorderColor);--_ui5_slider_progress_border:none;--_ui5_slider_inner_height:0.25rem;--_ui5_slider_outer_height:1.6875rem;--_ui5_slider_progress_border_radius:0.25rem;--_ui5_slider_progress_background:var(--sapActiveColor);--_ui5_slider_handle_icon_display:none;--_ui5_slider_handle_height:1.625rem;--_ui5_slider_handle_width:1.625rem;--_ui5_slider_handle_border:solid 0.125rem var(--sapField_BorderColor);--_ui5_slider_handle_border_radius:1rem;--_ui5_slider_handle_box_shadow:none;--_ui5_slider_handle_box_shadow_focus:none;--_ui5_slider_handle_background:var(--sapButton_Background);--_ui5_range_slider_handle_background:#fff;--_ui5_slider_handle_top:-0.825rem;--_ui5_slider_handle_margin_left:-0.9725rem;--_ui5_slider_handle_hover_background:var(--sapButton_Hover_Background);--_ui5_slider_handle_hover_border:0.125rem solid var(--sapButton_Hover_BorderColor);--_ui5_slider_handle_outline:0.0625rem dotted var(--sapContent_FocusColor);--_ui5_slider_handle_focus_border:var(--_ui5_slider_handle_hover_border);--_ui5_slider_handle_active_border:var(--_ui5_slider_handle_hover_border);--_ui5_slider_handle_focused_top:var(--_ui5_slider_handle_top);--_ui5_slider_handle_focused_margin_left:var(--_ui5_slider_handle_margin_left);--_ui5_slider_handle_outline_offset:0.075rem;--_ui5_slider_icon_left:0.5rem;--_ui5_slider_icon_top:0.125rem;--_ui5_range_slider_handle_hover_background:rgba(var(--sapButton_Background),0.25);--_ui5_range_slider_handle_hover_icon_display:none;--_ui5_slider_progress_outline:0.0625rem dotted var(--sapContent_FocusColor);--_ui5_slider_progress_outline_offset:-0.8125rem;--_ui5_slider_tickmark_top:-0.375rem;--_ui5_slider_disabled_opacity:0.4;--_ui5_slider_tooltip_fontsize:var(--sapFontSmallSize);--_ui5_slider_tooltip_color:var(--sapContent_LabelColor);--_ui5_slider_tooltip_background:var(--sapField_Background);--_ui5_slider_tooltip_border_radius:var(--sapElement_BorderCornerRadius);--_ui5_slider_tooltip_border_color:var(--sapField_BorderColor);--_ui5_slider_tooltip_border:0.0625rem solid var(--_ui5_slider_tooltip_border_color);--_ui5_slider_tooltip_box_shadow:none;--_ui5_slider_tooltip_padding:0.4125rem;--_ui5_slider_tooltip_height:1rem;--_ui5_slider_tooltip_min_width:2rem;--_ui5_slider_tooltip_bottom:2rem;--_ui5_slider_label_fontsize:var(--sapFontSmallSize);--_ui5_slider_label_color:var(--sapContent_LabelColor);--_ui5_range_slider_progress_focus_display:none;--_ui5_range_slider_progress_focus_top:-1.063rem;--_ui5_range_slider_progress_focus_left:-1.438rem;--_ui5_range_slider_progress_focus_padding:0 1.375rem 0 1.438rem;--_ui5_range_slider_progress_focus_height:2rem;--_ui5_range_slider_legacy_progress_focus_display:block;--_ui5_slider_inner_min_width:4rem;--_ui5_suggestions_item_focus_border_radius:0;--_ui5_step_input_input_error_background_color:var(--sapField_InvalidBackground);--_ui5-step_input_button_state_hover_background_color:var(--sapField_Background);--_ui5_step_input_border_style:1px solid var(--sapField_BorderColor);--_ui5_step_input_border_style_hover:1px solid var(--sapField_Hover_BorderColor);--_ui5_step_input_button_background_color:var(--sapField_Background);--_ui5_step_input_input_border:1px solid transparent;--_ui5_step_input_input_margin_top:-0.0625rem;--_ui5_step_input_button_display:inline-block;--_ui5_step_input_button_left:0;--_ui5_step_input_button_right:0;--_ui5_step_input_input_border_focused_after:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);--_ui5_step_input_input_border_top_bottom_focused_after:0.0625rem;--_ui5_step_input_input_border_radius_focused_after:0;--_ui5_step_input_input_information_border_color_focused_after:var(--sapField_BorderColor);--_ui5_step_input_input_warning_border_color_focused_after:var(--sapField_BorderColor);--_ui5_step_input_input_success_border_color_focused_after:var(--sapField_BorderColor);--_ui5_step_input_input_error_border_color_focused_after:var(--sapField_BorderColor);--_ui5_step_input_disabled_button_background:var(--sapField_ReadOnly_Background);--_ui5_step_input_border_color_hover:var(--sapField_Hover_Background);--_ui5_step_input_border_hover:1px solid var(--sapField_Hover_BorderColor);--_ui5_input_input_background_color:var(--sapField_InvalidBackground)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Icon.css\",content:\":host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([hidden]){display:none}:host([invalid]){display:none}:host(:not([hidden]).ui5_hovered){opacity:.7}:host{display:inline-block;width:1rem;height:1rem;color:var(--sapContent_NonInteractiveIconColor);fill:currentColor;outline:none}:host([interactive][focused]) .ui5-icon-root{outline:1px dotted var(--sapContent_FocusColor)}.ui5-icon-root{display:flex;outline:none;vertical-align:top}:host(:not([dir=ltr])) .ui5-icon-root[dir=rtl]{transform:scaleX(-1);transform-origin:center}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getIconData, getIconDataSync } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport createStyleInHead from \"@ui5/webcomponents-base/dist/util/createStyleInHead.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport isLegacyBrowser from \"@ui5/webcomponents-base/dist/isLegacyBrowser.js\";\nimport IconTemplate from \"./generated/templates/IconTemplate.lit.js\";\n\n// Styles\nimport iconCss from \"./generated/themes/Icon.css.js\";\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\nconst PRESENTATION_ROLE = \"presentation\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-icon\",\n\tlanguageAware: true,\n\tthemeAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.Icon.prototype */ {\n\t\t/**\n\t\t * Defines if the icon is interactive (focusable and pressable)\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the unique identifier (icon name) of the component.\n\t\t * <br>\n\t\t *\n\t\t * To browse all available icons, see the\n\t\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t * <br>\n\t\t *\n\t\t * Example:\n\t\t * <br>\n\t\t * <code>name='add'</code>, <code>name='delete'</code>, <code>name='employee'</code>.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> To use the SAP Fiori Tools icons,\n\t\t * you need to set the <code>tnt</code> prefix in front of the icon's name.\n\t\t * <br>\n\t\t *\n\t\t * Example:\n\t\t * <br>\n\t\t * <code>name='tnt/antenna'</code>, <code>name='tnt/actor'</code>, <code>name='tnt/api'</code>.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t*/\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the component.\n\t\t * If not provided a default text alternative will be set, if present.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Every icon should have a text alternative in order to\n\t\t * calculate its accessible name.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component should have a tooltip.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tshowTooltip: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the accessibility role of the component.\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\trole: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the aria hidden state of the component.\n\t\t * Note: If the role is presentation the default value of aria-hidden will be true.\n\t\t * @private\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tpathData: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\taccData: {\n\t\t\ttype: Object,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t* @private\n\t\t*/\n\t\tinvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\teffectiveAccessibleName: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Icon.prototype */ {\n\t\t/**\n\t\t * Fired on mouseup, space and enter if icon is interactive\n\t\t * @private\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\tclick: {},\n\t},\n};\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-icon</code> component represents an SVG icon.\n * There are two main scenarios how the <code>ui5-icon</code> component is used:\n * as a purely decorative element; or as a visually appealing clickable area in the form of an icon button.\n * <br><br>\n * A large set of built-in icons is available\n * and they can be used by setting the <code>name</code> property on the <code>ui5-icon</code>.\n * But before using an icon, you need to import the desired icon.\n * <br>\n *\n * For the standard icon collection, you have to import an icon from the <code>@ui5/webcomponents-icons</code> package:\n * <br>\n * <code>import \"@ui5/webcomponents-icons/dist/employee.js\";</code>\n * <br>\n *\n * For the SAP Fiori Tools icon collection (supported since 1.0.0-rc.10), you have to import an icon from the <code>@ui5/webcomponents-icons-tnt</code> package:\n * <br>\n * <code>import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";</code>\n *\n * <br><br>\n * <h3>Keyboard Handling</h3>\n *\n * <ul>\n * <li>[SPACE, ENTER, RETURN] - Fires the <code>click</code> event if the <code>interactive</code> property is set to true.</li>\n * <li>[SHIFT] - If [SPACE] or [ENTER],[RETURN] is pressed, pressing [SHIFT] releases the ui5-icon without triggering the click event.</li>\n * </ul>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Icon.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Icon\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-icon\n * @implements sap.ui.webcomponents.main.IIcon\n * @public\n */\nclass Icon extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn IconTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn iconCss;\n\t}\n\n\tstatic async onDefine() {\n\t\tthis.createGlobalStyle(); // hide all icons until the first icon has rendered (and added the Icon.css)\n\t}\n\n\t_onfocusin(event) {\n\t\tif (this.interactive) {\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_onfocusout(event) {\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (!this.interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (this.interactive && isSpace(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t}\n\n\t_onClickHandler(event) {\n\t\t// prevent the native event and fire custom event to ensure the noConfict \"ui5-click\" is fired\n\t\tevent.stopPropagation();\n\t\tthis.fireEvent(\"click\");\n\t}\n\n\tget _dir() {\n\t\tif (!this.effectiveDir) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.ltr) {\n\t\t\treturn \"ltr\";\n\t\t}\n\n\t\treturn this.effectiveDir;\n\t}\n\n\tget effectiveAriaHidden() {\n\t\tif (this.ariaHidden === \"\") {\n\t\t\tif (this.isDecorative) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.ariaHidden;\n\t}\n\n\tget tabIndex() {\n\t\treturn this.interactive ? \"0\" : \"-1\";\n\t}\n\n\tget isDecorative() {\n\t\treturn this.effectiveAccessibleRole === PRESENTATION_ROLE;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\tif (this.role) {\n\t\t\treturn this.role;\n\t\t}\n\n\t\tif (this.interactive) {\n\t\t\treturn \"button\";\n\t\t}\n\n\t\treturn this.effectiveAccessibleName ? \"img\" : PRESENTATION_ROLE;\n\t}\n\n\tstatic createGlobalStyle() {\n\t\tif (isLegacyBrowser()) {\n\t\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\t\tif (!styleElement) {\n\t\t\t\tcreateStyleInHead(`ui5-icon { display: none !important; }`, { \"data-ui5-icon-global\": \"\" });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic removeGlobalStyle() {\n\t\tif (isLegacyBrowser()) {\n\t\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\t\tif (styleElement) {\n\t\t\t\tdocument.head.removeChild(styleElement);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tconst name = this.name;\n\t\tif (!name) {\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(\"Icon name property is required\", this);\n\t\t}\n\t\tlet iconData = getIconDataSync(name);\n\t\tif (!iconData) {\n\t\t\ticonData = await getIconData(name);\n\t\t}\n\n\t\tif (iconData === ICON_NOT_FOUND) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. You can either import the icon as a module in order to use it e.g. \"@ui5/webcomponents-icons/dist/${name.replace(\"sap-icon://\", \"\")}.js\", or setup a JSON build step and import \"@ui5/webcomponents-icons/dist/AllIcons.js\".`);\n\t\t}\n\n\t\tif (!iconData) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. Invalid icon name: ${this.name}`);\n\t\t}\n\n\t\t// in case a new valid name is set, show the icon\n\t\tthis.invalid = false;\n\t\tthis.pathData = iconData.pathData;\n\t\tthis.accData = iconData.accData;\n\t\tthis.ltr = iconData.ltr;\n\t\tthis.packageName = iconData.packageName;\n\n\t\tthis._onclick = this.interactive ? this._onClickHandler.bind(this) : undefined;\n\n\t\tif (this.accessibleName) {\n\t\t\tthis.effectiveAccessibleName = this.accessibleName;\n\t\t} else if (this.accData) {\n\t\t\tconst i18nBundle = await getI18nBundle(this.packageName);\n\t\t\tthis.effectiveAccessibleName = i18nBundle.getText(this.accData) || undefined;\n\t\t}\n\t}\n\n\tget hasIconTooltip() {\n\t\treturn this.showTooltip && this.effectiveAccessibleName;\n\t}\n\n\tasync onEnterDOM() {\n\t\tsetTimeout(() => {\n\t\t\tthis.constructor.removeGlobalStyle(); // remove the global style as Icon.css is already in place\n\t\t}, 0);\n\t}\n}\n\nIcon.define();\n\nexport default Icon;\n","const ARIA_LABEL_CARD_CONTENT = {key: \"ARIA_LABEL_CARD_CONTENT\", defaultText: \"Card Content\"};const ARIA_ROLEDESCRIPTION_CARD = {key: \"ARIA_ROLEDESCRIPTION_CARD\", defaultText: \"Card\"};const ARIA_ROLEDESCRIPTION_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_CARD_HEADER\", defaultText: \"Card Header\"};const ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER\", defaultText: \"Interactive Card Header\"};const AVATAR_TOOLTIP = {key: \"AVATAR_TOOLTIP\", defaultText: \"Avatar\"};const AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL = {key: \"AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL\", defaultText: \"{0} displayed, {1} hidden.\"};const AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL = {key: \"AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL\", defaultText: \"Activate for complete list.\"};const AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL = {key: \"AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL\", defaultText: \"Individual avatars.\"};const AVATAR_GROUP_ARIA_LABEL_GROUP = {key: \"AVATAR_GROUP_ARIA_LABEL_GROUP\", defaultText: \"Conjoined avatars.\"};const AVATAR_GROUP_MOVE = {key: \"AVATAR_GROUP_MOVE\", defaultText: \"Press ARROW keys to move.\"};const BADGE_DESCRIPTION = {key: \"BADGE_DESCRIPTION\", defaultText: \"Badge\"};const BREADCRUMBS_ARIA_LABEL = {key: \"BREADCRUMBS_ARIA_LABEL\", defaultText: \"Breadcrumb Trail\"};const BREADCRUMBS_OVERFLOW_ARIA_LABEL = {key: \"BREADCRUMBS_OVERFLOW_ARIA_LABEL\", defaultText: \"More\"};const BREADCRUMBS_CANCEL_BUTTON = {key: \"BREADCRUMBS_CANCEL_BUTTON\", defaultText: \"Cancel\"};const BUSY_INDICATOR_TITLE = {key: \"BUSY_INDICATOR_TITLE\", defaultText: \"Please wait\"};const BUTTON_ARIA_TYPE_ACCEPT = {key: \"BUTTON_ARIA_TYPE_ACCEPT\", defaultText: \"Positive Action\"};const BUTTON_ARIA_TYPE_REJECT = {key: \"BUTTON_ARIA_TYPE_REJECT\", defaultText: \"Negative Action\"};const BUTTON_ARIA_TYPE_EMPHASIZED = {key: \"BUTTON_ARIA_TYPE_EMPHASIZED\", defaultText: \"Emphasized\"};const CAROUSEL_OF_TEXT = {key: \"CAROUSEL_OF_TEXT\", defaultText: \"of\"};const CAROUSEL_DOT_TEXT = {key: \"CAROUSEL_DOT_TEXT\", defaultText: \"Item {0} of {1} displayed\"};const CAROUSEL_PREVIOUS_ARROW_TEXT = {key: \"CAROUSEL_PREVIOUS_ARROW_TEXT\", defaultText: \"Previous Page\"};const CAROUSEL_NEXT_ARROW_TEXT = {key: \"CAROUSEL_NEXT_ARROW_TEXT\", defaultText: \"Next Page\"};const COLORPALETTE_CONTAINER_LABEL = {key: \"COLORPALETTE_CONTAINER_LABEL\", defaultText: \"Color Palette - Predefined Colors\"};const COLORPALETTE_POPOVER_TITLE = {key: \"COLORPALETTE_POPOVER_TITLE\", defaultText: \"Color Palette\"};const COLORPALETTE_COLOR_LABEL = {key: \"COLORPALETTE_COLOR_LABEL\", defaultText: \"Color\"};const COLOR_PALETTE_DIALOG_CANCEL_BUTTON = {key: \"COLOR_PALETTE_DIALOG_CANCEL_BUTTON\", defaultText: \"Cancel\"};const COLOR_PALETTE_DIALOG_OK_BUTTON = {key: \"COLOR_PALETTE_DIALOG_OK_BUTTON\", defaultText: \"OK\"};const COLOR_PALETTE_DIALOG_TITLE = {key: \"COLOR_PALETTE_DIALOG_TITLE\", defaultText: \"Change Color\"};const COLOR_PALETTE_MORE_COLORS_TEXT = {key: \"COLOR_PALETTE_MORE_COLORS_TEXT\", defaultText: \"More Colors...\"};const DATEPICKER_OPEN_ICON_TITLE = {key: \"DATEPICKER_OPEN_ICON_TITLE\", defaultText: \"Open Picker\"};const DATEPICKER_DATE_DESCRIPTION = {key: \"DATEPICKER_DATE_DESCRIPTION\", defaultText: \"Date Input\"};const DATETIME_DESCRIPTION = {key: \"DATETIME_DESCRIPTION\", defaultText: \"Date Time Input\"};const DATERANGE_DESCRIPTION = {key: \"DATERANGE_DESCRIPTION\", defaultText: \"Date Range Input\"};const DELETE = {key: \"DELETE\", defaultText: \"Delete\"};const FILEUPLOAD_BROWSE = {key: \"FILEUPLOAD_BROWSE\", defaultText: \"Browse...\"};const FILEUPLOADER_TITLE = {key: \"FILEUPLOADER_TITLE\", defaultText: \"Upload File\"};const GROUP_HEADER_TEXT = {key: \"GROUP_HEADER_TEXT\", defaultText: \"Group Header\"};const SELECT_OPTIONS = {key: \"SELECT_OPTIONS\", defaultText: \"Select Options\"};const INPUT_SUGGESTIONS = {key: \"INPUT_SUGGESTIONS\", defaultText: \"Suggestions Available\"};const INPUT_SUGGESTIONS_TITLE = {key: \"INPUT_SUGGESTIONS_TITLE\", defaultText: \"Select\"};const INPUT_SUGGESTIONS_ONE_HIT = {key: \"INPUT_SUGGESTIONS_ONE_HIT\", defaultText: \"1 result available\"};const INPUT_SUGGESTIONS_MORE_HITS = {key: \"INPUT_SUGGESTIONS_MORE_HITS\", defaultText: \"{0} results are available\"};const INPUT_SUGGESTIONS_NO_HIT = {key: \"INPUT_SUGGESTIONS_NO_HIT\", defaultText: \"No results\"};const LINK_SUBTLE = {key: \"LINK_SUBTLE\", defaultText: \"Subtle\"};const LINK_EMPHASIZED = {key: \"LINK_EMPHASIZED\", defaultText: \"Emphasized\"};const LIST_ITEM_POSITION = {key: \"LIST_ITEM_POSITION\", defaultText: \"List item {0} of {1}\"};const LIST_ITEM_SELECTED = {key: \"LIST_ITEM_SELECTED\", defaultText: \"Selected\"};const LIST_ITEM_NOT_SELECTED = {key: \"LIST_ITEM_NOT_SELECTED\", defaultText: \"Not Selected\"};const ARIA_LABEL_LIST_ITEM_CHECKBOX = {key: \"ARIA_LABEL_LIST_ITEM_CHECKBOX\", defaultText: \"Multiple Selection Mode\"};const ARIA_LABEL_LIST_ITEM_RADIO_BUTTON = {key: \"ARIA_LABEL_LIST_ITEM_RADIO_BUTTON\", defaultText: \"Item Selection.\"};const ARIA_LABEL_LIST_SELECTABLE = {key: \"ARIA_LABEL_LIST_SELECTABLE\", defaultText: \"Contains Selectable Items\"};const ARIA_LABEL_LIST_MULTISELECTABLE = {key: \"ARIA_LABEL_LIST_MULTISELECTABLE\", defaultText: \"Contains Multi-Selectable Items\"};const ARIA_LABEL_LIST_DELETABLE = {key: \"ARIA_LABEL_LIST_DELETABLE\", defaultText: \"Contains Deletable Items\"};const MESSAGE_STRIP_CLOSE_BUTTON = {key: \"MESSAGE_STRIP_CLOSE_BUTTON\", defaultText: \"Message Strip Close\"};const MULTICOMBOBOX_DIALOG_OK_BUTTON = {key: \"MULTICOMBOBOX_DIALOG_OK_BUTTON\", defaultText: \"OK\"};const VALUE_STATE_ERROR_ALREADY_SELECTED = {key: \"VALUE_STATE_ERROR_ALREADY_SELECTED\", defaultText: \"This value is already selected.\"};const MULTIINPUT_ROLEDESCRIPTION_TEXT = {key: \"MULTIINPUT_ROLEDESCRIPTION_TEXT\", defaultText: \"Multi Value Input\"};const MULTIINPUT_SHOW_MORE_TOKENS = {key: \"MULTIINPUT_SHOW_MORE_TOKENS\", defaultText: \"{0} More\"};const PANEL_ICON = {key: \"PANEL_ICON\", defaultText: \"Expand/Collapse\"};const RANGE_SLIDER_ARIA_DESCRIPTION = {key: \"RANGE_SLIDER_ARIA_DESCRIPTION\", defaultText: \"Range\"};const RANGE_SLIDER_START_HANDLE_DESCRIPTION = {key: \"RANGE_SLIDER_START_HANDLE_DESCRIPTION\", defaultText: \"Left handle\"};const RANGE_SLIDER_END_HANDLE_DESCRIPTION = {key: \"RANGE_SLIDER_END_HANDLE_DESCRIPTION\", defaultText: \"Right handle\"};const RATING_INDICATOR_TOOLTIP_TEXT = {key: \"RATING_INDICATOR_TOOLTIP_TEXT\", defaultText: \"Rating\"};const RATING_INDICATOR_TEXT = {key: \"RATING_INDICATOR_TEXT\", defaultText: \"Rating Indicator\"};const RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON = {key: \"RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON\", defaultText: \"Decline\"};const SEGMENTEDBUTTON_ARIA_DESCRIPTION = {key: \"SEGMENTEDBUTTON_ARIA_DESCRIPTION\", defaultText: \"Segmented button group\"};const SEGMENTEDBUTTON_ARIA_DESCRIBEDBY = {key: \"SEGMENTEDBUTTON_ARIA_DESCRIBEDBY\", defaultText: \"Press SPACE or ENTER to select an item\"};const SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION = {key: \"SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION\", defaultText: \"Segmented button\"};const SLIDER_ARIA_DESCRIPTION = {key: \"SLIDER_ARIA_DESCRIPTION\", defaultText: \"Slider handle\"};const SWITCH_ON = {key: \"SWITCH_ON\", defaultText: \"On\"};const SWITCH_OFF = {key: \"SWITCH_OFF\", defaultText: \"Off\"};const LOAD_MORE_TEXT = {key: \"LOAD_MORE_TEXT\", defaultText: \"More\"};const TABLE_HEADER_ROW_TEXT = {key: \"TABLE_HEADER_ROW_TEXT\", defaultText: \"Header Row\"};const TABLE_ROW_POSITION = {key: \"TABLE_ROW_POSITION\", defaultText: \"{0} of {1}\"};const TABLE_GROUP_ROW_ARIA_LABEL = {key: \"TABLE_GROUP_ROW_ARIA_LABEL\", defaultText: \"Group Header Row\"};const ARIA_LABEL_ROW_SELECTION = {key: \"ARIA_LABEL_ROW_SELECTION\", defaultText: \"Item Selection\"};const ARIA_LABEL_SELECT_ALL_CHECKBOX = {key: \"ARIA_LABEL_SELECT_ALL_CHECKBOX\", defaultText: \"Select All Rows\"};const TABCONTAINER_NEXT_ICON_ACC_NAME = {key: \"TABCONTAINER_NEXT_ICON_ACC_NAME\", defaultText: \"Next\"};const TABCONTAINER_PREVIOUS_ICON_ACC_NAME = {key: \"TABCONTAINER_PREVIOUS_ICON_ACC_NAME\", defaultText: \"Previous\"};const TABCONTAINER_OVERFLOW_MENU_TITLE = {key: \"TABCONTAINER_OVERFLOW_MENU_TITLE\", defaultText: \"Overflow Menu\"};const TEXTAREA_CHARACTERS_LEFT = {key: \"TEXTAREA_CHARACTERS_LEFT\", defaultText: \"{0} characters remaining\"};const TEXTAREA_CHARACTERS_EXCEEDED = {key: \"TEXTAREA_CHARACTERS_EXCEEDED\", defaultText: \"{0} characters over limit\"};const TIMEPICKER_HOURS_LABEL = {key: \"TIMEPICKER_HOURS_LABEL\", defaultText: \"Hours\"};const TIMEPICKER_MINUTES_LABEL = {key: \"TIMEPICKER_MINUTES_LABEL\", defaultText: \"Minutes\"};const TIMEPICKER_SECONDS_LABEL = {key: \"TIMEPICKER_SECONDS_LABEL\", defaultText: \"Seconds\"};const TIMEPICKER_PERIODS_LABEL = {key: \"TIMEPICKER_PERIODS_LABEL\", defaultText: \"AM/PM\"};const TIMEPICKER_SUBMIT_BUTTON = {key: \"TIMEPICKER_SUBMIT_BUTTON\", defaultText: \"OK\"};const TIMEPICKER_CANCEL_BUTTON = {key: \"TIMEPICKER_CANCEL_BUTTON\", defaultText: \"Cancel\"};const TIMEPICKER_INPUT_DESCRIPTION = {key: \"TIMEPICKER_INPUT_DESCRIPTION\", defaultText: \"Time Input\"};const DURATION_INPUT_DESCRIPTION = {key: \"DURATION_INPUT_DESCRIPTION\", defaultText: \"Duration Input\"};const DATETIME_PICKER_DATE_BUTTON = {key: \"DATETIME_PICKER_DATE_BUTTON\", defaultText: \"Date\"};const DATETIME_PICKER_TIME_BUTTON = {key: \"DATETIME_PICKER_TIME_BUTTON\", defaultText: \"Time\"};const TOKEN_ARIA_DELETABLE = {key: \"TOKEN_ARIA_DELETABLE\", defaultText: \"Deletable\"};const TOKENIZER_ARIA_CONTAIN_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_TOKEN\", defaultText: \"No Tokens\"};const TOKENIZER_ARIA_CONTAIN_ONE_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_ONE_TOKEN\", defaultText: \"Contains 1 token\"};const TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS = {key: \"TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS\", defaultText: \"Contains {0} tokens\"};const TOKENIZER_ARIA_LABEL = {key: \"TOKENIZER_ARIA_LABEL\", defaultText: \"Tokenizer\"};const TOKENIZER_POPOVER_REMOVE = {key: \"TOKENIZER_POPOVER_REMOVE\", defaultText: \"Remove\"};const TREE_ITEM_ARIA_LABEL = {key: \"TREE_ITEM_ARIA_LABEL\", defaultText: \"Tree Item\"};const TREE_ITEM_EXPAND_NODE = {key: \"TREE_ITEM_EXPAND_NODE\", defaultText: \"Expand Node\"};const TREE_ITEM_COLLAPSE_NODE = {key: \"TREE_ITEM_COLLAPSE_NODE\", defaultText: \"Collapse Node\"};const VALUE_STATE_ERROR = {key: \"VALUE_STATE_ERROR\", defaultText: \"Invalid entry\"};const VALUE_STATE_WARNING = {key: \"VALUE_STATE_WARNING\", defaultText: \"Warning issued\"};const VALUE_STATE_INFORMATION = {key: \"VALUE_STATE_INFORMATION\", defaultText: \"Informative entry\"};const VALUE_STATE_SUCCESS = {key: \"VALUE_STATE_SUCCESS\", defaultText: \"Entry successfully validated\"};const CALENDAR_HEADER_NEXT_BUTTON = {key: \"CALENDAR_HEADER_NEXT_BUTTON\", defaultText: \"Next\"};const CALENDAR_HEADER_PREVIOUS_BUTTON = {key: \"CALENDAR_HEADER_PREVIOUS_BUTTON\", defaultText: \"Previous\"};const DAY_PICKER_WEEK_NUMBER_TEXT = {key: \"DAY_PICKER_WEEK_NUMBER_TEXT\", defaultText: \"Week Number\"};const DAY_PICKER_NON_WORKING_DAY = {key: \"DAY_PICKER_NON_WORKING_DAY\", defaultText: \"Non-Working Day\"};const DAY_PICKER_TODAY = {key: \"DAY_PICKER_TODAY\", defaultText: \"Today\"};const STEPINPUT_DEC_ICON_TITLE = {key: \"STEPINPUT_DEC_ICON_TITLE\", defaultText: \"Decrease\"};const STEPINPUT_INC_ICON_TITLE = {key: \"STEPINPUT_INC_ICON_TITLE\", defaultText: \"Increase\"};\nexport {ARIA_LABEL_CARD_CONTENT,ARIA_ROLEDESCRIPTION_CARD,ARIA_ROLEDESCRIPTION_CARD_HEADER,ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER,AVATAR_TOOLTIP,AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL,AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL,AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL,AVATAR_GROUP_ARIA_LABEL_GROUP,AVATAR_GROUP_MOVE,BADGE_DESCRIPTION,BREADCRUMBS_ARIA_LABEL,BREADCRUMBS_OVERFLOW_ARIA_LABEL,BREADCRUMBS_CANCEL_BUTTON,BUSY_INDICATOR_TITLE,BUTTON_ARIA_TYPE_ACCEPT,BUTTON_ARIA_TYPE_REJECT,BUTTON_ARIA_TYPE_EMPHASIZED,CAROUSEL_OF_TEXT,CAROUSEL_DOT_TEXT,CAROUSEL_PREVIOUS_ARROW_TEXT,CAROUSEL_NEXT_ARROW_TEXT,COLORPALETTE_CONTAINER_LABEL,COLORPALETTE_POPOVER_TITLE,COLORPALETTE_COLOR_LABEL,COLOR_PALETTE_DIALOG_CANCEL_BUTTON,COLOR_PALETTE_DIALOG_OK_BUTTON,COLOR_PALETTE_DIALOG_TITLE,COLOR_PALETTE_MORE_COLORS_TEXT,DATEPICKER_OPEN_ICON_TITLE,DATEPICKER_DATE_DESCRIPTION,DATETIME_DESCRIPTION,DATERANGE_DESCRIPTION,DELETE,FILEUPLOAD_BROWSE,FILEUPLOADER_TITLE,GROUP_HEADER_TEXT,SELECT_OPTIONS,INPUT_SUGGESTIONS,INPUT_SUGGESTIONS_TITLE,INPUT_SUGGESTIONS_ONE_HIT,INPUT_SUGGESTIONS_MORE_HITS,INPUT_SUGGESTIONS_NO_HIT,LINK_SUBTLE,LINK_EMPHASIZED,LIST_ITEM_POSITION,LIST_ITEM_SELECTED,LIST_ITEM_NOT_SELECTED,ARIA_LABEL_LIST_ITEM_CHECKBOX,ARIA_LABEL_LIST_ITEM_RADIO_BUTTON,ARIA_LABEL_LIST_SELECTABLE,ARIA_LABEL_LIST_MULTISELECTABLE,ARIA_LABEL_LIST_DELETABLE,MESSAGE_STRIP_CLOSE_BUTTON,MULTICOMBOBOX_DIALOG_OK_BUTTON,VALUE_STATE_ERROR_ALREADY_SELECTED,MULTIINPUT_ROLEDESCRIPTION_TEXT,MULTIINPUT_SHOW_MORE_TOKENS,PANEL_ICON,RANGE_SLIDER_ARIA_DESCRIPTION,RANGE_SLIDER_START_HANDLE_DESCRIPTION,RANGE_SLIDER_END_HANDLE_DESCRIPTION,RATING_INDICATOR_TOOLTIP_TEXT,RATING_INDICATOR_TEXT,RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON,SEGMENTEDBUTTON_ARIA_DESCRIPTION,SEGMENTEDBUTTON_ARIA_DESCRIBEDBY,SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION,SLIDER_ARIA_DESCRIPTION,SWITCH_ON,SWITCH_OFF,LOAD_MORE_TEXT,TABLE_HEADER_ROW_TEXT,TABLE_ROW_POSITION,TABLE_GROUP_ROW_ARIA_LABEL,ARIA_LABEL_ROW_SELECTION,ARIA_LABEL_SELECT_ALL_CHECKBOX,TABCONTAINER_NEXT_ICON_ACC_NAME,TABCONTAINER_PREVIOUS_ICON_ACC_NAME,TABCONTAINER_OVERFLOW_MENU_TITLE,TEXTAREA_CHARACTERS_LEFT,TEXTAREA_CHARACTERS_EXCEEDED,TIMEPICKER_HOURS_LABEL,TIMEPICKER_MINUTES_LABEL,TIMEPICKER_SECONDS_LABEL,TIMEPICKER_PERIODS_LABEL,TIMEPICKER_SUBMIT_BUTTON,TIMEPICKER_CANCEL_BUTTON,TIMEPICKER_INPUT_DESCRIPTION,DURATION_INPUT_DESCRIPTION,DATETIME_PICKER_DATE_BUTTON,DATETIME_PICKER_TIME_BUTTON,TOKEN_ARIA_DELETABLE,TOKENIZER_ARIA_CONTAIN_TOKEN,TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,TOKENIZER_ARIA_LABEL,TOKENIZER_POPOVER_REMOVE,TREE_ITEM_ARIA_LABEL,TREE_ITEM_EXPAND_NODE,TREE_ITEM_COLLAPSE_NODE,VALUE_STATE_ERROR,VALUE_STATE_WARNING,VALUE_STATE_INFORMATION,VALUE_STATE_SUCCESS,CALENDAR_HEADER_NEXT_BUTTON,CALENDAR_HEADER_PREVIOUS_BUTTON,DAY_PICKER_WEEK_NUMBER_TEXT,DAY_PICKER_NON_WORKING_DAY,DAY_PICKER_TODAY,STEPINPUT_DEC_ICON_TITLE,STEPINPUT_INC_ICON_TITLE};","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Button.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host(:not([hidden])){display:inline-block}:host{min-width:var(--_ui5_button_base_min_width);height:var(--_ui5_button_base_height);line-height:normal;font-family:var(--_ui5_button_fontFamily);font-size:var(--sapFontSize);text-shadow:var(--_ui5_button_text_shadow);border-radius:var(--_ui5_button_border_radius);border-width:.0625rem;cursor:pointer;background-color:var(--sapButton_Background);border:1px solid var(--sapButton_BorderColor);color:var(--sapButton_TextColor);box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([has-icon]) button[dir=rtl].ui5-button-root .ui5-button-text{margin-right:var(--_ui5_button_base_icon_margin);margin-left:0}:host([has-icon][icon-end]) button[dir=rtl].ui5-button-root .ui5-button-icon{margin-right:var(--_ui5_button_base_icon_margin);margin-left:0}.ui5-button-root{min-width:inherit;cursor:inherit;height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;outline:none;padding:0 var(--_ui5_button_base_padding);position:relative;background:transparent;border:none;color:inherit;text-shadow:inherit;font:inherit;white-space:inherit;overflow:inherit;text-overflow:inherit;letter-spacing:inherit;word-spacing:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(:not([active]):not([non-interactive]):not([_is-touch]):hover),:host(:not([hidden]).ui5_hovered){background:var(--sapButton_Hover_Background);box-shadow:var(--sapContent_Interaction_Shadow)}.ui5-button-icon{color:inherit;flex-shrink:0}:host([icon-end]) .ui5-button-root{flex-direction:row-reverse}:host([icon-end]) .ui5-button-icon{margin-left:var(--_ui5_button_base_icon_margin)}:host([icon-only]) .ui5-button-root{min-width:auto;padding:0}:host([icon-only]) .ui5-button-text{display:none}.ui5-button-text{outline:none;position:relative;white-space:inherit;overflow:inherit;text-overflow:inherit}:host([has-icon]:not([icon-end])) .ui5-button-text{margin-left:var(--_ui5_button_base_icon_margin)}:host([has-icon][icon-end]) .ui5-button-text{margin-left:0}:host([disabled]){opacity:.5;pointer-events:none}:host([focused]){outline:var(--_ui5_button_outline);outline-offset:var(--_ui5_button_outline_offset)}:host([design=Emphasized][focused]){outline:var(--_ui5_button_emphasized_outline)}.ui5-button-root::-moz-focus-inner{border:0}bdi{display:block;white-space:inherit;overflow:inherit;text-overflow:inherit}:host([ui5-button][active]:not([disabled]):not([non-interactive])){background-image:none;background-color:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([ui5-button]:not([design=Emphasized])[active]:not([_is-touch])){outline-color:var(--_ui5_button_focus_outline_focus_color)}:host([design=Positive]){background-color:var(--sapButton_Accept_Background);border-color:var(--sapButton_Accept_BorderColor);color:var(--sapButton_Accept_TextColor);text-shadow:var(--_ui5_button_text_shadow)}:host([design=Positive]:not([active]):not([non-interactive]):not([_is-touch]).ui5_hovered),:host([design=Positive]:not([active]):not([non-interactive]):not([_is-touch]):hover){background-color:var(--sapButton_Accept_Hover_Background);border-color:var(--sapButton_Accept_Hover_BorderColor);box-shadow:var(--sapContent_Positive_Shadow)}:host([ui5-button][design=Positive][active]:not([non-interactive])){background-color:var(--sapButton_Accept_Active_Background);border-color:var(--sapButton_Accept_Active_BorderColor);color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}:host([design=Positive][focused]:not([_is-touch])){outline-color:var(--_ui5_button_positive_border_focus_hover_color);border-color:var(--_ui5_button_positive_focus_border_color)}:host([design=Positive][active][focused]){outline-color:var(--_ui5_button_focus_outline_focus_color)}:host([design=Negative]){background-color:var(--sapButton_Reject_Background);border-color:var(--sapButton_Reject_BorderColor);color:var(--sapButton_Reject_TextColor);text-shadow:var(--_ui5_button_text_shadow)}:host([design=Negative]:not([active]):not([non-interactive]):not([_is-touch]).ui5_hovered),:host([design=Negative]:not([active]):not([non-interactive]):not([_is-touch]):hover){background-color:var(--sapButton_Reject_Hover_Background);border-color:var(--sapButton_Reject_Hover_BorderColor);box-shadow:var(--sapContent_Negative_Shadow)}:host([design=Negative][focused]){border-color:var(--_ui5_button_negative_focus_border_color);outline-color:var(--_ui5_button_positive_border_focus_hover_color)}:host([ui5-button][design=Negative][active]:not([non-interactive])){background-color:var(--sapButton_Reject_Active_Background);border-color:var(--sapButton_Reject_Active_BorderColor);color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}:host([design=Negative][active][focused]){outline-color:var(--_ui5_button_focus_outline_focus_color)}:host([design=Attention]){background-color:var(--sapButton_Attention_Background);border-color:var(--sapButton_Attention_BorderColor);color:var(--sapButton_Attention_TextColor);text-shadow:var(--_ui5_button_text_shadow)}:host([design=Attention]:not([active]):not([non-interactive]):not([_is-touch]).ui5_hovered),:host([design=Attention]:not([active]):not([non-interactive]):not([_is-touch]):hover){background-color:var(--sapButton_Attention_Hover_Background);border-color:var(--sapButton_Attention_Hover_BorderColor);color:var(--sapButton_Attention_Hover_TextColor);box-shadow:var(--sapContent_Critical_Shadow)}:host([ui5-button][design=Attention][active]:not([non-interactive])){background-color:var(--sapButton_Attention_Active_Background);border-color:var(--sapButton_Attention_Active_BorderColor);color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}:host([design=Attention][focused]:not([_is-touch])){outline-color:var(--_ui5_button_positive_border_focus_hover_color);border-color:var(--_ui5_button_attention_focus_border_color)}:host([design=Attention][active][focused]){outline-color:var(--_ui5_button_focus_outline_focus_color)}:host([design=Emphasized]){background-color:var(--sapButton_Emphasized_Background);border-color:var(--sapButton_Emphasized_BorderColor);color:var(--sapButton_Emphasized_TextColor);text-shadow:0 0 .125rem var(--sapButton_Emphasized_TextShadow);font-weight:var(--_ui5_button_emphasized_font_weight)}:host([design=Emphasized]:not([active]):not([non-interactive]):not([_is-touch]).ui5_hovered),:host([design=Emphasized]:not([active]):not([non-interactive]):not([_is-touch]):hover){background-color:var(--sapButton_Emphasized_Hover_Background);border-color:var(--sapButton_Emphasized_Hover_BorderColor);box-shadow:var(--sapContent_Informative_Shadow)}:host([ui5-button][design=Empasized][active]:not([non-interactive])){background-color:var(--sapButton_Emphasized_Active_Background);border-color:var(--sapButton_Emphasized_Active_BorderColor);color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}:host([design=Emphasized][focused]) .ui5-button-root:after{content:\\\"\\\";position:absolute;box-sizing:border-box;left:.0625rem;top:.0625rem;right:.0625rem;bottom:.0625rem;border:var(--_ui5_button_emphasized_focused_border);pointer-events:none;border-radius:var(--_ui5_button_emphasized_focused_border_radius)}:host([design=Transparent]){background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);text-shadow:var(--_ui5_button_text_shadow);border-color:var(--sapButton_Lite_BorderColor)}:host([design=Transparent]:not([active]):not([non-interactive]):not([_is-touch]):hover){background-color:var(--_ui5_button_transparent_hover)}:host([design=Transparent]:not([active]):not([non-interactive]):not([_is-touch]).ui5_hovered){background-color:var(--_ui5_button_transparent_hover);border-color:var(--sapButton_Lite_Hover_BorderColor);box-shadow:var(--sapContent_Critical_Shadow)}:host([ui5-button][design=Transparent][active]:not([non-interactive])){background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([design=Transparent]:not([active]):hover){border-color:var(--sapButton_Lite_Hover_BorderColor)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Button.ie11.css\",content:\"[ui5-button][focused]{outline:none}[ui5-button][focused] .ui5-button-root{position:relative}[ui5-button][focused] .ui5-button-root:after{content:\\\"\\\";position:absolute;border-width:1px;border-style:dotted;border-color:var(--_ui5_button_focus_color);top:var(--_ui5_button_focus_offset);bottom:var(--_ui5_button_focus_offset);left:var(--_ui5_button_focus_offset);right:var(--_ui5_button_focus_offset)}[ui5-button][active] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}[ui5-button][design=Positive][focused] .ui5-button-root:after{border-color:var(--_ui5_button_positive_border_focus_hover_color)}[ui5-button][design=Positive][active][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}[ui5-button][design=Negative][focused] .ui5-button-root:after{border-color:var(--_ui5_button_positive_border_focus_hover_color)}[ui5-button][design=Negative][active][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}[ui5-button][design=Emphasized][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}[ui5-button] [ui5-icon].ui5-button-icon{height:var(--_ui5_button_icon_font_size);top:0}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport isLegacyBrowser from \"@ui5/webcomponents-base/dist/isLegacyBrowser.js\";\nimport { isPhone, isTablet, isCombi } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonTemplate from \"./generated/templates/ButtonTemplate.lit.js\";\nimport Icon from \"./Icon.js\";\n\nimport { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\nimport buttonIECss from \"./generated/themes/Button.ie11.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeButton = null;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-button\",\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\n\t\t/**\n\t\t * Defines the component design.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>The available values are:</b>\n\t\t *\n\t\t * <ul>\n\t\t * <li><code>Default</code></li>\n\t\t * <li><code>Emphasized</code></li>\n\t\t * <li><code>Positive</code></li>\n\t\t * <li><code>Negative</code></li>\n\t\t * <li><code>Transparent</code></li>\n\t\t * <li><code>Attention</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ButtonDesign}\n\t\t * @defaultvalue \"Default\"\n\t\t * @public\n\t\t */\n\t\tdesign: {\n\t\t\ttype: ButtonDesign,\n\t\t\tdefaultValue: ButtonDesign.Default,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is disabled.\n\t\t * A disabled component can't be pressed or\n\t\t * focused, and it is not in the tab chain.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the icon to be displayed as graphical element within the component.\n\t\t * The SAP-icons font provides numerous options.\n\t\t * <br><br>\n\t\t * Example:\n\t\t *\n\t\t * See all the available icons in the <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the icon should be displayed after the component text.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\ticonEnd: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * When set to <code>true</code>, the component will\n\t\t * automatically submit the nearest form element upon <code>press</code>.\n\t\t * <br><br>\n\t\t * <b>Note:</b> For the <code>submits</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tsubmits: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the tooltip of the button.\n\t\t * <br>\n\t\t * <b>Note:</b> Tooltips should only be set to icon-only buttons.\n\t\t * @type {string}\n\t\t * @defaultvalue: \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.11\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Used to switch the active state (pressed or not) of the component.\n\t\t * @private\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if a content has been added to the default slot\n\t\t * @private\n\t\t */\n\t\ticonOnly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements is on focus\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements has a slotted icon\n\t\t * @private\n\t\t */\n\t\thasIcon: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue: \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\tariaExpanded: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the element if focusable\n\t\t * @private\n\t\t */\n\t\tnonInteractive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_iconSettings: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t_buttonAccInfo: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t/**\n\t\t * Defines the tabIndex of the component.\n\t\t * @private\n\t\t */\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"0\",\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @since 1.0.0-rc.13\n\t\t * @private\n\t\t */\n\t\t_isTouch: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\n\t\t/**\n\t\t * Fired when the component is activated either with a\n\t\t * mouse/tap or by using the Enter or Space key.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The event will not be fired if the <code>disabled</code>\n\t\t * property is set to <code>true</code>.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t * @native\n\t\t */\n\t\tclick: {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-button</code> component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the <code>ui5-button</code>, or by pressing\n * certain keyboard keys, such as Enter.\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>ui5-button</code> UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n * <br><br>\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n * <br><br>\n * You can set the <code>ui5-button</code> as enabled or disabled. An enabled\n * <code>ui5-button</code> can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled <code>ui5-button</code> appears inactive and cannot be pressed.\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-button</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>button - Used to style the native button element</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Button\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Button\n * @extends UI5Element\n * @tagname ui5-button\n * @implements sap.ui.webcomponents.main.IButton\n * @public\n */\nclass Button extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn [buttonCss, isLegacyBrowser() && buttonIECss];\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn ButtonTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Icon];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tthis._isTouch = (isPhone() || isTablet()) && !isCombi();\n\t}\n\n\tonBeforeRendering() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (this.submits && !FormSupport) {\n\t\t\tconsole.warn(`In order for the \"submits\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\n\t\tthis.iconOnly = this.isIconOnly;\n\t\tthis.hasIcon = !!this.icon;\n\t}\n\n\t_onclick(event) {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\t\tevent.isMarked = \"button\";\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.triggerFormSubmit(this);\n\t\t}\n\t}\n\n\t_onmousedown(event) {\n\t\tif (this.nonInteractive || this._isTouch) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.isMarked = \"button\";\n\t\tthis.active = true;\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchstart(event) {\n\t\tevent.isMarked = \"button\";\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = true;\n\t}\n\n\t_ontouchend(event) {\n\t\tthis.active = false;\n\n\t\tif (activeButton) {\n\t\t\tactiveButton.active = false;\n\t\t}\n\t}\n\n\t_onmouseup(event) {\n\t\tevent.isMarked = \"button\";\n\t}\n\n\t_onkeydown(event) {\n\t\tevent.isMarked = \"button\";\n\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.active = false;\n\t\t}\n\t}\n\n\t_onfocusout(_event) {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\t\tthis.active = false;\n\t\tthis.focused = false;\n\t}\n\n\t_onfocusin(event) {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.isMarked = \"button\";\n\t\tthis.focused = true;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !Array.from(this.childNodes).filter(node => {\n\t\t\treturn node.nodeType !== Node.COMMENT_NODE\n\t\t\t&& (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0);\n\t\t}).length;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaExpanded\": this.ariaExpanded || (this._buttonAccInfo && this._buttonAccInfo.ariaExpanded),\n\t\t\t\"ariaControls\": this._buttonAccInfo && this._buttonAccInfo.ariaControls,\n\t\t\t\"ariaHaspopup\": this._buttonAccInfo && this._buttonAccInfo.ariaHaspopup,\n\t\t\t\"title\": this.title || (this._buttonAccInfo && this._buttonAccInfo.title),\n\t\t};\n\t}\n\n\tstatic typeTextMappings() {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t};\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget tabIndexValue() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn tabindex;\n\t\t}\n\n\t\treturn this.nonInteractive ? \"-1\" : this._tabIndex;\n\t}\n\n\tget showIconTooltip() {\n\t\treturn this.iconOnly && !this.title;\n\t}\n\n\tstatic async onDefine() {\n\t\tButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nButton.define();\n\nexport default Button;\n","import DataType from \"./DataType.js\";\n\n/**\n * Different states.\n */\nconst ValueStates = {\n\tNone: \"None\",\n\tSuccess: \"Success\",\n\tWarning: \"Warning\",\n\tError: \"Error\",\n\tInformation: \"Information\",\n};\n\nclass ValueState extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ValueStates[value];\n\t}\n}\n\nValueState.generateTypeAccessors(ValueStates);\n\nexport default ValueState;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"accept\";\nconst pathData = \"M468.5 106c6 7 9 16 9 24v3c0 9-4 18-11 25l-244 243c-7 7-15 10-24 10-10 0-20-4-28-12l-125-129c-7-7-10-15-10-24 0-10 4-20 12-28 7-6 16-9 24-10 10 0 20 4 28 12l100 103 217-219c7-7 15-10 24-10 10 0 20 4 28 12z\";\nconst ltr = true;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"accept\";\nconst pathData = \"M455.8 94q9 9 3 19l-222 326q-4 8-12 9t-14-5l-151-167q-5-5-4.5-11t5.5-11l25-25q12-12 23 0l96 96q5 5 13 4.5t12-8.5l175-249q4-7 11.5-8t13.5 4z\";\nconst ltr = true;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/accept.js\";\nimport pathDataV5 from \"./v4/accept.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * Different types of wrapping.\n * @lends sap.ui.webcomponents.main.types.WrappingType.prototype\n * @public\n */\nconst WrappingTypes = {\n\t/**\n\t * The text will be truncated with an ellipsis.\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n\n\t/**\n\t * The text will wrap. The words will not be broken based on hyphenation.\n\t * @public\n\t * @type {Normal}\n\t */\n\tNormal: \"Normal\",\n};\n\n/**\n * @class\n * Defines how the text of a component will be displayed when there is not enough space.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.WrappingType\n * @public\n * @enum {string}\n */\nclass WrappingType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!WrappingTypes[value];\n\t}\n}\n\nWrappingType.generateTypeAccessors(WrappingTypes);\n\nexport default WrappingType;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<label class=\"ui5-label-root\" dir=\"${ifDefined(context.effectiveDir)}\" @click=${context._onclick} for=\"${ifDefined(context.for)}\"><span class=\"${classMap(context.classes.textWrapper)}\"><bdi id=\"${ifDefined(context._id)}-bdi\"><slot></slot></bdi></span><span class=\"ui5-label-required-colon\"></span></label>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Label.css\",content:\":host(:not([hidden])){display:inline-flex}:host{max-width:100%;color:var(--sapContent_LabelColor);font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;cursor:text}.ui5-label-root{width:100%;cursor:inherit}:host([wrapping-type=Normal]) .ui5-label-root{white-space:normal}:host(:not([wrapping-type=Normal])) .ui5-label-root{display:inline-block;white-space:nowrap}bdi{content:\\\"\\\";padding-right:.075rem}:host(:not([wrapping-type=Normal])) .ui5-label-text-wrapper{text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:top;max-width:100%}:host(:not([wrapping-type=Normal])[required][show-colon]) .ui5-label-text-wrapper,:host(:not([wrapping-type=Normal])[required][show-colon]) .ui5-label-text-wrapper.ui5-label-text-wrapper-safari{max-width:calc(100% - .8rem)}:host(:not([wrapping-type=Normal])[required]) .ui5-label-text-wrapper{max-width:calc(100% - .475rem)}:host(:not([wrapping-type=Normal])[required]) .ui5-label-text-wrapper.ui5-label-text-wrapper-safari{max-width:calc(100% - .425rem)}:host(:not([wrapping-type=Normal])[show-colon]) .ui5-label-text-wrapper{max-width:calc(100% - .125rem)}:host([show-colon]) .ui5-label-required-colon{margin-left:-.05rem}:host([show-colon]) .ui5-label-required-colon:before{content:\\\":\\\"}:host([required]) .ui5-label-required-colon:after{content:\\\"*\\\";color:var(--sapField_RequiredColor);font-size:1.25rem;font-weight:700;position:relative;font-style:normal;vertical-align:middle;line-height:0}:host([required][show-colon]) .ui5-label-required-colon:after{margin-right:0;margin-left:.125rem}:host([required][show-colon]) [dir=rtl] .ui5-label-required-colon:after{margin-right:.125rem;margin-left:0}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSafari } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport LabelTemplate from \"./generated/templates/LabelTemplate.lit.js\";\n\n// Styles\nimport labelCss from \"./generated/themes/Label.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-label\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Label.prototype */ {\n\n\t\t/**\n\t\t * Defines whether an asterisk character is added to the component text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Usually indicates that user input is required.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines how the text of a component will be displayed when there is not enough space.\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code> - The text will be truncated with an ellipsis.</li>\n\t\t * <li><code>Normal</code> - The text will wrap. The words will not be broken based on hyphenation.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {WrappingType}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\t wrappingType: {\n\t\t\ttype: WrappingType,\n\t\t\tdefaultValue: WrappingType.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether colon is added to the component text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Usually used in forms.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\n\t\tshowColon: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the labeled input by providing its ID.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Can be used with both <code>ui5-input</code> and native input.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\t\"for\": {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Label.prototype */ {\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t * <br><b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-label</code> is a component used to represent a label,\n * providing valuable information to the user.\n * Usually it is placed next to a value holder, such as a text field.\n * It informs the user about what data is displayed or expected in the value holder.\n * <br><br>\n * The <code>ui5-label</code> appearance can be influenced by properties,\n * such as <code>required</code> and <code>wrappingType</code>.\n * The appearance of the Label can be configured in a limited way by using the design property.\n * For a broader choice of designs, you can use custom styles.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Label\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Label\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-label\n * @public\n */\nclass Label extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn LabelTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn labelCss;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\ttextWrapper: {\n\t\t\t\t\"ui5-label-text-wrapper\": true,\n\t\t\t\t\"ui5-label-text-wrapper-safari\": isSafari(),\n\t\t\t},\n\t\t};\n\t}\n\n\t_onclick() {\n\t\tconst elementToFocus = document.getElementById(this.for);\n\t\tif (elementToFocus) {\n\t\t\telementToFocus.focus();\n\t\t}\n\t}\n}\n\nLabel.define();\n\nexport default Label;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-checkbox-root ${classMap(context.classes.main)}\" role=\"checkbox\" aria-checked=\"${ifDefined(context.ariaChecked)}\" aria-readonly=\"${ifDefined(context.ariaReadonly)}\" aria-disabled=\"${ifDefined(context.ariaDisabled)}\" aria-labelledby=\"${ifDefined(context.ariaLabelledBy)}\" aria-describedby=\"${ifDefined(context.ariaDescribedBy)}\" tabindex=\"${ifDefined(context.tabIndex)}\" @mousedown=\"${context._onmousedown}\" @mouseup=\"${context._onmouseup}\" @keydown=\"${context._onkeydown}\" @keyup=\"${context._onkeyup}\" @click=\"${context._onclick}\" @focusout=\"${context._onfocusout}\" dir=\"${ifDefined(context.effectiveDir)}\"><div id=\"${ifDefined(context._id)}-CbBg\" class=\"ui5-checkbox-inner\">${ context.isCompletelyChecked ? block1(context, tags, suffix) : undefined }<input id=\"${ifDefined(context._id)}-CB\" type='checkbox' ?checked=\"${context.checked}\" ?readonly=\"${context.readonly}\" ?disabled=\"${context.disabled}\" tabindex=\"-1\" aria-hidden=\"true\" data-sap-no-tab-ref /></div>${ context.text ? block2(context, tags, suffix) : undefined }${ context.hasValueState ? block3(context, tags, suffix) : undefined }<slot name=\"formSupport\"></slot></div>`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} aria-hidden=\"true\" name=\"accept\" class=\"ui5-checkbox-icon\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-label\", tags, suffix)} id=\"${ifDefined(context._id)}-label\" class=\"ui5-checkbox-label\" wrapping-type=\"${ifDefined(context.wrappingType)}\">${ifDefined(context.text)}</${scopeTag(\"ui5-label\", tags, suffix)}>`;\nconst block3 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-descr\" class=\"ui5-hidden-text\">${ifDefined(context.valueStateText)}</span>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\CheckBox.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:inline-block}:host{overflow:hidden;max-width:100%;outline:none;border-radius:var(--_ui5_checkbox_border_radius);transition:var(--_ui5_checkbox_transition);cursor:pointer}:host([disabled]) .ui5-checkbox-root{opacity:.5}:host([disabled]) .ui5-checkbox-inner{border-color:var(--_ui5_checkbox_inner_disabled_border_color)}:host([disabled]) .ui5-checkbox-label{color:var(--_ui5_checkbox_disabled_label_color)}:host([readonly]:not([value-state=Warning]):not([value-state=Error])) .ui5-checkbox-inner{background:var(--sapField_ReadOnly_Background);border:var(--_ui5_checkbox_inner_readonly_border);color:var(--sapContent_NonInteractiveIconColor)}:host([wrapping-type=Normal][text]) .ui5-checkbox-root{min-height:auto;box-sizing:border-box;align-items:flex-start;padding-top:var(--_ui5_checkbox_root_side_padding);padding-bottom:var(--_ui5_checkbox_root_side_padding)}:host([wrapping-type=Normal][text]) .ui5-checkbox-root .ui5-checkbox-inner,:host([wrapping-type=Normal][text]) .ui5-checkbox-root .ui5-checkbox-label{margin-top:var(--_ui5_checkbox_wrapped_content_margin_top)}:host([wrapping-type=Normal][text]) .ui5-checkbox-root .ui5-checkbox-label{word-break:break-all;align-self:center}:host([wrapping-type=Normal]) .ui5-checkbox-root:focus:before{bottom:var(--_ui5_checkbox_wrapped_focus_left_top_bottom_position)}:host([value-state=Error]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host([value-state=Error]) .ui5-checkbox-inner{background:var(--sapField_InvalidBackground);border:var(--_ui5_checkbox_inner_error_border);color:var(--sapField_InvalidColor)}:host([value-state=Error]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{box-shadow:var(--_ui5_checkbox_inner_error_box_shadow);background:var(--_ui5_checkbox_inner_error_background_hover)}:host([value-state=Warning]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host([value-state=Warning]) .ui5-checkbox-inner{background:var(--sapField_WarningBackground);border:var(--_ui5_checkbox_inner_warning_border);color:var(--sapField_WarningColor)}:host([value-state=Warning]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{box-shadow:var(--_ui5_checkbox_inner_warning_box_shadow);background:var(--_ui5_checkbox_inner_warning_background_hover)}:host([value-state=Information]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host([value-state=Information]) .ui5-checkbox-inner{background:var(--sapField_InformationBackground);border:var(--_ui5_checkbox_inner_information_border)}:host([value-state=Information]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{box-shadow:var(--_ui5_checkbox_inner_information_box_shadow);background:var(--_ui5_checkbox_inner_information_background_hover)}:host([value-state=Success]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host([value-state=Success]) .ui5-checkbox-inner{background:var(--sapField_SuccessBackground);border:var(--_ui5_checkbox_inner_success_border);color:var(--sapField_SuccessColor)}:host([value-state=Success]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{box-shadow:var(--_ui5_checkbox_inner_success_box_shadow);background:var(--_ui5_checkbox_inner_success_background_hover)}:host(:not([value-state])) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host([value-state=None]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{box-shadow:var(--_ui5_checkbox_inner_default_box_shadow)}:host([value-state=Warning]) .ui5-checkbox-icon,:host([value-state=Warning][indeterminate]) .ui5-checkbox-inner:after{color:var(--_ui5_checkbox_checkmark_warning_color)}:host([text]) .ui5-checkbox-root{padding-right:0}:host([text]) .ui5-checkbox-root:focus:before{right:0}.ui5-checkbox-root{position:relative;display:inline-flex;align-items:center;width:100%;min-height:var(--_ui5_checkbox_width_height);min-width:var(--_ui5_checkbox_width_height);padding:0 var(--_ui5_checkbox_wrapper_padding);outline:none;transition:var(--_ui5_checkbox_transition);border:var(--_ui5_checkbox_default_focus_border);border-radius:var(--_ui5_checkbox_border_radius);box-sizing:border-box}.ui5-checkbox-root:after{content:\\\"\\\";min-height:inherit;font-size:0}.ui5-checkbox-root:focus:before{display:var(--_ui5_checkbox_focus_outline_display);content:\\\"\\\";position:absolute;top:var(--_ui5_checkbox_focus_position);left:var(--_ui5_checkbox_focus_position);right:var(--_ui5_checkbox_focus_position);bottom:var(--_ui5_checkbox_focus_position);border:var(--_ui5_checkbox_focus_outline);border-radius:var(--_ui5_checkbox_focus_border_radius)}:host .ui5-checkbox-root:focus{border:var(--_ui5_checkbox_focus_border);border-radius:.5rem}:host(:hover:not([disabled])){background:var(--_ui5_checkbox_outer_hover_background);box-shadow:var(--_ui5_checkbox_box_shadow)}.ui5-checkbox--hoverable .ui5-checkbox-label:hover{color:var(--_ui5_checkbox_label_color)}:host(:not([active]):not([checked]):not([value-state])) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host(:not([active]):not([checked])[value-state=None]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{background:var(--_ui5_checkbox_hover_background);border-color:var(--_ui5_checkbox_inner_hover_border_color)}:host(:not([active])[checked]:not([value-state])) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover,:host(:not([active])[checked][value-state=None]) .ui5-checkbox--hoverable .ui5-checkbox-inner:hover{background:var(--_ui5_checkbox_hover_background);border-color:var(--_ui5_checkbox_inner_hover_checked_border_color)}:host([checked]:not([value-state])) .ui5-checkbox-inner,:host([checked][value-state=None]) .ui5-checkbox-inner{border-color:var(--_ui5_checkbox_inner_selected_border_color)}:host([active]:not([checked]):not([value-state]):not([disabled])) .ui5-checkbox-inner,:host([active]:not([checked])[value-state=None]:not([disabled])) .ui5-checkbox-inner{border-color:var(--_ui5_checkbox_inner_active_border_color);background-color:var(--_ui5_checkbox_active_background)}:host([active][checked]:not([value-state]):not([disabled])) .ui5-checkbox-inner,:host([active][checked][value-state=None]:not([disabled])) .ui5-checkbox-inner{border-color:var(--_ui5_checkbox_inner_selected_border_color)}.ui5-checkbox-inner{display:flex;justify-content:center;align-items:center;min-width:var(--_ui5_checkbox_inner_width_height);max-width:var(--_ui5_checkbox_inner_width_height);height:var(--_ui5_checkbox_inner_width_height);max-height:var(--_ui5_checkbox_inner_width_height);border:var(--_ui5_checkbox_inner_border);border-radius:var(--_ui5_checkbox_inner_border_radius);background:var(--_ui5_checkbox_inner_background);color:var(--_ui5_checkbox_checkmark_color);box-sizing:border-box;position:relative;cursor:default}:host([indeterminate][checked]) .ui5-checkbox-inner:after{content:\\\"\\\";background-color:currentColor;width:var(--_ui5_checkbox_partially_icon_size);height:var(--_ui5_checkbox_partially_icon_size)}.ui5-checkbox-inner input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit}.ui5-checkbox-root .ui5-checkbox-label{margin-left:var(--_ui5_checkbox_label_offset_left);margin-right:var(--_ui5_checkbox_label_offset_right);cursor:default;text-overflow:ellipsis;overflow:hidden;pointer-events:none;user-select:none;-ms-user-select:none;-webkit-user-select:none;color:var(--_ui5_checkbox_label_color)}.ui5-checkbox-icon{width:var(--_ui5_checkbox_icon_size);height:var(--_ui5_checkbox_icon_size);color:currentColor;cursor:default;position:absolute}:host([text]) [dir=rtl].ui5-checkbox-root{padding-left:0;padding-right:var(--_ui5_checkbox_wrapper_padding)}:host([text]) [dir=rtl].ui5-checkbox-root:focus:before{left:0;right:var(--_ui5_checkbox_focus_position)}:host([text]) [dir=rtl].ui5-checkbox-root .ui5-checkbox-label{margin-left:0;margin-right:var(--_ui5_checkbox_compact_wrapper_padding)}\"}","import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport Icon from \"./Icon.js\";\nimport Label from \"./Label.js\";\nimport WrappingType from \"./types/WrappingType.js\";\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport CheckBoxTemplate from \"./generated/templates/CheckBoxTemplate.lit.js\";\n\n// Styles\nimport checkboxCss from \"./generated/themes/CheckBox.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeCb = null;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-checkbox\",\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.CheckBox.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the component is disabled.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is read-only.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A red-only component is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t* Defines whether the component is displayed as partially checked.\n\t\t* <br><br>\n\t\t* <b>Note:</b> The indeterminate state can be set only programatically and can’t be achieved by user\n\t\t* interaction and the resulting visual state depends on the values of the <code>indeterminate</code>\n\t\t* and <code>checked</code> properties:\n\t\t* <ul>\n\t\t* <li> If the component is checked and indeterminate, it will be displayed as partially checked\n\t\t* <li> If the component is checked and it is not indeterminate, it will be displayed as checked\n\t\t* <li> If the component is not checked, it will be displayed as not checked regardless value of the indeterminate attribute\n\t\t* </ul>\n\t\t*\n\t\t* @type {boolean}\n\t\t* @defaultvalue false\n\t\t* @public\n\t\t* @since 1.0.0-rc.15\n\t\t*/\n\t\tindeterminate: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the component is checked.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The property can be changed with user interaction,\n\t\t * either by cliking/tapping on the component, or by\n\t\t * pressing the Enter or Space key.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t *\n\t\t * <ul>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>None</code>(default)</li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component text wraps when there is not enough space.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code> - The text will be truncated with an ellipsis.</li>\n\t\t * <li><code>Normal</code> - The text will wrap. The words will not be broken based on hyphenation.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {WrappingType}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\t wrappingType: {\n\t\t\ttype: WrappingType,\n\t\t\tdefaultValue: WrappingType.None,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the active state (pressed or not) of the component.\n\t\t * @private\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.CheckBox.prototype */ {\n\n\t\t/**\n\t\t * Fired when the component checked state changes.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tchange: {},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.CheckBox.prototype */ {\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * Allows the user to set a binary value, such as true/false or yes/no for an item.\n * <br><br>\n * The <code>ui5-checkbox</code> component consists of a box and a label that describes its purpose.\n * If it's checked, an indicator is displayed inside the box.\n * To check/uncheck the <code>ui5-checkbox</code>, the user has to click or tap the square\n * box or its label.\n * <br><br>\n * The <code>ui5-checkbox</code> component only has 2 states - checked and unchecked.\n * Clicking or tapping toggles the <code>ui5-checkbox</code> between checked and unchecked state.\n *\n * <h3>Usage</h3>\n *\n * You can define the checkbox text with via the <code>text</code> property. If the text exceeds the available width, it is truncated by default.\n * In case you prefer text to wrap, set the <code>wrappingType</code> property to \"Normal\".\n * The touchable area for toggling the <code>ui5-checkbox</code> ends where the text ends.\n * <br><br>\n * You can disable the <code>ui5-checkbox</code> by setting the <code>disabled</code> property to\n * <code>true</code>,\n * or use the <code>ui5-checkbox</code> in read-only mode by setting the <code>readonly</code>\n * property to <code>true</code>.\n *\n * <br><br>\n * <h3>Keyboard Handling</h3>\n *\n * The user can use the following keyboard shortcuts to toggle the checked state of the <code>ui5-checkbox</code>.\n * <ul>\n * <li>[SPACE, ENTER] - Toggles between different states: checked, not checked.</li>\n * </ul>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/CheckBox\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.CheckBox\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-checkbox\n * @public\n */\nclass CheckBox extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn CheckBoxTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn checkboxCss;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeCb) {\n\t\t\t\tactiveCb.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._enableFormSupport();\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled || !element.checked;\n\t\t\t\tnativeInput.value = element.checked ? \"on\" : \"\";\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tthis.toggle();\n\t}\n\n\t_onmousedown() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = true;\n\t\tactiveCb = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.active = true;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.toggle();\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (this.canToggle()) {\n\t\t\tif (this.indeterminate) {\n\t\t\t\tthis.indeterminate = false;\n\t\t\t\tthis.checked = true;\n\t\t\t} else {\n\t\t\t\tthis.checked = !this.checked;\n\t\t\t}\n\n\t\t\tthis.fireEvent(\"change\");\n\t\t\t// Angular two way data binding\n\t\t\tthis.fireEvent(\"value-changed\");\n\t\t}\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly);\n\t}\n\n\tvalueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Error\": CheckBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": CheckBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t\"Success\": CheckBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-checkbox--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n\n\tget ariaDisabled() {\n\t\treturn this.disabled ? \"true\" : undefined;\n\t}\n\n\tget ariaChecked() {\n\t\treturn this.indeterminate && this.checked ? \"mixed\" : this.checked;\n\t}\n\n\tget ariaLabelledBy() {\n\t\treturn this.text ? `${this._id}-label` : undefined;\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\tget tabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\t\treturn this.disabled ? undefined : tabindex || \"0\";\n\t}\n\n\tget isCompletelyChecked() {\n\t\treturn this.checked && !this.indeterminate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tLabel,\n\t\t\tIcon,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tCheckBox.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nCheckBox.define();\n\nexport default CheckBox;\n","let resizeObserver;\nconst observedElements = new Map();\n\nconst getResizeObserver = () => {\n\tif (!resizeObserver) {\n\t\tresizeObserver = new window.ResizeObserver(entries => {\n\t\t\tentries.forEach(entry => {\n\t\t\t\tconst callbacks = observedElements.get(entry.target);\n\t\t\t\tcallbacks.forEach(callback => callback());\n\t\t\t});\n\t\t});\n\t}\n\treturn resizeObserver;\n};\n\nlet observe = (element, callback) => {\n\tconst callbacks = observedElements.get(element) || [];\n\n\t// if no callbacks have been added for this element - start observing it\n\tif (!callbacks.length) {\n\t\tgetResizeObserver().observe(element);\n\t}\n\n\t// save the callbacks in an array\n\tobservedElements.set(element, [...callbacks, callback]);\n};\n\nlet unobserve = (element, callback) => {\n\tconst callbacks = observedElements.get(element) || [];\n\tif (callbacks.length === 0) {\n\t\treturn;\n\t}\n\n\tconst filteredCallbacks = callbacks.filter(fn => fn !== callback);\n\tif (filteredCallbacks.length === 0) {\n\t\tgetResizeObserver().unobserve(element);\n\t\tobservedElements.delete(element);\n\t} else {\n\t\tobservedElements.set(element, filteredCallbacks);\n\t}\n};\n\n/**\n * Allows to register/deregister resize observers for a DOM element\n *\n * @public\n * @class\n */\nclass ResizeHandler {\n\t/**\n\t * @static\n\t * @public\n\t * @param {*} element UI5 Web Component or DOM Element to be observed\n\t * @param {*} callback Callback to be executed\n\t */\n\tstatic register(element, callback) {\n\t\tif (element.isUI5Element) {\n\t\t\telement = element.getDomRef();\n\t\t}\n\n\t\tif (element instanceof HTMLElement) {\n\t\t\tobserve(element, callback);\n\t\t} else {\n\t\t\tconsole.warn(\"Cannot register ResizeHandler for element\", element); // eslint-disable-line\n\t\t}\n\t}\n\n\t/**\n\t * @static\n\t * @public\n\t * @param {*} element UI5 Web Component or DOM Element to be unobserved\n\t * @param {*} callback Callback to be removed\n\t */\n\tstatic deregister(element, callback) {\n\t\tif (element.isUI5Element) {\n\t\t\telement = element.getDomRef();\n\t\t}\n\n\t\tif (element instanceof HTMLElement) {\n\t\t\tunobserve(element, callback);\n\t\t} else {\n\t\t\tconsole.warn(\"Cannot deregister ResizeHandler for element\", element); // eslint-disable-line\n\t\t}\n\t}\n}\n\n/**\n * Set a function to be executed whenever a DOM node needs to be observed for size change.\n * @public\n * @param fn\n */\nconst setResizeHandlerObserveFn = fn => {\n\tobserve = fn;\n};\n\n/**\n * Set a function to be executed whenever a DOM node needs to no longer be observed for size changes\n * @public\n * @param fn\n */\nconst setResizeHandlerUnobserveFn = fn => {\n\tunobserve = fn;\n};\n\nexport default ResizeHandler;\nexport { setResizeHandlerObserveFn, setResizeHandlerUnobserveFn };\n","import DataType from \"./DataType.js\";\n\nclass Integer extends DataType {\n\tstatic isValid(value) {\n\t\treturn Number.isInteger(value);\n\t}\n\n\tstatic attributeToProperty(attributeValue) {\n\t\treturn parseInt(attributeValue);\n\t}\n}\n\nexport default Integer;\n","const findNodeOwner = node => {\n\tif (!(node instanceof HTMLElement)) {\n\t\tthrow new Error(\"Argument node should be of type HTMLElement\");\n\t}\n\n\tconst ownerTypes = [HTMLHtmlElement, HTMLIFrameElement];\n\tlet currentShadowRootFlag = true;\n\tlet currentCustomElementFlag = true;\n\n\twhile (node) {\n\t\tif (node.toString() === \"[object ShadowRoot]\") {\n\t\t\t// Web Component\n\t\t\t// or the shadow root of web component with attached shadow root\n\t\t\tif (currentShadowRootFlag) {\n\t\t\t\tcurrentShadowRootFlag = false;\n\t\t\t}\n\t\t\tif (!currentCustomElementFlag && !currentShadowRootFlag) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t} else if (node.tagName && node.tagName.indexOf(\"-\") > -1) {\n\t\t\tif (currentCustomElementFlag) {\n\t\t\t\tcurrentCustomElementFlag = false;\n\t\t\t} else {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t} else if (ownerTypes.indexOf(node.constructor) > -1) {\n\t\t\t// Document or Iframe reached\n\t\t\treturn node;\n\t\t}\n\n\t\tnode = node.parentNode || node.host;\n\t}\n};\n\nexport default findNodeOwner;\n","import findNodeOwner from \"./findNodeOwner.js\";\n\nconst getEffectiveAriaLabelText = el => {\n\tif (!el.accessibleNameRef) {\n\t\tif (el.accessibleName) {\n\t\t\treturn el.accessibleName;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn getAriaLabelledByTexts(el);\n};\n\n/**\n *\n * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts\n * @param {HTMLElement} ownerDocument (Optional) Defines the HTMLElement(might document or custom element) where the you want to search for the texts.\n * @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument\n */\nconst getAriaLabelledByTexts = (el, ownerDocument, readyIds = \"\") => {\n\tconst ids = (readyIds && readyIds.split(\" \")) || el.accessibleNameRef.split(\" \");\n\tconst owner = ownerDocument || findNodeOwner(el);\n\tlet result = \"\";\n\n\tids.forEach((elementId, index) => {\n\t\tconst element = owner.querySelector(`[id='${elementId}']`);\n\t\tresult += `${element ? element.textContent : \"\"}`;\n\n\t\tif (index < ids.length - 1) {\n\t\t\tresult += \" \";\n\t\t}\n\t});\n\n\treturn result;\n};\n\nexport {\n\tgetEffectiveAriaLabelText,\n\tgetAriaLabelledByTexts,\n};\n","const ICON_ACTION_SETTINGS = {key: \"ICON_ACTION_SETTINGS\", defaultText: \"Settings\"};const ICON_ACTIVATE = {key: \"ICON_ACTIVATE\", defaultText: \"Activate\"};const ICON_ADD = {key: \"ICON_ADD\", defaultText: \"Add\"};const ICON_ADD_CONTACT = {key: \"ICON_ADD_CONTACT\", defaultText: \"Add Contact\"};const ICON_ADD_FILTER = {key: \"ICON_ADD_FILTER\", defaultText: \"Add Filter\"};const ICON_ADD_PHOTO = {key: \"ICON_ADD_PHOTO\", defaultText: \"Add Photo\"};const ICON_BACK_TO_TOP = {key: \"ICON_BACK_TO_TOP\", defaultText: \"Back to Top\"};const ICON_COLLAPSE = {key: \"ICON_COLLAPSE\", defaultText: \"Collapse\"};const ICON_COLLAPSE_GROUP = {key: \"ICON_COLLAPSE_GROUP\", defaultText: \"Collapse Group\"};const ICON_CROP = {key: \"ICON_CROP\", defaultText: \"Crop\"};const ICON_DECLINE = {key: \"ICON_DECLINE\", defaultText: \"Decline\"};const ICON_DELETE = {key: \"ICON_DELETE\", defaultText: \"Delete\"};const ICON_DISPLAY = {key: \"ICON_DISPLAY\", defaultText: \"Display\"};const ICON_DOWN = {key: \"ICON_DOWN\", defaultText: \"Down\"};const ICON_DOWNLOAD = {key: \"ICON_DOWNLOAD\", defaultText: \"Download\"};const ICON_DRILL_DOWN = {key: \"ICON_DRILL_DOWN\", defaultText: \"Drill Down\"};const ICON_DRILL_UP = {key: \"ICON_DRILL_UP\", defaultText: \"Drill Up\"};const ICON_ERROR = {key: \"ICON_ERROR\", defaultText: \"Error\"};const ICON_EXIT_FULL_SCREEN = {key: \"ICON_EXIT_FULL_SCREEN\", defaultText: \"Exit Full Screen\"};const ICON_EXPAND = {key: \"ICON_EXPAND\", defaultText: \"Expand\"};const ICON_EXPAND_GROUP = {key: \"ICON_EXPAND_GROUP\", defaultText: \"Expand Group\"};const ICON_FILTER = {key: \"ICON_FILTER\", defaultText: \"Filter\"};const ICON_FLAG = {key: \"ICON_FLAG\", defaultText: \"Flag\"};const ICON_FORWARD = {key: \"ICON_FORWARD\", defaultText: \"Forward\"};const ICON_FULL_SCREEN = {key: \"ICON_FULL_SCREEN\", defaultText: \"Enter Full Screen\"};const ICON_GENERATE_SHORTCUT = {key: \"ICON_GENERATE_SHORTCUT\", defaultText: \"Create Shortcut\"};const ICON_GROUP_2 = {key: \"ICON_GROUP_2\", defaultText: \"Group\"};const ICON_HIDE = {key: \"ICON_HIDE\", defaultText: \"Hide\"};const ICON_IPAD = {key: \"ICON_IPAD\", defaultText: \"Tablet\"};const ICON_IPHONE = {key: \"ICON_IPHONE\", defaultText: \"Phone\"};const ICON_LAPTOP = {key: \"ICON_LAPTOP\", defaultText: \"Laptop\"};const ICON_MESSAGE_ERROR = {key: \"ICON_MESSAGE_ERROR\", defaultText: \"Error\"};const ICON_MESSAGE_INFORMATION = {key: \"ICON_MESSAGE_INFORMATION\", defaultText: \"Information\"};const ICON_MESSAGE_SUCCESS = {key: \"ICON_MESSAGE_SUCCESS\", defaultText: \"Successful\"};const ICON_MESSAGE_WARNING = {key: \"ICON_MESSAGE_WARNING\", defaultText: \"Warning\"};const ICON_MOVE = {key: \"ICON_MOVE\", defaultText: \"Move\"};const ICON_MULTI_SELECT = {key: \"ICON_MULTI_SELECT\", defaultText: \"Multi Select\"};const ICON_NAV_BACK = {key: \"ICON_NAV_BACK\", defaultText: \"Navigate Back\"};const ICON_OVERFLOW = {key: \"ICON_OVERFLOW\", defaultText: \"More\"};const ICON_REDO = {key: \"ICON_REDO\", defaultText: \"Redo\"};const ICON_REFRESH = {key: \"ICON_REFRESH\", defaultText: \"Refresh\"};const ICON_RESIZE = {key: \"ICON_RESIZE\", defaultText: \"Resize\"};const ICON_RESIZE_HORIZONTAL = {key: \"ICON_RESIZE_HORIZONTAL\", defaultText: \"Resize Horizontally\"};const ICON_RESIZE_VERTICAL = {key: \"ICON_RESIZE_VERTICAL\", defaultText: \"Resize Vertically\"};const ICON_RESPONSE = {key: \"ICON_RESPONSE\", defaultText: \"Reply\"};const ICON_SAVE = {key: \"ICON_SAVE\", defaultText: \"Save\"};const ICON_SEARCH = {key: \"ICON_SEARCH\", defaultText: \"Search\"};const ICON_SETTINGS = {key: \"ICON_SETTINGS\", defaultText: \"Settings\"};const ICON_SHOW = {key: \"ICON_SHOW\", defaultText: \"Show\"};const ICON_SORT = {key: \"ICON_SORT\", defaultText: \"Sort\"};const ICON_SORT_ASCENDING = {key: \"ICON_SORT_ASCENDING\", defaultText: \"Sort Ascending\"};const ICON_SORT_DESCENDING = {key: \"ICON_SORT_DESCENDING\", defaultText: \"Sort Descending\"};const ICON_SYNCHRONIZE = {key: \"ICON_SYNCHRONIZE\", defaultText: \"Synchronize\"};const ICON_UNDO = {key: \"ICON_UNDO\", defaultText: \"Undo\"};const ICON_UP = {key: \"ICON_UP\", defaultText: \"Up\"};const ICON_UPLOAD = {key: \"ICON_UPLOAD\", defaultText: \"Upload\"};const ICON_ZOOM_IN = {key: \"ICON_ZOOM_IN\", defaultText: \"Zoom In\"};const ICON_ZOOM_OUT = {key: \"ICON_ZOOM_OUT\", defaultText: \"Zoom Out\"};\nexport {ICON_ACTION_SETTINGS,ICON_ACTIVATE,ICON_ADD,ICON_ADD_CONTACT,ICON_ADD_FILTER,ICON_ADD_PHOTO,ICON_BACK_TO_TOP,ICON_COLLAPSE,ICON_COLLAPSE_GROUP,ICON_CROP,ICON_DECLINE,ICON_DELETE,ICON_DISPLAY,ICON_DOWN,ICON_DOWNLOAD,ICON_DRILL_DOWN,ICON_DRILL_UP,ICON_ERROR,ICON_EXIT_FULL_SCREEN,ICON_EXPAND,ICON_EXPAND_GROUP,ICON_FILTER,ICON_FLAG,ICON_FORWARD,ICON_FULL_SCREEN,ICON_GENERATE_SHORTCUT,ICON_GROUP_2,ICON_HIDE,ICON_IPAD,ICON_IPHONE,ICON_LAPTOP,ICON_MESSAGE_ERROR,ICON_MESSAGE_INFORMATION,ICON_MESSAGE_SUCCESS,ICON_MESSAGE_WARNING,ICON_MOVE,ICON_MULTI_SELECT,ICON_NAV_BACK,ICON_OVERFLOW,ICON_REDO,ICON_REFRESH,ICON_RESIZE,ICON_RESIZE_HORIZONTAL,ICON_RESIZE_VERTICAL,ICON_RESPONSE,ICON_SAVE,ICON_SEARCH,ICON_SETTINGS,ICON_SHOW,ICON_SORT,ICON_SORT_ASCENDING,ICON_SORT_DESCENDING,ICON_SYNCHRONIZE,ICON_UNDO,ICON_UP,ICON_UPLOAD,ICON_ZOOM_IN,ICON_ZOOM_OUT};","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { ICON_DECLINE } from \"../generated/i18n/i18n-defaults.js\";\n\nconst name = \"decline\";\nconst pathData = \"M452.5 417c8 7 12 17 12 26s-4 19-12 26c-7 8-17 12-26 12s-19-4-26-12l-144-143-145 143c-8 8-17 12-26 12-10 0-19-4-27-12-7-7-11-17-11-26s4-19 11-26l145-143-145-146c-7-8-11-17-11-26 0-10 4-19 11-27 8-7 17-11 27-11 9 0 18 4 26 11l145 146 144-146c7-7 17-11 26-11 10 0 19 4 26 11 8 8 12 17 12 27 0 9-4 18-12 26l-144 146z\";\nconst ltr = false;\nconst accData = ICON_DECLINE;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, accData, collection, packageName });\n\nexport default { pathData, accData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { ICON_DECLINE } from \"../generated/i18n/i18n-defaults.js\";\n\nconst name = \"decline\";\nconst pathData = \"M86 109l22-23q5-5 12-5 6 0 11 5l124 125L380 86q5-5 11-5 7 0 12 5l22 23q12 11 0 23L301 256l124 125q11 11 0 22l-22 23q-8 5-12 5-3 0-11-5L255 301 131 426q-5 5-11 5-4 0-12-5l-22-23q-11-11 0-22l124-125L86 132q-12-12 0-23z\";\nconst ltr = false;\nconst accData = ICON_DECLINE;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, accData, collection, packageName });\n\nexport default { pathData, accData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/decline.js\";\nimport pathDataV5 from \"./v4/decline.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"not-editable\";\nconst pathData = \"M87.5 397l41 41 130-130-41-41zm-30-363l434 434c5 5 7 12 7 18 0 16-11 26-26 26-6 0-13-2-18-7l-160-161-148 148c-5 5-11 7-18 7h-77c-14 0-25-11-25-25v-77c0-7 2-13 7-18l148-148-161-160c-5-5-7-12-7-18 0-16 11-26 26-26 6 0 13 2 18 7zm367 108l-41-41-40 41 40 40zm-117 36l-10 9c-5 5-11 8-18 8-14 0-25-12-25-26 0-7 2-13 7-18l104-104c5-5 12-7 18-7 7 0 13 2 18 7l77 77c5 5 7 11 7 18 0 6-2 13-7 18l-104 104c-5 5-11 7-18 7-14 0-26-11-26-25 0-7 3-13 8-18l9-10z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"not-editable\";\nconst pathData = \"\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/not-editable.js\";\nimport pathDataV5 from \"./v4/not-editable.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.InputType.prototype\n * @public\n */\nconst InputTypes = {\n\t/**\n\t * Defines a one-line text input field:\n\t * @public\n\t * @type {Text}\n\t */\n\tText: \"Text\",\n\n\t/**\n\t * Used for input fields that must contain an e-mail address.\n\t * @public\n\t * @type {Email}\n\t */\n\tEmail: \"Email\",\n\n\t/**\n\t * Defines a numeric input field.\n\t * @public\n\t * @type {Number}\n\t */\n\tNumber: \"Number\",\n\n\t/**\n\t * Defines a password field.\n\t * @public\n\t * @type {Password}\n\t */\n\tPassword: \"Password\",\n\n\t/**\n\t * Used for input fields that should contain a telephone number.\n\t * @public\n\t * @type {Tel}\n\t */\n\tTel: \"Tel\",\n\n\t/**\n\t * Used for input fields that should contain a URL address.\n\t * @public\n\t * @type {URL}\n\t */\n\tURL: \"URL\",\n};\n\n/**\n * @class\n * Defines input types\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.InputType\n * @public\n * @enum {string}\n */\nclass InputType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!InputTypes[value];\n\t}\n}\n\nInputType.generateTypeAccessors(InputTypes);\n\nexport default InputType;\n","/**\n * Returns a value clamped between an upper bound 'max' and lower bound 'min'.\n * @param {number} val value\n * @param {number} min lower bound\n * @param {number} max upper bound\n * @returns {number}\n */\nconst clamp = (val, min, max) => {\n\treturn Math.min(Math.max(val, min), max);\n};\n\nexport default clamp;\n","const isNodeHidden = node => {\n\tif (node.nodeName === \"SLOT\") {\n\t\treturn false;\n\t}\n\n\treturn (node.offsetWidth <= 0 && node.offsetHeight <= 0) || node.style.visibility === \"hidden\";\n};\n\nexport default isNodeHidden;\n","const rClickable = /^(?:a|area)$/i;\nconst rFocusable = /^(?:input|select|textarea|button)$/i;\n\nconst isNodeClickable = node => {\n\tif (node.disabled) {\n\t\treturn false;\n\t}\n\n\tconst tabIndex = node.getAttribute(\"tabindex\");\n\tif (tabIndex !== null && tabIndex !== undefined) {\n\t\treturn parseInt(tabIndex) >= 0;\n\t}\n\n\treturn rFocusable.test(node.nodeName)\n\t\t|| (rClickable.test(node.nodeName)\n\t\t&& node.href);\n};\n\nexport default isNodeClickable;\n","import isNodeHidden from \"./isNodeHidden.js\";\nimport isNodeClickable from \"./isNodeClickable.js\";\n\nconst isFocusTrap = el => {\n\treturn el.hasAttribute(\"data-ui5-focus-trap\");\n};\n\nconst getFirstFocusableElement = async container => {\n\tif (!container || isNodeHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true);\n};\n\nconst getLastFocusableElement = async container => {\n\tif (!container || isNodeHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false);\n};\n\nconst isElemFocusable = el => {\n\treturn el.hasAttribute(\"data-ui5-focus-redirect\") || !isNodeHidden(el);\n};\n\nconst findFocusableElement = async (container, forward) => {\n\tlet child;\n\n\tif (container.shadowRoot) {\n\t\tchild = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;\n\t} else if (container.assignedNodes && container.assignedNodes()) {\n\t\tconst assignedElements = container.assignedNodes();\n\t\tchild = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];\n\t} else {\n\t\tchild = forward ? container.firstChild : container.lastChild;\n\t}\n\n\tlet focusableDescendant;\n\n\t/* eslint-disable no-await-in-loop */\n\n\twhile (child) {\n\t\tconst originalChild = child;\n\n\t\tif (child.isUI5Element) {\n\t\t\tchild = await child.getFocusDomRefAsync();\n\t\t}\n\n\t\tif (!child) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {\n\t\t\tif (isNodeClickable(child)) {\n\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t}\n\n\t\t\tfocusableDescendant = await findFocusableElement(child, forward);\n\t\t\tif (focusableDescendant) {\n\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling : originalChild.previousSibling;\n\t}\n\n\t/* eslint-enable no-await-in-loop */\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<section style=\"${styleMap(context.styles.root)}\" class=\"${classMap(context.classes.root)}\" role=\"dialog\" aria-modal=\"${ifDefined(context._ariaModal)}\" aria-label=\"${ifDefined(context._ariaLabel)}\" aria-labelledby=\"${ifDefined(context._ariaLabelledBy)}\" dir=\"${ifDefined(context.effectiveDir)}\" @keydown=${context._onkeydown} @focusout=${context._onfocusout} @mouseup=${context._onmouseup} @mousedown=${context._onmousedown}><span class=\"first-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToLast}></span><div style=\"${styleMap(context.styles.content)}\" class=\"${classMap(context.classes.content)}\" @scroll=\"${context._scroll}\"><slot></slot></div><span class=\"last-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToFirst}></span></section> `;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-block-layer\" ?hidden=${context._blockLayerHidden} tabindex=\"1\" style=\"${styleMap(context.styles.blockLayer)}\" @keydown=\"${context._preventBlockLayerFocus}\" @mousedown=\"${context._preventBlockLayerFocus}\"></div>`;\n\n\nexport default block0;","import { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nlet openedRegistry = [];\n\nconst addOpenedPopup = (instance, parentPopovers = []) => {\n\tif (!openedRegistry.includes(instance)) {\n\t\topenedRegistry.push({\n\t\t\tinstance,\n\t\t\tparentPopovers,\n\t\t});\n\t}\n\n\tif (openedRegistry.length === 1) {\n\t\tattachGlobalListener();\n\t}\n};\n\nconst removeOpenedPopup = instance => {\n\topenedRegistry = openedRegistry.filter(el => {\n\t\treturn el.instance !== instance;\n\t});\n\n\tif (!openedRegistry.length) {\n\t\tdetachGlobalListener();\n\t}\n};\n\nconst getOpenedPopups = () => {\n\treturn [...openedRegistry];\n};\n\nconst _keydownListener = event => {\n\tif (!openedRegistry.length) {\n\t\treturn;\n\t}\n\n\tif (isEscape(event)) {\n\t\topenedRegistry[openedRegistry.length - 1].instance.close(true);\n\t}\n};\n\nconst attachGlobalListener = () => {\n\tdocument.addEventListener(\"keydown\", _keydownListener);\n};\n\nconst detachGlobalListener = () => {\n\tdocument.removeEventListener(\"keydown\", _keydownListener);\n};\n\nexport { addOpenedPopup, removeOpenedPopup, getOpenedPopups };\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Popup.css\",content:\":host{min-width:1px;display:none;position:fixed}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\PopupStaticAreaStyles.css\",content:\".ui5-block-layer{display:none;position:fixed;background-color:var(--sapBlockLayer_Background);opacity:.6;top:-500px;left:-500px;right:-500px;bottom:-500px;outline:none;pointer-events:all;z-index:-1}.ui5-block-layer:not([hidden]){display:inline-block}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\PopupGlobal.css\",content:\".ui5-popup-scroll-blocker{width:100%;height:100%;position:fixed;overflow:hidden}\"}","import { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isChrome } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport { hasStyle, createStyle } from \"@ui5/webcomponents-base/dist/ManagedStyles.js\";\nimport { isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getNextZIndex, getFocusedElement, isFocusedElementWithinNode } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport PopupTemplate from \"./generated/templates/PopupTemplate.lit.js\";\nimport PopupBlockLayer from \"./generated/templates/PopupBlockLayerTemplate.lit.js\";\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\n\n// Styles\nimport styles from \"./generated/themes/Popup.css.js\";\nimport staticAreaStyles from \"./generated/themes/PopupStaticAreaStyles.css.js\";\nimport globalStyles from \"./generated/themes/PopupGlobal.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\n\t\t/**\n\t\t * Defines the content of the Popup.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: HTMLElement,\n\t\t\tpropertyName: \"content\",\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\t\t/**\n\t\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tinitialFocus: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the focus should be returned to the previously focused element,\n\t\t * when the popup closes.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t*/\n\t\tpreventFocusRestore: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the element is open\n\t\t * @private\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t */\n\t\topened: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_disableInitialFocus: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_blockLayerHidden: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\n\t\t/**\n\t\t * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening. <b>This event does not bubble.</b>\n\t\t *\n\t\t * @public\n\t\t * @event sap.ui.webcomponents.main.Popup#before-open\n\t\t * @allowPreventDefault\n\t\t */\n\t\t\"before-open\": {},\n\n\t\t/**\n\t\t * Fired after the component is opened. <b>This event does not bubble.</b>\n\t\t *\n\t\t * @public\n\t\t * @event sap.ui.webcomponents.main.Popup#after-open\n\t\t */\n\t\t\"after-open\": {},\n\n\t\t/**\n\t\t * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing. <b>This event does not bubble.</b>\n\t\t *\n\t\t * @public\n\t\t * @event sap.ui.webcomponents.main.Popup#before-close\n\t\t * @allowPreventDefault\n\t\t * @param {boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.\n\t\t */\n\t\t\"before-close\": {\n\t\t\tdetail: {\n\t\t\t\tescPressed: { type: Boolean },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired after the component is closed. <b>This event does not bubble.</b>\n\t\t *\n\t\t * @public\n\t\t * @event sap.ui.webcomponents.main.Popup#after-close\n\t\t */\n\t\t\"after-close\": {},\n\n\t\t/**\n\t\t * Fired whenever the popup content area is scrolled\n\t\t *\n\t\t * @private\n\t\t * @event sap.ui.webcomponents.main.Popup#scroll\n\t\t */\n\t\t\"scroll\": {},\n\t},\n};\n\nconst createBlockingStyle = () => {\n\tif (!hasStyle(\"data-ui5-popup-scroll-blocker\")) {\n\t\tcreateStyle(globalStyles, \"data-ui5-popup-scroll-blocker\");\n\t}\n};\n\ncreateBlockingStyle();\n\nconst bodyScrollingBlockers = new Set();\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n * Base class for all popup Web Components.\n *\n * If you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend\n * at least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.\n *\n * 1. The Popup class handles modality:\n * - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n * - Derivatives may call the \"blockBodyScrolling\" and \"unblockBodyScrolling\" static methods to temporarily remove scrollbars on the body\n * - Derivatives may call the \"open\" and \"close\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n *\n * 2. Provides blocking layer (relevant for modal popups only):\n * - It is in the static area\n * - Controlled by the \"open\" and \"close\" methods\n *\n * 3. The Popup class \"traps\" focus:\n * - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n *\n * 4. The Popup class automatically assigns \"z-index\"\n * - Each time a popup is opened, it gets a higher than the previously opened popup z-index\n *\n * 5. The template of this component exposes two inline partials you can override in derivatives:\n * - beforeContent (upper part of the box, useful for header/title/close button)\n * - afterContent (lower part, useful for footer/action buttons)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Popup\n * @extends sap.ui.webcomponents.base.UI5Element\n * @public\n */\nclass Popup extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic get template() {\n\t\treturn PopupTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn PopupBlockLayer;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn staticAreaStyles;\n\t}\n\n\tonEnterDOM() {\n\t\tif (!this.isOpen()) {\n\t\t\tthis._blockLayerHidden = true;\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tif (this.isOpen()) {\n\t\t\tPopup.unblockBodyScrolling(this);\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\t}\n\n\tget _displayProp() {\n\t\treturn \"block\";\n\t}\n\n\t/**\n\t * Prevents the user from interacting with the content under the block layer\n\t */\n\t_preventBlockLayerFocus(event) {\n\t\tevent.preventDefault();\n\t}\n\n\t/**\n\t * Temporarily removes scrollbars from the body\n\t * @protected\n\t */\n\tstatic blockBodyScrolling(popup) {\n\t\tbodyScrollingBlockers.add(popup);\n\n\t\tif (bodyScrollingBlockers.size !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (window.pageYOffset > 0) {\n\t\t\tdocument.body.style.top = `-${window.pageYOffset}px`;\n\t\t}\n\t\tdocument.body.classList.add(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t/**\n\t * Restores scrollbars on the body, if needed\n\t * @protected\n\t */\n\tstatic unblockBodyScrolling(popup) {\n\t\tbodyScrollingBlockers.delete(popup);\n\n\t\tif (bodyScrollingBlockers.size !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.body.classList.remove(\"ui5-popup-scroll-blocker\");\n\t\twindow.scrollTo(0, -parseFloat(document.body.style.top));\n\t\tdocument.body.style.top = \"\";\n\t}\n\n\t_scroll(e) {\n\t\tthis.fireEvent(\"scroll\", {\n\t\t\tscrollTop: e.target.scrollTop,\n\t\t\ttargetRef: e.target,\n\t\t});\n\t}\n\n\t_onkeydown(e) {\n\t\tif (e.target === this._root && isTabPrevious(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusout(e) {\n\t\t// relatedTarget is the element, which will get focus. If no such element exists, focus the root.\n\t\t// This happens after the mouse is released in order to not interrupt text selection.\n\t\tif (!e.relatedTarget) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t}\n\t}\n\n\t_onmousedown(e) {\n\t\tthis._root.removeAttribute(\"tabindex\");\n\n\t\tif (this.shadowRoot.contains(e.target)) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t} else {\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t_onmouseup() {\n\t\tthis._root.tabIndex = -1;\n\t\tif (this._shouldFocusRoot) {\n\t\t\tif (isChrome()) {\n\t\t\t\tthis._root.focus();\n\t\t\t}\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToFirst() {\n\t\tconst firstFocusable = await getFirstFocusableElement(this);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToLast() {\n\t\tconst lastFocusable = await getLastFocusableElement(this);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Use this method to focus the element denoted by \"initialFocus\", if provided, or the first focusable element otherwise.\n\t * @protected\n\t */\n\tasync applyInitialFocus() {\n\t\tawait this.applyFocus();\n\t}\n\n\t/**\n\t * Focuses the element denoted by <code>initialFocus</code>, if provided,\n\t * or the first focusable element otherwise.\n\t * @public\n\t * @async\n\t * @returns {Promise} Promise that resolves when the focus is applied\n\t */\n\tasync applyFocus() {\n\t\tawait this._waitForDomRef();\n\n\t\tconst element = this.getRootNode().getElementById(this.initialFocus)\n\t\t\t|| document.getElementById(this.initialFocus)\n\t\t\t|| await getFirstFocusableElement(this)\n\t\t\t|| this._root; // in case of no focusable content focus the root\n\n\t\tif (element) {\n\t\t\tif (element === this._root) {\n\t\t\t\telement.tabIndex = -1;\n\t\t\t}\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if the component is opened\n\t * @public\n\t * @returns {boolean}\n\t */\n\tisOpen() {\n\t\treturn this.opened;\n\t}\n\n\tisFocusWithin() {\n\t\treturn isFocusedElementWithinNode(this.shadowRoot.querySelector(\".ui5-popup-root\"));\n\t}\n\n\t/**\n\t * Shows the block layer (for modal popups only) and sets the correct z-index for the purpose of popup stacking\n\t * @protected\n\t */\n\tasync _open(preventInitialFocus) {\n\t\tconst prevented = !this.fireEvent(\"before-open\", {}, true, false);\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModal && !this.shouldHideBackdrop) {\n\t\t\t// create static area item ref for block layer\n\t\t\tthis.getStaticAreaItemDomRef();\n\t\t\tthis._blockLayerHidden = false;\n\t\t\tPopup.blockBodyScrolling(this);\n\t\t}\n\n\t\tthis._zIndex = getNextZIndex();\n\t\tthis.style.zIndex = this._zIndex;\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\tthis._show();\n\n\t\tif (!this._disableInitialFocus && !preventInitialFocus) {\n\t\t\tthis.applyInitialFocus();\n\t\t}\n\n\t\tthis._addOpenedPopup();\n\n\t\tthis.opened = true;\n\n\t\tawait renderFinished();\n\t\tthis.fireEvent(\"after-open\", {}, false, false);\n\t}\n\n\t/**\n\t * Adds the popup to the \"opened popups registry\"\n\t * @protected\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopup(this);\n\t}\n\n\t/**\n\t * Hides the block layer (for modal popups only)\n\t * @public\n\t */\n\tclose(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireEvent(\"before-close\", { escPressed }, true, false);\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModal) {\n\t\t\tthis._blockLayerHidden = true;\n\t\t\tPopup.unblockBodyScrolling(this);\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.opened = false;\n\n\t\tif (!preventRegistryUpdate) {\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tif (!this.preventFocusRestore && !preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.fireEvent(\"after-close\", {}, false, false);\n\t}\n\n\t/**\n\t * Removes the popup from the \"opened popups registry\"\n\t * @protected\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopup(this);\n\t}\n\n\t/**\n\t * Returns the focus to the previously focused element\n\t * @protected\n\t */\n\tresetFocus() {\n\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\t/**\n\t * Sets \"block\" display to the popup. The property can be overriden by derivatives of Popup.\n\t * @protected\n\t */\n\t_show() {\n\t\tthis.style.display = this._displayProp;\n\t}\n\n\t/**\n\t * Sets \"none\" display to the popup\n\t * @protected\n\t */\n\thide() {\n\t\tthis.style.display = \"none\";\n\t}\n\n\t/**\n\t * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)\n\t *\n\t * @protected\n\t * @abstract\n\t * @returns {boolean}\n\t */\n\tget isModal() {} // eslint-disable-line\n\n\t/**\n\t * Implement this getter with relevant logic in order to hide the block layer (f.e. based on a public property)\n\t *\n\t * @protected\n\t * @abstract\n\t * @returns {boolean}\n\t */\n\tget shouldHideBackdrop() {} // eslint-disable-line\n\n\t/**\n\t * Return the ID of an element in the shadow DOM that is going to label this popup\n\t *\n\t * @protected\n\t * @abstract\n\t * @returns {String}\n\t */\n\tget _ariaLabelledBy() {} // eslint-disable-line\n\n\t/**\n\t * Return the value for aria-modal for this popup\n\t *\n\t * @protected\n\t * @abstract\n\t * @returns {String}\n\t */\n\tget _ariaModal() {} // eslint-disable-line\n\n\t/**\n\t * Ensures ariaLabel is never null or empty string\n\t * @returns {String|undefined}\n\t * @protected\n\t */\n\tget _ariaLabel() {\n\t\treturn this.accessibleName || undefined;\n\t}\n\n\tget _root() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-popup-root\");\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\troot: {},\n\t\t\tcontent: {},\n\t\t\tblockLayer: {\n\t\t\t\t\"zIndex\": (this._zIndex - 1),\n\t\t\t},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-popup-root\": true,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-popup-content\": true,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport default Popup;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverPlacementType.prototype\n * @public\n */\nconst PopoverPlacementTypes = {\n\t/**\n\t * Popover will be placed at the left side of the reference element.\n\t * @public\n\t * @type {Left}\n\t */\n\tLeft: \"Left\",\n\n\t/**\n\t * Popover will be placed at the right side of the reference element.\n\t * @public\n\t * @type {Right}\n\t */\n\tRight: \"Right\",\n\n\t/**\n\t * Popover will be placed at the top of the reference element.\n\t * @public\n\t * @type {Top}\n\t */\n\tTop: \"Top\",\n\n\t/**\n\t * Popover will be placed at the bottom of the reference element.\n\t * @public\n\t * @type {Bottom}\n\t */\n\tBottom: \"Bottom\",\n};\n\n/**\n * @class\n * Types for the placement of Popover control.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverPlacementType\n * @public\n * @enum {string}\n */\nclass PopoverPlacementType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverPlacementTypes[value];\n\t}\n}\n\nPopoverPlacementType.generateTypeAccessors(PopoverPlacementTypes);\n\nexport default PopoverPlacementType;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverVerticalAlign.prototype\n * @public\n */\nconst PopoverVerticalAligns = {\n\t/**\n\t *\n\t * @public\n\t * @type {Center}\n\t */\n\tCenter: \"Center\",\n\n\t/**\n\t * Popover will be placed at the top of the reference control.\n\t * @public\n\t * @type {Top}\n\t */\n\tTop: \"Top\",\n\n\t/**\n\t * Popover will be placed at the bottom of the reference control.\n\t * @public\n\t * @type {Bottom}\n\t */\n\tBottom: \"Bottom\",\n\n\t/**\n\t * Popover will be streched\n\t * @public\n\t * @type {Stretch}\n\t */\n\tStretch: \"Stretch\",\n};\n\n/**\n * @class\n * Types for the placement of message Popover control.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverVerticalAlign\n * @public\n * @enum {string}\n */\nclass PopoverVerticalAlign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverVerticalAligns[value];\n\t}\n}\n\nPopoverVerticalAlign.generateTypeAccessors(PopoverVerticalAligns);\n\nexport default PopoverVerticalAlign;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverHorizontalAlign.prototype\n * @public\n */\nconst PopoverHorizontalAligns = {\n\t/**\n\t * Popover is centered\n\t * @public\n\t * @type {Center}\n\t */\n\tCenter: \"Center\",\n\n\t/**\n\t * Popover opens on the left side of the target\n\t * @public\n\t * @type {Left}\n\t */\n\tLeft: \"Left\",\n\n\t/**\n\t * Popover opens on the right side of the target\n\t * @public\n\t * @type {Right}\n\t */\n\tRight: \"Right\",\n\n\t/**\n\t * Popover is stretched\n\t * @public\n\t * @type {Stretch}\n\t */\n\tStretch: \"Stretch\",\n};\n\n/**\n * @class\n * Defines the horizontal alignment of <code>ui5-popover</code>\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverHorizontalAlign\n * @public\n * @enum {string}\n */\nclass PopoverHorizontalAlign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverHorizontalAligns[value];\n\t}\n}\n\nPopoverHorizontalAlign.generateTypeAccessors(PopoverHorizontalAligns);\n\nexport default PopoverHorizontalAlign;\n","import { isClickInRect } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport { getOpenedPopups, addOpenedPopup, removeOpenedPopup } from \"./OpenedPopupsRegistry.js\";\n\nlet updateInterval = null;\nconst intervalTimeout = 300;\nconst openedRegistry = [];\n\nconst repositionPopovers = event => {\n\topenedRegistry.forEach(popover => {\n\t\tpopover.instance.reposition();\n\t});\n};\n\nconst attachGlobalScrollHandler = () => {\n\tdocument.body.addEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst detachGlobalScrollHandler = () => {\n\tdocument.body.removeEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst runUpdateInterval = () => {\n\tupdateInterval = setInterval(() => {\n\t\trepositionPopovers();\n\t}, intervalTimeout);\n};\n\nconst stopUpdateInterval = () => {\n\tclearInterval(updateInterval);\n};\n\nconst attachGlobalClickHandler = () => {\n\tdocument.addEventListener(\"mousedown\", clickHandler);\n};\n\nconst detachGlobalClickHandler = () => {\n\tdocument.removeEventListener(\"mousedown\", clickHandler);\n};\n\nconst clickHandler = event => {\n\tconst openedPopups = getOpenedPopups();\n\tconst isTopPopupPopover = openedPopups[openedPopups.length - 1].instance.showAt;\n\n\tif (openedPopups.length === 0 || !isTopPopupPopover) {\n\t\treturn;\n\t}\n\n\t// loop all open popovers\n\tfor (let i = (openedPopups.length - 1); i !== -1; i--) {\n\t\tconst popup = openedPopups[i].instance;\n\n\t\t// if popup is modal, opener is clicked, popup is dialog skip closing\n\t\tif (popup.isModal || popup.isOpenerClicked(event)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isClickInRect(event, popup.getBoundingClientRect())) {\n\t\t\tbreak;\n\t\t}\n\n\t\tpopup.close();\n\t}\n};\n\nconst attachScrollHandler = popover => {\n\tpopover && popover.shadowRoot.addEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst detachScrollHandler = popover => {\n\tpopover && popover.shadowRoot.removeEventListener(\"scroll\", repositionPopovers);\n};\n\nconst addOpenedPopover = instance => {\n\tconst parentPopovers = getParentPopoversIfNested(instance);\n\n\taddOpenedPopup(instance, parentPopovers);\n\topenedRegistry.push({\n\t\tinstance,\n\t\tparentPopovers,\n\t});\n\n\tattachScrollHandler(instance);\n\n\tif (openedRegistry.length === 1) {\n\t\tattachGlobalScrollHandler();\n\t\tattachGlobalClickHandler();\n\t\trunUpdateInterval();\n\t}\n};\n\nconst removeOpenedPopover = instance => {\n\tconst popoversToClose = [instance];\n\n\tfor (let i = 0; i < openedRegistry.length; i++) {\n\t\tconst indexOfCurrentInstance = openedRegistry[i].parentPopovers.indexOf(instance);\n\t\tif (openedRegistry[i].parentPopovers.length > 0 && indexOfCurrentInstance > -1) {\n\t\t\tpopoversToClose.push(openedRegistry[i].instance);\n\t\t}\n\t}\n\n\tfor (let i = popoversToClose.length - 1; i >= 0; i--) {\n\t\tfor (let j = 0; j < openedRegistry.length; j++) {\n\t\t\tlet indexOfItemToRemove;\n\t\t\tif (popoversToClose[i] === openedRegistry[j].instance) {\n\t\t\t\tindexOfItemToRemove = j;\n\t\t\t}\n\n\t\t\tif (indexOfItemToRemove >= 0) {\n\t\t\t\tremoveOpenedPopup(openedRegistry[indexOfItemToRemove].instance);\n\t\t\t\tdetachScrollHandler(openedRegistry[indexOfItemToRemove].instance);\n\t\t\t\tconst itemToClose = openedRegistry.splice(indexOfItemToRemove, 1);\n\t\t\t\titemToClose[0].instance.close(false, true);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!openedRegistry.length) {\n\t\tdetachGlobalScrollHandler();\n\t\tdetachGlobalClickHandler();\n\t\tstopUpdateInterval();\n\t}\n};\n\nconst getRegistry = () => {\n\treturn openedRegistry;\n};\n\nconst getParentPopoversIfNested = instance => {\n\tlet currentElement = instance.parentNode;\n\tconst parentPopovers = [];\n\n\twhile (currentElement.parentNode) {\n\t\tfor (let i = 0; i < openedRegistry.length; i++) {\n\t\t\tif (currentElement && currentElement === openedRegistry[i].instance) {\n\t\t\t\tparentPopovers.push(currentElement);\n\t\t\t}\n\t\t}\n\n\t\tcurrentElement = currentElement.parentNode;\n\t}\n\n\treturn parentPopovers;\n};\n\nexport { addOpenedPopover, removeOpenedPopover, getRegistry };\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<section style=\"${styleMap(context.styles.root)}\" class=\"${classMap(context.classes.root)}\" role=\"dialog\" aria-modal=\"${ifDefined(context._ariaModal)}\" aria-label=\"${ifDefined(context._ariaLabel)}\" aria-labelledby=\"${ifDefined(context._ariaLabelledBy)}\" dir=\"${ifDefined(context.effectiveDir)}\" @keydown=${context._onkeydown} @focusout=${context._onfocusout} @mouseup=${context._onmouseup} @mousedown=${context._onmousedown}><span class=\"first-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToLast}></span><span class=\"ui5-popover-arrow\" style=\"${styleMap(context.styles.arrow)}\"></span>${ context._displayHeader ? block1(context, tags, suffix) : undefined }<div style=\"${styleMap(context.styles.content)}\" class=\"${classMap(context.classes.content)}\" @scroll=\"${context._scroll}\"><slot></slot></div>${ context._displayFooter ? block4(context, tags, suffix) : undefined }<span class=\"last-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToFirst}></span></section> `;\nconst block1 = (context, tags, suffix) => html`<header class=\"ui5-popup-header-root\" id=\"ui5-popup-header\">${ context.header.length ? block2(context, tags, suffix) : block3(context, tags, suffix) }</header>`;\nconst block2 = (context, tags, suffix) => html`<slot name=\"header\"></slot>`;\nconst block3 = (context, tags, suffix) => html`<h2 class=\"ui5-popup-header-text\">${ifDefined(context.headerText)}</h2>`;\nconst block4 = (context, tags, suffix) => html`${ context.footer.length ? block5(context, tags, suffix) : undefined }`;\nconst block5 = (context, tags, suffix) => html`<footer class=\"ui5-popup-footer-root\"><slot name=\"footer\"></slot></footer>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\BrowserScrollbar.css\",content:\"::-webkit-scrollbar:horizontal{height:var(--sapScrollBar_Dimension)}::-webkit-scrollbar:vertical{width:var(--sapScrollBar_Dimension)}::-webkit-scrollbar{background-color:var(--sapScrollBar_TrackColor)}::-webkit-scrollbar-thumb{background-color:var(--sapScrollBar_FaceColor)}::-webkit-scrollbar-thumb:hover{background-color:var(--sapScrollBar_Hover_FaceColor)}::-webkit-scrollbar-corner{background-color:var(--sapScrollBar_TrackColor)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\PopupsCommon.css\",content:\":host{display:none;position:fixed;min-width:6.25rem;background:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow2);border-radius:var(--_ui5-popup-border-radius);min-height:2rem;box-sizing:border-box}.ui5-popup-root{background:inherit;border-radius:inherit;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;outline:none}@media screen and (-ms-high-contrast:active){.ui5-popup-root{border:1px solid var(--sapPageFooter_BorderColor)}}.ui5-popup-root .ui5-popup-header-root{box-shadow:var(--_ui5_popup_header_shadow);margin-bottom:.125rem}.ui5-popup-footer-root{background:var(--sapPageFooter_Background);border-top:var(--_ui5_popup_footer_border_top);color:var(--sapPageFooter_TextColor)}.ui5-popup-footer-root,.ui5-popup-header-root,:host([header-text]) .ui5-popup-header-text{margin:0;color:var(--sapPageHeader_TextColor);font-size:1rem;font-family:\\\"72override\\\",var(--sapFontFamily);display:flex;justify-content:center;align-items:center}.ui5-popup-header-root .ui5-popup-header-text{font-weight:var(--_ui5_popup_header_footer_font_weight)}.ui5-popup-content{overflow:auto;padding:var(--_ui5_popup_content_padding);box-sizing:border-box}:host([no-padding]) .ui5-popup-content{padding:0}:host([header-text]) .ui5-popup-header-text{padding:0 .25rem;text-align:center;min-height:var(--_ui5_popup_default_header_height);max-height:var(--_ui5_popup_default_header_height);line-height:var(--_ui5_popup_default_header_height);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}:host(:not([header-text])) .ui5-popup-header-text{display:none}:host([disable-scrolling]) .ui5-popup-content{overflow:hidden}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Popover.css\",content:\".ui5-popover-arrow{pointer-events:none;display:block;width:1rem;height:1rem;position:absolute;overflow:hidden}.ui5-popover-arrow:after{content:\\\"\\\";display:block;width:.7rem;height:.7rem;background-color:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow3);transform:rotate(-45deg)}:host{max-width:calc(100% - var(--_ui5_popup_viewport_margin)*2)}:host([opened][actual-placement-type=Top]){margin-top:var(--_ui5-popover-margin-bottom)}:host([opened][actual-placement-type=Bottom]){margin-top:var(--_ui5-popover-margin-top)}:host([actual-placement-type=Bottom]) .ui5-popover-arrow{left:calc(50% - .5625rem);top:-.5rem;height:.5625rem}:host([actual-placement-type=Bottom]) .ui5-popover-arrow:after{margin:.1875rem 0 0 .1875rem}:host([actual-placement-type=Left]) .ui5-popover-arrow{top:calc(50% - .5625rem);right:-.5625rem;width:.5625rem}:host([actual-placement-type=Left]) .ui5-popover-arrow:after{margin:.1875rem 0 0 -.375rem}:host([actual-placement-type=Left]) [dir=rtl] .ui5-popover-arrow:after{margin:.1875rem .25rem 0 0}:host([actual-placement-type=Bottom]) [dir=rtl] .ui5-popover-arrow:after{margin:.1875rem .125rem 0 0}:host([actual-placement-type=Top]) [dir=rtl] .ui5-popover-arrow:after{margin:-.4375rem .125rem 0 0}:host([actual-placement-type=Top]) .ui5-popover-arrow{left:calc(50% - .5625rem);height:.5625rem;top:100%}:host([actual-placement-type=Top]) .ui5-popover-arrow:after{margin:-.375rem 0 0 .125rem}:host(:not([actual-placement-type])) .ui5-popover-arrow,:host([actual-placement-type=Right]) .ui5-popover-arrow{left:-.5625rem;top:calc(50% - .5625rem);width:.5625rem;height:1rem}:host(:not([actual-placement-type])) .ui5-popover-arrow:after,:host([actual-placement-type=Right]) .ui5-popover-arrow:after{margin:.125rem 0 0 .25rem}:host(:not([actual-placement-type])) [dir=rtl] .ui5-popover-arrow:after,:host([actual-placement-type=Right]) [dir=rtl] .ui5-popover-arrow:after{margin:.1875rem -.375rem 0 0}:host([hide-arrow]) .ui5-popover-arrow{display:none}\"}","import Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getClosedPopupParent } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport Popup from \"./Popup.js\";\nimport PopoverPlacementType from \"./types/PopoverPlacementType.js\";\nimport PopoverVerticalAlign from \"./types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport { addOpenedPopover, removeOpenedPopover } from \"./popup-utils/PopoverRegistry.js\";\n\n// Template\nimport PopoverTemplate from \"./generated/templates/PopoverTemplate.lit.js\";\n// Styles\nimport browserScrollbarCSS from \"./generated/themes/BrowserScrollbar.css.js\";\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport PopoverCss from \"./generated/themes/Popover.css.js\";\n\nconst arrowSize = 8;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-popover\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t\t/**\n\t\t * Defines the header text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>header</code> slot is provided, the <code>headerText</code> is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines on which side the component is placed at.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>Left</code></li>\n\t\t * <li><code>Right</code></li>\n\t\t * <li><code>Top</code></li>\n\t\t * <li><code>Bottom</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {PopoverPlacementType}\n\t\t * @defaultvalue \"Right\"\n\t\t * @public\n\t\t */\n\t\tplacementType: {\n\t\t\ttype: PopoverPlacementType,\n\t\t\tdefaultValue: PopoverPlacementType.Right,\n\t\t},\n\n\t\t/**\n\t\t * Determines the horizontal alignment of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>Center</code></li>\n\t\t * <li><code>Left</code></li>\n\t\t * <li><code>Right</code></li>\n\t\t * <li><code>Stretch</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {PopoverHorizontalAlign}\n\t\t * @defaultvalue \"Center\"\n\t\t * @public\n\t\t */\n\t\thorizontalAlign: {\n\t\t\ttype: PopoverHorizontalAlign,\n\t\t\tdefaultValue: PopoverHorizontalAlign.Center,\n\t\t},\n\n\t\t/**\n\t\t * Determines the vertical alignment of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>Center</code></li>\n\t\t * <li><code>Top</code></li>\n\t\t * <li><code>Bottom</code></li>\n\t\t * <li><code>Stretch</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {PopoverVerticalAlign}\n\t\t * @defaultvalue \"Center\"\n\t\t * @public\n\t\t */\n\t\tverticalAlign: {\n\t\t\ttype: PopoverVerticalAlign,\n\t\t\tdefaultValue: PopoverVerticalAlign.Center,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component should close when\n\t\t * clicking/tapping outside of the popover.\n\t\t * If enabled, it blocks any interaction with the background.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tmodal: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the block layer will be shown if modal property is set to true.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.10\n\t\t */\n\t\thideBackdrop: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component arrow is hidden.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\thideArrow: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines if there is no enough space, the component can be placed\n\t\t * over the target.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tallowTargetOverlap: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the content is scrollable.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @private\n\t\t */\n\t\tdisableScrolling: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the X translation of the arrow\n\t\t *\n\t\t * @private\n\t\t */\n\t\tarrowTranslateX: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Sets the Y translation of the arrow\n\t\t *\n\t\t * @private\n\t\t */\n\t\tarrowTranslateY: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Returns the calculated placement depending on the free space\n\t\t *\n\t\t * @private\n\t\t */\n\t\tactualPlacementType: {\n\t\t\ttype: PopoverPlacementType,\n\t\t\tdefaultValue: PopoverPlacementType.Right,\n\t\t},\n\n\t\t_maxContentHeight: {\n\t\t\ttype: Integer,\n\t\t\tnoAttribute: true,\n\t\t},\n\t\t_maxContentWidth: {\n\t\t\ttype: Integer,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t\t/**\n\t\t * Defines the header HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tfooter: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-popover</code> component displays additional information for an object\n * in a compact way and without leaving the page.\n * The Popover can contain various UI elements, such as fields, tables, images, and charts.\n * It can also include actions in the footer.\n *\n * <h3>Structure</h3>\n *\n * The popover has three main areas:\n * <ul>\n * <li>Header (optional)</li>\n * <li>Content</li>\n * <li>Footer (optional)</li>\n * </ul>\n *\n * <b>Note:</b> The <code>ui5-popover</code> is closed when the user clicks\n * or taps outside the popover\n * or selects an action within the popover. You can prevent this with the\n * <code>modal</code> property.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Popover.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Popover\n * @extends Popup\n * @tagname ui5-popover\n * @since 1.0.0-rc.6\n * @public\n */\nclass Popover extends Popup {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResize = this.handleResize.bind(this);\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn [browserScrollbarCSS, PopupsCommonCss, PopoverCss];\n\t}\n\n\tstatic get template() {\n\t\treturn PopoverTemplate;\n\t}\n\n\tstatic get VIEWPORT_MARGIN() {\n\t\treturn 10; // px\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResize);\n\t}\n\n\tisOpenerClicked(event) {\n\t\tconst target = event.target;\n\t\treturn target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener) || event.composedPath().indexOf(this._opener) > -1;\n\t}\n\n\t/**\n\t * Shows the popover.\n\t * @param {HTMLElement} opener the element that the popover is shown at\n\t * @param {boolean} preventInitialFocus prevents applying the focus inside the popover\n\t * @public\n\t * @async\n\t * @returns {Promise} Resolved when the popover is open\n\t */\n\tasync showAt(opener, preventInitialFocus = false) {\n\t\tif (!opener || this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opener = opener;\n\t\tthis._openerRect = opener.getBoundingClientRect();\n\n\t\tawait super._open(preventInitialFocus);\n\t}\n\n\t/**\n\t * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)\n\t * @private\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopover(this);\n\t}\n\n\t/**\n\t * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)\n\t * @private\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopover(this);\n\t}\n\n\tshouldCloseDueToOverflow(placement, openerRect) {\n\t\tconst threshold = 32;\n\t\tconst limits = {\n\t\t\t\"Right\": openerRect.right,\n\t\t\t\"Left\": openerRect.left,\n\t\t\t\"Top\": openerRect.top,\n\t\t\t\"Bottom\": openerRect.bottom,\n\t\t};\n\n\t\tconst closedPopupParent = getClosedPopupParent(this._opener);\n\t\tlet overflowsBottom = false;\n\t\tlet overflowsTop = false;\n\n\t\tif (closedPopupParent.showAt) {\n\t\t\tconst contentRect = closedPopupParent.contentDOM.getBoundingClientRect();\n\t\t\toverflowsBottom = openerRect.top > (contentRect.top + contentRect.height);\n\t\t\toverflowsTop = (openerRect.top + openerRect.height) < contentRect.top;\n\t\t}\n\n\t\treturn (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;\n\t}\n\n\tshouldCloseDueToNoOpener(openerRect) {\n\t\treturn openerRect.top === 0\n\t\t\t&& openerRect.bottom === 0\n\t\t\t&& openerRect.left === 0\n\t\t\t&& openerRect.right === 0;\n\t}\n\n\thandleResize() {\n\t\tif (this.opened) {\n\t\t\tthis.reposition();\n\t\t}\n\t}\n\n\treposition() {\n\t\tthis._show();\n\t}\n\n\t_show() {\n\t\tlet placement;\n\t\tconst popoverSize = this.getPopoverSize();\n\n\t\tif (popoverSize.width === 0 || popoverSize.height === 0) {\n\t\t\t// size can not be determined properly at this point, popover will be shown with the next reposition\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isOpen()) {\n\t\t\t// update opener rect if it was changed during the popover being opened\n\t\t\tthis._openerRect = this._opener.getBoundingClientRect();\n\t\t}\n\n\t\tif (this.shouldCloseDueToNoOpener(this._openerRect) && this.isFocusWithin()) {\n\t\t\t// reuse the old placement as the opener is not available,\n\t\t\t// but keep the popover open as the focus is within\n\t\t\tplacement = this._oldPlacement;\n\t\t} else {\n\t\t\tplacement = this.calcPlacement(this._openerRect, popoverSize);\n\t\t}\n\n\t\tconst stretching = this.horizontalAlign === PopoverHorizontalAlign.Stretch;\n\n\t\tif (this._preventRepositionAndClose) {\n\t\t\treturn this.close();\n\t\t}\n\n\t\tthis._oldPlacement = placement;\n\t\tthis.actualPlacementType = placement.placementType;\n\n\t\tlet left = clamp(\n\t\t\tthis._left,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientWidth - popoverSize.width - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacementType === PopoverPlacementType.Right) {\n\t\t\tleft = Math.max(left, this._left);\n\t\t}\n\n\t\tlet top = clamp(\n\t\t\tthis._top,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientHeight - popoverSize.height - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacementType === PopoverPlacementType.Bottom) {\n\t\t\ttop = Math.max(top, this._top);\n\t\t}\n\n\t\tlet { arrowX, arrowY } = placement;\n\t\tconst isVertical = this.actualPlacementType === PopoverPlacementType.Top\n\t\t\t|| this.actualPlacementType === PopoverPlacementType.Bottom;\n\n\t\tif (isVertical) {\n\t\t\tconst popoverOnLeftBorderOffset = Popover.VIEWPORT_MARGIN - this._left;\n\t\t\tconst popoverOnRightBorderOffset = this._left + popoverSize.width + Popover.VIEWPORT_MARGIN - document.documentElement.clientWidth;\n\t\t\tif (popoverOnLeftBorderOffset > 0) {\n\t\t\t\tarrowX -= popoverOnLeftBorderOffset;\n\t\t\t} else if (popoverOnRightBorderOffset > 0) {\n\t\t\t\tarrowX += popoverOnRightBorderOffset;\n\t\t\t}\n\t\t}\n\t\tthis.arrowTranslateX = Math.round(arrowX);\n\n\t\tif (!isVertical) {\n\t\t\tconst popoverOnTopBorderOffset = Popover.VIEWPORT_MARGIN - this._top;\n\t\t\tconst popoverOnBottomBorderOffset = this._top + popoverSize.height + Popover.VIEWPORT_MARGIN - document.documentElement.clientHeight;\n\t\t\tif (popoverOnTopBorderOffset > 0) {\n\t\t\t\tarrowY -= popoverOnTopBorderOffset;\n\t\t\t} else if (popoverOnBottomBorderOffset > 0) {\n\t\t\t\tarrowY += popoverOnBottomBorderOffset;\n\t\t\t}\n\t\t}\n\t\tthis.arrowTranslateY = Math.round(arrowY);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\t\tsuper._show();\n\n\t\tif (stretching && this._width) {\n\t\t\tthis.style.width = this._width;\n\t\t}\n\t}\n\n\tgetPopoverSize() {\n\t\tif (!this.opened) {\n\t\t\tObject.assign(this.style, {\n\t\t\t\tdisplay: \"block\",\n\t\t\t\ttop: \"-10000px\",\n\t\t\t\tleft: \"-10000px\",\n\t\t\t});\n\t\t}\n\n\t\tconst rect = this.getBoundingClientRect(),\n\t\t\twidth = rect.width,\n\t\t\theight = rect.height;\n\n\t\treturn { width, height };\n\t}\n\n\tget contentDOM() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-popup-content\");\n\t}\n\n\tget arrowDOM() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-popover-arrow\");\n\t}\n\n\tcalcPlacement(targetRect, popoverSize) {\n\t\tlet left = 0;\n\t\tlet top = 0;\n\t\tconst allowTargetOverlap = this.allowTargetOverlap;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tlet maxHeight = clientHeight;\n\t\tlet maxWidth = clientWidth;\n\n\t\tlet width = \"\";\n\t\tlet height = \"\";\n\n\t\tconst placementType = this.getActualPlacementType(targetRect, popoverSize);\n\n\t\tthis._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placementType, targetRect);\n\n\t\tconst isVertical = placementType === PopoverPlacementType.Top\n\t\t\t|| placementType === PopoverPlacementType.Bottom;\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {\n\t\t\tpopoverSize.width = targetRect.width;\n\t\t\twidth = `${targetRect.width}px`;\n\t\t} else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {\n\t\t\tpopoverSize.height = targetRect.height;\n\t\t\theight = `${targetRect.height}px`;\n\t\t}\n\n\t\tthis._width = width;\n\t\tthis._height = height;\n\n\t\tconst arrowOffset = this.hideArrow ? 0 : arrowSize;\n\n\t\t// calc popover positions\n\t\tswitch (placementType) {\n\t\tcase PopoverPlacementType.Top:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxHeight = targetRect.top - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Bottom:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\ttop = Math.max(Math.min(targetRect.bottom + arrowOffset, clientHeight - popoverSize.height), 0);\n\t\t\t} else {\n\t\t\t\ttop = targetRect.bottom + arrowOffset;\n\t\t\t\tmaxHeight = clientHeight - targetRect.bottom - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Left:\n\t\t\tleft = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxWidth = targetRect.left - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Right:\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\tleft = Math.max(Math.min(targetRect.left + targetRect.width + arrowOffset, clientWidth - popoverSize.width), 0);\n\t\t\t} else {\n\t\t\t\tleft = targetRect.left + targetRect.width + arrowOffset;\n\t\t\t\tmaxWidth = clientWidth - targetRect.right - arrowOffset;\n\t\t\t}\n\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\t\t\tbreak;\n\t\t}\n\n\t\t// correct popover positions\n\t\tif (isVertical) {\n\t\t\tif (popoverSize.width > clientWidth || left < 0) {\n\t\t\t\tleft = 0;\n\t\t\t} else if (left + popoverSize.width > clientWidth) {\n\t\t\t\tleft -= left + popoverSize.width - clientWidth;\n\t\t\t}\n\t\t} else {\n\t\t\tif (popoverSize.height > clientHeight || top < 0) { // eslint-disable-line\n\t\t\t\ttop = 0;\n\t\t\t} else if (top + popoverSize.height > clientHeight) {\n\t\t\t\ttop -= top + popoverSize.height - clientHeight;\n\t\t\t}\n\t\t}\n\n\t\tlet maxContentHeight = maxHeight;\n\n\t\tif (this._displayHeader) {\n\t\t\tconst headerDomRef = this.shadowRoot.querySelector(\".ui5-popup-header-root\")\n\t\t\t\t|| this.shadowRoot.querySelector(\".ui5-popup-header-text\");\n\n\t\t\tif (headerDomRef) {\n\t\t\t\tmaxContentHeight = maxHeight - headerDomRef.offsetHeight;\n\t\t\t}\n\t\t}\n\n\t\tthis._maxContentHeight = Math.round(maxContentHeight - Popover.VIEWPORT_MARGIN);\n\t\tthis._maxContentWidth = Math.round(maxWidth - Popover.VIEWPORT_MARGIN);\n\n\t\tconst arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical);\n\n\t\tif (this._left === undefined || Math.abs(this._left - left) > 1.5) {\n\t\t\tthis._left = Math.round(left);\n\t\t}\n\n\t\tif (this._top === undefined || Math.abs(this._top - top) > 1.5) {\n\t\t\tthis._top = Math.round(top);\n\t\t}\n\n\t\treturn {\n\t\t\tarrowX: arrowPos.x,\n\t\t\tarrowY: arrowPos.y,\n\t\t\ttop: this._top,\n\t\t\tleft: this._left,\n\t\t\tplacementType,\n\t\t};\n\t}\n\n\t/**\n\t * Calculates the position for the arrow.\n\t * @private\n\t * @param targetRect BoundingClientRect of the target element\n\t * @param popoverSize Width and height of the popover\n\t * @param left Left offset of the popover\n\t * @param top Top offset of the popover\n\t * @param isVertical if the popover is positioned vertically to the target element\n\t * @returns {{x: number, y: number}} Arrow's coordinates\n\t */\n\tgetArrowPosition(targetRect, popoverSize, left, top, isVertical) {\n\t\tlet arrowXCentered = this.horizontalAlign === PopoverHorizontalAlign.Center || this.horizontalAlign === PopoverHorizontalAlign.Stretch;\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Right && left <= targetRect.left) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Left && left + popoverSize.width >= targetRect.left + targetRect.width) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tlet arrowTranslateX = 0;\n\t\tif (isVertical && arrowXCentered) {\n\t\t\tarrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;\n\t\t}\n\n\t\tlet arrowTranslateY = 0;\n\t\tif (!isVertical) {\n\t\t\tarrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;\n\t\t}\n\n\t\treturn {\n\t\t\tx: Math.round(arrowTranslateX),\n\t\t\ty: Math.round(arrowTranslateY),\n\t\t};\n\t}\n\n\t/**\n\t * Fallbacks to new placement, prioritizing <code>Left</code> and <code>Right</code> placements.\n\t * @private\n\t */\n\tfallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) {\n\t\tif (targetRect.left > popoverSize.width) {\n\t\t\treturn PopoverPlacementType.Left;\n\t\t}\n\n\t\tif (clientWidth - targetRect.right > targetRect.left) {\n\t\t\treturn PopoverPlacementType.Right;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom > popoverSize.height) {\n\t\t\treturn PopoverPlacementType.Bottom;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\treturn PopoverPlacementType.Top;\n\t\t}\n\t}\n\n\tgetActualPlacementType(targetRect, popoverSize) {\n\t\tconst placementType = this.placementType;\n\t\tlet actualPlacementType = placementType;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tswitch (placementType) {\n\t\tcase PopoverPlacementType.Top:\n\t\t\tif (targetRect.top < popoverSize.height\n\t\t\t\t&& targetRect.top < clientHeight - targetRect.bottom) {\n\t\t\t\tactualPlacementType = PopoverPlacementType.Bottom;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Bottom:\n\t\t\tif (clientHeight - targetRect.bottom < popoverSize.height\n\t\t\t\t&& clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\t\tactualPlacementType = PopoverPlacementType.Top;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Left:\n\t\t\tif (targetRect.left < popoverSize.width) {\n\t\t\t\tactualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Right:\n\t\t\tif (clientWidth - targetRect.right < popoverSize.width) {\n\t\t\t\tactualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\treturn actualPlacementType;\n\t}\n\n\tgetVerticalLeft(targetRect, popoverSize) {\n\t\tlet left;\n\n\t\tswitch (this.horizontalAlign) {\n\t\tcase PopoverHorizontalAlign.Center:\n\t\tcase PopoverHorizontalAlign.Stretch:\n\n\t\t\tleft = targetRect.left - (popoverSize.width - targetRect.width) / 2;\n\t\t\tbreak;\n\t\tcase PopoverHorizontalAlign.Left:\n\t\t\tleft = targetRect.left;\n\t\t\tbreak;\n\t\tcase PopoverHorizontalAlign.Right:\n\t\t\tleft = targetRect.right - popoverSize.width;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn left;\n\t}\n\n\tgetHorizontalTop(targetRect, popoverSize) {\n\t\tlet top;\n\n\t\tswitch (this.verticalAlign) {\n\t\tcase PopoverVerticalAlign.Center:\n\t\tcase PopoverVerticalAlign.Stretch:\n\t\t\ttop = targetRect.top - (popoverSize.height - targetRect.height) / 2;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Top:\n\t\t\ttop = targetRect.top;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Bottom:\n\t\t\ttop = targetRect.bottom - popoverSize.height;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn top;\n\t}\n\n\tget isModal() { // Required by Popup.js\n\t\treturn this.modal;\n\t}\n\n\tget shouldHideBackdrop() { // Required by Popup.js\n\t\treturn this.hideBackdrop;\n\t}\n\n\tget _ariaLabelledBy() { // Required by Popup.js\n\t\treturn this.accessibleName ? undefined : \"ui5-popup-header\";\n\t}\n\n\tget _ariaModal() { // Required by Popup.js\n\t\treturn true;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\t...super.styles,\n\t\t\tcontent: {\n\t\t\t\t\"max-height\": `${this._maxContentHeight}px`,\n\t\t\t\t\"max-width\": `${this._maxContentWidth}px`,\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\ttransform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Hook for descendants to hide header.\n\t */\n\tget _displayHeader() {\n\t\treturn this.header.length || this.headerText;\n\t}\n\n\t/**\n\t * Hook for descendants to hide footer.\n\t */\n\tget _displayFooter() {\n\t\treturn true;\n\t}\n}\n\nPopover.define();\n\nexport default Popover;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-input-root\" @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\"><div class=\"ui5-input-content\"><input id=\"${ifDefined(context._id)}-inner\" class=\"ui5-input-inner\" style=\"${styleMap(context.styles.innerInput)}\" type=\"${ifDefined(context.inputType)}\" inner-input ?inner-input-with-icon=\"${context.icon.length}\" ?disabled=\"${context.disabled}\" ?readonly=\"${context._readonly}\" .value=\"${ifDefined(context.value)}\" placeholder=\"${ifDefined(context._placeholder)}\" maxlength=\"${ifDefined(context.maxlength)}\" role=\"${ifDefined(context.accInfo.input.role)}\" aria-controls=\"${ifDefined(context.accInfo.input.ariaControls)}\" ?aria-invalid=\"${context.accInfo.input.ariaInvalid}\" aria-haspopup=\"${ifDefined(context.accInfo.input.ariaHasPopup)}\" aria-describedby=\"${ifDefined(context.accInfo.input.ariaDescribedBy)}\" aria-roledescription=\"${ifDefined(context.accInfo.input.ariaRoledescription)}\" aria-autocomplete=\"${ifDefined(context.accInfo.input.ariaAutoComplete)}\" aria-expanded=\"${ifDefined(context.accInfo.input.ariaExpanded)}\" aria-label=\"${ifDefined(context.accInfo.input.ariaLabel)}\" aria-required=\"${ifDefined(context.required)}\" @input=\"${context._handleInput}\" @change=\"${context._handleChange}\" @keydown=\"${context._onkeydown}\" @keyup=\"${context._onkeyup}\" @click=${context._click} @focusin=${context.innerFocusIn} data-sap-focus-ref step=\"${ifDefined(context.nativeInputAttributes.step)}\" min=\"${ifDefined(context.nativeInputAttributes.min)}\" max=\"${ifDefined(context.nativeInputAttributes.max)}\" />${ context.readonly ? block1(context, tags, suffix) : undefined }${ context.icon.length ? block2(context, tags, suffix) : undefined }<div class=\"ui5-input-value-state-icon\">${unsafeHTML(context._valueStateInputIcon)}</div>${ context.showSuggestions ? block3(context, tags, suffix) : undefined }${ context.accInfo.input.ariaDescription ? block4(context, tags, suffix) : undefined }${ context.hasValueState ? block5(context, tags, suffix) : undefined }</div><slot name=\"formSupport\"></slot></div>`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-readonly-icon\" name=\"not-editable\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<div class=\"ui5-input-icon-root\"><slot name=\"icon\"></slot></div>`;\nconst block3 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-suggestionsText\" class=\"ui5-hidden-text\">${ifDefined(context.suggestionsText)}</span><span id=\"${ifDefined(context._id)}-selectionText\" class=\"ui5-hidden-text\" aria-live=\"polite\" role=\"status\"></span><span id=\"${ifDefined(context._id)}-suggestionsCount\" class=\"ui5-hidden-text\" aria-live=\"polite\">${ifDefined(context.availableSuggestionsCount)}</span>`;\nconst block4 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-descr\" class=\"ui5-hidden-text\">${ifDefined(context.accInfo.input.ariaDescription)}</span>`;\nconst block5 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-valueStateDesc\" class=\"ui5-hidden-text\">${ifDefined(context.ariaValueStateHiddenText)}</span>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`${ context.showSuggestions ? block1(context, tags, suffix) : undefined }${ context.hasValueStateMessage ? block17(context, tags, suffix) : undefined } `;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-responsive-popover\", tags, suffix)} class=\"${classMap(context.classes.popover)}\" hide-arrow _disable-initial-focus placement-type=\"Bottom\" horizontal-align=\"Left\" style=\"${styleMap(context.styles.suggestionsPopover)}\" @ui5-after-open=\"${ifDefined(context._afterOpenPopover)}\" @ui5-after-close=\"${ifDefined(context._afterClosePopover)}\" @ui5-scroll=\"${ifDefined(context._scroll)}\">${ context._isPhone ? block2(context, tags, suffix) : undefined }${ !context._isPhone ? block7(context, tags, suffix) : undefined }<${scopeTag(\"ui5-list\", tags, suffix)} separators=\"${ifDefined(context.suggestionSeparators)}\">${ repeat(context.suggestionsTexts, (item, index) => item._id || index, (item, index) => block12(item, index, context, tags, suffix)) }</${scopeTag(\"ui5-list\", tags, suffix)}>${ context._isPhone ? block16(context, tags, suffix) : undefined }</${scopeTag(\"ui5-responsive-popover\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<div slot=\"header\" class=\"ui5-responsive-popover-header\"><div class=\"row\"><span>${ifDefined(context._headerTitleText)}</span><${scopeTag(\"ui5-button\", tags, suffix)} class=\"ui5-responsive-popover-close-btn\" icon=\"decline\" design=\"Transparent\" @click=\"${context._closeRespPopover}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div><div class=\"row\"><div class=\"input-root-phone\"><input class=\"ui5-input-inner-phone\" type=\"${ifDefined(context.inputType)}\" .value=\"${ifDefined(context.value)}\" inner-input placeholder=\"${ifDefined(context.placeholder)}\" @input=\"${context._handleInput}\" @change=\"${context._handleChange}\" /></div></div>${ context.hasValueStateMessage ? block3(context, tags, suffix) : undefined }</div>`;\nconst block3 = (context, tags, suffix) => html`<div class=\"row ${classMap(context.classes.popoverValueState)}\" style=\"${styleMap(context.styles.suggestionPopoverHeader)}\">${ context.shouldDisplayDefaultValueStateMessage ? block4(context, tags, suffix) : block5(context, tags, suffix) }</div>`;\nconst block4 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block5 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block6(item, index, context, tags, suffix)) }`;\nconst block6 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\nconst block7 = (context, tags, suffix) => html`${ context.hasValueStateMessage ? block8(context, tags, suffix) : undefined }`;\nconst block8 = (context, tags, suffix) => html`<div slot=\"header\" ?focused=${context._isValueStateFocused} class=\"ui5-responsive-popover-header ${classMap(context.classes.popoverValueState)}\" style=${styleMap(context.styles.suggestionPopoverHeader)}><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-value-state-message-icon\" name=\"${ifDefined(context._valueStateMessageInputIcon)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.shouldDisplayDefaultValueStateMessage ? block9(context, tags, suffix) : block10(context, tags, suffix) }</div>`;\nconst block9 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block10 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block11(item, index, context, tags, suffix)) }`;\nconst block11 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\nconst block12 = (item, index, context, tags, suffix) => html`${ item.groupItem ? block13(item, index, context, tags, suffix) : block14(item, index, context, tags, suffix) }`;\nconst block13 = (item, index, context, tags, suffix) => html`<${scopeTag(\"ui5-li-groupheader\", tags, suffix)} data-ui5-key=\"${ifDefined(item.key)}\">${unsafeHTML(item.text)}</${scopeTag(\"ui5-li-groupheader\", tags, suffix)}>`;\nconst block14 = (item, index, context, tags, suffix) => html`<${scopeTag(\"ui5-li-suggestion-item\", tags, suffix)} image=\"${ifDefined(item.image)}\" icon=\"${ifDefined(item.icon)}\" additional-text=\"${ifDefined(item.additionalText)}\" type=\"${ifDefined(item.type)}\" additional-text-state=\"${ifDefined(item.additionalTextState)}\" @ui5-_item-press=\"${ifDefined(item.fnOnSuggestionItemPress)}\" data-ui5-key=\"${ifDefined(item.key)}\">${unsafeHTML(item.text)}${ item.description ? block15(item, index, context, tags, suffix) : undefined }</${scopeTag(\"ui5-li-suggestion-item\", tags, suffix)}>`;\nconst block15 = (item, index, context, tags, suffix) => html`<span slot=\"richDescription\">${unsafeHTML(item.description)}</span>`;\nconst block16 = (context, tags, suffix) => html`<div slot=\"footer\" class=\"ui5-responsive-popover-footer\"><${scopeTag(\"ui5-button\", tags, suffix)} design=\"Transparent\" @click=\"${context._closeRespPopover}\">OK</${scopeTag(\"ui5-button\", tags, suffix)}></div>`;\nconst block17 = (context, tags, suffix) => html`<${scopeTag(\"ui5-popover\", tags, suffix)} skip-registry-update _disable-initial-focus prevent-focus-restore no-padding hide-arrow class=\"ui5-valuestatemessage-popover\" placement-type=\"Bottom\" horizontal-align=\"Left\"><div slot=\"header\" class=\"${classMap(context.classes.popoverValueState)}\" style=\"${styleMap(context.styles.popoverHeader)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-value-state-message-icon\" name=\"${ifDefined(context._valueStateMessageInputIcon)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.shouldDisplayDefaultValueStateMessage ? block18(context, tags, suffix) : block19(context, tags, suffix) }</div></${scopeTag(\"ui5-popover\", tags, suffix)}>`;\nconst block18 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block19 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block20(item, index, context, tags, suffix)) }`;\nconst block20 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Input.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host(:not([hidden])){display:inline-block}:host{width:var(--_ui5_input_width);min-width:var(--_ui5_input_width);height:var(--_ui5_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);font-style:normal;background-color:var(--_ui5-input-background-color);border:var(--_ui5-input-border);border-radius:var(--_ui5-input-border-radius);box-sizing:border-box;line-height:normal;letter-spacing:normal;word-spacing:normal;text-align:start;transition:var(--_ui5-input-transition);background-image:var(--_ui5-input-background-image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host([focused]){border-color:var(--_ui5-input-focused-border-color);background-color:var(--sapField_Focus_Background);outline:var(--_ui5-input-focus-outline);outline-offset:var(--_ui5-input-focus-outline-offset);box-shadow:var(--_ui5-input-focus-box-shadow)}.ui5-input-root:before{content:\\\"\\\";position:absolute;width:calc(100% - 2px);left:1px;bottom:-2px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;height:var(--_ui5-input-bottom-border-height);transition:var(--_ui5-input-transition);background-color:var(--_ui5-input-bottom-border-color)}:host([value-state]:not([value-state=None])[focused]){outline:var(--_ui5-input-value-state-outline);outline-offset:var(--_ui5-input-value-state-outline-offset)}.ui5-input-root{width:100%;height:100%;position:relative;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit;transition:border-color .2s ease-in-out}:host([disabled]){opacity:var(--_ui5_input_disabled_opacity);cursor:default;pointer-events:none;background-color:var(--_ui5-input-disabled-background);border-color:var(--_ui5_input_disabled_border_color)}:host([disabled]) .ui5-input-root:before,:host([readonly]) .ui5-input-root:before{content:none}[inner-input]{background:transparent;color:inherit;border:none;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;padding:var(--_ui5_input_inner_padding);box-sizing:border-box;min-width:inherit;width:100%;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;word-spacing:inherit;text-align:inherit}[inner-input][inner-input-with-icon]{padding:var(--_ui5_input_inner_padding_with_icon)}.ui5-input-readonly-icon{display:var(--_ui5_input_readonly_icon_display);padding:var(--_ui5_input_icon_padding);margin-right:.125rem;align-self:center}.ui5-input-value-state-icon{height:100%;display:var(--_ui5-input-value-state-icon-display);align-items:center}.ui5-input-value-state-icon>svg{margin-right:8px}[inner-input]::selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host([disabled]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-webkit-input-placeholder{visibility:hidden}[inner-input]::-webkit-input-placeholder{font-style:var(--_ui5-input-placeholder-style);color:var(--_ui5-input-placeholder-color);padding-right:.125rem}:host([disabled]) [inner-input]::-moz-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-moz-placeholder{visibility:hidden}[inner-input]::-moz-placeholder{font-style:var(--_ui5-input-placeholder-style);color:var(--sapField_PlaceholderTextColor);padding-right:.125rem}:host([disabled]) [inner-input]:-ms-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]:-ms-input-placeholder{visibility:hidden}[inner-input]:-ms-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor);padding-right:.125rem}:host([value-state=Error]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Error]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Warning]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Warning]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Success]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Success]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Information]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-success-information-border-botom-color)}:host([value-state=Information]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-success-information-border-botom-color)}.ui5-input-content{height:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:flex-end;overflow:hidden;outline:none;background:transparent;color:inherit}:host([readonly]){border-color:var(--_ui5_input_readonly_border_color);background:var(--_ui5-input-readonly-background)}:host(:not([value-state]):not([readonly]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-hover-box-shadow);background-image:var(--_ui5-input-background-image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host(:not([value-state]):not([readonly])[focused]:hover),:host([value-state=None]:not([readonly])[focused]:hover){border-color:var(--_ui5-input-focused-border-color);box-shadow:var(--_ui5-input-focus-box-shadow)}:host(:not([value-state]):not([readonly]):hover){border:var(--_ui5-input-hover-border)}:host([focused]) .ui5-input-root:before{content:none}:host([value-state=None]:not([readonly]):hover){background-color:var(--sapField_Hover_Background);border:var(--_ui5-input-hover-border);box-shadow:var(--_ui5-input-hover-box-shadow)}:host([value-state]:not([value-state=None])){border-width:var(--_ui5_input_state_border_width)}:host([value-state=Error]) [inner-input],:host([value-state=Warning]) [inner-input]{font-style:var(--_ui5_input_error_warning_font_style)}:host([value-state=Error]) [inner-input]{font-weight:var(--_ui5_input_error_font_weight)}:host([value-state=Error]:not([readonly])){background-color:var(--sapField_InvalidBackground);border-color:var(--_ui5-input-value-state-error-border-color);background-image:var(--_ui5-input-error-background-image);background-size:100% var(--sapField_InvalidBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Error][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-error-background);border-color:var(--_ui5-input-focused-value-state-error-border-color);box-shadow:var(--_ui5-input-value-state-error-focus-box-shadow)}:host([value-state=Error]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Error]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-error-hover-box-shadow)}:host([value-state=Error]:not([readonly]):not([disabled])),:host([value-state=Information]:not([readonly]):not([disabled])),:host([value-state=Warning]:not([readonly]):not([disabled])){border-style:var(--_ui5_input_error_warning_border_style)}:host([value-state=Warning]:not([readonly])){background-color:var(--sapField_WarningBackground);border-color:var(--_ui5-input-value-state-warning-border-color);background-image:var(--_ui5-input-warning-background-image);background-size:100% var(--sapField_WarningBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Warning][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-warning-background);border-color:var(--_ui5-input-focused-value-state-warning-border-color);box-shadow:var(--_ui5-input-value-state-warning-focus-box-shadow)}:host([value-state=Warning]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Warning]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-warning-hover-box-shadow)}:host([value-state=Success]:not([readonly])){background-color:var(--sapField_SuccessBackground);border-color:var(--_ui5-input-value-state-success-border-color);border-width:var(--_ui5-input-value-state-success-border-width);background-image:var(--_ui5-input-success-background-image);background-size:100% var(--sapField_SuccessBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Success][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-success-background);border-color:var(--_ui5-input-focused-value-state-success-border-color);box-shadow:var(--_ui5-input-value-state-success-focus-box-shadow)}:host([value-state=Success]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Success]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-success-hover-box-shadow)}:host([value-state=Information]:not([readonly])){background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-input-value-state-information-border-color);border-width:var(--_ui5-input-information_border_width);background-image:var(--_ui5-input-information-background-image);background-size:100% var(--sapField_InformationBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Information][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-information-background);border-color:var(--_ui5-input-focused-value-state-information-border-color);box-shadow:var(--_ui5-input-focus-box-shadow)}:host([value-state=Information]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-success-information-border-botom-color)}:host([value-state=Information]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-information-hover-box-shadow)}[inner-input]::-ms-clear{height:0;width:0}.ui5-input-icon-root{min-width:var(--_ui5_input_icon_min_width);height:100%;display:flex;justify-content:center;align-items:center}::slotted([ui5-icon][slot=icon]){padding:var(--_ui5_input_icon_padding)}[inner-input]::-webkit-inner-spin-button,[inner-input]::-webkit-outer-spin-button{-webkit-appearance:inherit;margin:inherit}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\ResponsivePopoverCommon.css\",content:\".input-root-phone{flex:1;height:var(--_ui5_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);background-color:var(--_ui5-input-background-color);border:var(--_ui5-input-border);border-radius:var(--_ui5-input-border-radius);box-sizing:border-box}.input-root-phone [inner-input]{padding:0 .5rem;width:100%;height:100%}.input-root-phone [inner-input]:focus{border-color:var(--_ui5-input-focused-border-color);background-color:var(--sapField_Focus_Background);box-shadow:var(--_ui5-input-focus-box-shadow)}.input-root-phone[value-state]:not([value-state=None])[focused]{outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);outline-offset:-4px}.input-root-phone [value-state=Error] [input-icon][data-ui5-compact-size],.input-root-phone [value-state=Success] [input-icon][data-ui5-compact-size],.input-root-phone [value-state=Warning] [input-icon][data-ui5-compact-size]{padding:.1875rem .5rem}[inner-input]{background:transparent;color:inherit;border:none;font-style:normal;-webkit-appearance:none;-moz-appearance:textfield;line-height:normal;padding:var(--_ui5_input_inner_padding);box-sizing:border-box;min-width:3rem;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;border-radius:var(--_ui5-input-border-radius)}[inner-input]::-moz-selection,[inner-input]::selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}[inner-input]::-webkit-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}[inner-input]::-moz-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}[inner-input]:-ms-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}.input-root-phone[value-state]:not([value-state=None]){border-width:var(--_ui5_input_state_border_width)}.input-root-phone[value-state=Error] [inner-input],.input-root-phone[value-state=Warning] [inner-input]{font-style:var(--_ui5_input_error_warning_font_style)}.input-root-phone[value-state=Error] [inner-input]{font-weight:var(--_ui5_input_error_font_weight)}.input-root-phone[value-state=Error]:not([readonly]){background-color:var(--sapField_InvalidBackground);border-color:var(--sapField_InvalidColor);background-image:var(--_ui5-input-error-background-image);background-size:100% var(--sapField_InvalidBorderWidth);background-repeat:repeat-x;background-position:bottom}.input-root-phone[value-state=Error]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-input-focused-value-state-error-background);border-color:var(--_ui5-input-focused-value-state-error-border-color);box-shadow:var(--_ui5-input-value-state-error-focus-box-shadow)}.input-root-phone[value-state=Error]:not([readonly]):not([disabled]),.input-root-phone[value-state=Warning]:not([readonly]):not([disabled]){border-style:var(--_ui5_input_error_warning_border_style)}.input-root-phone[value-state=Warning]:not([readonly]){background-color:var(--sapField_WarningBackground);border-color:var(--sapField_WarningColor);background-image:var(--_ui5-input-warning-background-image);background-size:100% var(--sapField_WarningBorderWidth);background-repeat:repeat-x;background-position:bottom}.input-root-phone[value-state=Warning]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-input-focused-value-state-warning-background);border-color:var(--_ui5-input-focused-value-state-warning-border-color);box-shadow:var(--_ui5-input-value-state-warning-focus-box-shadow)}.input-root-phone[value-state=Success]:not([readonly]){background-color:var(--sapField_SuccessBackground);border-color:var(--sapField_SuccessColor);background-image:var(--_ui5-input-success-background-image);background-size:100% var(--sapField_SuccessBorderWidth);background-repeat:repeat-x;background-position:bottom}.input-root-phone[value-state=Success]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-input-focused-value-state-success-background);border-color:var(--_ui5-input-focused-value-state-success-border-color);box-shadow:var(--_ui5-input-value-state-success-focus-box-shadow)}.input-root-phone[value-state=Information]:not([readonly]){background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-input-value-state-information-border-color);border-width:var(--_ui5-input-information_border_width);background-image:var(--_ui5-input-information-background-image);background-size:100% var(--sapField_InformationBorderWidth);background-repeat:repeat-x;background-position:bottom}.input-root-phone[value-state=Information]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-input-focused-value-state-information-background);border-color:var(--_ui5-input-focused-value-state-information-border-color);box-shadow:var(--_ui5-input-focus-box-shadow)}.input-root-phone[value-state=None]:not([readonly]){background-image:var(--_ui5-input-background-image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}[inner-input]::-ms-clear{height:0;width:0}.ui5-multi-combobox-toggle-button{margin-left:.5rem}.ui5-responsive-popover-header{width:100%;min-height:2.5rem;display:flex;flex-direction:column}.ui5-responsive-popover-header-text{width:calc(100% - var(--_ui5_button_base_min_width))}.ui5-responsive-popover-header .row{box-sizing:border-box;padding:.25rem 1rem;min-height:2.5rem;display:flex;justify-content:center;align-items:center;font-size:var(--sapFontHeader5Size)}.ui5-responsive-popover-footer{display:flex;justify-content:flex-end;padding:.25rem;width:100%}.ui5-responsive-popover-close-btn{position:absolute;right:1rem}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\ValueStateMessage.css\",content:\".ui5-valuestatemessage-popover{box-shadow:none}.ui5-input-value-state-message-icon{width:.875rem;height:.875rem;display:var(--_ui5_input_value_state_icon_display);position:absolute;padding-right:.5rem}.ui5-valuestatemessage-root .ui5-input-value-state-message-icon{left:.5rem}ui5-responsive-popover .ui5-valuestatemessage-header .ui5-input-value-state-message-icon{left:1rem}.ui5-input-value-state-message-icon[name=error]{color:var(--sapNegativeElementColor)}.ui5-input-value-state-message-icon[name=alert]{color:var(--sapCriticalElementColor)}.ui5-input-value-state-message-icon[name=success]{color:var(--sapPositiveElementColor)}.ui5-input-value-state-message-icon[name=information]{color:var(--sapInformativeElementColor)}.ui5-valuestatemessage-root{box-sizing:border-box;display:inline-block;color:var(--sapTextColor);font-size:var(--sapFontSmallSize);font-family:\\\"72override\\\",var(--sapFontFamily);height:auto;padding:var(--_ui5_value_state_message_padding);overflow:hidden;text-overflow:ellipsis;min-width:6.25rem;border:var(--_ui5_value_state_message_border)}ui5-responsive-popover .ui5-valuestatemessage-header{min-height:2rem;padding:var(--_ui5_value_state_header_padding)}.ui5-valuestatemessage--success{background:var(--sapSuccessBackground)}.ui5-valuestatemessage--warning{background:var(--sapWarningBackground)}.ui5-valuestatemessage--error{background:var(--sapErrorBackground)}.ui5-valuestatemessage--information{background:var(--sapInformationBackground)}.ui5-responsive-popover-header:focus,.ui5-responsive-popover-header[focused]{outline-offset:-.125rem;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5_value_state_message_focus_border_radius)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Suggestions.css\",content:\".ui5-suggestions-popover:not(.ui5-suggestions-popover-with-value-state-header) [ui5-li-groupheader][focused]:first-child::part(native-li):after,.ui5-suggestions-popover:not(.ui5-suggestions-popover-with-value-state-header) [ui5-li-suggestion-item][focused]:first-child::part(native-li):after,.ui5-suggestions-popover:not(.ui5-suggestions-popover-with-value-state-header) [ui5-li][focused]:first-child::part(native-li):after,.ui5-tokenizer-list [ui5-li][focused]:first-child::part(native-li):after{border-top-left-radius:var(--_ui5_suggestions_item_focus_border_radius);border-top-right-radius:var(--_ui5_suggestions_item_focus_border_radius)}.ui5-suggestions-popover [ui5-li-suggestion-item][focused]:last-child::part(native-li):after,.ui5-suggestions-popover [ui5-li][focused]:last-child::part(native-li):after,.ui5-tokenizer-list [ui5-li][focused]:last-child::part(native-li):after{border-bottom-left-radius:var(--_ui5_suggestions_item_focus_border_radius);border-bottom-right-radius:var(--_ui5_suggestions_item_focus_border_radius)}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isIE, isPhone, isSafari } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisSpace,\n\tisEnter,\n\tisBackSpace,\n\tisEscape,\n\tisTabNext,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getCaretPosition, setCaretPosition } from \"@ui5/webcomponents-base/dist/util/Caret.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport InputType from \"./types/InputType.js\";\nimport Popover from \"./Popover.js\";\n// Templates\nimport InputTemplate from \"./generated/templates/InputTemplate.lit.js\";\nimport InputPopoverTemplate from \"./generated/templates/InputPopoverTemplate.lit.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tINPUT_SUGGESTIONS,\n\tINPUT_SUGGESTIONS_TITLE,\n\tINPUT_SUGGESTIONS_ONE_HIT,\n\tINPUT_SUGGESTIONS_MORE_HITS,\n\tINPUT_SUGGESTIONS_NO_HIT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport styles from \"./generated/themes/Input.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nconst rgxFloat = new RegExp(/(\\+|-)?\\d+(\\.|,)\\d+/);\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-input\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Input.prototype */ {\n\n\t\t/**\n\t\t * Defines the icon to be displayed in the component.\n\t\t *\n\t\t * @type {sap.ui.webcomponents.main.IIcon[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the suggestion items.\n\t\t * <br><br>\n\t\t * Example:\n\t\t * <br><br>\n\t\t * <ui5-input show-suggestions><br>\n\t\t * <ui5-suggestion-item text=\"Item #1\"></ui5-suggestion-item><br>\n\t\t * <ui5-suggestion-item text=\"Item #2\"></ui5-suggestion-item><br>\n\t\t * </ui5-input>\n\t\t * <br>\n\t\t * <ui5-input show-suggestions>\n\t\t * <ui5-suggestion-group-item text=\"Group #1\"></ui5-suggestion-group-item>\n\t\t * <ui5-suggestion-item text=\"Item #1\"></ui5-suggestion-item>\n\t\t * <ui5-suggestion-item text=\"Item #2\"></ui5-suggestion-item>\n\t\t * <ui5-suggestion-group-item text=\"Group #2\"></ui5-suggestion-group-item>\n\t\t * <ui5-suggestion-item text=\"Item #3\"></ui5-suggestion-item>\n\t\t * <ui5-suggestion-item text=\"Item #4\"></ui5-suggestion-item>\n\t\t * </ui5-input>\n\t\t * <br><br>\n\t\t * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>\n\t\t * property is set to <code>true</code>.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The <code><ui5-suggestion-item></code> and <code><ui5-suggestion-group-item></code> are recommended to be used as suggestion items.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Importing the Input Suggestions Support feature:\n\t\t * <br>\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";</code>\n\t\t * <br>\n\t\t * automatically imports the <code><ui5-suggestion-item></code> and <code><ui5-suggestion-group-item></code> for your convenience.\n\t\t *\n\t\t * @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}\n\t\t * @slot suggestionItems\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"suggestionItems\",\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * The slot is used for native <code>input</code> HTML element to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the component.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If the component has <code>suggestionItems</code>,\n\t\t * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t\t * @type {HTMLElement[]}\n\t\t * @since 1.0.0-rc.6\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the component is in disabled state.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if characters within the suggestions are to be highlighted\n\t\t * in case the input value matches parts of the suggestions text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @private\n\t\t * @sicne 1.0.0-rc.8\n\t\t */\n\t\thighlight: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines a short hint intended to aid the user with data entry when the\n\t\t * component has no value.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is read-only.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A read-only component is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is required.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.3\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the HTML type of the component.\n\t\t * Available options are: <code>Text</code>, <code>Email</code>,\n\t\t * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.\n\t\t * <br><br>\n\t\t * <b>Notes:</b>\n\t\t * <ul>\n\t\t * <li>The particular effect of this property differs depending on the browser\n\t\t * and the current language settings, especially for type <code>Number</code>.</li>\n\t\t * <li>The property is mostly intended to be used with touch devices\n\t\t * that use different soft keyboard layouts depending on the given input type.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {InputType}\n\t\t * @defaultvalue \"Text\"\n\t\t * @public\n\t\t */\n\t\ttype: {\n\t\t\ttype: InputType,\n\t\t\tdefaultValue: InputType.Text,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The property is updated upon typing.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component should show suggestions, if such are present.\n\t\t * <br><br>\n\t\t * <b>Note:</b> You need to import the <code>InputSuggestions</code> module\n\t\t * from <code>\"@ui5/webcomponents/dist/features/InputSuggestions.js\"</code> to enable this functionality.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tshowSuggestions: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the maximum number of characters available in the input field.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @since 1.0.0-rc.5\n\t\t * @public\n\t\t */\n\t\tmaxlength: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the input.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates whether the visual focus is on the value state header\n\t\t * @private\n\t\t */\n\t\t_isValueStateFocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_input: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t_inputAccInfo: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t_nativeInputAttributes: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t_inputWidth: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t_listWidth: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t_isPopoverOpen: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_inputIconFocused: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Input.prototype */ {\n\t\t/**\n\t\t * Fired when the input operation has finished by pressing Enter or on focusout.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tchange: {},\n\n\t\t/**\n\t\t * Fired when the value of the component changes at each keystroke,\n\t\t * and when a suggestion item has been selected.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tinput: {},\n\n\t\t/**\n\t\t * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.Input#suggestion-item-select\n\t\t * @param {HTMLElement} item The selected item.\n\t\t * @public\n\t\t */\n\t\t\"suggestion-item-select\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the user navigates to a suggestion item via the ARROW keys,\n\t\t * as a preview, before the final selection.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.Input#suggestion-item-preview\n\t\t * @param {HTMLElement} item The previewed suggestion item.\n\t\t * @param {HTMLElement} targetRef The DOM ref of the suggestion item.\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\t\"suggestion-item-preview\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t\ttargetRef: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the user scrolls the suggestion popover.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.Input#suggestion-scroll\n\t\t * @param {Integer} scrollTop The current scroll position.\n\t\t * @param {HTMLElement} scrollContainer The scroll container.\n\t\t * @protected\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\t\"suggestion-scroll\": {\n\t\t\tdetail: {\n\t\t\t\tscrollTop: { type: Integer },\n\t\t\t\tscrollContainer: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\t},\n};\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-input</code> component allows the user to enter and edit text or numeric values in one line.\n * <br>\n * Additionally, you can provide <code>suggestionItems</code>,\n * that are displayed in a popover right under the input.\n * <br><br>\n * The text field can be editable or read-only (<code>readonly</code> property),\n * and it can be enabled or disabled (<code>disabled</code> property).\n * To visualize semantic states, such as \"error\" or \"warning\", the <code>valueState</code> property is provided.\n * When the user makes changes to the text, the change event is fired,\n * which enables you to react on any text change.\n * <br><br>\n * <b>Note:</b> If you are using the <code>ui5-input</code> as a single npm module,\n * don't forget to import the <code>InputSuggestions</code> module from\n * \"@ui5/webcomponents/dist/features/InputSuggestions.js\"\n * to enable the suggestions functionality.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Input.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";</code> (optional - for input suggestions support)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Input\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-input\n * @appenddocs SuggestionItem SuggestionGroupItem\n * @implements sap.ui.webcomponents.main.IInput\n * @public\n */\nclass Input extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn InputTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn InputPopoverTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\t// Indicates if there is selected suggestionItem.\n\t\tthis.hasSuggestionItemSelected = false;\n\n\t\t// Represents the value before user moves selection from suggestion item to another\n\t\t// and its value is updated after each move.\n\t\t// Note: Used to register and fire \"input\" event upon [SPACE] or [ENTER].\n\t\t// Note: The property \"value\" is updated upon selection move and can`t be used.\n\t\tthis.valueBeforeItemSelection = \"\";\n\n\t\t// Represents the value before user moves selection between the suggestion items\n\t\t// and its value remains the same when the user navigates up or down the list.\n\t\t// Note: Used to cancel selection upon [ESC].\n\t\tthis.valueBeforeItemPreview = \"\";\n\n\t\t// Indicates if the user selection has been canceled with [ESC].\n\t\tthis.suggestionSelectionCanceled = false;\n\n\t\t// Indicates if the change event has already been fired\n\t\tthis._changeFired = false;\n\n\t\t// tracks the value between focus in and focus out to detect that change event should be fired.\n\t\tthis.previousValue = undefined;\n\n\t\t// Indicates, if the component is rendering for first time.\n\t\tthis.firstRendering = true;\n\n\t\t// The value that should be highlited.\n\t\tthis.highlightValue = \"\";\n\n\t\t// The last value confirmed by the user with \"ENTER\"\n\t\tthis.lastConfirmedValue = \"\";\n\n\t\t// Indicates, if the user pressed the BACKSPACE key.\n\t\tthis._backspaceKeyDown = false;\n\n\t\t// all sementic events\n\t\tthis.EVENT_CHANGE = \"change\";\n\t\tthis.EVENT_INPUT = \"input\";\n\t\tthis.EVENT_SUGGESTION_ITEM_SELECT = \"suggestion-item-select\";\n\n\t\t// all user interactions\n\t\tthis.ACTION_ENTER = \"enter\";\n\t\tthis.ACTION_USER_INPUT = \"input\";\n\n\t\t// Suggestions array initialization\n\t\tthis.suggestionsTexts = [];\n\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.showSuggestions) {\n\t\t\tthis.enableSuggestions();\n\t\t\tthis.suggestionsTexts = this.Suggestions.defaultSlotProperties(this.highlightValue);\n\t\t}\n\n\t\tthis.open = this.open && (!!this.suggestionItems.length || this._isPhone);\n\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this);\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\tasync onAfterRendering() {\n\t\tif (this.Suggestions) {\n\t\t\tthis.Suggestions.toggle(this.open, {\n\t\t\t\tpreventFocusRestore: true,\n\t\t\t});\n\n\t\t\tthis._listWidth = await this.Suggestions._getListWidth();\n\t\t}\n\n\t\tif (this.shouldDisplayOnlyValueStateMessage) {\n\t\t\tthis.openPopover();\n\t\t} else {\n\t\t\tthis.closePopover();\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isUp(event)) {\n\t\t\treturn this._handleUp(event);\n\t\t}\n\n\t\tif (isDown(event)) {\n\t\t\treturn this._handleDown(event);\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\treturn this._handleSpace(event);\n\t\t}\n\n\t\tif (isTabNext(event)) {\n\t\t\treturn this._handleTab(event);\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\treturn this._handleEnter(event);\n\t\t}\n\n\t\tif (isEscape(event)) {\n\t\t\treturn this._handleEscape(event);\n\t\t}\n\n\t\tif (isBackSpace(event)) {\n\t\t\tthis._backspaceKeyDown = true;\n\t\t\tthis._selectedText = window.getSelection().toString();\n\t\t}\n\n\t\tif (this.showSuggestions) {\n\t\t\tthis._clearPopoverFocusAndSelection();\n\t\t}\n\n\t\tthis._keyDown = true;\n\t}\n\n\t_onkeyup(event) {\n\t\tthis._keyDown = false;\n\t\tthis._backspaceKeyDown = false;\n\t}\n\n\t/* Event handling */\n\t_handleUp(event) {\n\t\tif (this.Suggestions && this.Suggestions.isOpened()) {\n\t\t\tthis.Suggestions.onUp(event);\n\t\t}\n\t}\n\n\t_handleDown(event) {\n\t\tif (this.Suggestions && this.Suggestions.isOpened()) {\n\t\t\tthis.Suggestions.onDown(event);\n\t\t}\n\t}\n\n\t_handleSpace(event) {\n\t\tif (this.Suggestions) {\n\t\t\tthis.Suggestions.onSpace(event);\n\t\t}\n\t}\n\n\t_handleTab(event) {\n\t\tif (this.Suggestions && (this.previousValue !== this.value)) {\n\t\t\tthis.Suggestions.onTab(event);\n\t\t}\n\t}\n\n\t_handleEnter(event) {\n\t\tconst itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(event));\n\n\t\tif (!itemPressed) {\n\t\t\tthis.fireEventByAction(this.ACTION_ENTER);\n\t\t\tthis.lastConfirmedValue = this.value;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focused = true;\n\t}\n\n\t_handleEscape() {\n\t\tconst hasSuggestions = this.showSuggestions && !!this.Suggestions;\n\t\tconst isOpen = hasSuggestions && this.open;\n\n\t\tif (!isOpen) {\n\t\t\tthis.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;\n\t\t\treturn;\n\t\t}\n\n\t\tif (hasSuggestions && isOpen && this.Suggestions._isItemOnTarget()) {\n\t\t\t// Restore the value.\n\t\t\tthis.value = this.valueBeforeItemPreview;\n\n\t\t\t// Mark that the selection has been canceled, so the popover can close\n\t\t\t// and not reopen, due to receiving focus.\n\t\t\tthis.suggestionSelectionCanceled = true;\n\t\t\tthis.focused = true;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis._isValueStateFocused = false;\n\t\t\tthis.focused = true;\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\tasync _onfocusin(event) {\n\t\tawait this.getInputDOMRef();\n\n\t\tthis.focused = true; // invalidating property\n\t\tthis.previousValue = this.value;\n\t\tthis.valueBeforeItemPreview = this.value;\n\n\t\tthis._inputIconFocused = event.target && event.target === this.querySelector(\"[ui5-icon]\");\n\t}\n\n\t_onfocusout(event) {\n\t\tconst focusedOutToSuggestions = this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover);\n\t\tconst focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(\".ui5-valuestatemessage-root\");\n\n\t\t// if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering\n\t\t// will happen before \"itemPress\" event, which will make item \"active\" state not visualized\n\t\tif (focusedOutToSuggestions\t|| focusedOutToValueStateMessage) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tconst toBeFocused = event.relatedTarget;\n\n\t\tif (toBeFocused && toBeFocused.classList.contains(this._id)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.closePopover();\n\t\tthis._clearPopoverFocusAndSelection();\n\n\t\tthis.previousValue = \"\";\n\t\tthis.lastConfirmedValue = \"\";\n\t\tthis.focused = false; // invalidating property\n\t\tthis.open = false;\n\t}\n\n\t_clearPopoverFocusAndSelection() {\n\t\tif (!this.showSuggestions || !this.Suggestions) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis.hasSuggestionItemSelected = false;\n\n\t\tthis.Suggestions._deselectItems();\n\t\tthis.Suggestions._clearItemFocus();\n\t}\n\n\t_click(event) {\n\t\tif (isPhone() && !this.readonly && this.Suggestions) {\n\t\t\tthis.blur();\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleChange(event) {\n\t\tif (!this._changeFired) {\n\t\t\tthis.fireEvent(this.EVENT_CHANGE);\n\t\t}\n\n\t\t// Set event as no longer marked\n\t\tthis._changeFired = false;\n\t}\n\n\t_scroll(event) {\n\t\tconst detail = event.detail;\n\t\tthis.fireEvent(\"suggestion-scroll\", {\n\t\t\tscrollTop: detail.scrollTop,\n\t\t\tscrollContainer: detail.targetRef,\n\t\t});\n\t}\n\n\tasync _handleInput(event) {\n\t\tconst inputDomRef = await this.getInputDOMRef();\n\t\tconst emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;\n\n\t\tthis.suggestionSelectionCanceled = false;\n\n\t\tif (emptyValueFiredOnNumberInput && !this._backspaceKeyDown) {\n\t\t\t// For input with type=\"Number\", if the delimiter is entered second time,\n\t\t\t// the inner input is firing event with empty value\n\t\t\treturn;\n\t\t}\n\n\t\tif (emptyValueFiredOnNumberInput && this._backspaceKeyDown) {\n\t\t\t// Issue: when the user removes the character(s) after the delimeter of numeric Input,\n\t\t\t// the native input is firing event with an empty value and we have to manually handle this case,\n\t\t\t// otherwise the entire input will be cleared as we sync the \"value\".\n\n\t\t\t// There are tree scenarios:\n\t\t\t// Example: type \"123.4\" and press BACKSPACE - the native input is firing event with empty value.\n\t\t\t// Example: type \"123.456\", select/mark \"456\" and press BACKSPACE - the native input is firing event with empty value.\n\t\t\t// Example: type \"123.456\", select/mark \"123.456\" and press BACKSPACE - the native input is firing event with empty value,\n\t\t\t// but this time that's really the case.\n\n\t\t\t// Perform manual handling in case of floating number\n\t\t\t// and if the user did not select the entire input value\n\t\t\tif (rgxFloat.test(this.value) && this._selectedText !== this.value) {\n\t\t\t\tconst newValue = this.removeFractionalPart(this.value);\n\n\t\t\t\t// update state\n\t\t\t\tthis.value = newValue;\n\t\t\t\tthis.highlightValue = newValue;\n\t\t\t\tthis.valueBeforeItemPreview = newValue;\n\n\t\t\t\t// fire events\n\t\t\t\tthis.fireEvent(this.EVENT_INPUT);\n\t\t\t\tthis.fireEvent(\"value-changed\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (event.target === inputDomRef) {\n\t\t\tthis.focused = true;\n\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\tevent.stopImmediatePropagation();\n\t\t}\n\n\t\t/* skip calling change event when an input with a placeholder is focused on IE\n\t\t\t- value of the host and the internal input should be differnt in case of actual input\n\t\t\t- input is called when a key is pressed => keyup should not be called yet\n\t\t*/\n\t\tconst skipFiring = (inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;\n\n\t\t!skipFiring && this.fireEventByAction(this.ACTION_USER_INPUT);\n\n\t\tthis.hasSuggestionItemSelected = false;\n\t\tthis._isValueStateFocused = false;\n\n\t\tif (this.Suggestions) {\n\t\t\tthis.Suggestions.updateSelectedItemPosition(null);\n\n\t\t\tif (!this._isPhone) {\n\t\t\t\tthis.open = !!inputDomRef.value;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_closeRespPopover(preventFocusRestore) {\n\t\tthis.Suggestions.close(preventFocusRestore);\n\t}\n\n\tasync _afterOpenPopover() {\n\t\t// Set initial focus to the native input\n\t\tif (isPhone()) {\n\t\t\t(await this.getInputDOMRef()).focus();\n\t\t}\n\t}\n\n\t_afterClosePopover() {\n\t\tthis.announceSelectedItem();\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the value state popover is open.\n\t * @returns {boolean} true if the value state popover is open, false otherwise\n\t */\n\tisValueStateOpened() {\n\t\treturn !!this._isPopoverOpen;\n\t}\n\n\tasync openPopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tif (popover) {\n\t\t\tthis._isPopoverOpen = true;\n\t\t\tpopover.showAt(this);\n\t\t}\n\t}\n\n\tasync closePopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tpopover && popover.close();\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem && staticAreaItem.querySelector(\"[ui5-popover]\");\n\t}\n\n\tenableSuggestions() {\n\t\tif (this.Suggestions) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst Suggestions = getFeature(\"InputSuggestions\");\n\n\t\tif (Suggestions) {\n\t\t\tthis.Suggestions = new Suggestions(this, \"suggestionItems\", true);\n\t\t} else {\n\t\t\tthrow new Error(`You have to import \"@ui5/webcomponents/dist/features/InputSuggestions.js\" module to use ui5-input suggestions`);\n\t\t}\n\t}\n\n\tselectSuggestion(item, keyboardUsed) {\n\t\tif (item.group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemText = item.text || item.textContent; // keep textContent for compatibility\n\t\tconst fireInput = keyboardUsed\n\t\t\t? this.valueBeforeItemSelection !== itemText : this.value !== itemText;\n\n\t\tthis.hasSuggestionItemSelected = true;\n\n\t\tif (fireInput) {\n\t\t\tthis.value = itemText;\n\t\t\tthis.valueBeforeItemSelection = itemText;\n\t\t\tthis.lastConfirmedValue = itemText;\n\t\t\tthis.fireEvent(this.EVENT_INPUT);\n\t\t\tthis.fireEvent(this.EVENT_CHANGE);\n\n\t\t\t// Mark the change event to avoid double firing\n\t\t\tthis._changeFired = true;\n\t\t}\n\n\t\tthis.valueBeforeItemPreview = \"\";\n\t\tthis.suggestionSelectionCanceled = false;\n\n\t\tthis.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });\n\t}\n\n\tpreviewSuggestion(item) {\n\t\tthis.valueBeforeItemSelection = this.value;\n\t\tthis.updateValueOnPreview(item);\n\t\tthis.announceSelectedItem();\n\t\tthis._previewItem = item;\n\t}\n\n\t/**\n\t * Updates the input value on item preview.\n\t * @param {Object} item The item that is on preview\n\t */\n\tupdateValueOnPreview(item) {\n\t\tconst noPreview = item.type === \"Inactive\" || item.group;\n\t\tconst itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent);\n\t\tthis.value = itemValue;\n\t}\n\n\t/**\n\t * The suggestion item on preview.\n\t * @type { sap.ui.webcomponents.main.IInputSuggestionItem }\n\t * @readonly\n\t * @public\n\t */\n\tget previewItem() {\n\t\tif (!this._previewItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.getSuggestionByListItem(this._previewItem);\n\t}\n\n\tasync fireEventByAction(action) {\n\t\tawait this.getInputDOMRef();\n\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst inputValue = await this.getInputValue();\n\t\tconst isUserInput = action === this.ACTION_USER_INPUT;\n\n\t\tconst input = await this.getInputDOMRef();\n\t\tconst cursorPosition = input.selectionStart;\n\n\t\tthis.value = inputValue;\n\t\tthis.highlightValue = inputValue;\n\t\tthis.valueBeforeItemPreview = inputValue;\n\n\t\tif (isSafari()) {\n\t\t\t// When setting the value by hand, Safari moves the cursor when typing in the middle of the text (See #1761)\n\t\t\tsetTimeout(() => {\n\t\t\t\tinput.selectionStart = cursorPosition;\n\t\t\t\tinput.selectionEnd = cursorPosition;\n\t\t\t}, 0);\n\t\t}\n\n\t\tif (isUserInput) { // input\n\t\t\tthis.fireEvent(this.EVENT_INPUT);\n\t\t\t// Angular two way data binding\n\t\t\tthis.fireEvent(\"value-changed\");\n\t\t\treturn;\n\t\t}\n\n\t\t// In IE, pressing the ENTER does not fire change\n\t\tconst valueChanged = (this.previousValue !== undefined) && (this.previousValue !== this.value);\n\t\tif (isIE() && action === this.ACTION_ENTER && valueChanged) {\n\t\t\tthis.fireEvent(this.EVENT_CHANGE);\n\t\t}\n\t}\n\n\tasync getInputValue() {\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (domRef) {\n\t\t\treturn (await this.getInputDOMRef()).value;\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tasync getInputDOMRef() {\n\t\tif (isPhone() && this.Suggestions) {\n\t\t\tawait this.Suggestions._getSuggestionPopover();\n\t\t\treturn this.Suggestions && this.Suggestions.responsivePopover.querySelector(\".ui5-input-inner-phone\");\n\t\t}\n\n\t\treturn this.nativeInput;\n\t}\n\n\t/**\n\t * Returns a reference to the native input element\n\t * @protected\n\t */\n\tget nativeInput() {\n\t\treturn this.getDomRef() && this.getDomRef().querySelector(`input`);\n\t}\n\n\tget nativeInputWidth() {\n\t\treturn this.nativeInput && this.nativeInput.offsetWidth;\n\t}\n\n\tgetLabelableElementId() {\n\t\treturn this.getInputId();\n\t}\n\n\tgetSuggestionByListItem(item) {\n\t\tconst key = parseInt(item.getAttribute(\"data-ui5-key\"));\n\t\treturn this.suggestionItems[key];\n\t}\n\n\t/**\n\t * Returns if the suggestions popover is scrollable.\n\t * The method returns <code>Promise</code> that resolves to true,\n\t * if the popup is scrollable and false otherwise.\n\t * @returns {Promise}\n\t */\n\tisSuggestionsScrollable() {\n\t\tif (!this.Suggestions) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\n\t\treturn this.Suggestions._isScrollable();\n\t}\n\n\tgetInputId() {\n\t\treturn `${this._id}-inner`;\n\t}\n\n\t/* Suggestions interface */\n\tonItemFocused() {}\n\n\tonItemMouseOver(event) {\n\t\tconst item = event.target;\n\t\tconst suggestion = this.getSuggestionByListItem(item);\n\t\tsuggestion && suggestion.fireEvent(\"mouseover\", {\n\t\t\titem: suggestion,\n\t\t\ttargetRef: item,\n\t\t});\n\t}\n\n\tonItemMouseOut(event) {\n\t\tconst item = event.target;\n\t\tconst suggestion = this.getSuggestionByListItem(item);\n\t\tsuggestion && suggestion.fireEvent(\"mouseout\", {\n\t\t\titem: suggestion,\n\t\t\ttargetRef: item,\n\t\t});\n\t}\n\n\tonItemSelected(item, keyboardUsed) {\n\t\tthis.selectSuggestion(item, keyboardUsed);\n\t}\n\n\tonItemPreviewed(item) {\n\t\tthis.previewSuggestion(item);\n\t\tthis.fireEvent(\"suggestion-item-preview\", {\n\t\t\titem: this.getSuggestionByListItem(item),\n\t\t\ttargetRef: item,\n\t\t});\n\t}\n\n\tonOpen() {}\n\n\tonClose() {}\n\n\tvalueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Success\": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": Input.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": Input.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tannounceSelectedItem() {\n\t\tconst invisibleText = this.shadowRoot.querySelector(`#${this._id}-selectionText`);\n\n\t\tif (this.Suggestions && this.Suggestions._isItemOnTarget()) {\n\t\t\tinvisibleText.textContent = this.itemSelectionAnnounce;\n\t\t} else {\n\t\t\tinvisibleText.textContent = \"\";\n\t\t}\n\t}\n\n\tget _readonly() {\n\t\treturn this.readonly && !this.disabled;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget inputType() {\n\t\treturn this.type.toLowerCase();\n\t}\n\n\tget isTypeNumber() {\n\t\treturn this.type === InputType.Number;\n\t}\n\n\tget suggestionsTextId() {\n\t\treturn this.showSuggestions ? `${this._id}-suggestionsText` : \"\";\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n\t}\n\n\tget accInfo() {\n\t\tconst ariaHasPopupDefault = this.showSuggestions ? \"true\" : undefined;\n\t\tconst ariaAutoCompleteDefault = this.showSuggestions ? \"list\" : undefined;\n\t\tconst ariaDescribedBy = this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim();\n\n\t\treturn {\n\t\t\t\"input\": {\n\t\t\t\t\"ariaRoledescription\": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),\n\t\t\t\t\"ariaDescribedBy\": ariaDescribedBy || undefined,\n\t\t\t\t\"ariaInvalid\": this.valueState === ValueState.Error ? \"true\" : undefined,\n\t\t\t\t\"ariaHasPopup\": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,\n\t\t\t\t\"ariaAutoComplete\": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,\n\t\t\t\t\"role\": this._inputAccInfo && this._inputAccInfo.role,\n\t\t\t\t\"ariaControls\": this._inputAccInfo && this._inputAccInfo.ariaControls,\n\t\t\t\t\"ariaExpanded\": this._inputAccInfo && this._inputAccInfo.ariaExpanded,\n\t\t\t\t\"ariaDescription\": this._inputAccInfo && this._inputAccInfo.ariaDescription,\n\t\t\t\t\"ariaLabel\": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this),\n\t\t\t},\n\t\t};\n\t}\n\n\tget nativeInputAttributes() {\n\t\treturn {\n\t\t\t\"min\": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,\n\t\t\t\"max\": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,\n\t\t\t\"step\": this.isTypeNumber ? (this._nativeInputAttributes.step || \"any\") : undefined,\n\t\t};\n\t}\n\n\tget ariaValueStateHiddenText() {\n\t\tif (!this.hasValueStateMessage) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn this.valueStateText;\n\t\t}\n\n\t\treturn this.valueStateMessageText.map(el => el.textContent).join(\" \");\n\t}\n\n\tget itemSelectionAnnounce() {\n\t\treturn this.Suggestions ? this.Suggestions.itemSelectionAnnounce : undefined;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": !this.isPhone && this.showSuggestions,\n\t\t\t\t\"ui5-suggestions-popover-with-value-state-header\": !this.isPhone && this.showSuggestions && this.hasValueStateMessage,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\n\t\tconst stylesObject = {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": `${this._inputWidth}px`,\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth}px`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this._inputWidth}px`,\n\t\t\t\t\"max-width\": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tinnerInput: {},\n\t\t};\n\n\t\tif (this.nativeInputWidth < 48) {\n\t\t\tstylesObject.innerInput.padding = \"0\";\n\t\t}\n\n\t\treturn stylesObject;\n\t}\n\n\tget suggestionSeparators() {\n\t\treturn \"None\";\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayOnlyValueStateMessage() {\n\t\treturn this.hasValueStateMessage && !this.open && this.focused;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateMessage;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateMessage() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success\n\t\t\t&& (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)\n\t\t\t|| (this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\tget suggestionsText() {\n\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS);\n\t}\n\n\tget availableSuggestionsCount() {\n\t\tif (this.showSuggestions && (this.value || this.Suggestions.isOpened())) {\n\t\t\tswitch (this.suggestionsTexts.length) {\n\t\t\tcase 0:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);\n\n\t\t\tcase 1:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);\n\n\t\t\tdefault:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, this.suggestionsTexts.length);\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget step() {\n\t\treturn this.isTypeNumber ? \"any\" : undefined;\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t/**\n\t * Returns the placeholder value.\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: `<path xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20ZM7.70711 13.7071C7.31658 14.0976 6.68342 14.0976 6.29289 13.7071C5.90237 13.3166 5.90237 12.6834 6.29289 12.2929L8.58579 10L6.29289 7.70711C5.90237 7.31658 5.90237 6.68342 6.29289 6.29289C6.68342 5.90237 7.31658 5.90237 7.70711 6.29289L10 8.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L11.4142 10L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L10 11.4142L7.70711 13.7071Z\" fill=\"#EE3939\"/>`,\n\t\t\tWarning: `<path xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.8619 0.49298C11.6823 0.187541 11.3544 0 11 0C10.6456 0 10.3177 0.187541 10.1381 0.49298L0.138066 17.493C-0.0438112 17.8022 -0.0461447 18.1851 0.13195 18.4965C0.310046 18.8079 0.641283 19 1 19H21C21.3587 19 21.69 18.8079 21.868 18.4965C22.0461 18.1851 22.0438 17.8022 21.8619 17.493L11.8619 0.49298ZM11 6C11.5523 6 12 6.44772 12 7V10C12 10.5523 11.5523 11 11 11C10.4477 11 10 10.5523 10 10V7C10 6.44772 10.4477 6 11 6ZM11 16C11.8284 16 12.5 15.3284 12.5 14.5C12.5 13.6716 11.8284 13 11 13C10.1716 13 9.5 13.6716 9.5 14.5C9.5 15.3284 10.1716 16 11 16Z\" fill=\"#F58B00\"/>`,\n\t\t\tSuccess: `<path xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10ZM14.7071 6.29289C14.3166 5.90237 13.6834 5.90237 13.2929 6.29289L8 11.5858L6.70711 10.2929C6.31658 9.90237 5.68342 9.90237 5.29289 10.2929C4.90237 10.6834 4.90237 11.3166 5.29289 11.7071L7.29289 13.7071C7.68342 14.0976 8.31658 14.0976 8.70711 13.7071L14.7071 7.70711C15.0976 7.31658 15.0976 6.68342 14.7071 6.29289Z\" fill=\"#36A41D\"/>`,\n\t\t\tInformation: `<path xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM9 6.5C9.82843 6.5 10.5 5.82843 10.5 5C10.5 4.17157 9.82843 3.5 9 3.5C8.17157 3.5 7.5 4.17157 7.5 5C7.5 5.82843 8.17157 6.5 9 6.5ZM9 8.5C9.55228 8.5 10 8.94772 10 9.5V13.5C10 14.0523 9.55228 14.5 9 14.5C8.44771 14.5 8 14.0523 8 13.5V9.5C8 8.94772 8.44771 8.5 9 8.5Z\" fill=\"#1B90FF\"/>`,\n\t\t};\n\n\t\tconst result = `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n\t\t\t${iconPerValueState[this.valueState]};\n\t\t</svg>\n\t\t`;\n\n\t\treturn this.valueState !== ValueState.None ? result : \"\";\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\t/**\n\t * Returns the caret position inside the native input\n\t * @protected\n\t */\n\tgetCaretPosition() {\n\t\treturn getCaretPosition(this.nativeInput);\n\t}\n\n\t/**\n\t * Sets the caret to a certain position inside the native input\n\t * @protected\n\t * @param pos\n\t */\n\tsetCaretPosition(pos) {\n\t\tsetCaretPosition(this.nativeInput, pos);\n\t}\n\n\t/**\n\t * Removes the fractional part of floating-point number.\n\t * @param {String} value the numeric value of Input of type \"Number\"\n\t */\n\tremoveFractionalPart(value) {\n\t\tif (value.includes(\".\")) {\n\t\t\treturn value.slice(0, value.indexOf(\".\"));\n\t\t}\n\t\tif (value.includes(\",\")) {\n\t\t\treturn value.slice(0, value.indexOf(\",\"));\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tstatic get dependencies() {\n\t\tconst Suggestions = getFeature(\"InputSuggestions\");\n\n\t\treturn [Popover].concat(Suggestions ? Suggestions.dependencies : []);\n\t}\n\n\tstatic async onDefine() {\n\t\tconst Suggestions = getFeature(\"InputSuggestions\");\n\n\t\t[Input.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tSuggestions ? Suggestions.init() : Promise.resolve(),\n\t\t]);\n\t}\n}\n\nInput.define();\n\nexport default Input;\n","/**\n * Returns the caret (cursor) position of the specified text field (field).\n * Return value range is 0-field.value.length.\n */\nconst getCaretPosition = field => {\n\t// Initialize\n\tlet caretPos = 0;\n\n\t// IE Support\n\tif (document.selection) {\n\t\t// Set focus on the element\n\t\tfield.focus();\n\n\t\t// To get cursor position, get empty selection range\n\t\tconst selection = document.selection.createRange();\n\n\t\t// Move selection start to 0 position\n\t\tselection.moveStart(\"character\", -field.value.length);\n\n\t\t// The caret position is selection length\n\t\tcaretPos = selection.text.length;\n\t} else if (field.selectionStart || field.selectionStart === \"0\") { // Firefox support\n\t\tcaretPos = field.selectionDirection === \"backward\" ? field.selectionStart : field.selectionEnd;\n\t}\n\n\treturn caretPos;\n};\n\nconst setCaretPosition = (field, caretPos) => {\n\tif (field.createTextRange) {\n\t\tconst range = field.createTextRange();\n\t\trange.move(\"character\", caretPos);\n\t\trange.select();\n\t} else if (field.selectionStart) {\n\t\tfield.focus();\n\t\tfield.setSelectionRange(caretPos, caretPos);\n\t} else {\n\t\tfield.focus();\n\t}\n};\n\nexport {\n\tgetCaretPosition,\n\tsetCaretPosition,\n};\n","import DataType from \"./DataType.js\";\n\nclass Float extends DataType {\n\tstatic isValid(value) {\n\t\t// Assuming that integers are floats as well!\n\t\treturn Number(value) === value;\n\t}\n\n\tstatic attributeToProperty(attributeValue) {\n\t\treturn parseFloat(attributeValue);\n\t}\n}\n\nexport default Float;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}\" class=\"ui5-step-input-root\" @keydown=\"${context._onkeydown}\" @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\"><!-- Decrement Icon -->${ !context.readonly ? block1(context, tags, suffix) : undefined }<!-- INPUT --><${scopeTag(\"ui5-input\", tags, suffix)} id=\"${ifDefined(context._id)}-inner\" class=\"ui5-step-input-input\" placeholder=\"${ifDefined(context.placeholder)}\" type=\"${ifDefined(context.type)}\" value=\"${ifDefined(context._valuePrecisioned)}\" ?disabled=\"${context.disabled}\" ?required=\"${context.required}\" ?readonly=\"${context.readonly}\" value-state=\"${ifDefined(context.valueState)}\" data-sap-focus-ref ._inputAccInfo =\"${ifDefined(context.accInfo)}\" ._nativeInputAttributes=\"${ifDefined(context.inputAttributes)}\" @ui5-change=\"${ifDefined(context._onInputChange)}\" @focusout=\"${context._onInputFocusOut}\" @focusin=\"${context._onInputFocusIn}\">${ context.valueStateMessage.length ? block2(context, tags, suffix) : undefined }</${scopeTag(\"ui5-input\", tags, suffix)}><!-- Increment Icon -->${ !context.readonly ? block3(context, tags, suffix) : undefined }<slot name=\"formSupport\"></slot></div>`;\nconst block1 = (context, tags, suffix) => html`<div class=\"ui5-step-icon ui5-step-dec\" title=\"${ifDefined(context.decIconTitle)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} id=\"${ifDefined(context._id)}-dec\" name=\"${ifDefined(context.decIconName)}\" tabindex=\"-1\" accessible-name=\"${ifDefined(context.decIconTitle)}\" @click=\"${context._decValue}\" @focusout=\"${context._onButtonFocusOut}\" @mousedown=\"${context._decSpin}\" @mouseup=\"${context._resetSpin}\" @mouseout=\"${context._resetSpinOut}\" input-icon show-tooltip ?clickable=\"${context._decIconClickable}\"></${scopeTag(\"ui5-icon\", tags, suffix)}></div>`;\nconst block2 = (context, tags, suffix) => html`<slot name=\"valueStateMessage\" slot=\"valueStateMessage\"></slot>`;\nconst block3 = (context, tags, suffix) => html`<div class=\"ui5-step-icon ui5-step-inc\" title=\"${ifDefined(context.incIconTitle)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} id=\"${ifDefined(context._id)}-inc\" name=\"${ifDefined(context.incIconName)}\" tabindex=\"-1\" accessible-name=\"${ifDefined(context.incIconTitle)}\" @click=\"${context._incValue}\" @focusout=\"${context._onButtonFocusOut}\" @mousedown=\"${context._incSpin}\" @mouseup=\"${context._resetSpin}\" @mouseout=\"${context._resetSpinOut}\" input-icon show-tooltip ?clickable=\"${context._incIconClickable}\"></${scopeTag(\"ui5-icon\", tags, suffix)}></div>`;\n\n\nexport default block0;","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"less\";\nconst pathData = \"M444 215c21 0 36 15 36 36 0 22-15 37-36 37H69c-22 0-37-15-37-37 0-21 15-36 37-36h375z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"less\";\nconst pathData = \"M464 224q16 0 16 16v32q0 16-16 16H48q-6 0-11-4.5T32 272v-32q0-7 5-11.5t11-4.5h416z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/less.js\";\nimport pathDataV5 from \"./v4/less.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { ICON_ADD } from \"../generated/i18n/i18n-defaults.js\";\n\nconst name = \"add\";\nconst pathData = \"M444 220c22 0 36 15 36 37s-14 37-36 37H294v149c0 22-15 37-37 37s-36-15-36-37V294H69c-22 0-37-15-37-37s15-37 37-37h152V73c0-22 14-37 36-37s37 15 37 37v147h150z\";\nconst ltr = false;\nconst accData = ICON_ADD;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, accData, collection, packageName });\n\nexport default { pathData, accData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { ICON_ADD } from \"../generated/i18n/i18n-defaults.js\";\n\nconst name = \"add\";\nconst pathData = \"M32 240q0-7 5-11.5t11-4.5h176V48q0-7 5-11.5t11-4.5h32q16 0 16 16v176h176q16 0 16 16v32q0 16-16 16H288v176q0 16-16 16h-32q-6 0-11-4.5t-5-11.5V288H48q-6 0-11-4.5T32 272v-32z\";\nconst ltr = false;\nconst accData = ICON_ADD;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, accData, collection, packageName });\n\nexport default { pathData, accData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/add.js\";\nimport pathDataV5 from \"./v4/add.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\StepInput.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}[input-icon]{color:var(--_ui5_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5_input_icon_padding);margin-right:var(--_ui5_input_icon_margin);border-left:var(--_ui5_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5_input_icon_border_radius);align-self:center}[input-icon][pressed]{background:var(--_ui5_input_icon_pressed_bg);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:not([pressed]):not(:active):hover{background:var(--_ui5_input_icon_hover_bg);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon]:hover{border-left:var(--_ui5_select_hover_icon_left_border);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon][dir=rtl]:hover{border-left:none;border-right:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]{border-left:none;margin-right:0;margin-left:var(--_ui5_input_icon_margin);border-right:var(--_ui5_input_icon_border)}:host(:not([hidden])){display:inline-block;width:100%}:host{color:var(--sapField_TextColor);background-color:var(--sapField_Background);border:var(--_ui5_step_input_border_style);border-radius:var(--sapField_BorderCornerRadius);box-sizing:border-box;height:var(--_ui5_input_height);position:relative}:host .ui5-step-input-input{text-align:inherit}:host(:not([value-state]):not([readonly]):not([disabled])){box-shadow:none}:host([value-state=Success]:not([readonly]):not([disabled])){background-color:var(--sapField_SuccessBackground)}:host([value-state=Error]:not([readonly]):not([disabled])){background-color:var(--sapField_InvalidBackground)}:host([value-state=Information]:not([readonly]):not([disabled])){background-color:var(--sapField_InformationBackground)}:host([value-state=Warning]:not([readonly]):not([disabled])){background-color:var(--sapField_WarningBackground)}:host(:not([value-state]):not([readonly]):not([disabled]):hover),:host([value-state=None]:not([readonly]):not([disabled]):hover){background-color:var(--_ui5_step_input_border_color_hover);border:var(--_ui5_step_input_border_hover)}:host(:not([value-state]):not([readonly]):not([disabled]):not([focused]):hover),:host([value-state=None]:not([readonly]):not([disabled]):not([focused]):hover){background-color:var(--sapField_Hover_Background);border:var(--_ui5_step_input_border_style_hover);box-shadow:var(--_ui5-input-hover-box-shadow)}:host([value-state=Success]:not([readonly]):not([disabled]):not([focused]):hover){box-shadow:var(--_ui5-input-value-state-success-hover-box-shadow)}:host([value-state=Information]:not([readonly]):not([disabled]):not([focused]):hover){box-shadow:var(--_ui5-input-value-state-information-hover-box-shadow)}:host([value-state=Warning]:not([readonly]):not([disabled]):not([focused]):hover){box-shadow:var(--_ui5-input-value-state-warning-hover-box-shadow)}:host([value-state=Error]:not([readonly]):not([disabled]):not([focused]):hover){box-shadow:var(--_ui5-input-value-state-error-hover-box-shadow)}:host([value-state=Error]:not([readonly]):not([disabled]):hover),:host([value-state=Information]:not([readonly]):not([disabled]):hover),:host([value-state=Success]:not([readonly]):not([disabled]):hover),:host([value-state=Warning]:not([readonly]):not([disabled]):hover){background-color:var(--_ui5-step_input_button_state_hover_background_color)}:host(:not([value-state]):not([readonly]):not([disabled])[focused]),:host([value-state=Error]:not([readonly]):not([disabled])[focused]),:host([value-state=Information]:not([readonly]):not([disabled])[focused]),:host([value-state=None]:not([readonly]):not([disabled])[focused]),:host([value-state=Success]:not([readonly]):not([disabled])[focused]),:host([value-state=Warning]:not([readonly]):not([disabled])[focused]){background-color:var(--sapField_Focus_Background)}:host([value-state=Error]:not([readonly]):not([disabled])):after,:host([value-state=Information]:not([readonly]):not([disabled])):after,:host([value-state=None]:not([readonly]):not([disabled])):after,:host([value-state=Success]:not([readonly]):not([disabled])):after,:host([value-state=Warning]:not([readonly]):not([disabled])):after{position:absolute;content:\\\"\\\";top:-1px;right:-1px;bottom:-1px;left:-1px;outline:none;pointer-events:none;border-radius:var(--sapField_BorderCornerRadius);border-style:var(--_ui5_input_error_warning_border_style);z-index:3;border-width:0}:host([value-state=Information]:not([readonly]):not([disabled])):after{border-color:var(--sapField_InformationColor);border-width:var(--_ui5-input-information_border_width)}:host([value-state=Warning]:not([readonly]):not([disabled])):after{border-color:var(--sapField_WarningColor);border-width:2px}:host([value-state=Success]:not([readonly]):not([disabled])):after{border-color:var(--sapField_SuccessColor);border-width:1px}:host([value-state=Error]:not([readonly]):not([disabled])):after{border-color:var(--sapField_InvalidColor);border-width:var(--_ui5-input-information_border_width)}:host([value-state]):after{border-width:var(--_ui5_input_state_border_width)}:host([value-state=Error]:not([readonly]):not([disabled])) .ui5-step-input-input{background-color:var(--_ui5_input_input_background_color)}:host([value-state=Error]:not([readonly]):not([disabled])) .ui5-step-input-input:hover{background-color:var(--_ui5_step_input_input_error_background_color)}:host([value-state]:not([value-state=None]) .ui5-step-input-input[focused]){outline:none}:host .ui5-step-input-input{width:100%;color:inherit;background-color:inherit;border:var(--_ui5_step_input_input_border);box-sizing:border-box;vertical-align:top;margin-top:var(--_ui5_step_input_input_margin_top);min-width:9.125rem;position:relative;padding:0 2.5rem 0 2.4375rem;outline:none}:host .ui5-step-input-input[readonly]{padding:0}:host .ui5-step-input-input:hover,:host .ui5-step-input-input[focused]{box-shadow:none}:host .ui5-step-input-root{white-space:nowrap}:host .ui5-step-input-input[text-align=left]{text-align:left}:host .ui5-step-input-input[text-align=center]{text-align:center}:host .ui5-step-input-input[text-align=right]{text-align:right}:host .ui5-step-icon{position:absolute;display:var(--_ui5_step_input_button_display);height:2rem;height:100%;background-color:var(--_ui5_step_input_button_background_color);z-index:2}:host .ui5-step-icon[focused]{border:none;outline:none}:host .ui5-step-icon.ui5-step-dec{left:var(--_ui5_step_input_button_left)}:host .ui5-step-icon.ui5-step-inc{right:var(--_ui5_step_input_button_right)}:host .ui5-step-icon :not([clickable]),:host .ui5-step-icon :not([clickable]):active,:host .ui5-step-icon :not([clickable]):hover{opacity:.5;background-color:transparent;color:var(--sapContent_IconColor)}:host .ui5-step-icon :not([clickable]) :active,:host .ui5-step-icon :not([clickable]) :hover{background-color:var(--sapField_Background);color:var(--sapContent_IconColor)}:host .ui5-step-input-input[focused]:after{position:absolute;content:\\\"\\\";border:var(--_ui5_step_input_input_border_focused_after);top:var(--_ui5_step_input_input_border_top_bottom_focused_after);right:0;bottom:var(--_ui5_step_input_input_border_top_bottom_focused_after);border-radius:var(--_ui5_step_input_input_border_radius_focused_after);left:0;outline:none;pointer-events:none;z-index:3}:host .ui5-step-input-input[focused]{outline:none}:host([value-state=Information]:not([readonly]):not([disabled])) .ui5-step-input-input[focused]:after{border-color:var(--_ui5_step_input_input_information_border_color_focused_after)}:host([value-state=Warning]:not([readonly]):not([disabled])) .ui5-step-input-input[focused]:after{border-color:var(--_ui5_step_input_input_warning_border_color_focused_after)}:host([value-state=Success]:not([readonly]):not([disabled])) .ui5-step-input-input[focused]:after{border-color:var(--_ui5_step_input_input_success_border_color_focused_after)}:host([value-state=Error]:not([readonly]):not([disabled])) .ui5-step-input-input[focused]:after{border-color:var(--_ui5_step_input_input_error_border_color_focused_after)}:host .ui5-step-input-input::-webkit-inner-spin-button,:host .ui5-step-input-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:host([disabled]){opacity:var(--_ui5_input_disabled_opacity);cursor:default;pointer-events:none;background:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor)}:host([disabled]) .ui5-step-icon{background-color:var(--_ui5_step_input_disabled_button_background)}:host([disabled]) .ui5-step-icon [ui5-icon]{color:var(--sapField_ReadOnly_BorderColor)}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisUpShiftCtrl,\n\tisDownShiftCtrl,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisEscape,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport StepInputTemplate from \"./generated/templates/StepInputTemplate.lit.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\n\nimport Icon from \"./Icon.js\";\nimport Input from \"./Input.js\";\nimport InputType from \"./types/InputType.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-step-input\",\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.StepInput.prototype */ {\n\t\t/**\n\t\t * Defines a value of the component.\n\t\t *\n\t\t * @type {Float}\n\t\t * @defaultvalue 0\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: Float,\n\t\t\tdefaultValue: 0,\n\t\t},\n\n\t\t/**\n\t\t * Defines a minimum value of the component.\n\t\t *\n\t\t * @type {Float}\n\t\t * @public\n\t\t */\n\t\tmin: {\n\t\t\ttype: Float,\n\t\t},\n\n\t\t/**\n\t\t * Defines a maximum value of the component.\n\t\t *\n\t\t * @type {Float}\n\t\t * @public\n\t\t */\n\t\tmax: {\n\t\t\ttype: Float,\n\t\t},\n\n\t\t/**\n\t\t * Defines a step of increasing/decreasing the value of the component.\n\t\t *\n\t\t * @type {Float}\n\t\t * @defaultvalue 1\n\t\t * @public\n\t\t */\n\t\tstep: {\n\t\t\ttype: Float,\n\t\t\tdefaultValue: 1,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is required.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is displayed as disabled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is displayed as read-only.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines a short hint, intended to aid the user with data entry when the\n\t\t * component has no value.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.\n\t\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines the number of digits after the decimal point of the component.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultvalue 0\n\t\t * @public\n\t\t */\n\t\tvaluePrecision: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t_decIconDisabled: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_incIconDisabled: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @type {Boolean}\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_inputFocused: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_previousValue: {\n\t\t\ttype: Float,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_previousValueState: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t_waitTimeout: {\n\t\t\ttype: Float,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_speed: {\n\t\t\ttype: Float,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_btnDown: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_spinTimeoutId: {\n\t\t\ttype: Integer,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_spinStarted: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.StepInput.prototype */ {\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the component.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t * <br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t\t * @type {HTMLElement}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.StepInput.prototype */ {\n\t\t/**\n\t\t * Fired when the input operation has finished by pressing Enter or on focusout.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t*/\n\t\tchange: {},\n\t},\n};\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-step-input</code> consists of an input field and buttons with icons to increase/decrease the value\n * with the predefined step.\n * <br><br>\n * The user can change the value of the component by pressing the increase/decrease buttons,\n * by typing a number directly, by using the keyboard up/down and page up/down,\n * or by using the mouse scroll wheel. Decimal values are supported.\n *\n * <h3>Usage</h3>\n *\n * The default step is 1 but the app developer can set a different one.\n *\n * App developers can set a maximum and minimum value for the <code>StepInput</code>.\n * The increase/decrease button and the up/down keyboard navigation become disabled when\n * the value reaches the max/min or a new value is entered from the input which is greater/less than the max/min.\n * <br><br>\n * <h4>When to use:</h4>\n * <ul>\n * <li>To adjust amounts, quantities, or other values quickly.</li>\n * <li>To adjust values for a specific step.</li>\n * </ul>\n *\n * <h4>When not to use:</h4>\n * <ul>\n * <li>To enter a static number (for example, postal code, phone number, or ID). In this case,\n * use the regular <code>ui5-input</code> instead.</li>\n * <li>To display a value that rarely needs to be adjusted and does not pertain to a particular step.\n * In this case, use the regular <code>ui5-input</code> instead.</li>\n * <li>To enter dates and times. In this case, use date/time related components instead.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/StepInput.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.StepInput\n * @extends UI5Element\n * @tagname ui5-step-input\n * @since 1.0.0-rc.13\n * @public\n */\nclass StepInput extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn StepInputCss;\n\t}\n\n\tstatic get template() {\n\t\treturn StepInputTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tIcon,\n\t\t\tInput,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tStepInput.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget type() {\n\t\treturn InputType.Number;\n\t}\n\n\t// icons-related\n\n\tget decIconTitle() {\n\t\treturn StepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE);\n\t}\n\n\tget decIconName() {\n\t\treturn \"less\";\n\t}\n\n\tget incIconTitle() {\n\t\treturn StepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE);\n\t}\n\n\tget incIconName() {\n\t\treturn \"add\";\n\t}\n\n\tget _decIconClickable() {\n\t\treturn !this._decIconDisabled && !this.readonly && !this.disabled;\n\t}\n\n\tget _incIconClickable() {\n\t\treturn !this._incIconDisabled && !this.readonly && !this.disabled;\n\t}\n\n\tget _isFocused() {\n\t\treturn this.focused;\n\t}\n\n\tget _valuePrecisioned() {\n\t\treturn this.value.toFixed(this.valuePrecision);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRequired\": this.required,\n\t\t\t\"ariaLabel\": getEffectiveAriaLabelText(this),\n\t\t};\n\t}\n\n\tget inputAttributes() {\n\t\treturn {\n\t\t\tmin: this.min === undefined ? undefined : this.min,\n\t\t\tmax: this.max === undefined ? undefined : this.max,\n\t\t\tstep: this.step,\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._setButtonState();\n\t\tif (this._previousValue === undefined) {\n\t\t\tthis._previousValue = this.value;\n\t\t}\n\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this);\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\tget input() {\n\t\treturn this.shadowRoot.querySelector(\"[ui5-input]\");\n\t}\n\n\tget inputOuter() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-step-input-input\");\n\t}\n\n\t_onButtonFocusOut() {\n\t\tsetTimeout(() => {\n\t\t\tif (!this._inputFocused) {\n\t\t\t\tthis.inputOuter.removeAttribute(\"focused\");\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t_onInputFocusIn() {\n\t\tthis._inputFocused = true;\n\t}\n\n\t_onInputFocusOut() {\n\t\tthis._inputFocused = false;\n\t\tthis._onInputChange();\n\t}\n\n\t_setButtonState() {\n\t\tthis._decIconDisabled = this.min !== undefined && this.value <= this.min;\n\t\tthis._incIconDisabled = this.max !== undefined && this.value >= this.max;\n\t}\n\n\t_validate() {\n\t\tif (this._previousValueState === \"\") {\n\t\t\tthis._previousValueState = this.valueState !== \"\" ? this.valueState : ValueState.None;\n\t\t}\n\t\tthis.valueState = ((this.min !== undefined && this.value < this.min)\n\t\t\t|| (this.max !== undefined && this.value > this.max))\n\t\t\t? ValueState.Error : this._previousValueState;\n\t}\n\n\t_preciseValue(value) {\n\t\tconst pow = 10 ** this.valuePrecision;\n\t\treturn Math.round(value * pow) / pow;\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this._previousValue !== this.value) {\n\t\t\tthis._previousValue = this.value;\n\t\t\tthis.fireEvent(\"change\", { value: this.value });\n\t\t}\n\t}\n\n\t/**\n\t * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n\t * decrement buttons according to the value and min/max values (if set). Fires <code>change</code> event when requested\n\t *\n\t * @param {Float} modifier modifies the value of the component with the given modifier (positive or negative)\n\t * @param {boolean} fireChangeEvent if <code>true</code>, fires <code>change</code> event when the value is changed\n\t */\n\t_modifyValue(modifier, fireChangeEvent) {\n\t\tlet value;\n\t\tthis.value = this._preciseValue(parseFloat(this.input.value));\n\t\tvalue = this.value + modifier;\n\t\tif (this.min !== undefined && value < this.min) {\n\t\t\tvalue = this.min;\n\t\t}\n\t\tif (this.max !== undefined && value > this.max) {\n\t\t\tvalue = this.max;\n\t\t}\n\t\tvalue = this._preciseValue(value);\n\t\tif (value !== this.value) {\n\t\t\tthis.value = value;\n\t\t\tthis._validate();\n\t\t\tthis._setButtonState();\n\t\t\tthis.focused = true;\n\t\t\tthis.inputOuter.setAttribute(\"focused\", \"\");\n\t\t\tif (fireChangeEvent) {\n\t\t\t\tthis._fireChangeEvent();\n\t\t\t} else {\n\t\t\t\tthis.input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_incValue(event) {\n\t\tif (this._incIconClickable && event.isTrusted && !this.disabled && !this.readonly) {\n\t\t\tthis._modifyValue(this.step, true);\n\t\t\tthis._previousValue = this.value;\n\t\t}\n\t}\n\n\t_decValue(event) {\n\t\tif (this._decIconClickable && event.isTrusted && !this.disabled && !this.readonly) {\n\t\t\tthis._modifyValue(-this.step, true);\n\t\t\tthis._previousValue = this.value;\n\t\t}\n\t}\n\n\t_onInputChange(event) {\n\t\tif (this.input.value === \"\") {\n\t\t\tthis.input.value = this.min || 0;\n\t\t}\n\t\tconst inputValue = this._preciseValue(parseFloat(this.input.value));\n\t\tif (this.value !== this._previousValue || this.value !== inputValue) {\n\t\t\tthis.value = inputValue;\n\t\t\tthis._validate();\n\t\t\tthis._setButtonState();\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tlet preventDefault = true;\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis._onInputChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUp(event)) {\n\t\t\t// step up\n\t\t\tthis._modifyValue(this.step);\n\t\t} else if (isDown(event)) {\n\t\t\t// step down\n\t\t\tthis._modifyValue(-this.step);\n\t\t} else if (isEscape(event)) {\n\t\t\t// return previous value\n\t\t\tthis.value = this._previousValue;\n\t\t\tthis.input.value = this.value.toFixed(this.valuePrecision);\n\t\t} else if (this.max !== undefined && (isPageUpShift(event) || isUpShiftCtrl(event))) {\n\t\t\t// step to max\n\t\t\tthis._modifyValue(this.max - this.value);\n\t\t} else if (this.min !== undefined && (isPageDownShift(event) || isDownShiftCtrl(event))) {\n\t\t\t// step to min\n\t\t\tthis._modifyValue(this.min - this.value);\n\t\t} else if (!isUpCtrl(event) && !isDownCtrl(event) && !isUpShift(event) && !isDownShift(event)) {\n\t\t\tpreventDefault = false;\n\t\t}\n\t\tif (preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_decSpin() {\n\t\tif (!this._decIconDisabled) {\n\t\t\tthis._spinValue(false, true);\n\t\t}\n\t}\n\n\t_incSpin() {\n\t\tif (!this._incIconDisabled) {\n\t\t\tthis._spinValue(true, true);\n\t\t}\n\t}\n\n\t/**\n\t * Calculates the time which should be waited until _spinValue function is called.\n\t */\n\t_calcWaitTimeout() {\n\t\tthis._speed *= ACCELERATION;\n\t\tthis._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n\t\treturn this._waitTimeout;\n\t}\n\n\t/**\n\t * Called when the increment or decrement button is pressed and held to set new value.\n\t * @param {boolean} increment - is this the increment button or not so the values should be spin accordingly up or down\n\t * @param {boolean} resetVariables - whether to reset the spin-related variables or not\n\t */\n\t_spinValue(increment, resetVariables) {\n\t\tif (resetVariables) {\n\t\t\tthis._waitTimeout = INITIAL_WAIT_TIMEOUT;\n\t\t\tthis._speed = INITIAL_SPEED;\n\t\t\tthis._btnDown = true;\n\t\t}\n\t\tthis._spinTimeoutId = setTimeout(() => {\n\t\t\tif (this._btnDown) {\n\t\t\t\tthis._spinStarted = true;\n\t\t\t\tthis._modifyValue(increment ? this.step : -this.step);\n\t\t\t\tthis._setButtonState();\n\t\t\t\tif ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n\t\t\t\t\tthis._spinValue(increment);\n\t\t\t\t} else {\n\t\t\t\t\tthis._resetSpin();\n\t\t\t\t\tthis._fireChangeEvent();\n\t\t\t\t}\n\t\t\t}\n\t\t}, this._calcWaitTimeout());\n\t}\n\n\t/**\n\t* Resets spin process\n\t*/\n\t_resetSpin() {\n\t\tclearTimeout(this._spinTimeoutId);\n\t\tthis._btnDown = false;\n\t\tthis._spinStarted = false;\n\t}\n\n\t/**\n\t* Resets spin process when mouse outs + or - buttons\n\t*/\n\t_resetSpinOut() {\n\t\tif (this._btnDown) {\n\t\t\tthis._resetSpin();\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\t}\n}\nStepInput.define();\n\nexport default StepInput;\n","import DataType from \"./DataType.js\";\n\n/**\n * Different calendar types.\n */\nconst CalendarTypes = {\n\tGregorian: \"Gregorian\",\n\tIslamic: \"Islamic\",\n\tJapanese: \"Japanese\",\n\tBuddhist: \"Buddhist\",\n\tPersian: \"Persian\",\n};\n\nclass CalendarType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!CalendarTypes[value];\n\t}\n}\n\nCalendarType.generateTypeAccessors(CalendarTypes);\n\nexport default CalendarType;\n","import CalendarType from \"../types/CalendarType.js\";\nimport { getCalendarType as getConfiguredCalendarType } from \"../InitialConfiguration.js\";\n\nlet calendarType;\n\nconst getCalendarType = () => {\n\tif (calendarType === undefined) {\n\t\tcalendarType = getConfiguredCalendarType();\n\t}\n\n\tif (CalendarType.isValid(calendarType)) {\n\t\treturn calendarType;\n\t}\n\n\treturn CalendarType.Gregorian;\n};\n\nexport { getCalendarType }; // eslint-disable-line\n","import { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport getDesigntimePropertyAsArray from \"@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 FormatSettings shim\n */\nconst FormatSettings = {\n\tgetFormatLocale: getLocale,\n\tgetLegacyDateFormat: emptyFn,\n\tgetLegacyDateCalendarCustomizing: emptyFn,\n\tgetCustomLocaleData: emptyFn,\n};\n\n/**\n * OpenUI5 Configuration Shim\n */\nconst Configuration = {\n\tgetLanguage,\n\tgetCalendarType,\n\tgetSupportedLanguages: () => getDesigntimePropertyAsArray(\"$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$\"),\n\tgetOriginInfo: emptyFn,\n\tgetFormatSettings: () => FormatSettings,\n};\n\n/**\n * OpenUI5 Core shim\n */\nconst Core = {\n\tgetConfiguration: () => Configuration,\n\tgetLibraryResourceBundle: emptyFn(),\n\tgetFormatSettings: () => FormatSettings,\n};\n\nexport default Core;\n","var ObjectPath = {};\nvar defaultRootContext = window;\nfunction getObjectPathArray(vObjectPath) {\n return Array.isArray(vObjectPath) ? vObjectPath.slice() : vObjectPath.split(\".\");\n}\nObjectPath.create = function (vObjectPath, oRootContext) {\n var oObject = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n for (var i = 0; i < aNames.length; i++) {\n var sName = aNames[i];\n if (oObject[sName] === null || oObject[sName] !== undefined && (typeof oObject[sName] !== \"object\" && typeof oObject[sName] !== \"function\")) {\n throw new Error(\"Could not set object-path for '\" + aNames.join(\".\") + \"', path segment '\" + sName + \"' already exists.\");\n }\n oObject[sName] = oObject[sName] || ({});\n oObject = oObject[sName];\n }\n return oObject;\n};\nObjectPath.get = function (vObjectPath, oRootContext) {\n var oObject = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n var sPropertyName = aNames.pop();\n for (var i = 0; i < aNames.length && oObject; i++) {\n oObject = oObject[aNames[i]];\n }\n return oObject ? oObject[sPropertyName] : undefined;\n};\nObjectPath.set = function (vObjectPath, vValue, oRootContext) {\n oRootContext = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n var sPropertyName = aNames.pop();\n var oObject = ObjectPath.create(aNames, oRootContext);\n oObject[sPropertyName] = vValue;\n};\nexport default ObjectPath;\n","var fnNow = !(typeof window != \"undefined\" && window.performance && performance.now && performance.timing) ? Date.now : (function () {\n var iNavigationStart = performance.timing.navigationStart;\n return function perfnow() {\n return iNavigationStart + performance.now();\n };\n})();\nexport default fnNow;\n","import now from './util/now.js';\nvar Log = {};\nLog.Level = {\n NONE: -1,\n FATAL: 0,\n ERROR: 1,\n WARNING: 2,\n INFO: 3,\n DEBUG: 4,\n TRACE: 5,\n ALL: 5 + 1\n};\nvar sDefaultComponent, aLog = [], mMaxLevel = { '': Log.Level.ERROR }, iLogEntriesLimit = 3000, oListener = null, bLogSupportInfo = false;\nfunction pad0(i, w) {\n return ('000' + String(i)).slice(-w);\n}\nfunction level(sComponent) {\n return !sComponent || isNaN(mMaxLevel[sComponent]) ? mMaxLevel[''] : mMaxLevel[sComponent];\n}\nfunction discardLogEntries() {\n var iLogLength = aLog.length;\n if (iLogLength) {\n var iEntriesToKeep = Math.min(iLogLength, Math.floor(iLogEntriesLimit * 0.7));\n if (oListener) {\n oListener.onDiscardLogEntries(aLog.slice(0, iLogLength - iEntriesToKeep));\n }\n if (iEntriesToKeep) {\n aLog = aLog.slice(-iEntriesToKeep, iLogLength);\n } else {\n aLog = [];\n }\n }\n}\nfunction getLogEntryListenerInstance() {\n if (!oListener) {\n oListener = {\n listeners: [],\n onLogEntry: function (oLogEntry) {\n for (var i = 0; i < oListener.listeners.length; i++) {\n if (oListener.listeners[i].onLogEntry) {\n oListener.listeners[i].onLogEntry(oLogEntry);\n }\n }\n },\n onDiscardLogEntries: function (aDiscardedLogEntries) {\n for (var i = 0; i < oListener.listeners.length; i++) {\n if (oListener.listeners[i].onDiscardLogEntries) {\n oListener.listeners[i].onDiscardLogEntries(aDiscardedLogEntries);\n }\n }\n },\n attach: function (oLog, oLstnr) {\n if (oLstnr) {\n oListener.listeners.push(oLstnr);\n if (oLstnr.onAttachToLog) {\n oLstnr.onAttachToLog(oLog);\n }\n }\n },\n detach: function (oLog, oLstnr) {\n for (var i = 0; i < oListener.listeners.length; i++) {\n if (oListener.listeners[i] === oLstnr) {\n if (oLstnr.onDetachFromLog) {\n oLstnr.onDetachFromLog(oLog);\n }\n oListener.listeners.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n return oListener;\n}\nLog.fatal = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.FATAL, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.error = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.ERROR, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.warning = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.WARNING, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.info = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.INFO, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.debug = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.DEBUG, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.trace = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.TRACE, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.setLevel = function (iLogLevel, sComponent, _bDefault) {\n sComponent = sComponent || sDefaultComponent || '';\n if (!_bDefault || mMaxLevel[sComponent] == null) {\n mMaxLevel[sComponent] = iLogLevel;\n var sLogLevel;\n Object.keys(Log.Level).forEach(function (sLevel) {\n if (Log.Level[sLevel] === iLogLevel) {\n sLogLevel = sLevel;\n }\n });\n log(Log.Level.INFO, 'Changing log level ' + (sComponent ? 'for \\'' + sComponent + '\\' ' : '') + 'to ' + sLogLevel, '', 'sap.base.log');\n }\n};\nLog.getLevel = function (sComponent) {\n return level(sComponent || sDefaultComponent);\n};\nLog.isLoggable = function (iLevel, sComponent) {\n return (iLevel == null ? Log.Level.DEBUG : iLevel) <= level(sComponent || sDefaultComponent);\n};\nLog.logSupportInfo = function (bEnabled) {\n bLogSupportInfo = bEnabled;\n};\nfunction log(iLevel, sMessage, sDetails, sComponent, fnSupportInfo) {\n if (!fnSupportInfo && !sComponent && typeof sDetails === 'function') {\n fnSupportInfo = sDetails;\n sDetails = '';\n }\n if (!fnSupportInfo && typeof sComponent === 'function') {\n fnSupportInfo = sComponent;\n sComponent = '';\n }\n sComponent = sComponent || sDefaultComponent;\n if (iLevel <= level(sComponent)) {\n var fNow = now(), oNow = new Date(fNow), iMicroSeconds = Math.floor((fNow - Math.floor(fNow)) * 1000), oLogEntry = {\n time: pad0(oNow.getHours(), 2) + ':' + pad0(oNow.getMinutes(), 2) + ':' + pad0(oNow.getSeconds(), 2) + '.' + pad0(oNow.getMilliseconds(), 3) + pad0(iMicroSeconds, 3),\n date: pad0(oNow.getFullYear(), 4) + '-' + pad0(oNow.getMonth() + 1, 2) + '-' + pad0(oNow.getDate(), 2),\n timestamp: fNow,\n level: iLevel,\n message: String(sMessage || ''),\n details: String(sDetails || ''),\n component: String(sComponent || '')\n };\n if (bLogSupportInfo && typeof fnSupportInfo === 'function') {\n oLogEntry.supportInfo = fnSupportInfo();\n }\n if (iLogEntriesLimit) {\n if (aLog.length >= iLogEntriesLimit) {\n discardLogEntries();\n }\n aLog.push(oLogEntry);\n }\n if (oListener) {\n oListener.onLogEntry(oLogEntry);\n }\n if (console) {\n var isDetailsError = sDetails instanceof Error, logText = oLogEntry.date + ' ' + oLogEntry.time + ' ' + oLogEntry.message + ' - ' + oLogEntry.details + ' ' + oLogEntry.component;\n switch (iLevel) {\n case Log.Level.FATAL:\n case Log.Level.ERROR:\n isDetailsError ? console.error(logText, '\\n', sDetails) : console.error(logText);\n break;\n case Log.Level.WARNING:\n isDetailsError ? console.warn(logText, '\\n', sDetails) : console.warn(logText);\n break;\n case Log.Level.INFO:\n if (console.info) {\n isDetailsError ? console.info(logText, '\\n', sDetails) : console.info(logText);\n } else {\n isDetailsError ? console.log(logText, '\\n', sDetails) : console.log(logText);\n }\n break;\n case Log.Level.DEBUG:\n isDetailsError ? console.debug(logText, '\\n', sDetails) : console.debug(logText);\n break;\n case Log.Level.TRACE:\n isDetailsError ? console.trace(logText, '\\n', sDetails) : console.trace(logText);\n break;\n }\n if (console.info && oLogEntry.supportInfo) {\n console.info(oLogEntry.supportInfo);\n }\n }\n return oLogEntry;\n }\n}\nLog.getLogEntries = function () {\n return aLog.slice();\n};\nLog.getLogEntriesLimit = function () {\n return iLogEntriesLimit;\n};\nLog.setLogEntriesLimit = function (iLimit) {\n if (iLimit < 0) {\n throw new Error('The log entries limit needs to be greater than or equal to 0!');\n }\n iLogEntriesLimit = iLimit;\n if (aLog.length >= iLogEntriesLimit) {\n discardLogEntries();\n }\n};\nLog.addLogListener = function (oListener) {\n getLogEntryListenerInstance().attach(this, oListener);\n};\nLog.removeLogListener = function (oListener) {\n getLogEntryListenerInstance().detach(this, oListener);\n};\nfunction Logger(sComponent) {\n this.fatal = function (msg, detail, comp, support) {\n Log.fatal(msg, detail, comp || sComponent, support);\n return this;\n };\n this.error = function (msg, detail, comp, support) {\n Log.error(msg, detail, comp || sComponent, support);\n return this;\n };\n this.warning = function (msg, detail, comp, support) {\n Log.warning(msg, detail, comp || sComponent, support);\n return this;\n };\n this.info = function (msg, detail, comp, support) {\n Log.info(msg, detail, comp || sComponent, support);\n return this;\n };\n this.debug = function (msg, detail, comp, support) {\n Log.debug(msg, detail, comp || sComponent, support);\n return this;\n };\n this.trace = function (msg, detail, comp, support) {\n Log.trace(msg, detail, comp || sComponent, support);\n return this;\n };\n this.setLevel = function (level, comp) {\n Log.setLevel(level, comp || sComponent);\n return this;\n };\n this.getLevel = function (comp) {\n return Log.getLevel(comp || sComponent);\n };\n this.isLoggable = function (level, comp) {\n return Log.isLoggable(level, comp || sComponent);\n };\n}\nLog.getLogger = function (sComponent, iDefaultLogLevel) {\n if (!isNaN(iDefaultLogLevel) && mMaxLevel[sComponent] == null) {\n mMaxLevel[sComponent] = iDefaultLogLevel;\n }\n return new Logger(sComponent);\n};\nexport default Log;","import Log from './Log.js';\nvar fnAssert = function (bResult, vMessage) {\n if (!bResult) {\n var sMessage = typeof vMessage === 'function' ? vMessage() : vMessage;\n console.assert(bResult, sMessage);\n }\n};\nexport default fnAssert;","import assert from '../../assert.js';\nvar fnUniqueSort = function (aArray) {\n assert(Array.isArray(aArray), 'uniqueSort: input parameter must be an Array');\n var iLength = aArray.length;\n if (iLength > 1) {\n aArray.sort();\n var j = 0;\n for (var i = 1; i < iLength; i++) {\n if (aArray.indexOf(aArray[i]) === i) {\n aArray[++j] = aArray[i];\n }\n }\n if (++j < iLength) {\n aArray.splice(j, iLength - j);\n }\n }\n return aArray;\n};\nexport default fnUniqueSort;","import ObjectPath from '../../base/util/ObjectPath.js';\nimport assert from '../../base/assert.js';\nimport Log from '../../base/Log.js';\nimport uniqueSort from '../../base/util/array/uniqueSort.js';\nvar Metadata = function (sClassName, oClassInfo) {\n assert(typeof sClassName === 'string' && sClassName, 'Metadata: sClassName must be a non-empty string');\n assert(typeof oClassInfo === 'object', 'Metadata: oClassInfo must be empty or an object');\n if (!oClassInfo || typeof oClassInfo.metadata !== 'object') {\n oClassInfo = {\n metadata: oClassInfo || {},\n constructor: ObjectPath.get(sClassName)\n };\n oClassInfo.metadata.__version = 1;\n }\n oClassInfo.metadata.__version = oClassInfo.metadata.__version || 2;\n if (typeof oClassInfo.constructor !== 'function') {\n throw Error('constructor for class ' + sClassName + ' must have been declared before creating metadata for it');\n }\n this._sClassName = sClassName;\n this._oClass = oClassInfo.constructor;\n this.extend(oClassInfo);\n};\nMetadata.prototype.extend = function (oClassInfo) {\n this.applySettings(oClassInfo);\n this.afterApplySettings();\n};\nMetadata.prototype.applySettings = function (oClassInfo) {\n var that = this, oStaticInfo = oClassInfo.metadata, oPrototype;\n if (oStaticInfo.baseType) {\n var oParentClass = ObjectPath.get(oStaticInfo.baseType);\n if (typeof oParentClass !== 'function') {\n Log.fatal('base class \\'' + oStaticInfo.baseType + '\\' does not exist');\n }\n if (oParentClass.getMetadata) {\n this._oParent = oParentClass.getMetadata();\n assert(oParentClass === oParentClass.getMetadata().getClass(), 'Metadata: oParentClass must match the class in the parent metadata');\n } else {\n this._oParent = new Metadata(oStaticInfo.baseType, {});\n }\n } else {\n this._oParent = undefined;\n }\n this._bAbstract = !!oStaticInfo['abstract'];\n this._bFinal = !!oStaticInfo['final'];\n this._sStereotype = oStaticInfo.stereotype || (this._oParent ? this._oParent._sStereotype : 'object');\n this._bDeprecated = !!oStaticInfo['deprecated'];\n this._aInterfaces = oStaticInfo.interfaces || [];\n this._aPublicMethods = oStaticInfo.publicMethods || [];\n this._bInterfacesUnique = false;\n oPrototype = this._oClass.prototype;\n for (var n in oClassInfo) {\n if (n !== 'metadata' && n !== 'constructor') {\n oPrototype[n] = oClassInfo[n];\n if (!n.match(/^_|^on|^init$|^exit$/)) {\n that._aPublicMethods.push(n);\n }\n }\n }\n};\nMetadata.prototype.afterApplySettings = function () {\n if (this._oParent) {\n this._aAllPublicMethods = this._oParent._aAllPublicMethods.concat(this._aPublicMethods);\n this._bInterfacesUnique = false;\n } else {\n this._aAllPublicMethods = this._aPublicMethods;\n }\n};\nMetadata.prototype.getStereotype = function () {\n return this._sStereotype;\n};\nMetadata.prototype.getName = function () {\n return this._sClassName;\n};\nMetadata.prototype.getClass = function () {\n return this._oClass;\n};\nMetadata.prototype.getParent = function () {\n return this._oParent;\n};\nMetadata.prototype._dedupInterfaces = function () {\n if (!this._bInterfacesUnique) {\n uniqueSort(this._aInterfaces);\n uniqueSort(this._aPublicMethods);\n uniqueSort(this._aAllPublicMethods);\n this._bInterfacesUnique = true;\n }\n};\nMetadata.prototype.getPublicMethods = function () {\n this._dedupInterfaces();\n return this._aPublicMethods;\n};\nMetadata.prototype.getAllPublicMethods = function () {\n this._dedupInterfaces();\n return this._aAllPublicMethods;\n};\nMetadata.prototype.getInterfaces = function () {\n this._dedupInterfaces();\n return this._aInterfaces;\n};\nMetadata.prototype.isInstanceOf = function (sInterface) {\n if (this._oParent) {\n if (this._oParent.isInstanceOf(sInterface)) {\n return true;\n }\n }\n var a = this._aInterfaces;\n for (var i = 0, l = a.length; i < l; i++) {\n if (a[i] === sInterface) {\n return true;\n }\n }\n return false;\n};\nObject.defineProperty(Metadata.prototype, '_mImplementedTypes', {\n get: function () {\n if (this === Metadata.prototype) {\n throw new Error('sap.ui.base.Metadata: The \\'_mImplementedTypes\\' property must not be accessed on the prototype');\n }\n var result = Object.create(this._oParent ? this._oParent._mImplementedTypes : null);\n result[this._sClassName] = true;\n var aInterfaces = this._aInterfaces, i = aInterfaces.length;\n while (i-- > 0) {\n if (!result[aInterfaces[i]]) {\n result[aInterfaces[i]] = true;\n }\n }\n Object.defineProperty(this, '_mImplementedTypes', {\n value: Object.freeze(result),\n writable: false,\n configurable: false\n });\n return result;\n },\n configurable: true\n});\nMetadata.prototype.isA = function (vTypeName) {\n var mTypes = this._mImplementedTypes;\n if (Array.isArray(vTypeName)) {\n for (var i = 0; i < vTypeName.length; i++) {\n if (vTypeName[i] in mTypes) {\n return true;\n }\n }\n return false;\n }\n return vTypeName in mTypes;\n};\nMetadata.prototype.isAbstract = function () {\n return this._bAbstract;\n};\nMetadata.prototype.isFinal = function () {\n return this._bFinal;\n};\nMetadata.prototype.isDeprecated = function () {\n return this._bDeprecated;\n};\nMetadata.prototype.addPublicMethods = function (sMethod) {\n var aNames = sMethod instanceof Array ? sMethod : arguments;\n Array.prototype.push.apply(this._aPublicMethods, aNames);\n Array.prototype.push.apply(this._aAllPublicMethods, aNames);\n this._bInterfacesUnique = false;\n};\nMetadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl) {\n if (typeof fnBaseClass === 'string') {\n FNMetaImpl = oClassInfo;\n oClassInfo = sClassName;\n sClassName = fnBaseClass;\n fnBaseClass = null;\n }\n assert(!fnBaseClass || typeof fnBaseClass === 'function');\n assert(typeof sClassName === 'string' && !!sClassName);\n assert(!oClassInfo || typeof oClassInfo === 'object');\n assert(!FNMetaImpl || typeof FNMetaImpl === 'function');\n FNMetaImpl = FNMetaImpl || Metadata;\n if (typeof FNMetaImpl.preprocessClassInfo === 'function') {\n oClassInfo = FNMetaImpl.preprocessClassInfo(oClassInfo);\n }\n oClassInfo = oClassInfo || {};\n oClassInfo.metadata = oClassInfo.metadata || {};\n if (!oClassInfo.hasOwnProperty('constructor')) {\n oClassInfo.constructor = undefined;\n }\n var fnClass = oClassInfo.constructor;\n assert(!fnClass || typeof fnClass === 'function');\n if (fnBaseClass) {\n if (!fnClass) {\n if (oClassInfo.metadata.deprecated) {\n fnClass = function () {\n Log.warning('Usage of deprecated class: ' + sClassName);\n fnBaseClass.apply(this, arguments);\n };\n } else {\n fnClass = function () {\n fnBaseClass.apply(this, arguments);\n };\n }\n }\n fnClass.prototype = Object.create(fnBaseClass.prototype);\n fnClass.prototype.constructor = fnClass;\n oClassInfo.metadata.baseType = fnBaseClass.getMetadata().getName();\n } else {\n fnClass = fnClass || function () {\n };\n delete oClassInfo.metadata.baseType;\n }\n oClassInfo.constructor = fnClass;\n ObjectPath.set(sClassName, fnClass);\n var oMetadata = new FNMetaImpl(sClassName, oClassInfo);\n fnClass.getMetadata = fnClass.prototype.getMetadata = function () {\n return oMetadata;\n };\n if (!fnClass.getMetadata().isFinal()) {\n fnClass.extend = function (sSCName, oSCClassInfo, fnSCMetaImpl) {\n return Metadata.createClass(fnClass, sSCName, oSCClassInfo, fnSCMetaImpl || FNMetaImpl);\n };\n }\n return fnClass;\n};\nexport default Metadata;","import Metadata from './Metadata.js';\nimport Log from '../../base/Log.js';\nvar BaseObject = Metadata.createClass('sap.ui.base.Object', {\n constructor: function () {\n if (!(this instanceof BaseObject)) {\n throw Error('Cannot instantiate object: \"new\" is missing!');\n }\n }\n});\nBaseObject.prototype.destroy = function () {\n};\nBaseObject.prototype.getInterface = function () {\n var oInterface = new BaseObject._Interface(this, this.getMetadata().getAllPublicMethods());\n this.getInterface = function () {\n return oInterface;\n };\n return oInterface;\n};\nBaseObject.defineClass = function (sClassName, oStaticInfo, FNMetaImpl) {\n var oMetadata = new (FNMetaImpl || Metadata)(sClassName, oStaticInfo);\n var fnClass = oMetadata.getClass();\n fnClass.getMetadata = fnClass.prototype.getMetadata = function () {\n return oMetadata;\n };\n if (!oMetadata.isFinal()) {\n fnClass.extend = function (sSCName, oSCClassInfo, fnSCMetaImpl) {\n return Metadata.createClass(fnClass, sSCName, oSCClassInfo, fnSCMetaImpl || FNMetaImpl);\n };\n }\n Log.debug('defined class \\'' + sClassName + '\\'' + (oMetadata.getParent() ? ' as subclass of ' + oMetadata.getParent().getName() : ''));\n return oMetadata;\n};\nBaseObject.prototype.isA = function (vTypeName) {\n return this.getMetadata().isA(vTypeName);\n};\nBaseObject.isA = function (oObject, vTypeName) {\n return oObject instanceof BaseObject && oObject.isA(vTypeName);\n};\nBaseObject._Interface = function (oObject, aMethods, _bReturnFacade) {\n if (!oObject) {\n return oObject;\n }\n function fCreateDelegator(oObject, sMethodName) {\n return function () {\n var tmp = oObject[sMethodName].apply(oObject, arguments);\n if (_bReturnFacade) {\n return this;\n } else {\n return tmp instanceof BaseObject ? tmp.getInterface() : tmp;\n }\n };\n }\n if (!aMethods) {\n return {};\n }\n var sMethodName;\n for (var i = 0, ml = aMethods.length; i < ml; i++) {\n sMethodName = aMethods[i];\n if (!oObject[sMethodName] || typeof oObject[sMethodName] === 'function') {\n this[sMethodName] = fCreateDelegator(oObject, sMethodName);\n }\n }\n};\nexport default BaseObject;","var class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\nvar toString = class2type.toString;\nvar fnToString = hasOwn.toString;\nvar ObjectFunctionString = fnToString.call(Object);\nvar fnIsPlainObject = function (obj) {\n var proto, Ctor;\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = Object.getPrototypeOf(obj);\n if (!proto) {\n return true;\n }\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n};\nexport default fnIsPlainObject;\n","import isPlainObject from './isPlainObject.js';\nvar oToken = Object.create(null);\nvar fnMerge = function () {\n var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;\n if (typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (name === '__proto__' || target === copy) {\n continue;\n }\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = fnMerge(deep, arguments[1], clone, copy);\n } else if (copy !== skipToken) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n};\nexport default fnMerge;","import _merge from './_merge.js';\nvar fnExtend = function () {\n var args = [\n false,\n true\n ];\n args.push.apply(args, arguments);\n return _merge.apply(null, args);\n};\nexport default fnExtend;","var CalendarType = {\n Gregorian: \"Gregorian\",\n Islamic: \"Islamic\",\n Japanese: \"Japanese\",\n Persian: \"Persian\",\n Buddhist: \"Buddhist\"\n};\nexport default CalendarType;\n","import BaseObject from '../base/Object.js';\nimport assert from '../../base/assert.js';\nvar rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\nvar Locale = BaseObject.extend('sap.ui.core.Locale', {\n constructor: function (sLocaleId) {\n BaseObject.apply(this);\n var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));\n if (aResult === null) {\n throw new TypeError('The given language \\'' + sLocaleId + '\\' does not adhere to BCP-47.');\n }\n this.sLocaleId = sLocaleId;\n this.sLanguage = aResult[1] || null;\n this.sScript = aResult[2] || null;\n this.sRegion = aResult[3] || null;\n this.sVariant = aResult[4] && aResult[4].slice(1) || null;\n this.sExtension = aResult[5] && aResult[5].slice(1) || null;\n this.sPrivateUse = aResult[6] || null;\n if (this.sLanguage) {\n this.sLanguage = this.sLanguage.toLowerCase();\n }\n if (this.sScript) {\n this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {\n return $.toUpperCase();\n });\n }\n if (this.sRegion) {\n this.sRegion = this.sRegion.toUpperCase();\n }\n },\n getLanguage: function () {\n return this.sLanguage;\n },\n getScript: function () {\n return this.sScript;\n },\n getRegion: function () {\n return this.sRegion;\n },\n getVariant: function () {\n return this.sVariant;\n },\n getVariantSubtags: function () {\n return this.sVariant ? this.sVariant.split('-') : [];\n },\n getExtension: function () {\n return this.sExtension;\n },\n getExtensionSubtags: function () {\n return this.sExtension ? this.sExtension.slice(2).split('-') : [];\n },\n getPrivateUse: function () {\n return this.sPrivateUse;\n },\n getPrivateUseSubtags: function () {\n return this.sPrivateUse ? this.sPrivateUse.slice(2).split('-') : [];\n },\n hasPrivateUseSubtag: function (sSubtag) {\n assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');\n return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n },\n toString: function () {\n return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);\n },\n toLanguageTag: function () {\n var sLanguage = this.getModernLanguage();\n var sScript = this.sScript;\n if (sLanguage === 'sr' && sScript === 'Latn') {\n sLanguage = 'sh';\n sScript = null;\n }\n return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);\n },\n getModernLanguage: function () {\n return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;\n },\n getSAPLogonLanguage: function () {\n var sLanguage = this.sLanguage || '';\n if (sLanguage.indexOf('-') >= 0) {\n sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));\n }\n sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {\n return 'ZF';\n }\n return M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sScript)] || M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sRegion)] || M_LOCALE_TO_ABAP_LANGUAGE[getPseudoLanguageTag(this.sPrivateUse)] || sLanguage.toUpperCase();\n }\n});\nfunction getPseudoLanguageTag(sPrivateUse) {\n if (sPrivateUse) {\n var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);\n return m && 'en-US-x-' + m[1].toLowerCase();\n }\n}\nvar M_ISO639_OLD_TO_NEW = {\n 'iw': 'he',\n 'ji': 'yi'\n};\nvar M_ABAP_LANGUAGE_TO_LOCALE = {\n 'ZH': 'zh-Hans',\n 'ZF': 'zh-Hant',\n 'SH': 'sr-Latn',\n '6N': 'en-GB',\n '1P': 'pt-PT',\n '1X': 'es-MX',\n '3F': 'fr-CA',\n '1Q': 'en-US-x-saptrc',\n '2Q': 'en-US-x-sappsd',\n '3Q': 'en-US-x-saprigi'\n};\nvar M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);\nfunction getDesigntimePropertyAsArray(sValue) {\n var m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(sValue);\n return m && m[2] ? m[2].split(/,/) : null;\n}\nvar A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];\nLocale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');\nLocale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,en_GB,es,es_MX,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');\nLocale._impliesRTL = function (vLanguage) {\n var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);\n var sLanguage = oLocale.getLanguage() || '';\n sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n var sRegion = oLocale.getRegion() || '';\n if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {\n return true;\n }\n return A_RTL_LOCALES.indexOf(sLanguage) >= 0;\n};\nLocale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {\n if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {\n sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;\n try {\n return new Locale(sSAPLogonLanguage);\n } catch (e) {\n }\n }\n};\nfunction join() {\n return Array.prototype.filter.call(arguments, Boolean).join('-');\n}\nfunction inverse(obj) {\n return Object.keys(obj).reduce(function (inv, key) {\n inv[obj[key]] = key;\n return inv;\n }, {});\n}\nexport default Locale;","import { attachLanguageChange } from \"../locale/languageChange.js\";\nimport getLocale from \"../locale/getLocale.js\";\nimport { DEFAULT_LOCALE, SUPPORTED_LOCALES } from \"../generated/AssetParameters.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\n\nconst localeDataMap = new Map();\nconst loaders = new Map();\nconst cldrPromises = new Map();\nconst reportedErrors = new Set();\nlet warningShown = false;\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n\t\"sh\": \"sr\",\n};\n\nconst DEV_MODE = false;\n\nconst _showAssetsWarningOnce = localeId => {\n\tif (warningShown) {\n\t\treturn;\n\t}\n\n\tif (!DEV_MODE) {\n\t\tconsole.warn(`[LocaleData] Supported locale \"${localeId}\" not configured, import the \"Assets.js\" module from the webcomponents package you are using.`); /* eslint-disable-line */\n\t} else {\n\t\tconsole.warn(`[LocaleData] Note: in dev mode, CLDR assets might be disabled for performance reasons. Try running \"ENABLE_CLDR=1 yarn start\" to test CLDR assets.`); /* eslint-disable-line */\n\t}\n\n\twarningShown = true;\n};\n\nconst calcLocale = (language, region, script) => {\n\t// normalize language and handle special cases\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language]) || language;\n\t// Special case 1: in an SAP context, the inclusive language code \"no\" always means Norwegian Bokmal (\"nb\")\n\tif (language === \"no\") {\n\t\tlanguage = \"nb\";\n\t}\n\t// Special case 2: for Chinese, derive a default region from the script (this behavior is inherited from Java)\n\tif (language === \"zh\" && !region) {\n\t\tif (script === \"Hans\") {\n\t\t\tregion = \"CN\";\n\t\t} else if (script === \"Hant\") {\n\t\t\tregion = \"TW\";\n\t\t}\n\t}\n\n\t// try language + region\n\tlet localeId = `${language}_${region}`;\n\tif (SUPPORTED_LOCALES.includes(localeId)) {\n\t\tif (loaders.has(localeId)) {\n\t\t\t// supported and has loader\n\t\t\treturn localeId;\n\t\t}\n\n\t\t// supported, no loader - fallback to default and warn\n\t\t_showAssetsWarningOnce(localeId);\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\t// not supported, try language only\n\tlocaleId = language;\n\tif (SUPPORTED_LOCALES.includes(localeId)) {\n\t\tif (loaders.has(localeId)) {\n\t\t\t// supported and has loader\n\t\t\treturn localeId;\n\t\t}\n\n\t\t// supported, no loader - fallback to default and warn\n\t\t_showAssetsWarningOnce(localeId);\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\t// not supported - fallback to default locale\n\treturn DEFAULT_LOCALE;\n};\n\n// internal set data\nconst setLocaleData = (localeId, content) => {\n\tlocaleDataMap.set(localeId, content);\n};\n\n// external getSync\nconst getLocaleData = localeId => {\n\t// if there is no loader, the default fallback was fetched and a warning was given - use default locale instead\n\tif (!loaders.has(localeId)) {\n\t\tlocaleId = DEFAULT_LOCALE;\n\t}\n\n\tconst content = localeDataMap.get(localeId);\n\tif (!content) {\n\t\tthrow new Error(`CLDR data for locale ${localeId} is not loaded!`);\n\t}\n\n\treturn content;\n};\n\n// load bundle over the network once\nconst _loadCldrOnce = localeId => {\n\tconst loadCldr = loaders.get(localeId);\n\n\tif (!cldrPromises.get(localeId)) {\n\t\tcldrPromises.set(localeId, loadCldr(localeId));\n\t}\n\n\treturn cldrPromises.get(localeId);\n};\n\n// external getAsync\nconst fetchCldr = async (language, region, script) => {\n\tconst localeId = calcLocale(language, region, script);\n\n\t// reuse OpenUI5 CLDR if present\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support) {\n\t\tconst cldrContent = OpenUI5Support.getLocaleDataObject();\n\t\tif (cldrContent) {\n\t\t\t// only if openui5 actually returned valid content\n\t\t\tsetLocaleData(localeId, cldrContent);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// fetch it\n\ttry {\n\t\tconst cldrContent = await _loadCldrOnce(localeId);\n\t\tsetLocaleData(localeId, cldrContent);\n\t} catch (e) {\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\nconst registerLocaleDataLoader = (localeId, loader) => {\n\tloaders.set(localeId, loader);\n};\n\n// register default loader for \"en\" from ui5 CDN (dev workflow without assets)\nregisterLocaleDataLoader(\"en\", async runtimeLocaleId => {\n\treturn (await fetch(`https://ui5.sap.com/1.60.2/resources/sap/ui/core/cldr/en.json`)).json();\n});\n\n// When the language changes dynamically (the user calls setLanguage),\n// re-fetch the required CDRD data.\nattachLanguageChange(() => {\n\tconst locale = getLocale();\n\treturn fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());\n});\n\nexport {\n\tregisterLocaleDataLoader,\n\tfetchCldr,\n\tgetLocaleData,\n};\n","import { getLocaleData } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\n\nconst loadResource = moduleName => {\n\tconst moduleFormat = moduleName.match(/sap\\/ui\\/core\\/cldr\\/(\\w+)\\.json/);\n\tif (!moduleFormat) {\n\t\tthrow new Error(`Unknown module \"${moduleName}\"`);\n\t}\n\n\tconst localeId = moduleFormat[1];\n\treturn getLocaleData(localeId);\n};\n\nconst LoaderExtensions = {\n\tloadResource,\n};\n\nexport default LoaderExtensions;\n","import Core from './Core.js';\nimport extend from '../../base/util/extend.js';\nimport BaseObject from '../base/Object.js';\nimport CalendarType from './CalendarType.js';\nimport Locale from './Locale.js';\nimport assert from '../../base/assert.js';\nimport LoaderExtensions from '../../base/util/LoaderExtensions.js';\nvar LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {\n constructor: function (oLocale) {\n this.oLocale = oLocale;\n BaseObject.apply(this);\n this.mData = getData(oLocale);\n },\n _get: function () {\n return this._getDeep(this.mData, arguments);\n },\n _getMerged: function () {\n return this._get.apply(this, arguments);\n },\n _getDeep: function (oObject, aPropertyNames) {\n var oResult = oObject;\n for (var i = 0; i < aPropertyNames.length; i++) {\n oResult = oResult[aPropertyNames[i]];\n if (oResult === undefined) {\n break;\n }\n }\n return oResult;\n },\n getOrientation: function () {\n return this._get('orientation');\n },\n getCurrentLanguageName: function () {\n var oLanguages = this.getLanguages();\n var sCurrentLanguage;\n var sLanguage = this.oLocale.getModernLanguage();\n var sScript = this.oLocale.getScript();\n if (sLanguage === 'sr' && sScript === 'Latn') {\n sLanguage = 'sh';\n sScript = null;\n }\n if (this.oLocale.getRegion()) {\n sCurrentLanguage = oLanguages[sLanguage + '_' + this.oLocale.getRegion()];\n }\n if (!sCurrentLanguage && sScript) {\n sCurrentLanguage = oLanguages[sLanguage + '_' + sScript];\n }\n if (!sCurrentLanguage) {\n sCurrentLanguage = oLanguages[sLanguage];\n }\n return sCurrentLanguage;\n },\n getLanguages: function () {\n return this._get('languages');\n },\n getScripts: function () {\n return this._get('scripts');\n },\n getTerritories: function () {\n return this._get('territories');\n },\n getMonths: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'months', 'format', sWidth);\n },\n getMonthsStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'months', 'stand-alone', sWidth);\n },\n getDays: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide' || sWidth == 'short', 'sWidth must be narrow, abbreviate, wide or short');\n return this._get(getCLDRCalendarName(sCalendarType), 'days', 'format', sWidth);\n },\n getDaysStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide' || sWidth == 'short', 'sWidth must be narrow, abbreviated, wide or short');\n return this._get(getCLDRCalendarName(sCalendarType), 'days', 'stand-alone', sWidth);\n },\n getQuarters: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'quarters', 'format', sWidth);\n },\n getQuartersStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'quarters', 'stand-alone', sWidth);\n },\n getDayPeriods: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'dayPeriods', 'format', sWidth);\n },\n getDayPeriodsStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'dayPeriods', 'stand-alone', sWidth);\n },\n getDatePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'dateFormats', sStyle);\n },\n getTimePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'timeFormats', sStyle);\n },\n getDateTimePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', sStyle);\n },\n getCombinedDateTimePattern: function (sDateStyle, sTimeStyle, sCalendarType) {\n assert(sDateStyle == 'short' || sDateStyle == 'medium' || sDateStyle == 'long' || sDateStyle == 'full', 'sStyle must be short, medium, long or full');\n assert(sTimeStyle == 'short' || sTimeStyle == 'medium' || sTimeStyle == 'long' || sTimeStyle == 'full', 'sStyle must be short, medium, long or full');\n var sDateTimePattern = this.getDateTimePattern(sDateStyle, sCalendarType), sDatePattern = this.getDatePattern(sDateStyle, sCalendarType), sTimePattern = this.getTimePattern(sTimeStyle, sCalendarType);\n return sDateTimePattern.replace('{0}', sTimePattern).replace('{1}', sDatePattern);\n },\n getCustomDateTimePattern: function (sSkeleton, sCalendarType) {\n var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');\n return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType);\n },\n getIntervalPattern: function (sId, sCalendarType) {\n var oIntervalFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats'), aIdParts, sIntervalId, sDifference, oInterval, sPattern;\n if (sId) {\n aIdParts = sId.split('-');\n sIntervalId = aIdParts[0];\n sDifference = aIdParts[1];\n oInterval = oIntervalFormats[sIntervalId];\n if (oInterval) {\n sPattern = oInterval[sDifference];\n if (sPattern) {\n return sPattern;\n }\n }\n }\n return oIntervalFormats.intervalFormatFallback;\n },\n getCombinedIntervalPattern: function (sPattern, sCalendarType) {\n var oIntervalFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats'), sFallbackPattern = oIntervalFormats.intervalFormatFallback;\n return sFallbackPattern.replace(/\\{(0|1)\\}/g, sPattern);\n },\n getCustomIntervalPattern: function (sSkeleton, vGreatestDiff, sCalendarType) {\n var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats');\n return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType, vGreatestDiff);\n },\n _getFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var vPattern, aPatterns, oIntervalFormats;\n if (!vDiff) {\n vPattern = oAvailableFormats[sSkeleton];\n } else if (typeof vDiff === 'string') {\n if (vDiff == 'j' || vDiff == 'J') {\n vDiff = this.getPreferredHourSymbol();\n }\n oIntervalFormats = oAvailableFormats[sSkeleton];\n vPattern = oIntervalFormats && oIntervalFormats[vDiff];\n }\n if (vPattern) {\n if (typeof vPattern === 'object') {\n aPatterns = Object.keys(vPattern).map(function (sKey) {\n return vPattern[sKey];\n });\n } else {\n return vPattern;\n }\n }\n if (!aPatterns) {\n aPatterns = this._createFormatPattern(sSkeleton, oAvailableFormats, sCalendarType, vDiff);\n }\n if (aPatterns && aPatterns.length === 1) {\n return aPatterns[0];\n }\n return aPatterns;\n },\n _createFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var aTokens = this._parseSkeletonFormat(sSkeleton), aPatterns, oBestMatch = this._findBestMatch(aTokens, sSkeleton, oAvailableFormats), oToken, oAvailableDateTimeFormats, oSymbol, oGroup, sPattern, sSinglePattern, sDiffSymbol, sDiffGroup, rMixedSkeleton = /^([GyYqQMLwWEecdD]+)([hHkKjJmszZvVOXx]+)$/, bSingleDate, i;\n if (vDiff) {\n if (typeof vDiff === 'string') {\n sDiffGroup = mCLDRSymbols[vDiff] ? mCLDRSymbols[vDiff].group : '';\n if (sDiffGroup) {\n bSingleDate = mCLDRSymbolGroups[sDiffGroup].index > aTokens[aTokens.length - 1].index;\n }\n sDiffSymbol = vDiff;\n } else {\n bSingleDate = true;\n if (aTokens[0].symbol === 'y' && oBestMatch && oBestMatch.pattern.G) {\n oSymbol = mCLDRSymbols['G'];\n oGroup = mCLDRSymbolGroups[oSymbol.group];\n aTokens.splice(0, 0, {\n symbol: 'G',\n group: oSymbol.group,\n match: oSymbol.match,\n index: oGroup.index,\n field: oGroup.field,\n length: 1\n });\n }\n for (i = aTokens.length - 1; i >= 0; i--) {\n oToken = aTokens[i];\n if (vDiff[oToken.group]) {\n bSingleDate = false;\n break;\n }\n }\n for (i = 0; i < aTokens.length; i++) {\n oToken = aTokens[i];\n if (vDiff[oToken.group]) {\n sDiffSymbol = oToken.symbol;\n break;\n }\n }\n if ((sDiffSymbol == 'h' || sDiffSymbol == 'K') && vDiff.DayPeriod) {\n sDiffSymbol = 'a';\n }\n }\n if (bSingleDate) {\n return [this.getCustomDateTimePattern(sSkeleton, sCalendarType)];\n }\n if (oBestMatch && oBestMatch.missingTokens.length === 0) {\n sPattern = oBestMatch.pattern[sDiffSymbol];\n if (sPattern && oBestMatch.distance > 0) {\n sPattern = this._expandFields(sPattern, oBestMatch.patternTokens, aTokens);\n }\n }\n if (!sPattern) {\n oAvailableDateTimeFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');\n if (rMixedSkeleton.test(sSkeleton) && 'ahHkKjJms'.indexOf(sDiffSymbol) >= 0) {\n sPattern = this._getMixedFormatPattern(sSkeleton, oAvailableDateTimeFormats, sCalendarType, vDiff);\n } else {\n sSinglePattern = this._getFormatPattern(sSkeleton, oAvailableDateTimeFormats, sCalendarType);\n sPattern = this.getCombinedIntervalPattern(sSinglePattern, sCalendarType);\n }\n }\n aPatterns = [sPattern];\n } else if (!oBestMatch) {\n sPattern = sSkeleton;\n aPatterns = [sPattern];\n } else {\n if (typeof oBestMatch.pattern === 'string') {\n aPatterns = [oBestMatch.pattern];\n } else if (typeof oBestMatch.pattern === 'object') {\n aPatterns = [];\n for (var sKey in oBestMatch.pattern) {\n sPattern = oBestMatch.pattern[sKey];\n aPatterns.push(sPattern);\n }\n }\n if (oBestMatch.distance > 0) {\n if (oBestMatch.missingTokens.length > 0) {\n if (rMixedSkeleton.test(sSkeleton)) {\n aPatterns = [this._getMixedFormatPattern(sSkeleton, oAvailableFormats, sCalendarType)];\n } else {\n aPatterns = this._expandFields(aPatterns, oBestMatch.patternTokens, aTokens);\n aPatterns = this._appendItems(aPatterns, oBestMatch.missingTokens, sCalendarType);\n }\n } else {\n aPatterns = this._expandFields(aPatterns, oBestMatch.patternTokens, aTokens);\n }\n }\n }\n if (sSkeleton.indexOf('J') >= 0) {\n aPatterns.forEach(function (sPattern, iIndex) {\n aPatterns[iIndex] = sPattern.replace(/ ?[abB](?=([^']*'[^']*')*[^']*)$/g, '');\n });\n }\n return aPatterns;\n },\n _parseSkeletonFormat: function (sSkeleton) {\n var aTokens = [], oToken = { index: -1 }, sSymbol, oSymbol, oGroup;\n for (var i = 0; i < sSkeleton.length; i++) {\n sSymbol = sSkeleton.charAt(i);\n if (sSymbol == 'j' || sSymbol == 'J') {\n sSymbol = this.getPreferredHourSymbol();\n }\n if (sSymbol == oToken.symbol) {\n oToken.length++;\n continue;\n }\n oSymbol = mCLDRSymbols[sSymbol];\n oGroup = mCLDRSymbolGroups[oSymbol.group];\n if (oSymbol.group == 'Other' || oGroup.diffOnly) {\n throw new Error('Symbol \\'' + sSymbol + '\\' is not allowed in skeleton format \\'' + sSkeleton + '\\'');\n }\n if (oGroup.index <= oToken.index) {\n throw new Error('Symbol \\'' + sSymbol + '\\' at wrong position or duplicate in skeleton format \\'' + sSkeleton + '\\'');\n }\n oToken = {\n symbol: sSymbol,\n group: oSymbol.group,\n match: oSymbol.match,\n index: oGroup.index,\n field: oGroup.field,\n length: 1\n };\n aTokens.push(oToken);\n }\n return aTokens;\n },\n _findBestMatch: function (aTokens, sSkeleton, oAvailableFormats) {\n var aTestTokens, aMissingTokens, oToken, oTestToken, iTest, iDistance, bMatch, iFirstDiffPos, oTokenSymbol, oTestTokenSymbol, oBestMatch = {\n distance: 10000,\n firstDiffPos: -1\n };\n for (var sTestSkeleton in oAvailableFormats) {\n if (sTestSkeleton === 'intervalFormatFallback' || sTestSkeleton.indexOf('B') > -1) {\n continue;\n }\n aTestTokens = this._parseSkeletonFormat(sTestSkeleton);\n iDistance = 0;\n aMissingTokens = [];\n bMatch = true;\n if (aTokens.length < aTestTokens.length) {\n continue;\n }\n iTest = 0;\n iFirstDiffPos = aTokens.length;\n for (var i = 0; i < aTokens.length; i++) {\n oToken = aTokens[i];\n oTestToken = aTestTokens[iTest];\n if (iFirstDiffPos === aTokens.length) {\n iFirstDiffPos = i;\n }\n if (oTestToken) {\n oTokenSymbol = mCLDRSymbols[oToken.symbol];\n oTestTokenSymbol = mCLDRSymbols[oTestToken.symbol];\n if (oToken.symbol === oTestToken.symbol) {\n if (oToken.length === oTestToken.length) {\n if (iFirstDiffPos === i) {\n iFirstDiffPos = aTokens.length;\n }\n } else {\n if (oToken.length < oTokenSymbol.numericCeiling ? oTestToken.length < oTestTokenSymbol.numericCeiling : oTestToken.length >= oTestTokenSymbol.numericCeiling) {\n iDistance += Math.abs(oToken.length - oTestToken.length);\n } else {\n iDistance += 5;\n }\n }\n iTest++;\n continue;\n } else {\n if (oToken.match == oTestToken.match) {\n iDistance += Math.abs(oToken.length - oTestToken.length) + 10;\n iTest++;\n continue;\n }\n }\n }\n aMissingTokens.push(oToken);\n iDistance += 50 - i;\n }\n if (iTest < aTestTokens.length) {\n bMatch = false;\n }\n if (bMatch && (iDistance < oBestMatch.distance || iDistance === oBestMatch.distance && iFirstDiffPos > oBestMatch.firstDiffPos)) {\n oBestMatch.distance = iDistance;\n oBestMatch.firstDiffPos = iFirstDiffPos;\n oBestMatch.missingTokens = aMissingTokens;\n oBestMatch.pattern = oAvailableFormats[sTestSkeleton];\n oBestMatch.patternTokens = aTestTokens;\n }\n }\n if (oBestMatch.pattern) {\n return oBestMatch;\n }\n },\n _expandFields: function (vPattern, aPatternTokens, aTokens) {\n var bSinglePattern = typeof vPattern === 'string';\n var aPatterns;\n if (bSinglePattern) {\n aPatterns = [vPattern];\n } else {\n aPatterns = vPattern;\n }\n var aResult = aPatterns.map(function (sPattern) {\n var mGroups = {}, mPatternGroups = {}, sResultPatterm = '', bQuoted = false, i = 0, iSkeletonLength, iPatternLength, iBestLength, iNewLength, oSkeletonToken, oBestToken, oSymbol, sChar;\n aTokens.forEach(function (oToken) {\n mGroups[oToken.group] = oToken;\n });\n aPatternTokens.forEach(function (oToken) {\n mPatternGroups[oToken.group] = oToken;\n });\n while (i < sPattern.length) {\n sChar = sPattern.charAt(i);\n if (bQuoted) {\n sResultPatterm += sChar;\n if (sChar == '\\'') {\n bQuoted = false;\n }\n } else {\n oSymbol = mCLDRSymbols[sChar];\n if (oSymbol && mGroups[oSymbol.group] && mPatternGroups[oSymbol.group]) {\n oSkeletonToken = mGroups[oSymbol.group];\n oBestToken = mPatternGroups[oSymbol.group];\n iSkeletonLength = oSkeletonToken.length;\n iBestLength = oBestToken.length;\n iPatternLength = 1;\n while (sPattern.charAt(i + 1) == sChar) {\n i++;\n iPatternLength++;\n }\n if (iSkeletonLength === iBestLength || (iSkeletonLength < oSymbol.numericCeiling ? iPatternLength >= oSymbol.numericCeiling : iPatternLength < oSymbol.numericCeiling)) {\n iNewLength = iPatternLength;\n } else {\n iNewLength = Math.max(iPatternLength, iSkeletonLength);\n }\n for (var j = 0; j < iNewLength; j++) {\n sResultPatterm += sChar;\n }\n } else {\n sResultPatterm += sChar;\n if (sChar == '\\'') {\n bQuoted = true;\n }\n }\n }\n i++;\n }\n return sResultPatterm;\n });\n return bSinglePattern ? aResult[0] : aResult;\n },\n _appendItems: function (aPatterns, aMissingTokens, sCalendarType) {\n var oAppendItems = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'appendItems');\n aPatterns.forEach(function (sPattern, iIndex) {\n var sDisplayName, sAppendPattern, sAppendField;\n aMissingTokens.forEach(function (oToken) {\n sAppendPattern = oAppendItems[oToken.group];\n sDisplayName = '\\'' + this.getDisplayName(oToken.field) + '\\'';\n sAppendField = '';\n for (var i = 0; i < oToken.length; i++) {\n sAppendField += oToken.symbol;\n }\n aPatterns[iIndex] = sAppendPattern.replace(/\\{0\\}/, sPattern).replace(/\\{1\\}/, sAppendField).replace(/\\{2\\}/, sDisplayName);\n }.bind(this));\n }.bind(this));\n return aPatterns;\n },\n _getMixedFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var rMixedSkeleton = /^([GyYqQMLwWEecdD]+)([hHkKjJmszZvVOXx]+)$/, rWideMonth = /MMMM|LLLL/, rAbbrevMonth = /MMM|LLL/, rWeekDay = /E|e|c/, oResult, sDateSkeleton, sTimeSkeleton, sStyle, sDatePattern, sTimePattern, sDateTimePattern, sResultPattern;\n oResult = rMixedSkeleton.exec(sSkeleton);\n sDateSkeleton = oResult[1];\n sTimeSkeleton = oResult[2];\n sDatePattern = this._getFormatPattern(sDateSkeleton, oAvailableFormats, sCalendarType);\n if (vDiff) {\n sTimePattern = this.getCustomIntervalPattern(sTimeSkeleton, vDiff, sCalendarType);\n } else {\n sTimePattern = this._getFormatPattern(sTimeSkeleton, oAvailableFormats, sCalendarType);\n }\n if (rWideMonth.test(sDateSkeleton)) {\n sStyle = rWeekDay.test(sDateSkeleton) ? 'full' : 'long';\n } else if (rAbbrevMonth.test(sDateSkeleton)) {\n sStyle = 'medium';\n } else {\n sStyle = 'short';\n }\n sDateTimePattern = this.getDateTimePattern(sStyle, sCalendarType);\n sResultPattern = sDateTimePattern.replace(/\\{1\\}/, sDatePattern).replace(/\\{0\\}/, sTimePattern);\n return sResultPattern;\n },\n getNumberSymbol: function (sType) {\n assert(sType == 'decimal' || sType == 'group' || sType == 'plusSign' || sType == 'minusSign' || sType == 'percentSign', 'sType must be decimal, group, plusSign, minusSign or percentSign');\n return this._get('symbols-latn-' + sType);\n },\n getLenientNumberSymbols: function (sType) {\n assert(sType == 'plusSign' || sType == 'minusSign', 'sType must be plusSign or minusSign');\n return this._get('lenient-scope-number')[sType];\n },\n getDecimalPattern: function () {\n return this._get('decimalFormat').standard;\n },\n getCurrencyPattern: function (sContext) {\n return this._get('currencyFormat')[sContext] || this._get('currencyFormat').standard;\n },\n getCurrencySpacing: function (sPosition) {\n return this._get('currencyFormat', 'currencySpacing', sPosition === 'after' ? 'afterCurrency' : 'beforeCurrency');\n },\n getPercentPattern: function () {\n return this._get('percentFormat').standard;\n },\n getMiscPattern: function (sName) {\n assert(sName == 'approximately' || sName == 'atLeast' || sName == 'atMost' || sName == 'range', 'sName must be approximately, atLeast, atMost or range');\n return this._get('miscPattern')[sName];\n },\n getMinimalDaysInFirstWeek: function () {\n return this._get('weekData-minDays');\n },\n getFirstDayOfWeek: function () {\n return this._get('weekData-firstDay');\n },\n getWeekendStart: function () {\n return this._get('weekData-weekendStart');\n },\n getWeekendEnd: function () {\n return this._get('weekData-weekendEnd');\n },\n getCustomCurrencyCodes: function () {\n var mCustomCurrencies = this._get('currency') || {}, mCustomCurrencyCodes = {};\n Object.keys(mCustomCurrencies).forEach(function (sCurrencyKey) {\n mCustomCurrencyCodes[sCurrencyKey] = sCurrencyKey;\n });\n return mCustomCurrencyCodes;\n },\n getCurrencyDigits: function (sCurrency) {\n var mCustomCurrencies = this._get('currency');\n if (mCustomCurrencies) {\n if (mCustomCurrencies[sCurrency] && mCustomCurrencies[sCurrency].hasOwnProperty('digits')) {\n return mCustomCurrencies[sCurrency].digits;\n } else if (mCustomCurrencies['DEFAULT'] && mCustomCurrencies['DEFAULT'].hasOwnProperty('digits')) {\n return mCustomCurrencies['DEFAULT'].digits;\n }\n }\n var iDigits = this._get('currencyDigits', sCurrency);\n if (iDigits == null) {\n iDigits = this._get('currencyDigits', 'DEFAULT');\n if (iDigits == null) {\n iDigits = 2;\n }\n }\n return iDigits;\n },\n getCurrencySymbol: function (sCurrency) {\n var oCurrencySymbols = this.getCurrencySymbols();\n return oCurrencySymbols && oCurrencySymbols[sCurrency] || sCurrency;\n },\n getCurrencyCodeBySymbol: function (sCurrencySymbol) {\n var oCurrencySymbols = this._get('currencySymbols'), sCurrencyCode;\n for (sCurrencyCode in oCurrencySymbols) {\n if (oCurrencySymbols[sCurrencyCode] === sCurrencySymbol) {\n return sCurrencyCode;\n }\n }\n return sCurrencySymbol;\n },\n getCurrencySymbols: function () {\n var mCustomCurrencies = this._get('currency'), mCustomCurrencySymbols = {}, sIsoCode;\n for (var sCurrencyKey in mCustomCurrencies) {\n sIsoCode = mCustomCurrencies[sCurrencyKey].isoCode;\n if (mCustomCurrencies[sCurrencyKey].symbol) {\n mCustomCurrencySymbols[sCurrencyKey] = mCustomCurrencies[sCurrencyKey].symbol;\n } else if (sIsoCode) {\n mCustomCurrencySymbols[sCurrencyKey] = this._get('currencySymbols')[sIsoCode];\n }\n }\n return Object.assign({}, this._get('currencySymbols'), mCustomCurrencySymbols);\n },\n getUnitDisplayName: function (sUnit) {\n var mUnitFormat = this.getUnitFormat(sUnit);\n return mUnitFormat && mUnitFormat['displayName'] || '';\n },\n getRelativePatterns: function (aScales, sStyle) {\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n var aPatterns = [], aPluralCategories = this.getPluralCategories(), oScale, oTimeEntry, iValue, iSign;\n if (!aScales) {\n aScales = [\n 'year',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ];\n }\n aScales.forEach(function (sScale) {\n oScale = this._get('dateFields', sScale + '-' + sStyle);\n for (var sEntry in oScale) {\n if (sEntry.indexOf('relative-type-') === 0) {\n iValue = parseInt(sEntry.substr(14));\n aPatterns.push({\n scale: sScale,\n value: iValue,\n pattern: oScale[sEntry]\n });\n } else if (sEntry.indexOf('relativeTime-type-') == 0) {\n oTimeEntry = oScale[sEntry];\n iSign = sEntry.substr(18) === 'past' ? -1 : 1;\n aPluralCategories.forEach(function (sKey) {\n aPatterns.push({\n scale: sScale,\n sign: iSign,\n pattern: oTimeEntry['relativeTimePattern-count-' + sKey]\n });\n });\n }\n }\n }.bind(this));\n return aPatterns;\n },\n getRelativePattern: function (sScale, iDiff, bFuture, sStyle) {\n var sPattern, oTypes, sKey, sPluralCategory;\n if (typeof bFuture === 'string') {\n sStyle = bFuture;\n bFuture = undefined;\n }\n if (bFuture === undefined) {\n bFuture = iDiff > 0;\n }\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n sKey = sScale + '-' + sStyle;\n if (iDiff === 0 || iDiff === -2 || iDiff === 2) {\n sPattern = this._get('dateFields', sKey, 'relative-type-' + iDiff);\n }\n if (!sPattern) {\n oTypes = this._get('dateFields', sKey, 'relativeTime-type-' + (bFuture ? 'future' : 'past'));\n sPluralCategory = this.getPluralCategory(Math.abs(iDiff).toString());\n sPattern = oTypes['relativeTimePattern-count-' + sPluralCategory];\n }\n return sPattern;\n },\n getRelativeSecond: function (iDiff, sStyle) {\n return this.getRelativePattern('second', iDiff, sStyle);\n },\n getRelativeMinute: function (iDiff, sStyle) {\n if (iDiff == 0) {\n return null;\n }\n return this.getRelativePattern('minute', iDiff, sStyle);\n },\n getRelativeHour: function (iDiff, sStyle) {\n if (iDiff == 0) {\n return null;\n }\n return this.getRelativePattern('hour', iDiff, sStyle);\n },\n getRelativeDay: function (iDiff, sStyle) {\n return this.getRelativePattern('day', iDiff, sStyle);\n },\n getRelativeWeek: function (iDiff, sStyle) {\n return this.getRelativePattern('week', iDiff, sStyle);\n },\n getRelativeMonth: function (iDiff, sStyle) {\n return this.getRelativePattern('month', iDiff, sStyle);\n },\n getDisplayName: function (sType, sStyle) {\n assert(sType == 'second' || sType == 'minute' || sType == 'hour' || sType == 'zone' || sType == 'day' || sType == 'weekday' || sType == 'week' || sType == 'month' || sType == 'quarter' || sType == 'year' || sType == 'era', 'sType must be second, minute, hour, zone, day, weekday, week, month, quarter, year, era');\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n var aSingleFormFields = [\n 'era',\n 'weekday',\n 'zone'\n ], sKey = aSingleFormFields.indexOf(sType) === -1 ? sType + '-' + sStyle : sType;\n return this._get('dateFields', sKey, 'displayName');\n },\n getRelativeYear: function (iDiff, sStyle) {\n return this.getRelativePattern('year', iDiff, sStyle);\n },\n getDecimalFormat: function (sStyle, sNumber, sPlural) {\n var sFormat;\n var oFormats;\n switch (sStyle) {\n case 'long':\n oFormats = this._get('decimalFormat-long');\n break;\n default:\n oFormats = this._get('decimalFormat-short');\n break;\n }\n if (oFormats) {\n var sName = sNumber + '-' + sPlural;\n sFormat = oFormats[sName];\n if (!sFormat) {\n sName = sNumber + '-other';\n sFormat = oFormats[sName];\n }\n }\n return sFormat;\n },\n getCurrencyFormat: function (sStyle, sNumber, sPlural) {\n var sFormat;\n var oFormats = this._get('currencyFormat-' + sStyle);\n if (!oFormats) {\n if (sStyle === 'sap-short') {\n throw new Error('Failed to get CLDR data for property \"currencyFormat-sap-short\"');\n }\n oFormats = this._get('currencyFormat-short');\n }\n if (oFormats) {\n var sName = sNumber + '-' + sPlural;\n sFormat = oFormats[sName];\n if (!sFormat) {\n sName = sNumber + '-other';\n sFormat = oFormats[sName];\n }\n }\n return sFormat;\n },\n getListFormat: function (sType, sStyle) {\n var oFormats = this._get('listPattern-' + (sType || 'standard') + '-' + (sStyle || 'wide'));\n if (oFormats) {\n return oFormats;\n }\n return {};\n },\n getResolvedUnitFormat: function (sUnit) {\n sUnit = this.getUnitFromMapping(sUnit) || sUnit;\n return this.getUnitFormat(sUnit);\n },\n getUnitFormat: function (sUnit) {\n return this._get('units', 'short', sUnit);\n },\n getUnitFormats: function () {\n return this._getMerged('units', 'short');\n },\n getUnitFromMapping: function (sMapping) {\n return this._get('unitMappings', sMapping);\n },\n getEras: function (sWidth, sCalendarType) {\n assert(sWidth == 'wide' || sWidth == 'abbreviated' || sWidth == 'narrow', 'sWidth must be wide, abbreviate or narrow');\n var oEras = this._get(getCLDRCalendarName(sCalendarType), 'era-' + sWidth), aEras = [];\n for (var i in oEras) {\n aEras[parseInt(i)] = oEras[i];\n }\n return aEras;\n },\n getEraDates: function (sCalendarType) {\n var oEraDates = this._get('eras-' + sCalendarType.toLowerCase()), aEraDates = [];\n for (var i in oEraDates) {\n aEraDates[parseInt(i)] = oEraDates[i];\n }\n return aEraDates;\n },\n getCalendarWeek: function (sStyle, iWeekNumber) {\n assert(sStyle == 'wide' || sStyle == 'narrow', 'sStyle must be wide or narrow');\n var oMessageBundle = Core.getLibraryResourceBundle('sap.ui.core', this.oLocale.toString()), sKey = 'date.week.calendarweek.' + sStyle;\n return oMessageBundle.getText(sKey, iWeekNumber);\n },\n firstDayStartsFirstWeek: function () {\n return this._get('weekData-algorithm') === 'FIRSTDAY_STARTS_FIRSTWEEK';\n },\n getPreferredCalendarType: function () {\n var sCalendarPreference = this._get('calendarPreference'), aCalendars = sCalendarPreference ? sCalendarPreference.split(' ') : [], sCalendarName, sType, i;\n for (i = 0; i < aCalendars.length; i++) {\n sCalendarName = aCalendars[i].split('-')[0];\n for (sType in CalendarType) {\n if (sCalendarName === sType.toLowerCase()) {\n return sType;\n }\n }\n }\n return CalendarType.Gregorian;\n },\n getPreferredHourSymbol: function () {\n return this._get('timeData', '_preferred');\n },\n getPluralCategories: function () {\n var oPlurals = this._get('plurals'), aCategories = Object.keys(oPlurals);\n aCategories.push('other');\n return aCategories;\n },\n getPluralCategory: function (sNumber) {\n var oPlurals = this._get('plurals');\n if (typeof sNumber === 'number') {\n sNumber = sNumber.toString();\n }\n if (!this._pluralTest) {\n this._pluralTest = {};\n }\n for (var sCategory in oPlurals) {\n var fnTest = this._pluralTest[sCategory];\n if (!fnTest) {\n fnTest = this._parsePluralRule(oPlurals[sCategory]);\n this._pluralTest[sCategory] = fnTest;\n }\n if (fnTest(sNumber)) {\n return sCategory;\n }\n }\n return 'other';\n },\n _parsePluralRule: function (sRule) {\n var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', RANGE = '..', SEP = ',';\n var i = 0, aTokens;\n aTokens = sRule.split(' ');\n function accept(sToken) {\n if (aTokens[i] === sToken) {\n i++;\n return true;\n }\n return false;\n }\n function consume() {\n var sToken = aTokens[i];\n i++;\n return sToken;\n }\n function or_condition() {\n var fnAnd, fnOr;\n fnAnd = and_condition();\n if (accept(OP_OR)) {\n fnOr = or_condition();\n return function (o) {\n return fnAnd(o) || fnOr(o);\n };\n }\n return fnAnd;\n }\n function and_condition() {\n var fnRelation, fnAnd;\n fnRelation = relation();\n if (accept(OP_AND)) {\n fnAnd = and_condition();\n return function (o) {\n return fnRelation(o) && fnAnd(o);\n };\n }\n return fnRelation;\n }\n function relation() {\n var fnExpr, fnRangeList, bEq;\n fnExpr = expr();\n if (accept(OP_EQ)) {\n bEq = true;\n } else if (accept(OP_NEQ)) {\n bEq = false;\n } else {\n throw new Error('Expected \\'=\\' or \\'!=\\'');\n }\n fnRangeList = range_list();\n if (bEq) {\n return function (o) {\n return fnRangeList(o).indexOf(fnExpr(o)) >= 0;\n };\n } else {\n return function (o) {\n return fnRangeList(o).indexOf(fnExpr(o)) === -1;\n };\n }\n }\n function expr() {\n var fnOperand;\n fnOperand = operand();\n if (accept(OP_MOD)) {\n var iDivisor = parseInt(consume());\n return function (o) {\n return fnOperand(o) % iDivisor;\n };\n }\n return fnOperand;\n }\n function operand() {\n if (accept(OPD_N)) {\n return function (o) {\n return o.n;\n };\n } else if (accept(OPD_I)) {\n return function (o) {\n return o.i;\n };\n } else if (accept(OPD_F)) {\n return function (o) {\n return o.f;\n };\n } else if (accept(OPD_T)) {\n return function (o) {\n return o.t;\n };\n } else if (accept(OPD_V)) {\n return function (o) {\n return o.v;\n };\n } else if (accept(OPD_W)) {\n return function (o) {\n return o.w;\n };\n } else {\n throw new Error('Unknown operand: ' + consume());\n }\n }\n function range_list() {\n var aValues = [], sRangeList = consume(), aParts = sRangeList.split(SEP), aRange, iFrom, iTo;\n aParts.forEach(function (sPart) {\n aRange = sPart.split(RANGE);\n if (aRange.length === 1) {\n aValues.push(parseInt(sPart));\n } else {\n iFrom = parseInt(aRange[0]);\n iTo = parseInt(aRange[1]);\n for (var i = iFrom; i <= iTo; i++) {\n aValues.push(i);\n }\n }\n });\n return function (o) {\n return aValues;\n };\n }\n var fnOr = or_condition();\n if (i != aTokens.length) {\n throw new Error('Not completely parsed');\n }\n return function (sValue) {\n var iDotPos = sValue.indexOf('.'), sDecimal, sFraction, sFractionNoZeros, o;\n if (iDotPos === -1) {\n sDecimal = sValue;\n sFraction = '';\n sFractionNoZeros = '';\n } else {\n sDecimal = sValue.substr(0, iDotPos);\n sFraction = sValue.substr(iDotPos + 1);\n sFractionNoZeros = sFraction.replace(/0+$/, '');\n }\n o = {\n n: parseFloat(sValue),\n i: parseInt(sDecimal),\n v: sFraction.length,\n w: sFractionNoZeros.length,\n f: parseInt(sFraction),\n t: parseInt(sFractionNoZeros)\n };\n return fnOr(o);\n };\n }\n});\nvar mCLDRSymbolGroups = {\n 'Era': {\n field: 'era',\n index: 0\n },\n 'Year': {\n field: 'year',\n index: 1\n },\n 'Quarter': {\n field: 'quarter',\n index: 2\n },\n 'Month': {\n field: 'month',\n index: 3\n },\n 'Week': {\n field: 'week',\n index: 4\n },\n 'Day-Of-Week': {\n field: 'weekday',\n index: 5\n },\n 'Day': {\n field: 'day',\n index: 6\n },\n 'DayPeriod': {\n field: 'hour',\n index: 7,\n diffOnly: true\n },\n 'Hour': {\n field: 'hour',\n index: 8\n },\n 'Minute': {\n field: 'minute',\n index: 9\n },\n 'Second': {\n field: 'second',\n index: 10\n },\n 'Timezone': {\n field: 'zone',\n index: 11\n }\n};\nvar mCLDRSymbols = {\n 'G': {\n group: 'Era',\n match: 'Era',\n numericCeiling: 1\n },\n 'y': {\n group: 'Year',\n match: 'Year',\n numericCeiling: 100\n },\n 'Y': {\n group: 'Year',\n match: 'Year',\n numericCeiling: 100\n },\n 'Q': {\n group: 'Quarter',\n match: 'Quarter',\n numericCeiling: 3\n },\n 'q': {\n group: 'Quarter',\n match: 'Quarter',\n numericCeiling: 3\n },\n 'M': {\n group: 'Month',\n match: 'Month',\n numericCeiling: 3\n },\n 'L': {\n group: 'Month',\n match: 'Month',\n numericCeiling: 3\n },\n 'w': {\n group: 'Week',\n match: 'Week',\n numericCeiling: 100\n },\n 'W': {\n group: 'Week',\n match: 'Week',\n numericCeiling: 100\n },\n 'd': {\n group: 'Day',\n match: 'Day',\n numericCeiling: 100\n },\n 'D': {\n group: 'Day',\n match: 'Day',\n numericCeiling: 100\n },\n 'E': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 1\n },\n 'e': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 3\n },\n 'c': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 2\n },\n 'h': {\n group: 'Hour',\n match: 'Hour12',\n numericCeiling: 100\n },\n 'H': {\n group: 'Hour',\n match: 'Hour24',\n numericCeiling: 100\n },\n 'k': {\n group: 'Hour',\n match: 'Hour24',\n numericCeiling: 100\n },\n 'K': {\n group: 'Hour',\n match: 'Hour12',\n numericCeiling: 100\n },\n 'm': {\n group: 'Minute',\n match: 'Minute',\n numericCeiling: 100\n },\n 's': {\n group: 'Second',\n match: 'Second',\n numericCeiling: 100\n },\n 'z': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'Z': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'O': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'v': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'V': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'X': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'x': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'S': {\n group: 'Other',\n numericCeiling: 100\n },\n 'u': {\n group: 'Other',\n numericCeiling: 100\n },\n 'U': {\n group: 'Other',\n numericCeiling: 1\n },\n 'r': {\n group: 'Other',\n numericCeiling: 100\n },\n 'F': {\n group: 'Other',\n numericCeiling: 100\n },\n 'g': {\n group: 'Other',\n numericCeiling: 100\n },\n 'a': {\n group: 'DayPeriod',\n numericCeiling: 1\n },\n 'b': {\n group: 'Other',\n numericCeiling: 1\n },\n 'B': {\n group: 'Other',\n numericCeiling: 1\n },\n 'A': {\n group: 'Other',\n numericCeiling: 100\n }\n};\nvar M_ISO639_OLD_TO_NEW = {\n 'iw': 'he',\n 'ji': 'yi'\n};\nvar M_SUPPORTED_LOCALES = function () {\n var LOCALES = Locale._cldrLocales, result = {}, i;\n if (LOCALES) {\n for (i = 0; i < LOCALES.length; i++) {\n result[LOCALES[i]] = true;\n }\n }\n return result;\n}();\nvar mLocaleDatas = {};\nfunction getCLDRCalendarName(sCalendarType) {\n if (!sCalendarType) {\n sCalendarType = Core.getConfiguration().getCalendarType();\n }\n return 'ca-' + sCalendarType.toLowerCase();\n}\nfunction getData(oLocale) {\n var sLanguage = oLocale.getLanguage() || '', sScript = oLocale.getScript() || '', sRegion = oLocale.getRegion() || '', mData;\n function merge(obj, fallbackObj) {\n var name, value, fallbackValue;\n if (!fallbackObj) {\n return;\n }\n for (name in fallbackObj) {\n if (fallbackObj.hasOwnProperty(name)) {\n value = obj[name];\n fallbackValue = fallbackObj[name];\n if (value === undefined) {\n obj[name] = fallbackValue;\n } else if (value === null) {\n delete obj[name];\n } else if (typeof value === 'object' && typeof fallbackValue === 'object') {\n merge(value, fallbackValue);\n }\n }\n }\n }\n function getOrLoad(sId) {\n if (!mLocaleDatas[sId] && (!M_SUPPORTED_LOCALES || M_SUPPORTED_LOCALES[sId] === true)) {\n var data = mLocaleDatas[sId] = LoaderExtensions.loadResource('sap/ui/core/cldr/' + sId + '.json', {\n dataType: 'json',\n failOnError: false\n });\n if (data && data.__fallbackLocale) {\n merge(data, getOrLoad(data.__fallbackLocale));\n delete data.__fallbackLocale;\n }\n }\n return mLocaleDatas[sId];\n }\n sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n if (sLanguage === 'no') {\n sLanguage = 'nb';\n }\n if (sLanguage === 'zh' && !sRegion) {\n if (sScript === 'Hans') {\n sRegion = 'CN';\n } else if (sScript === 'Hant') {\n sRegion = 'TW';\n }\n }\n if (sLanguage === 'sh' || sLanguage === 'sr' && sScript === 'Latn') {\n sLanguage = 'sr_Latn';\n }\n var sId = sLanguage + '_' + sRegion;\n if (sLanguage && sRegion) {\n mData = getOrLoad(sId);\n }\n if (!mData && sLanguage) {\n mData = getOrLoad(sLanguage);\n }\n mLocaleDatas[sId] = mData || getOrLoad('en');\n return mLocaleDatas[sId];\n}\nvar CustomLocaleData = LocaleData.extend('sap.ui.core.CustomLocaleData', {\n constructor: function (oLocale) {\n LocaleData.apply(this, arguments);\n this.mCustomData = Core.getConfiguration().getFormatSettings().getCustomLocaleData();\n },\n _get: function () {\n var aArguments = Array.prototype.slice.call(arguments), sCalendar, sKey;\n if (aArguments[0].indexOf('ca-') == 0) {\n sCalendar = aArguments[0];\n if (sCalendar == getCLDRCalendarName()) {\n aArguments = aArguments.slice(1);\n }\n }\n sKey = aArguments.join('-');\n var vValue = this.mCustomData[sKey];\n if (vValue == null) {\n vValue = this._getDeep(this.mCustomData, arguments);\n if (vValue == null) {\n vValue = this._getDeep(this.mData, arguments);\n }\n }\n return vValue;\n },\n _getMerged: function () {\n var mData = this._getDeep(this.mData, arguments);\n var mCustomData = this._getDeep(this.mCustomData, arguments);\n return extend({}, mData, mCustomData);\n }\n});\nLocaleData.getInstance = function (oLocale) {\n return oLocale.hasPrivateUseSubtag('sapufmt') ? new CustomLocaleData(oLocale) : new LocaleData(oLocale);\n};\nexport default LocaleData;","var mRegistry = new Map();\nvar _Calendars = {\n get: function (sCalendarType) {\n if (!mRegistry.has(sCalendarType)) {\n throw new Error(\"Required calendar type: \" + sCalendarType + \" not loaded.\");\n }\n return mRegistry.get(sCalendarType);\n },\n set: function (sCalendarType, CalendarClass) {\n mRegistry.set(sCalendarType, CalendarClass);\n }\n};\nexport default _Calendars;\n","import Core from '../Core.js';\nimport BaseObject from '../../base/Object.js';\nimport LocaleData from '../LocaleData.js';\nimport _Calendars from './_Calendars.js';\nvar UniversalDate = BaseObject.extend('sap.ui.core.date.UniversalDate', {\n constructor: function () {\n var clDate = UniversalDate.getClass();\n return this.createDate(clDate, arguments);\n }\n});\nUniversalDate.UTC = function () {\n var clDate = UniversalDate.getClass();\n return clDate.UTC.apply(clDate, arguments);\n};\nUniversalDate.now = function () {\n return Date.now();\n};\nUniversalDate.prototype.createDate = function (clDate, aArgs) {\n switch (aArgs.length) {\n case 0:\n return new clDate();\n case 1:\n return new clDate(aArgs[0] instanceof Date ? aArgs[0].getTime() : aArgs[0]);\n case 2:\n return new clDate(aArgs[0], aArgs[1]);\n case 3:\n return new clDate(aArgs[0], aArgs[1], aArgs[2]);\n case 4:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3]);\n case 5:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4]);\n case 6:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4], aArgs[5]);\n case 7:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4], aArgs[5], aArgs[6]);\n }\n};\nUniversalDate.getInstance = function (oDate, sCalendarType) {\n var clDate, oInstance;\n if (oDate instanceof UniversalDate) {\n oDate = oDate.getJSDate();\n } else if (!oDate) {\n oDate = new Date();\n }\n if (!sCalendarType) {\n sCalendarType = Core.getConfiguration().getCalendarType();\n }\n clDate = UniversalDate.getClass(sCalendarType);\n oInstance = Object.create(clDate.prototype);\n oInstance.oDate = oDate;\n oInstance.sCalendarType = sCalendarType;\n return oInstance;\n};\nUniversalDate.getClass = function (sCalendarType) {\n if (!sCalendarType) {\n sCalendarType = Core.getConfiguration().getCalendarType();\n }\n return _Calendars.get(sCalendarType);\n};\n[\n 'getDate',\n 'getMonth',\n 'getFullYear',\n 'getYear',\n 'getDay',\n 'getHours',\n 'getMinutes',\n 'getSeconds',\n 'getMilliseconds',\n 'getUTCDate',\n 'getUTCMonth',\n 'getUTCFullYear',\n 'getUTCDay',\n 'getUTCHours',\n 'getUTCMinutes',\n 'getUTCSeconds',\n 'getUTCMilliseconds',\n 'getTime',\n 'valueOf',\n 'getTimezoneOffset',\n 'toString',\n 'toDateString',\n 'setDate',\n 'setFullYear',\n 'setYear',\n 'setMonth',\n 'setHours',\n 'setMinutes',\n 'setSeconds',\n 'setMilliseconds',\n 'setUTCDate',\n 'setUTCFullYear',\n 'setUTCMonth',\n 'setUTCHours',\n 'setUTCMinutes',\n 'setUTCSeconds',\n 'setUTCMilliseconds'\n].forEach(function (sName) {\n UniversalDate.prototype[sName] = function () {\n return this.oDate[sName].apply(this.oDate, arguments);\n };\n});\nUniversalDate.prototype.getJSDate = function () {\n return this.oDate;\n};\nUniversalDate.prototype.getCalendarType = function () {\n return this.sCalendarType;\n};\nUniversalDate.prototype.getEra = function () {\n return UniversalDate.getEraByDate(this.sCalendarType, this.oDate.getFullYear(), this.oDate.getMonth(), this.oDate.getDate());\n};\nUniversalDate.prototype.setEra = function (iEra) {\n};\nUniversalDate.prototype.getUTCEra = function () {\n return UniversalDate.getEraByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.oDate.getUTCMonth(), this.oDate.getUTCDate());\n};\nUniversalDate.prototype.setUTCEra = function (iEra) {\n};\nUniversalDate.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate());\n};\nUniversalDate.prototype.setWeek = function (oWeek) {\n var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);\n this.setFullYear(oDate.year, oDate.month, oDate.day);\n};\nUniversalDate.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\nUniversalDate.prototype.setUTCWeek = function (oWeek) {\n var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);\n this.setUTCFullYear(oDate.year, oDate.month, oDate.day);\n};\nUniversalDate.prototype.getQuarter = function () {\n return Math.floor(this.getMonth() / 3);\n};\nUniversalDate.prototype.getUTCQuarter = function () {\n return Math.floor(this.getUTCMonth() / 3);\n};\nUniversalDate.prototype.getDayPeriod = function () {\n if (this.getHours() < 12) {\n return 0;\n } else {\n return 1;\n }\n};\nUniversalDate.prototype.getUTCDayPeriod = function () {\n if (this.getUTCHours() < 12) {\n return 0;\n } else {\n return 1;\n }\n};\nUniversalDate.prototype.getTimezoneShort = function () {\n if (this.oDate.getTimezoneShort) {\n return this.oDate.getTimezoneShort();\n }\n};\nUniversalDate.prototype.getTimezoneLong = function () {\n if (this.oDate.getTimezoneLong) {\n return this.oDate.getTimezoneLong();\n }\n};\nvar iMillisecondsInWeek = 7 * 24 * 60 * 60 * 1000;\nUniversalDate.getWeekByDate = function (sCalendarType, iYear, iMonth, iDay) {\n var oLocale = Core.getConfiguration().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), clDate = this.getClass(sCalendarType), oFirstDay = getFirstDayOfFirstWeek(clDate, iYear), oDate = new clDate(clDate.UTC(iYear, iMonth, iDay)), iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;\n if (oLocaleData.firstDayStartsFirstWeek()) {\n iWeek = calculateWeeks(oFirstDay, oDate);\n } else {\n iLastYear = iYear - 1;\n iNextYear = iYear + 1;\n oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear);\n oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear);\n if (oDate >= oNextFirstDay) {\n iYear = iNextYear;\n iWeek = 0;\n } else if (oDate < oFirstDay) {\n iYear = iLastYear;\n iWeek = calculateWeeks(oLastFirstDay, oDate);\n } else {\n iWeek = calculateWeeks(oFirstDay, oDate);\n }\n }\n return {\n year: iYear,\n week: iWeek\n };\n};\nUniversalDate.getFirstDateOfWeek = function (sCalendarType, iYear, iWeek) {\n var oLocale = Core.getConfiguration().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), clDate = this.getClass(sCalendarType), oFirstDay = getFirstDayOfFirstWeek(clDate, iYear), oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek), bIsRegionUS = oLocaleData.firstDayStartsFirstWeek();\n if (bIsRegionUS && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {\n return {\n year: iYear,\n month: 0,\n day: 1\n };\n }\n return {\n year: oDate.getUTCFullYear(),\n month: oDate.getUTCMonth(),\n day: oDate.getUTCDate()\n };\n};\nfunction getFirstDayOfFirstWeek(clDate, iYear) {\n var oLocale = Core.getConfiguration().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), iMinDays = oLocaleData.getMinimalDaysInFirstWeek(), iFirstDayOfWeek = oLocaleData.getFirstDayOfWeek(), oFirstDay = new clDate(clDate.UTC(iYear, 0, 1)), iDayCount = 7;\n while (oFirstDay.getUTCDay() !== iFirstDayOfWeek) {\n oFirstDay.setUTCDate(oFirstDay.getUTCDate() - 1);\n iDayCount--;\n }\n if (iDayCount < iMinDays) {\n oFirstDay.setUTCDate(oFirstDay.getUTCDate() + 7);\n }\n return oFirstDay;\n}\nfunction calculateWeeks(oFromDate, oToDate) {\n return Math.floor((oToDate.valueOf() - oFromDate.valueOf()) / iMillisecondsInWeek);\n}\nvar mEras = {};\nUniversalDate.getEraByDate = function (sCalendarType, iYear, iMonth, iDay) {\n var aEras = getEras(sCalendarType), iTimestamp = new Date(0).setUTCFullYear(iYear, iMonth, iDay), oEra;\n for (var i = aEras.length - 1; i >= 0; i--) {\n oEra = aEras[i];\n if (!oEra) {\n continue;\n }\n if (oEra._start && iTimestamp >= oEra._startInfo.timestamp) {\n return i;\n }\n if (oEra._end && iTimestamp < oEra._endInfo.timestamp) {\n return i;\n }\n }\n};\nUniversalDate.getCurrentEra = function (sCalendarType) {\n var oNow = new Date();\n return this.getEraByDate(sCalendarType, oNow.getFullYear(), oNow.getMonth(), oNow.getDate());\n};\nUniversalDate.getEraStartDate = function (sCalendarType, iEra) {\n var aEras = getEras(sCalendarType), oEra = aEras[iEra] || aEras[0];\n if (oEra._start) {\n return oEra._startInfo;\n }\n};\nfunction getEras(sCalendarType) {\n var oLocale = Core.getConfiguration().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), aEras = mEras[sCalendarType];\n if (!aEras) {\n var aEras = oLocaleData.getEraDates(sCalendarType);\n if (!aEras[0]) {\n aEras[0] = { _start: '1-1-1' };\n }\n for (var i = 0; i < aEras.length; i++) {\n var oEra = aEras[i];\n if (!oEra) {\n continue;\n }\n if (oEra._start) {\n oEra._startInfo = parseDateString(oEra._start);\n }\n if (oEra._end) {\n oEra._endInfo = parseDateString(oEra._end);\n }\n }\n mEras[sCalendarType] = aEras;\n }\n return aEras;\n}\nfunction parseDateString(sDateString) {\n var aParts = sDateString.split('-'), iYear, iMonth, iDay;\n if (aParts[0] == '') {\n iYear = -parseInt(aParts[1]);\n iMonth = parseInt(aParts[2]) - 1;\n iDay = parseInt(aParts[3]);\n } else {\n iYear = parseInt(aParts[0]);\n iMonth = parseInt(aParts[1]) - 1;\n iDay = parseInt(aParts[2]);\n }\n return {\n timestamp: new Date(0).setUTCFullYear(iYear, iMonth, iDay),\n year: iYear,\n month: iMonth,\n day: iDay\n };\n}\nexport default UniversalDate;","import UniversalDate from \"../sap/ui/core/date/UniversalDate.js\";\n\nclass CalendarDate {\n\tconstructor() {\n\t\tlet aArgs = arguments, // eslint-disable-line\n\t\t\toJSDate,\n\t\t\toNow,\n\t\t\tsCalendarType;\n\n\t\tswitch (aArgs.length) {\n\t\tcase 0: // defaults to the current date\n\t\t\toNow = new Date();\n\t\t\treturn this.constructor(oNow.getFullYear(), oNow.getMonth(), oNow.getDate());\n\n\t\tcase 1: // CalendarDate\n\t\tcase 2: // CalendarDate, sCalendarType\n\t\t\tif (!(aArgs[0] instanceof CalendarDate)) {\n\t\t\t\tthrow new Error(\"Invalid arguments: the first argument must be of type sap.ui.unified.calendar.CalendarDate.\");\n\t\t\t}\n\t\t\tsCalendarType = aArgs[1] ? aArgs[1] : aArgs[0]._oUDate.sCalendarType;\n\t\t\t// Use source.valueOf() (returns the same point of time regardless calendar type) instead of\n\t\t\t// source's getters to avoid non-gregorian Year, Month and Date may be used to construct a Gregorian date\n\t\t\toJSDate = new Date(aArgs[0].valueOf());\n\n\t\t\t// Make this date really local. Now getters are safe.\n\t\t\toJSDate.setFullYear(oJSDate.getUTCFullYear(), oJSDate.getUTCMonth(), oJSDate.getUTCDate());\n\t\t\toJSDate.setHours(oJSDate.getUTCHours(), oJSDate.getUTCMinutes(), oJSDate.getUTCSeconds(), oJSDate.getUTCMilliseconds());\n\n\t\t\tthis._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);\n\t\t\tbreak;\n\n\t\tcase 3: // year, month, date\n\t\tcase 4: // year, month, date, sCalendarType\n\t\t\tcheckNumericLike(aArgs[0], `Invalid year: ${aArgs[0]}`);\n\t\t\tcheckNumericLike(aArgs[1], `Invalid month: ${aArgs[1]}`);\n\t\t\tcheckNumericLike(aArgs[2], `Invalid date: ${aArgs[2]}`);\n\n\t\t\toJSDate = new Date(0, 0, 1);\n\t\t\toJSDate.setFullYear(aArgs[0], aArgs[1], aArgs[2]); // 2 digits year is not supported. If so, it is considered as full year as well.\n\n\t\t\tif (aArgs[3]) {\n\t\t\t\tsCalendarType = aArgs[3];\n\t\t\t}\n\t\t\tthis._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tthrow new Error(`${\"Invalid arguments. Accepted arguments are: 1) oCalendarDate, (optional)calendarType\"\n\t\t\t\t+ \"or 2) year, month, date, (optional) calendarType\"}${aArgs}`);\n\t\t}\n\t}\n\n\tgetYear() {\n\t\treturn this._oUDate.getUTCFullYear();\n\t}\n\n\tsetYear(year) {\n\t\tcheckNumericLike(year, `Invalid year: ${year}`);\n\t\tthis._oUDate.setUTCFullYear(year);\n\t\treturn this;\n\t}\n\n\tgetMonth() {\n\t\treturn this._oUDate.getUTCMonth();\n\t}\n\n\t/**\n\t * Sets the given month as ordinal month of the year.\n\t * @param {int} month An integer between 0 and 11, representing the months January through December( or their\n\t * equivalent month names for the given calendar).\n\t * If the specified value is is outside of the expected range, this method attempts to update the date information\n\t * accordingly. For example, if 12 is given as a month, the year will be incremented by 1, and 1 will be used for month.\n\t * @param {int} [date] An integer between 1 and 31, representing the day of the month, but other values are allowed.\n\t * 0 will result in the previous month's last day.\n\t * -1 will result in the day before the previous month's last day.\n\t * 32 will result in:\n\t * - first day of the next month if the current month has 31 days.\n\t * - second day of the next month if the current month has 30 days.\n\t * Other value will result in adding or subtracting days according to the given value.\n\t * @returns {sap.ui.unified.calendar.CalendarDate} <code>this</code> for method chaining.\n\t */\n\tsetMonth(month, date) {\n\t\tcheckNumericLike(month, `Invalid month: ${month}`);\n\t\tif (date || date === 0) {\n\t\t\tcheckNumericLike(date, `Invalid date: ${date}`);\n\t\t\tthis._oUDate.setUTCMonth(month, date);\n\t\t} else {\n\t\t\tthis._oUDate.setUTCMonth(month);\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetDate() {\n\t\treturn this._oUDate.getUTCDate();\n\t}\n\n\tsetDate(date) {\n\t\tcheckNumericLike(date, `Invalid date: ${date}`);\n\t\tthis._oUDate.setUTCDate(date);\n\t\treturn this;\n\t}\n\n\tgetDay() {\n\t\treturn this._oUDate.getUTCDay();\n\t}\n\n\tgetCalendarType() {\n\t\treturn this._oUDate.sCalendarType;\n\t}\n\n\tisBefore(oCalendarDate) {\n\t\tcheckCalendarDate(oCalendarDate);\n\t\treturn this.valueOf() < oCalendarDate.valueOf();\n\t}\n\n\tisAfter(oCalendarDate) {\n\t\tcheckCalendarDate(oCalendarDate);\n\t\treturn this.valueOf() > oCalendarDate.valueOf();\n\t}\n\n\tisSameOrBefore(oCalendarDate) {\n\t\tcheckCalendarDate(oCalendarDate);\n\t\treturn this.valueOf() <= oCalendarDate.valueOf();\n\t}\n\n\tisSameOrAfter(oCalendarDate) {\n\t\tcheckCalendarDate(oCalendarDate);\n\t\treturn this.valueOf() >= oCalendarDate.valueOf();\n\t}\n\n\tisSame(oCalendarDate) {\n\t\tcheckCalendarDate(oCalendarDate);\n\t\treturn this.valueOf() === oCalendarDate.valueOf();\n\t}\n\n\ttoLocalJSDate() {\n\t\t// Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of\n\t\t// this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date\n\t\tconst oLocalDate = new Date(this._oUDate.getTime());\n\n\t\t// Make this date really local. Now getters are safe.\n\t\toLocalDate.setFullYear(oLocalDate.getUTCFullYear(), oLocalDate.getUTCMonth(), oLocalDate.getUTCDate());\n\t\toLocalDate.setHours(0, 0, 0, 0);\n\n\t\treturn oLocalDate;\n\t}\n\n\ttoUTCJSDate() {\n\t\t// Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of\n\t\t// this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date\n\t\tconst oUTCDate = new Date(this._oUDate.getTime());\n\t\toUTCDate.setUTCHours(0, 0, 0, 0);\n\n\t\treturn oUTCDate;\n\t}\n\n\ttoString() {\n\t\treturn `${this._oUDate.sCalendarType}: ${this.getYear()}/${this.getMonth() + 1}/${this.getDate()}`;\n\t}\n\n\tvalueOf() {\n\t\treturn this._oUDate.getTime();\n\t}\n\n\tstatic fromLocalJSDate(oJSDate, sCalendarType) {\n\t\t// Cross frame check for a date should be performed here otherwise setDateValue would fail in OPA tests\n\t\t// because Date object in the test is different than the Date object in the application (due to the iframe).\n\t\t// We can use jQuery.type or this method:\n\t\tfunction isValidDate(date) {\n\t\t\treturn date && Object.prototype.toString.call(date) === \"[object Date]\" && !isNaN(date); // eslint-disable-line\n\t\t}\n\t\tif (!isValidDate(oJSDate)) {\n\t\t\tthrow new Error(`Date parameter must be a JavaScript Date object: [${oJSDate}].`);\n\t\t}\n\t\treturn new CalendarDate(oJSDate.getFullYear(), oJSDate.getMonth(), oJSDate.getDate(), sCalendarType);\n\t}\n\n\tstatic fromTimestamp(iTimestamp, sCalendarType) {\n\t\tconst oCalDate = new CalendarDate(0, 0, 1);\n\t\toCalDate._oUDate = UniversalDate.getInstance(new Date(iTimestamp), sCalendarType);\n\t\treturn oCalDate;\n\t}\n}\n\nfunction createUniversalUTCDate(oDate, sCalendarType) {\n\tif (sCalendarType) {\n\t\treturn UniversalDate.getInstance(createUTCDate(oDate), sCalendarType);\n\t}\n\treturn new UniversalDate(createUTCDate(oDate).getTime());\n}\n\n/**\n * Creates a JavaScript UTC Date corresponding to the given JavaScript Date.\n * @param {Date} oDate JavaScript date object. Time related information is cut.\n * @returns {Date} JavaScript date created from the date object, but this time considered as UTC date information.\n */\nfunction createUTCDate(oDate) {\n\tconst oUTCDate = new Date(Date.UTC(0, 0, 1));\n\n\toUTCDate.setUTCFullYear(oDate.getFullYear(), oDate.getMonth(), oDate.getDate());\n\n\treturn oUTCDate;\n}\n\nfunction checkCalendarDate(oCalendarDate) {\n\tif (!(oCalendarDate instanceof CalendarDate)) {\n\t\tthrow new Error(`Invalid calendar date: [${oCalendarDate}]. Expected: sap.ui.unified.calendar.CalendarDate`);\n\t}\n}\n\n/**\n * Verifies the given value is numeric like, i.e. 3, \"3\" and throws an error if it is not.\n * @param {any} value The value of any type to check. If null or undefined, this method throws an error.\n * @param {string} message The message to be used if an error is to be thrown\n * @throws will throw an error if the value is null or undefined or is not like a number\n */\nfunction checkNumericLike(value, message) {\n\tif (value === undefined || value === Infinity || isNaN(value)) { // eslint-disable-line\n\t\tthrow message;\n\t}\n}\n\nexport default CalendarDate;\n","import CalendarDate from \"./CalendarDate.js\";\n\n/**\n * Adds or subtracts a given amount of days/months/years from a date.\n * If minDate or maxDate are given, the result will be enforced within these limits\n *\n * @param date CalendarDate instance\n * @param amount how many days/months/years to add (can be a negative number)\n * @param unit what to modify: \"day\", \"month\" or \"year\"\n * @param minDate minimum date to enforce\n * @param maxDate maximum date to enforce\n */\nconst modifyDateBy = (date, amount, unit, minDate = null, maxDate = null) => {\n\tconst newDate = new CalendarDate(date);\n\tif (unit === \"day\") {\n\t\tnewDate.setDate(date.getDate() + amount);\n\t} else if (unit === \"month\") {\n\t\tnewDate.setMonth(date.getMonth() + amount);\n\t\tconst stillSameMonth = amount === -1 && newDate.getMonth() === date.getMonth(); // f.e. PageUp remained in the same month\n\t\tconst monthSkipped = amount === 1 && newDate.getMonth() - date.getMonth() > 1; // f.e. PageDown skipped a whole month\n\t\tif (stillSameMonth || monthSkipped) { // Select the last day of the month in any of these 2 scenarios\n\t\t\tnewDate.setDate(0);\n\t\t}\n\t} else {\n\t\tnewDate.setYear(date.getYear() + amount);\n\t\tif (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year\n\t\t\tnewDate.setDate(0); // Select the last day of the month\n\t\t}\n\t}\n\n\tif (minDate && newDate.valueOf() < minDate.valueOf()) {\n\t\treturn new CalendarDate(minDate);\n\t}\n\n\tif (maxDate && newDate.valueOf() > maxDate.valueOf()) {\n\t\treturn new CalendarDate(maxDate);\n\t}\n\n\treturn newDate;\n};\n\nexport default modifyDateBy;\n","import CalendarDate from \"./CalendarDate.js\";\n\n/**\n * Returns a UTC timestamp representing today\n * @public\n */\nconst getTodayUTCTimestamp = primaryCalendarType => CalendarDate.fromLocalJSDate(new Date(), primaryCalendarType).valueOf() / 1000;\n\nexport default getTodayUTCTimestamp;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"appointment-2\";\nconst pathData = \"M409.5 52c43 0 77 33 77 76v307c0 43-34 76-77 76h-307c-43 0-76-33-76-76V128c0-43 33-76 76-76h52V26c0-15 10-26 25-26s26 11 26 26v26h102V26c0-15 10-26 25-26 16 0 26 11 26 26v26h51zm-307 51c-15 0-25 10-25 25v77h358v-77c0-15-11-25-26-25h-51v25c0 15-10 26-26 26-15 0-25-11-25-26v-25h-102v25c0 15-11 26-26 26s-25-11-25-26v-25h-52zm307 357c15 0 26-10 26-25V256h-358v179c0 15 10 25 25 25h307zm-153-166c21 0 38 17 38 39 0 21-17 38-38 38s-39-17-39-38c0-22 18-39 39-39zm102 0c21 0 38 17 38 39 0 21-17 38-38 38s-38-17-38-38c0-22 17-39 38-39zm-204 0c21 0 38 17 38 39 0 21-17 38-38 38-22 0-39-17-39-38 0-22 17-39 39-39z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"appointment-2\";\nconst pathData = \"M32 481V65q0-14 9.5-23T64 33h64V1h32v32h192V1h32v32h64q14 0 23 9t9 23v416q0 14-9 23t-23 9H64q-13 0-22.5-9T32 481zm416 0V129H64v352h384zM256 193q14 0 23 9t9 23-9 23-23 9-23-9-9-23 9-23 23-9zM128 321q14 0 23 9t9 23-9 23-23 9-23-9-9-23 9-23 23-9zm256-128q14 0 23 9t9 23-9 23-23 9-23-9-9-23 9-23 23-9zm0 128q14 0 23 9t9 23-9 23-23 9-23-9-9-23 9-23 23-9zm-128 0q14 0 23 9t9 23-9 23-23 9-23-9-9-23 9-23 23-9zM96 225q0-14 9-23t23-9 23 9 9 23-9 23-23 9-23-9-9-23zM384 97V65h-32v32h32zM128 65v32h32V65h-32z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/appointment-2.js\";\nimport pathDataV5 from \"./v4/appointment-2.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import Log from '../Log.js';\nvar fnEqual = function (a, b, maxDepth, contains, depth) {\n if (typeof maxDepth == 'boolean') {\n contains = maxDepth;\n maxDepth = undefined;\n }\n if (!depth) {\n depth = 0;\n }\n if (!maxDepth) {\n maxDepth = 10;\n }\n if (depth > maxDepth) {\n Log.warning('deepEqual comparison exceeded maximum recursion depth of ' + maxDepth + '. Treating values as unequal');\n return false;\n }\n if (a === b || Number.isNaN(a) && Number.isNaN(b)) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (!contains && a.length !== b.length) {\n return false;\n }\n if (a.length > b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!fnEqual(a[i], b[i], maxDepth, contains, depth + 1)) {\n return false;\n }\n }\n return true;\n }\n if (typeof a == 'object' && typeof b == 'object') {\n if (!a || !b) {\n return false;\n }\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (!contains && Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n if (a instanceof Node) {\n return a.isEqualNode(b);\n }\n if (a instanceof Date) {\n return a.valueOf() === b.valueOf();\n }\n for (var i in a) {\n if (!fnEqual(a[i], b[i], maxDepth, contains, depth + 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\nexport default fnEqual;","import assert from '../assert.js';\nvar rMessageFormat = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\\{([0-9]+(?:\\s*,[^{}]*)?)\\}|[{}]/g;\nvar fnFormatMessage = function (sPattern, aValues) {\n assert(typeof sPattern === 'string' || sPattern instanceof String, 'pattern must be string');\n if (arguments.length > 2 || aValues != null && !Array.isArray(aValues)) {\n aValues = Array.prototype.slice.call(arguments, 1);\n }\n aValues = aValues || [];\n return sPattern.replace(rMessageFormat, function ($0, $1, $2, $3, offset) {\n if ($1) {\n return '\\'';\n } else if ($2) {\n return $2.replace(/''/g, '\\'');\n } else if ($3) {\n return String(aValues[parseInt($3)]);\n }\n throw new Error('formatMessage: pattern syntax error at pos. ' + offset);\n });\n};\nexport default fnFormatMessage;","import Core from '../Core.js';\nimport CalendarType from '../CalendarType.js';\nimport Locale from '../Locale.js';\nimport LocaleData from '../LocaleData.js';\nimport UniversalDate from '../date/UniversalDate.js';\nimport deepEqual from '../../../base/util/deepEqual.js';\nimport formatMessage from '../../../base/strings/formatMessage.js';\nimport Log from '../../../base/Log.js';\nimport extend from '../../../base/util/extend.js';\nvar DateFormat = function () {\n throw new Error();\n};\nvar mCldrDatePattern = {};\nDateFormat.oDateInfo = {\n oDefaultFormatOptions: {\n style: 'medium',\n relativeScale: 'day',\n relativeStyle: 'wide'\n },\n aFallbackFormatOptions: [\n { style: 'short' },\n { style: 'medium' },\n { pattern: 'yyyy-MM-dd' },\n {\n pattern: 'yyyyMMdd',\n strictParsing: true\n }\n ],\n bShortFallbackFormatOptions: true,\n bPatternFallbackWithoutDelimiter: true,\n getPattern: function (oLocaleData, sStyle, sCalendarType) {\n return oLocaleData.getDatePattern(sStyle, sCalendarType);\n },\n oRequiredParts: {\n 'text': true,\n 'year': true,\n 'weekYear': true,\n 'month': true,\n 'day': true\n },\n aRelativeScales: [\n 'year',\n 'month',\n 'week',\n 'day'\n ],\n aRelativeParseScales: [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ],\n aIntervalCompareFields: [\n 'Era',\n 'FullYear',\n 'Quarter',\n 'Month',\n 'Week',\n 'Date'\n ]\n};\nDateFormat.oDateTimeInfo = {\n oDefaultFormatOptions: {\n style: 'medium',\n relativeScale: 'auto',\n relativeStyle: 'wide'\n },\n aFallbackFormatOptions: [\n { style: 'short' },\n { style: 'medium' },\n { pattern: 'yyyy-MM-dd\\'T\\'HH:mm:ss' },\n { pattern: 'yyyyMMdd HHmmss' }\n ],\n getPattern: function (oLocaleData, sStyle, sCalendarType) {\n var iSlashIndex = sStyle.indexOf('/');\n if (iSlashIndex > 0) {\n return oLocaleData.getCombinedDateTimePattern(sStyle.substr(0, iSlashIndex), sStyle.substr(iSlashIndex + 1), sCalendarType);\n } else {\n return oLocaleData.getCombinedDateTimePattern(sStyle, sStyle, sCalendarType);\n }\n },\n oRequiredParts: {\n 'text': true,\n 'year': true,\n 'weekYear': true,\n 'month': true,\n 'day': true,\n 'hour0_23': true,\n 'hour1_24': true,\n 'hour0_11': true,\n 'hour1_12': true\n },\n aRelativeScales: [\n 'year',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ],\n aRelativeParseScales: [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ],\n aIntervalCompareFields: [\n 'Era',\n 'FullYear',\n 'Quarter',\n 'Month',\n 'Week',\n 'Date',\n 'DayPeriod',\n 'Hours',\n 'Minutes',\n 'Seconds'\n ]\n};\nDateFormat.oTimeInfo = {\n oDefaultFormatOptions: {\n style: 'medium',\n relativeScale: 'auto',\n relativeStyle: 'wide'\n },\n aFallbackFormatOptions: [\n { style: 'short' },\n { style: 'medium' },\n { pattern: 'HH:mm:ss' },\n { pattern: 'HHmmss' }\n ],\n getPattern: function (oLocaleData, sStyle, sCalendarType) {\n return oLocaleData.getTimePattern(sStyle, sCalendarType);\n },\n oRequiredParts: {\n 'text': true,\n 'hour0_23': true,\n 'hour1_24': true,\n 'hour0_11': true,\n 'hour1_12': true\n },\n aRelativeScales: [\n 'hour',\n 'minute',\n 'second'\n ],\n aRelativeParseScales: [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ],\n aIntervalCompareFields: [\n 'DayPeriod',\n 'Hours',\n 'Minutes',\n 'Seconds'\n ]\n};\nDateFormat.getInstance = function (oFormatOptions, oLocale) {\n return this.getDateInstance(oFormatOptions, oLocale);\n};\nDateFormat.getDateInstance = function (oFormatOptions, oLocale) {\n return this.createInstance(oFormatOptions, oLocale, this.oDateInfo);\n};\nDateFormat.getDateTimeInstance = function (oFormatOptions, oLocale) {\n return this.createInstance(oFormatOptions, oLocale, this.oDateTimeInfo);\n};\nDateFormat.getTimeInstance = function (oFormatOptions, oLocale) {\n return this.createInstance(oFormatOptions, oLocale, this.oTimeInfo);\n};\nfunction createIntervalPatternWithNormalConnector(oFormat) {\n var sPattern = oFormat.oLocaleData.getIntervalPattern('', oFormat.oFormatOptions.calendarType);\n sPattern = sPattern.replace(/[^\\{\\}01 ]/, '-');\n return sPattern.replace(/\\{(0|1)\\}/g, oFormat.oFormatOptions.pattern);\n}\nDateFormat.createInstance = function (oFormatOptions, oLocale, oInfo) {\n var oFormat = Object.create(this.prototype);\n if (oFormatOptions instanceof Locale) {\n oLocale = oFormatOptions;\n oFormatOptions = undefined;\n }\n if (!oLocale) {\n oLocale = Core.getConfiguration().getFormatSettings().getFormatLocale();\n }\n oFormat.oLocale = oLocale;\n oFormat.oLocaleData = LocaleData.getInstance(oLocale);\n oFormat.oFormatOptions = extend({}, oInfo.oDefaultFormatOptions, oFormatOptions);\n if (!oFormat.oFormatOptions.calendarType) {\n oFormat.oFormatOptions.calendarType = Core.getConfiguration().getCalendarType();\n }\n if (!oFormat.oFormatOptions.pattern) {\n if (oFormat.oFormatOptions.format) {\n oFormat.oFormatOptions.pattern = oFormat.oLocaleData.getCustomDateTimePattern(oFormat.oFormatOptions.format, oFormat.oFormatOptions.calendarType);\n } else {\n oFormat.oFormatOptions.pattern = oInfo.getPattern(oFormat.oLocaleData, oFormat.oFormatOptions.style, oFormat.oFormatOptions.calendarType);\n }\n }\n if (oFormat.oFormatOptions.interval) {\n if (oFormat.oFormatOptions.format) {\n oFormat.intervalPatterns = oFormat.oLocaleData.getCustomIntervalPattern(oFormat.oFormatOptions.format, null, oFormat.oFormatOptions.calendarType);\n if (typeof oFormat.intervalPatterns === 'string') {\n oFormat.intervalPatterns = [oFormat.intervalPatterns];\n }\n oFormat.intervalPatterns.push(oFormat.oLocaleData.getCustomDateTimePattern(oFormat.oFormatOptions.format, oFormat.oFormatOptions.calendarType));\n } else {\n oFormat.intervalPatterns = [\n oFormat.oLocaleData.getCombinedIntervalPattern(oFormat.oFormatOptions.pattern, oFormat.oFormatOptions.calendarType),\n oFormat.oFormatOptions.pattern\n ];\n }\n var sCommonConnectorPattern = createIntervalPatternWithNormalConnector(oFormat);\n oFormat.intervalPatterns.push(sCommonConnectorPattern);\n }\n if (!oFormat.oFormatOptions.fallback) {\n if (!oInfo.oFallbackFormats) {\n oInfo.oFallbackFormats = {};\n }\n var sLocale = oLocale.toString(), sCalendarType = oFormat.oFormatOptions.calendarType, sKey = sLocale + '-' + sCalendarType, sPattern, aFallbackFormatOptions;\n if (oFormat.oFormatOptions.pattern && oInfo.bPatternFallbackWithoutDelimiter) {\n sKey = sKey + '-' + oFormat.oFormatOptions.pattern;\n }\n if (oFormat.oFormatOptions.interval) {\n sKey = sKey + '-' + 'interval';\n }\n var oFallbackFormats = oInfo.oFallbackFormats[sKey] ? Object.assign({}, oInfo.oFallbackFormats[sKey]) : undefined;\n if (!oFallbackFormats) {\n aFallbackFormatOptions = oInfo.aFallbackFormatOptions;\n if (oInfo.bShortFallbackFormatOptions) {\n sPattern = oInfo.getPattern(oFormat.oLocaleData, 'short');\n aFallbackFormatOptions = aFallbackFormatOptions.concat(DateFormat._createFallbackOptionsWithoutDelimiter(sPattern));\n }\n if (oFormat.oFormatOptions.pattern && oInfo.bPatternFallbackWithoutDelimiter) {\n aFallbackFormatOptions = DateFormat._createFallbackOptionsWithoutDelimiter(oFormat.oFormatOptions.pattern).concat(aFallbackFormatOptions);\n }\n oFallbackFormats = DateFormat._createFallbackFormat(aFallbackFormatOptions, sCalendarType, oLocale, oInfo, oFormat.oFormatOptions.interval);\n }\n oFormat.aFallbackFormats = oFallbackFormats;\n }\n oFormat.oRequiredParts = oInfo.oRequiredParts;\n oFormat.aRelativeScales = oInfo.aRelativeScales;\n oFormat.aRelativeParseScales = oInfo.aRelativeParseScales;\n oFormat.aIntervalCompareFields = oInfo.aIntervalCompareFields;\n oFormat.init();\n return oFormat;\n};\nDateFormat.prototype.init = function () {\n var sCalendarType = this.oFormatOptions.calendarType;\n this.aMonthsAbbrev = this.oLocaleData.getMonths('abbreviated', sCalendarType);\n this.aMonthsWide = this.oLocaleData.getMonths('wide', sCalendarType);\n this.aMonthsNarrow = this.oLocaleData.getMonths('narrow', sCalendarType);\n this.aMonthsAbbrevSt = this.oLocaleData.getMonthsStandAlone('abbreviated', sCalendarType);\n this.aMonthsWideSt = this.oLocaleData.getMonthsStandAlone('wide', sCalendarType);\n this.aMonthsNarrowSt = this.oLocaleData.getMonthsStandAlone('narrow', sCalendarType);\n this.aDaysAbbrev = this.oLocaleData.getDays('abbreviated', sCalendarType);\n this.aDaysWide = this.oLocaleData.getDays('wide', sCalendarType);\n this.aDaysNarrow = this.oLocaleData.getDays('narrow', sCalendarType);\n this.aDaysShort = this.oLocaleData.getDays('short', sCalendarType);\n this.aDaysAbbrevSt = this.oLocaleData.getDaysStandAlone('abbreviated', sCalendarType);\n this.aDaysWideSt = this.oLocaleData.getDaysStandAlone('wide', sCalendarType);\n this.aDaysNarrowSt = this.oLocaleData.getDaysStandAlone('narrow', sCalendarType);\n this.aDaysShortSt = this.oLocaleData.getDaysStandAlone('short', sCalendarType);\n this.aQuartersAbbrev = this.oLocaleData.getQuarters('abbreviated', sCalendarType);\n this.aQuartersWide = this.oLocaleData.getQuarters('wide', sCalendarType);\n this.aQuartersNarrow = this.oLocaleData.getQuarters('narrow', sCalendarType);\n this.aQuartersAbbrevSt = this.oLocaleData.getQuartersStandAlone('abbreviated', sCalendarType);\n this.aQuartersWideSt = this.oLocaleData.getQuartersStandAlone('wide', sCalendarType);\n this.aQuartersNarrowSt = this.oLocaleData.getQuartersStandAlone('narrow', sCalendarType);\n this.aErasNarrow = this.oLocaleData.getEras('narrow', sCalendarType);\n this.aErasAbbrev = this.oLocaleData.getEras('abbreviated', sCalendarType);\n this.aErasWide = this.oLocaleData.getEras('wide', sCalendarType);\n this.aDayPeriods = this.oLocaleData.getDayPeriods('abbreviated', sCalendarType);\n this.aFormatArray = this.parseCldrDatePattern(this.oFormatOptions.pattern);\n this.sAllowedCharacters = this.getAllowedCharacters(this.aFormatArray);\n};\nDateFormat._createFallbackFormat = function (aFallbackFormatOptions, sCalendarType, oLocale, oInfo, bInterval) {\n return aFallbackFormatOptions.map(function (oOptions) {\n var oFormatOptions = Object.assign({}, oOptions);\n if (bInterval) {\n oFormatOptions.interval = true;\n }\n oFormatOptions.calendarType = sCalendarType;\n oFormatOptions.fallback = true;\n var oFallbackFormat = DateFormat.createInstance(oFormatOptions, oLocale, oInfo);\n oFallbackFormat.bIsFallback = true;\n return oFallbackFormat;\n });\n};\nDateFormat._createFallbackOptionsWithoutDelimiter = function (sBasePattern) {\n var rNonDateFields = /[^dMyGU]/g, oDayReplace = {\n regex: /d+/g,\n replace: 'dd'\n }, oMonthReplace = {\n regex: /M+/g,\n replace: 'MM'\n }, oYearReplace = {\n regex: /[yU]+/g,\n replace: [\n 'yyyy',\n 'yy'\n ]\n };\n sBasePattern = sBasePattern.replace(rNonDateFields, '');\n sBasePattern = sBasePattern.replace(oDayReplace.regex, oDayReplace.replace);\n sBasePattern = sBasePattern.replace(oMonthReplace.regex, oMonthReplace.replace);\n return oYearReplace.replace.map(function (sReplace) {\n return {\n pattern: sBasePattern.replace(oYearReplace.regex, sReplace),\n strictParsing: true\n };\n });\n};\nvar oParseHelper = {\n isNumber: function (iCharCode) {\n return iCharCode >= 48 && iCharCode <= 57;\n },\n findNumbers: function (sValue, iMaxLength) {\n var iLength = 0;\n while (iLength < iMaxLength && this.isNumber(sValue.charCodeAt(iLength))) {\n iLength++;\n }\n if (typeof sValue !== 'string') {\n sValue = sValue.toString();\n }\n return sValue.substr(0, iLength);\n },\n findEntry: function (sValue, aList) {\n var iFoundIndex = -1, iMatchedLength = 0;\n for (var j = 0; j < aList.length; j++) {\n if (aList[j] && aList[j].length > iMatchedLength && sValue.indexOf(aList[j]) === 0) {\n iFoundIndex = j;\n iMatchedLength = aList[j].length;\n }\n }\n return {\n index: iFoundIndex,\n value: iFoundIndex === -1 ? null : aList[iFoundIndex]\n };\n },\n parseTZ: function (sValue, bColonSeparated) {\n var iLength = 0;\n var iTZFactor = sValue.charAt(0) == '+' ? -1 : 1;\n var sPart;\n iLength++;\n sPart = this.findNumbers(sValue.substr(iLength), 2);\n var iTZDiffHour = parseInt(sPart);\n iLength += 2;\n if (bColonSeparated) {\n iLength++;\n }\n sPart = this.findNumbers(sValue.substr(iLength), 2);\n var iTZDiff = 0;\n if (sPart) {\n iLength += 2;\n iTZDiff = parseInt(sPart);\n }\n return {\n length: iLength,\n tzDiff: (iTZDiff + 60 * iTZDiffHour) * iTZFactor\n };\n },\n checkValid: function (sType, bPartInvalid, oFormat) {\n if (sType in oFormat.oRequiredParts && bPartInvalid) {\n return false;\n }\n }\n};\nDateFormat.prototype.oSymbols = {\n '': {\n name: 'text',\n format: function (oField, oDate, bUTC, oFormat) {\n return oField.value;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sChar;\n var bValid = true;\n var iValueIndex = 0;\n var iPatternIndex = 0;\n var sDelimiter = '-~\\u2010\\u2011\\u2012\\u2013\\u2014\\uFE58\\uFE63\\uFF0D\\uFF5E';\n for (; iPatternIndex < oPart.value.length; iPatternIndex++) {\n sChar = oPart.value.charAt(iPatternIndex);\n if (sChar === ' ') {\n while (sValue.charAt(iValueIndex) === ' ') {\n iValueIndex++;\n }\n } else if (sDelimiter.includes(sChar)) {\n if (!sDelimiter.includes(sValue.charAt(iValueIndex))) {\n bValid = false;\n }\n iValueIndex++;\n } else {\n if (sValue.charAt(iValueIndex) !== sChar) {\n bValid = false;\n }\n iValueIndex++;\n }\n if (!bValid) {\n break;\n }\n }\n if (bValid) {\n return { length: iValueIndex };\n } else {\n var bPartInvalid = false;\n if (oConfig.index < oConfig.formatArray.length - 1) {\n bPartInvalid = oConfig.formatArray[oConfig.index + 1].type in oFormat.oRequiredParts;\n }\n return { valid: oParseHelper.checkValid(oPart.type, bPartInvalid, oFormat) };\n }\n }\n },\n 'G': {\n name: 'era',\n format: function (oField, oDate, bUTC, oFormat) {\n var iEra = bUTC ? oDate.getUTCEra() : oDate.getEra();\n if (oField.digits <= 3) {\n return oFormat.aErasAbbrev[iEra];\n } else if (oField.digits === 4) {\n return oFormat.aErasWide[iEra];\n } else {\n return oFormat.aErasNarrow[iEra];\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var aErasVariants = [\n oFormat.aErasWide,\n oFormat.aErasAbbrev,\n oFormat.aErasNarrow\n ];\n for (var i = 0; i < aErasVariants.length; i++) {\n var aVariants = aErasVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n era: oFound.index,\n length: oFound.value.length\n };\n }\n }\n return {\n era: oFormat.aErasWide.length - 1,\n valid: oParseHelper.checkValid(oPart.type, true, oFormat)\n };\n }\n },\n 'y': {\n name: 'year',\n format: function (oField, oDate, bUTC, oFormat) {\n var iYear = bUTC ? oDate.getUTCFullYear() : oDate.getFullYear();\n var sYear = String(iYear);\n var sCalendarType = oFormat.oFormatOptions.calendarType;\n if (oField.digits == 2 && sYear.length > 2) {\n sYear = sYear.substr(sYear.length - 2);\n }\n if (sCalendarType != CalendarType.Japanese && oField.digits == 1 && iYear < 100) {\n sYear = sYear.padStart(4, '0');\n }\n return sYear.padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sCalendarType = oFormat.oFormatOptions.calendarType;\n var sPart;\n if (oPart.digits == 1) {\n sPart = oParseHelper.findNumbers(sValue, 4);\n } else if (oPart.digits == 2) {\n sPart = oParseHelper.findNumbers(sValue, 2);\n } else {\n sPart = oParseHelper.findNumbers(sValue, oPart.digits);\n }\n var iYear = parseInt(sPart);\n if (sCalendarType != CalendarType.Japanese && sPart.length <= 2) {\n var oCurrentDate = UniversalDate.getInstance(new Date(), sCalendarType), iCurrentYear = oCurrentDate.getFullYear(), iCurrentCentury = Math.floor(iCurrentYear / 100), iYearDiff = iCurrentCentury * 100 + iYear - iCurrentYear;\n if (iYearDiff < -70) {\n iYear += (iCurrentCentury + 1) * 100;\n } else if (iYearDiff < 30) {\n iYear += iCurrentCentury * 100;\n } else {\n iYear += (iCurrentCentury - 1) * 100;\n }\n }\n return {\n length: sPart.length,\n valid: oParseHelper.checkValid(oPart.type, sPart === '', oFormat),\n year: iYear\n };\n }\n },\n 'Y': {\n name: 'weekYear',\n format: function (oField, oDate, bUTC, oFormat) {\n var oWeek = bUTC ? oDate.getUTCWeek() : oDate.getWeek();\n var iWeekYear = oWeek.year;\n var sWeekYear = String(iWeekYear);\n var sCalendarType = oFormat.oFormatOptions.calendarType;\n if (oField.digits == 2 && sWeekYear.length > 2) {\n sWeekYear = sWeekYear.substr(sWeekYear.length - 2);\n }\n if (sCalendarType != CalendarType.Japanese && oField.digits == 1 && iWeekYear < 100) {\n sWeekYear = sWeekYear.padStart(4, '0');\n }\n return sWeekYear.padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sCalendarType = oFormat.oFormatOptions.calendarType;\n var sPart;\n if (oPart.digits == 1) {\n sPart = oParseHelper.findNumbers(sValue, 4);\n } else if (oPart.digits == 2) {\n sPart = oParseHelper.findNumbers(sValue, 2);\n } else {\n sPart = oParseHelper.findNumbers(sValue, oPart.digits);\n }\n var iYear = parseInt(sPart);\n var iWeekYear;\n if (sCalendarType != CalendarType.Japanese && sPart.length <= 2) {\n var oCurrentDate = UniversalDate.getInstance(new Date(), sCalendarType), iCurrentYear = oCurrentDate.getFullYear(), iCurrentCentury = Math.floor(iCurrentYear / 100), iYearDiff = iCurrentCentury * 100 + iWeekYear - iCurrentYear;\n if (iYearDiff < -70) {\n iWeekYear += (iCurrentCentury + 1) * 100;\n } else if (iYearDiff < 30) {\n iWeekYear += iCurrentCentury * 100;\n } else {\n iWeekYear += (iCurrentCentury - 1) * 100;\n }\n }\n return {\n length: sPart.length,\n valid: oParseHelper.checkValid(oPart.type, sPart === '', oFormat),\n year: iYear,\n weekYear: iWeekYear\n };\n }\n },\n 'M': {\n name: 'month',\n format: function (oField, oDate, bUTC, oFormat) {\n var iMonth = bUTC ? oDate.getUTCMonth() : oDate.getMonth();\n if (oField.digits == 3) {\n return oFormat.aMonthsAbbrev[iMonth];\n } else if (oField.digits == 4) {\n return oFormat.aMonthsWide[iMonth];\n } else if (oField.digits > 4) {\n return oFormat.aMonthsNarrow[iMonth];\n } else {\n return String(iMonth + 1).padStart(oField.digits, '0');\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var aMonthsVariants = [\n oFormat.aMonthsWide,\n oFormat.aMonthsWideSt,\n oFormat.aMonthsAbbrev,\n oFormat.aMonthsAbbrevSt,\n oFormat.aMonthsNarrow,\n oFormat.aMonthsNarrowSt\n ];\n var bValid;\n var iMonth;\n var sPart;\n if (oPart.digits < 3) {\n sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n iMonth = parseInt(sPart) - 1;\n if (oConfig.strict && (iMonth > 11 || iMonth < 0)) {\n bValid = false;\n }\n } else {\n for (var i = 0; i < aMonthsVariants.length; i++) {\n var aVariants = aMonthsVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n month: oFound.index,\n length: oFound.value.length\n };\n }\n }\n bValid = oParseHelper.checkValid(oPart.type, true, oFormat);\n }\n return {\n month: iMonth,\n length: sPart ? sPart.length : 0,\n valid: bValid\n };\n }\n },\n 'L': {\n name: 'monthStandalone',\n format: function (oField, oDate, bUTC, oFormat) {\n var iMonth = bUTC ? oDate.getUTCMonth() : oDate.getMonth();\n if (oField.digits == 3) {\n return oFormat.aMonthsAbbrevSt[iMonth];\n } else if (oField.digits == 4) {\n return oFormat.aMonthsWideSt[iMonth];\n } else if (oField.digits > 4) {\n return oFormat.aMonthsNarrowSt[iMonth];\n } else {\n return String(iMonth + 1).padStart(oField.digits, '0');\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var aMonthsVariants = [\n oFormat.aMonthsWide,\n oFormat.aMonthsWideSt,\n oFormat.aMonthsAbbrev,\n oFormat.aMonthsAbbrevSt,\n oFormat.aMonthsNarrow,\n oFormat.aMonthsNarrowSt\n ];\n var bValid;\n var iMonth;\n var sPart;\n if (oPart.digits < 3) {\n sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n iMonth = parseInt(sPart) - 1;\n if (oConfig.strict && (iMonth > 11 || iMonth < 0)) {\n bValid = false;\n }\n } else {\n for (var i = 0; i < aMonthsVariants.length; i++) {\n var aVariants = aMonthsVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n month: oFound.index,\n length: oFound.value.length\n };\n }\n }\n bValid = oParseHelper.checkValid(oPart.type, true, oFormat);\n }\n return {\n month: iMonth,\n length: sPart ? sPart.length : 0,\n valid: bValid\n };\n }\n },\n 'w': {\n name: 'weekInYear',\n format: function (oField, oDate, bUTC, oFormat) {\n var oWeek = bUTC ? oDate.getUTCWeek() : oDate.getWeek();\n var iWeek = oWeek.week;\n var sWeek = String(iWeek + 1);\n if (oField.digits < 3) {\n sWeek = sWeek.padStart(oField.digits, '0');\n } else {\n sWeek = oFormat.oLocaleData.getCalendarWeek(oField.digits === 3 ? 'narrow' : 'wide', sWeek.padStart(2, '0'));\n }\n return sWeek;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart;\n var iWeek;\n var iLength = 0;\n if (oPart.digits < 3) {\n sPart = oParseHelper.findNumbers(sValue, 2);\n iLength = sPart.length;\n iWeek = parseInt(sPart) - 1;\n bValid = oParseHelper.checkValid(oPart.type, !sPart, oFormat);\n } else {\n sPart = oFormat.oLocaleData.getCalendarWeek(oPart.digits === 3 ? 'narrow' : 'wide');\n sPart = sPart.replace('{0}', '[0-9]+');\n var rWeekNumber = new RegExp(sPart), oResult = rWeekNumber.exec(sValue);\n if (oResult) {\n iLength = oResult[0].length;\n iWeek = parseInt(oResult[0]) - 1;\n } else {\n bValid = oParseHelper.checkValid(oPart.type, true, oFormat);\n }\n }\n return {\n length: iLength,\n valid: bValid,\n week: iWeek\n };\n }\n },\n 'W': {\n name: 'weekInMonth',\n format: function (oField, oDate, bUTC, oFormat) {\n return '';\n },\n parse: function () {\n return {};\n }\n },\n 'D': {\n name: 'dayInYear',\n format: function (oField, oDate, bUTC, oFormat) {\n },\n parse: function () {\n return {};\n }\n },\n 'd': {\n name: 'day',\n format: function (oField, oDate, bUTC, oFormat) {\n var iDate = bUTC ? oDate.getUTCDate() : oDate.getDate();\n return String(iDate).padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n var iDay = parseInt(sPart);\n if (oConfig.strict && (iDay > 31 || iDay < 1)) {\n bValid = false;\n }\n return {\n day: iDay,\n length: sPart.length,\n valid: bValid\n };\n }\n },\n 'Q': {\n name: 'quarter',\n format: function (oField, oDate, bUTC, oFormat) {\n var iQuarter = bUTC ? oDate.getUTCQuarter() : oDate.getQuarter();\n if (oField.digits == 3) {\n return oFormat.aQuartersAbbrev[iQuarter];\n } else if (oField.digits == 4) {\n return oFormat.aQuartersWide[iQuarter];\n } else if (oField.digits > 4) {\n return oFormat.aQuartersNarrow[iQuarter];\n } else {\n return String(iQuarter + 1).padStart(oField.digits, '0');\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var iQuarter;\n var sPart;\n var aQuartersVariants = [\n oFormat.aQuartersWide,\n oFormat.aQuartersWideSt,\n oFormat.aQuartersAbbrev,\n oFormat.aQuartersAbbrevSt,\n oFormat.aQuartersNarrow,\n oFormat.aQuartersNarrowSt\n ];\n if (oPart.digits < 3) {\n sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n iQuarter = parseInt(sPart) - 1;\n if (oConfig.strict && iQuarter > 3) {\n bValid = false;\n }\n } else {\n for (var i = 0; i < aQuartersVariants.length; i++) {\n var aVariants = aQuartersVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n quarter: oFound.index,\n length: oFound.value.length\n };\n }\n }\n bValid = oParseHelper.checkValid(oPart.type, true, oFormat);\n }\n return {\n length: sPart ? sPart.length : 0,\n quarter: iQuarter,\n valid: bValid\n };\n }\n },\n 'q': {\n name: 'quarterStandalone',\n format: function (oField, oDate, bUTC, oFormat) {\n var iQuarter = bUTC ? oDate.getUTCQuarter() : oDate.getQuarter();\n if (oField.digits == 3) {\n return oFormat.aQuartersAbbrevSt[iQuarter];\n } else if (oField.digits == 4) {\n return oFormat.aQuartersWideSt[iQuarter];\n } else if (oField.digits > 4) {\n return oFormat.aQuartersNarrowSt[iQuarter];\n } else {\n return String(iQuarter + 1).padStart(oField.digits, '0');\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var iQuarter;\n var sPart;\n var aQuartersVariants = [\n oFormat.aQuartersWide,\n oFormat.aQuartersWideSt,\n oFormat.aQuartersAbbrev,\n oFormat.aQuartersAbbrevSt,\n oFormat.aQuartersNarrow,\n oFormat.aQuartersNarrowSt\n ];\n if (oPart.digits < 3) {\n sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n iQuarter = parseInt(sPart) - 1;\n if (oConfig.strict && iQuarter > 3) {\n bValid = false;\n }\n } else {\n for (var i = 0; i < aQuartersVariants.length; i++) {\n var aVariants = aQuartersVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n quarter: oFound.index,\n length: oFound.value.length\n };\n }\n }\n bValid = oParseHelper.checkValid(oPart.type, true, oFormat);\n }\n return {\n length: sPart ? sPart.length : 0,\n quarter: iQuarter,\n valid: bValid\n };\n }\n },\n 'F': {\n name: 'dayOfWeekInMonth',\n format: function (oField, oDate, bUTC, oFormat) {\n return '';\n },\n parse: function () {\n return {};\n }\n },\n 'E': {\n name: 'dayNameInWeek',\n format: function (oField, oDate, bUTC, oFormat) {\n var iDay = bUTC ? oDate.getUTCDay() : oDate.getDay();\n if (oField.digits < 4) {\n return oFormat.aDaysAbbrev[iDay];\n } else if (oField.digits == 4) {\n return oFormat.aDaysWide[iDay];\n } else if (oField.digits == 5) {\n return oFormat.aDaysNarrow[iDay];\n } else {\n return oFormat.aDaysShort[iDay];\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var aDaysVariants = [\n oFormat.aDaysWide,\n oFormat.aDaysWideSt,\n oFormat.aDaysAbbrev,\n oFormat.aDaysAbbrevSt,\n oFormat.aDaysShort,\n oFormat.aDaysShortSt,\n oFormat.aDaysNarrow,\n oFormat.aDaysNarrowSt\n ];\n for (var i = 0; i < aDaysVariants.length; i++) {\n var aVariants = aDaysVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n dayOfWeek: oFound.index,\n length: oFound.value.length\n };\n }\n }\n }\n },\n 'c': {\n name: 'dayNameInWeekStandalone',\n format: function (oField, oDate, bUTC, oFormat) {\n var iDay = bUTC ? oDate.getUTCDay() : oDate.getDay();\n if (oField.digits < 4) {\n return oFormat.aDaysAbbrevSt[iDay];\n } else if (oField.digits == 4) {\n return oFormat.aDaysWideSt[iDay];\n } else if (oField.digits == 5) {\n return oFormat.aDaysNarrowSt[iDay];\n } else {\n return oFormat.aDaysShortSt[iDay];\n }\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var aDaysVariants = [\n oFormat.aDaysWide,\n oFormat.aDaysWideSt,\n oFormat.aDaysAbbrev,\n oFormat.aDaysAbbrevSt,\n oFormat.aDaysShort,\n oFormat.aDaysShortSt,\n oFormat.aDaysNarrow,\n oFormat.aDaysNarrowSt\n ];\n for (var i = 0; i < aDaysVariants.length; i++) {\n var aVariants = aDaysVariants[i];\n var oFound = oParseHelper.findEntry(sValue, aVariants);\n if (oFound.index !== -1) {\n return {\n day: oFound.index,\n length: oFound.value.length\n };\n }\n }\n }\n },\n 'u': {\n name: 'dayNumberOfWeek',\n format: function (oField, oDate, bUTC, oFormat) {\n var iDay = bUTC ? oDate.getUTCDay() : oDate.getDay();\n return oFormat._adaptDayOfWeek(iDay);\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sPart = oParseHelper.findNumbers(sValue, oPart.digits);\n return {\n dayNumberOfWeek: parseInt(sPart),\n length: sPart.length\n };\n }\n },\n 'a': {\n name: 'amPmMarker',\n format: function (oField, oDate, bUTC, oFormat) {\n var iDayPeriod = bUTC ? oDate.getUTCDayPeriod() : oDate.getDayPeriod();\n return oFormat.aDayPeriods[iDayPeriod];\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bPM;\n var iLength;\n var sAM = oFormat.aDayPeriods[0], sPM = oFormat.aDayPeriods[1];\n var rAMPM = /[aApP](?:\\.)?[\\x20\\xA0]?[mM](?:\\.)?/;\n var aMatch = sValue.match(rAMPM);\n var bVariant = aMatch && aMatch.index === 0;\n if (bVariant) {\n sValue = aMatch[0];\n sAM = sAM.replace(/[\\x20\\xA0]/g, '');\n sPM = sPM.replace(/[\\x20\\xA0]/g, '');\n sValue = sValue.replace(/[\\x20\\xA0]/g, '');\n sAM = sAM.replace(/\\./g, '').toLowerCase();\n sPM = sPM.replace(/\\./g, '').toLowerCase();\n sValue = sValue.replace(/\\./g, '').toLowerCase();\n }\n if (sValue.indexOf(sAM) === 0) {\n bPM = false;\n iLength = bVariant ? aMatch[0].length : sAM.length;\n } else if (sValue.indexOf(sPM) === 0) {\n bPM = true;\n iLength = bVariant ? aMatch[0].length : sPM.length;\n }\n return {\n pm: bPM,\n length: iLength\n };\n }\n },\n 'H': {\n name: 'hour0_23',\n format: function (oField, oDate, bUTC, oFormat) {\n var iHours = bUTC ? oDate.getUTCHours() : oDate.getHours();\n return String(iHours).padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iHours = parseInt(sPart);\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (oConfig.strict && iHours > 23) {\n bValid = false;\n }\n return {\n hour: iHours,\n length: sPart.length,\n valid: bValid\n };\n }\n },\n 'k': {\n name: 'hour1_24',\n format: function (oField, oDate, bUTC, oFormat) {\n var iHours = bUTC ? oDate.getUTCHours() : oDate.getHours();\n var sHours = iHours === 0 ? '24' : String(iHours);\n return sHours.padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iHours = parseInt(sPart);\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (iHours == 24) {\n iHours = 0;\n }\n if (oConfig.strict && iHours > 23) {\n bValid = false;\n }\n return {\n hour: iHours,\n length: sPart.length,\n valid: bValid\n };\n }\n },\n 'K': {\n name: 'hour0_11',\n format: function (oField, oDate, bUTC, oFormat) {\n var iHours = bUTC ? oDate.getUTCHours() : oDate.getHours();\n var sHours = String(iHours > 11 ? iHours - 12 : iHours);\n return sHours.padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iHours = parseInt(sPart);\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (oConfig.strict && iHours > 11) {\n bValid = false;\n }\n return {\n hour: iHours,\n length: sPart.length,\n valid: bValid\n };\n }\n },\n 'h': {\n name: 'hour1_12',\n format: function (oField, oDate, bUTC, oFormat) {\n var iHours = bUTC ? oDate.getUTCHours() : oDate.getHours();\n var sHours;\n if (iHours > 12) {\n sHours = String(iHours - 12);\n } else if (iHours == 0) {\n sHours = '12';\n } else {\n sHours = String(iHours);\n }\n return sHours.padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bPM = oConfig.dateValue.pm;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iHours = parseInt(sPart);\n var bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (iHours == 12) {\n iHours = 0;\n bPM = bPM === undefined ? true : bPM;\n }\n if (oConfig.strict && iHours > 11) {\n bValid = false;\n }\n return {\n hour: iHours,\n length: sPart.length,\n pm: bPM,\n valid: bValid\n };\n }\n },\n 'm': {\n name: 'minute',\n format: function (oField, oDate, bUTC, oFormat) {\n var iMinutes = bUTC ? oDate.getUTCMinutes() : oDate.getMinutes();\n return String(iMinutes).padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iMinutes = parseInt(sPart);\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (oConfig.strict && iMinutes > 59) {\n bValid = false;\n }\n return {\n length: sPart.length,\n minute: iMinutes,\n valid: bValid\n };\n }\n },\n 's': {\n name: 'second',\n format: function (oField, oDate, bUTC, oFormat) {\n var iSeconds = bUTC ? oDate.getUTCSeconds() : oDate.getSeconds();\n return String(iSeconds).padStart(oField.digits, '0');\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var bValid;\n var sPart = oParseHelper.findNumbers(sValue, Math.max(oPart.digits, 2));\n var iSeconds = parseInt(sPart);\n bValid = oParseHelper.checkValid(oPart.type, sPart === '', oFormat);\n if (oConfig.strict && iSeconds > 59) {\n bValid = false;\n }\n return {\n length: sPart.length,\n second: iSeconds,\n valid: bValid\n };\n }\n },\n 'S': {\n name: 'fractionalsecond',\n format: function (oField, oDate, bUTC, oFormat) {\n var iMilliseconds = bUTC ? oDate.getUTCMilliseconds() : oDate.getMilliseconds();\n var sMilliseconds = String(iMilliseconds);\n var sFractionalseconds = sMilliseconds.padStart(3, '0');\n sFractionalseconds = sFractionalseconds.substr(0, oField.digits);\n sFractionalseconds = sFractionalseconds.padEnd(oField.digits, '0');\n return sFractionalseconds;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var sPart = oParseHelper.findNumbers(sValue, oPart.digits);\n var iLength = sPart.length;\n sPart = sPart.substr(0, 3);\n sPart = sPart.padEnd(3, '0');\n var iMilliseconds = parseInt(sPart);\n return {\n length: iLength,\n millisecond: iMilliseconds\n };\n }\n },\n 'z': {\n name: 'timezoneGeneral',\n format: function (oField, oDate, bUTC, oFormat) {\n if (oField.digits > 3 && oDate.getTimezoneLong && oDate.getTimezoneLong()) {\n return oDate.getTimezoneLong();\n } else if (oDate.getTimezoneShort && oDate.getTimezoneShort()) {\n return oDate.getTimezoneShort();\n }\n var sTimeZone = 'GMT';\n var iTZOffset = Math.abs(oDate.getTimezoneOffset());\n var bPositiveOffset = oDate.getTimezoneOffset() > 0;\n var iHourOffset = Math.floor(iTZOffset / 60);\n var iMinuteOffset = iTZOffset % 60;\n if (!bUTC && iTZOffset != 0) {\n sTimeZone += bPositiveOffset ? '-' : '+';\n sTimeZone += String(iHourOffset).padStart(2, '0');\n sTimeZone += ':';\n sTimeZone += String(iMinuteOffset).padStart(2, '0');\n } else {\n sTimeZone += 'Z';\n }\n return sTimeZone;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n var iLength = 0;\n var iTZDiff;\n var oTZ = sValue.substring(0, 3);\n if (oTZ === 'GMT' || oTZ === 'UTC') {\n iLength = 3;\n } else if (sValue.substring(0, 2) === 'UT') {\n iLength = 2;\n } else if (sValue.charAt(0) === 'Z') {\n iLength = 1;\n iTZDiff = 0;\n } else {\n return { error: 'cannot be parsed correctly by sap.ui.core.format.DateFormat: The given timezone is not supported!' };\n }\n if (sValue.charAt(0) !== 'Z') {\n var oParsedTZ = oParseHelper.parseTZ(sValue.substr(iLength), true);\n iLength += oParsedTZ.length;\n iTZDiff = oParsedTZ.tzDiff;\n }\n return {\n length: iLength,\n tzDiff: iTZDiff\n };\n }\n },\n 'Z': {\n name: 'timezoneRFC822',\n format: function (oField, oDate, bUTC, oFormat) {\n var iTZOffset = Math.abs(oDate.getTimezoneOffset());\n var bPositiveOffset = oDate.getTimezoneOffset() > 0;\n var iHourOffset = Math.floor(iTZOffset / 60);\n var iMinuteOffset = iTZOffset % 60;\n var sTimeZone = '';\n if (!bUTC) {\n sTimeZone += bPositiveOffset ? '-' : '+';\n sTimeZone += String(iHourOffset).padStart(2, '0');\n sTimeZone += String(iMinuteOffset).padStart(2, '0');\n }\n return sTimeZone;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n return oParseHelper.parseTZ(sValue, false);\n }\n },\n 'X': {\n name: 'timezoneISO8601',\n format: function (oField, oDate, bUTC, oFormat) {\n var iTZOffset = Math.abs(oDate.getTimezoneOffset());\n var bPositiveOffset = oDate.getTimezoneOffset() > 0;\n var iHourOffset = Math.floor(iTZOffset / 60);\n var iMinuteOffset = iTZOffset % 60;\n var sTimeZone = '';\n if (!bUTC && iTZOffset != 0) {\n sTimeZone += bPositiveOffset ? '-' : '+';\n sTimeZone += String(iHourOffset).padStart(2, '0');\n if (oField.digits > 1 || iMinuteOffset > 0) {\n if (oField.digits === 3 || oField.digits === 5) {\n sTimeZone += ':';\n }\n sTimeZone += String(iMinuteOffset).padStart(2, '0');\n }\n } else {\n sTimeZone += 'Z';\n }\n return sTimeZone;\n },\n parse: function (sValue, oPart, oFormat, oConfig) {\n if (sValue.charAt(0) === 'Z') {\n return {\n length: 1,\n tzDiff: 0\n };\n } else {\n return oParseHelper.parseTZ(sValue, oPart.digits === 3 || oPart.digits === 5);\n }\n }\n }\n};\nDateFormat.prototype._format = function (oJSDate, bUTC) {\n if (this.oFormatOptions.relative) {\n var sRes = this.formatRelative(oJSDate, bUTC, this.oFormatOptions.relativeRange);\n if (sRes) {\n return sRes;\n }\n }\n var sCalendarType = this.oFormatOptions.calendarType;\n var oDate = UniversalDate.getInstance(oJSDate, sCalendarType);\n var aBuffer = [], oPart, sResult, sSymbol;\n for (var i = 0; i < this.aFormatArray.length; i++) {\n oPart = this.aFormatArray[i];\n sSymbol = oPart.symbol || '';\n aBuffer.push(this.oSymbols[sSymbol].format(oPart, oDate, bUTC, this));\n }\n sResult = aBuffer.join('');\n if (Core.getConfiguration().getOriginInfo()) {\n sResult = new String(sResult);\n sResult.originInfo = {\n source: 'Common Locale Data Repository',\n locale: this.oLocale.toString(),\n style: this.oFormatOptions.style,\n pattern: this.oFormatOptions.pattern\n };\n }\n return sResult;\n};\nDateFormat.prototype.format = function (vJSDate, bUTC) {\n var sCalendarType = this.oFormatOptions.calendarType, sResult;\n if (bUTC === undefined) {\n bUTC = this.oFormatOptions.UTC;\n }\n if (Array.isArray(vJSDate)) {\n if (!this.oFormatOptions.interval) {\n Log.error('Non-interval DateFormat can\\'t format more than one date instance.');\n return '';\n }\n if (vJSDate.length !== 2) {\n Log.error('Interval DateFormat can only format with 2 date instances but ' + vJSDate.length + ' is given.');\n return '';\n }\n if (this.oFormatOptions.singleIntervalValue) {\n if (vJSDate[0] === null) {\n Log.error('First date instance which is passed to the interval DateFormat shouldn\\'t be null.');\n return '';\n }\n if (vJSDate[1] === null) {\n sResult = this._format(vJSDate[0], bUTC);\n }\n }\n if (sResult === undefined) {\n var bValid = vJSDate.every(function (oJSDate) {\n return oJSDate && !isNaN(oJSDate.getTime());\n });\n if (!bValid) {\n Log.error('At least one date instance which is passed to the interval DateFormat isn\\'t valid.');\n return '';\n }\n sResult = this._formatInterval(vJSDate, bUTC);\n }\n } else {\n if (!vJSDate || isNaN(vJSDate.getTime())) {\n Log.error('The given date instance isn\\'t valid.');\n return '';\n }\n if (this.oFormatOptions.interval) {\n Log.error('Interval DateFormat expects an array with two dates for the first argument but only one date is given.');\n return '';\n }\n sResult = this._format(vJSDate, bUTC);\n }\n if (sCalendarType == CalendarType.Japanese && this.oLocale.getLanguage() === 'ja') {\n sResult = sResult.replace(/(^|[^\\d])1年/g, '$1元年');\n }\n return sResult;\n};\nDateFormat.prototype._formatInterval = function (aJSDates, bUTC) {\n var sCalendarType = this.oFormatOptions.calendarType;\n var oFromDate = UniversalDate.getInstance(aJSDates[0], sCalendarType);\n var oToDate = UniversalDate.getInstance(aJSDates[1], sCalendarType);\n var oDate;\n var oPart;\n var sSymbol;\n var aBuffer = [];\n var sPattern;\n var aFormatArray = [];\n var oDiffField = this._getGreatestDiffField([\n oFromDate,\n oToDate\n ], bUTC);\n if (!oDiffField) {\n return this._format(aJSDates[0], bUTC);\n }\n if (this.oFormatOptions.format) {\n sPattern = this.oLocaleData.getCustomIntervalPattern(this.oFormatOptions.format, oDiffField, sCalendarType);\n } else {\n sPattern = this.oLocaleData.getCombinedIntervalPattern(this.oFormatOptions.pattern, sCalendarType);\n }\n aFormatArray = this.parseCldrDatePattern(sPattern);\n oDate = oFromDate;\n for (var i = 0; i < aFormatArray.length; i++) {\n oPart = aFormatArray[i];\n sSymbol = oPart.symbol || '';\n if (oPart.repeat) {\n oDate = oToDate;\n }\n aBuffer.push(this.oSymbols[sSymbol].format(oPart, oDate, bUTC, this));\n }\n return aBuffer.join('');\n};\nvar mFieldToGroup = {\n Era: 'Era',\n FullYear: 'Year',\n Quarter: 'Quarter',\n Month: 'Month',\n Week: 'Week',\n Date: 'Day',\n DayPeriod: 'DayPeriod',\n Hours: 'Hour',\n Minutes: 'Minute',\n Seconds: 'Second'\n};\nDateFormat.prototype._getGreatestDiffField = function (aDates, bUTC) {\n var bDiffFound = false, mDiff = {};\n this.aIntervalCompareFields.forEach(function (sField) {\n var sGetterPrefix = 'get' + (bUTC ? 'UTC' : ''), sMethodName = sGetterPrefix + sField, sFieldGroup = mFieldToGroup[sField], vFromValue = aDates[0][sMethodName].apply(aDates[0]), vToValue = aDates[1][sMethodName].apply(aDates[1]);\n if (!deepEqual(vFromValue, vToValue)) {\n bDiffFound = true;\n mDiff[sFieldGroup] = true;\n }\n });\n if (bDiffFound) {\n return mDiff;\n }\n return null;\n};\nDateFormat.prototype._parse = function (sValue, aFormatArray, bUTC, bStrict) {\n var iIndex = 0, oPart, sSubValue, oResult;\n var oDateValue = { valid: true };\n var oParseConf = {\n formatArray: aFormatArray,\n dateValue: oDateValue,\n strict: bStrict\n };\n for (var i = 0; i < aFormatArray.length; i++) {\n sSubValue = sValue.substr(iIndex);\n oPart = aFormatArray[i];\n oParseConf.index = i;\n oResult = this.oSymbols[oPart.symbol || ''].parse(sSubValue, oPart, this, oParseConf) || {};\n oDateValue = extend(oDateValue, oResult);\n if (oResult.valid === false) {\n break;\n }\n iIndex += oResult.length || 0;\n }\n oDateValue.index = iIndex;\n if (oDateValue.pm) {\n oDateValue.hour += 12;\n }\n if (oDateValue.dayNumberOfWeek === undefined && oDateValue.dayOfWeek !== undefined) {\n oDateValue.dayNumberOfWeek = this._adaptDayOfWeek(oDateValue.dayOfWeek);\n }\n if (oDateValue.quarter !== undefined && oDateValue.month === undefined && oDateValue.day === undefined) {\n oDateValue.month = 3 * oDateValue.quarter;\n oDateValue.day = 1;\n }\n return oDateValue;\n};\nDateFormat.prototype._parseInterval = function (sValue, sCalendarType, bUTC, bStrict) {\n var aDateValues, iRepeat, oDateValue;\n this.intervalPatterns.some(function (sPattern) {\n var aFormatArray = this.parseCldrDatePattern(sPattern);\n iRepeat = undefined;\n for (var i = 0; i < aFormatArray.length; i++) {\n if (aFormatArray[i].repeat) {\n iRepeat = i;\n break;\n }\n }\n if (iRepeat === undefined) {\n oDateValue = this._parse(sValue, aFormatArray, bUTC, bStrict);\n if (oDateValue.index === 0 || oDateValue.index < sValue.length) {\n oDateValue.valid = false;\n }\n if (oDateValue.valid === false) {\n return;\n }\n aDateValues = [\n oDateValue,\n oDateValue\n ];\n return true;\n } else {\n aDateValues = [];\n oDateValue = this._parse(sValue, aFormatArray.slice(0, iRepeat), bUTC, bStrict);\n if (oDateValue.valid === false) {\n return;\n }\n aDateValues.push(oDateValue);\n var iLength = oDateValue.index;\n oDateValue = this._parse(sValue.substring(iLength), aFormatArray.slice(iRepeat), bUTC, bStrict);\n if (oDateValue.index === 0 || oDateValue.index + iLength < sValue.length) {\n oDateValue.valid = false;\n }\n if (oDateValue.valid === false) {\n return;\n }\n aDateValues.push(oDateValue);\n return true;\n }\n }.bind(this));\n return aDateValues;\n};\nvar fnCreateDate = function (oDateValue, sCalendarType, bUTC, bStrict) {\n var oDate, iYear = typeof oDateValue.year === 'number' ? oDateValue.year : 1970;\n if (oDateValue.valid) {\n if (bUTC || oDateValue.tzDiff !== undefined) {\n oDate = UniversalDate.getInstance(new Date(0), sCalendarType);\n oDate.setUTCEra(oDateValue.era || UniversalDate.getCurrentEra(sCalendarType));\n oDate.setUTCFullYear(iYear);\n oDate.setUTCMonth(oDateValue.month || 0);\n oDate.setUTCDate(oDateValue.day || 1);\n oDate.setUTCHours(oDateValue.hour || 0);\n oDate.setUTCMinutes(oDateValue.minute || 0);\n oDate.setUTCSeconds(oDateValue.second || 0);\n oDate.setUTCMilliseconds(oDateValue.millisecond || 0);\n if (bStrict && (oDateValue.day || 1) !== oDate.getUTCDate()) {\n oDateValue.valid = false;\n oDate = undefined;\n } else {\n if (oDateValue.tzDiff) {\n oDate.setUTCMinutes((oDateValue.minute || 0) + oDateValue.tzDiff);\n }\n if (oDateValue.week !== undefined && (oDateValue.month === undefined || oDateValue.day === undefined)) {\n oDate.setUTCWeek({\n year: oDateValue.weekYear || oDateValue.year,\n week: oDateValue.week\n });\n if (oDateValue.dayNumberOfWeek !== undefined) {\n oDate.setUTCDate(oDate.getUTCDate() + oDateValue.dayNumberOfWeek - 1);\n }\n }\n }\n } else {\n oDate = UniversalDate.getInstance(new Date(1970, 0, 1, 0, 0, 0), sCalendarType);\n oDate.setEra(oDateValue.era || UniversalDate.getCurrentEra(sCalendarType));\n oDate.setFullYear(iYear);\n oDate.setMonth(oDateValue.month || 0);\n oDate.setDate(oDateValue.day || 1);\n oDate.setHours(oDateValue.hour || 0);\n oDate.setMinutes(oDateValue.minute || 0);\n oDate.setSeconds(oDateValue.second || 0);\n oDate.setMilliseconds(oDateValue.millisecond || 0);\n if (bStrict && (oDateValue.day || 1) !== oDate.getDate()) {\n oDateValue.valid = false;\n oDate = undefined;\n } else if (oDateValue.week !== undefined && (oDateValue.month === undefined || oDateValue.day === undefined)) {\n oDate.setWeek({\n year: oDateValue.weekYear || oDateValue.year,\n week: oDateValue.week\n });\n if (oDateValue.dayNumberOfWeek !== undefined) {\n oDate.setDate(oDate.getDate() + oDateValue.dayNumberOfWeek - 1);\n }\n }\n }\n if (oDateValue.valid) {\n oDate = oDate.getJSDate();\n return oDate;\n }\n }\n return null;\n};\nfunction mergeWithoutOverwrite(object1, object2) {\n if (object1 === object2) {\n return object1;\n }\n var oMergedObject = {};\n Object.keys(object1).forEach(function (sKey) {\n oMergedObject[sKey] = object1[sKey];\n });\n Object.keys(object2).forEach(function (sKey) {\n if (!oMergedObject.hasOwnProperty(sKey)) {\n oMergedObject[sKey] = object2[sKey];\n }\n });\n return oMergedObject;\n}\nfunction isValidDateRange(oStartDate, oEndDate) {\n if (oStartDate.getTime() > oEndDate.getTime()) {\n return false;\n }\n return true;\n}\nDateFormat.prototype.parse = function (sValue, bUTC, bStrict) {\n sValue = sValue == null ? '' : String(sValue).trim();\n var oDateValue;\n var sCalendarType = this.oFormatOptions.calendarType;\n if (bUTC === undefined) {\n bUTC = this.oFormatOptions.UTC;\n }\n if (bStrict === undefined) {\n bStrict = this.oFormatOptions.strictParsing;\n }\n if (sCalendarType == CalendarType.Japanese && this.oLocale.getLanguage() === 'ja') {\n sValue = sValue.replace(/元年/g, '1年');\n }\n if (!this.oFormatOptions.interval) {\n var oJSDate = this.parseRelative(sValue, bUTC);\n if (oJSDate) {\n return oJSDate;\n }\n oDateValue = this._parse(sValue, this.aFormatArray, bUTC, bStrict);\n if (oDateValue.index === 0 || oDateValue.index < sValue.length) {\n oDateValue.valid = false;\n }\n oJSDate = fnCreateDate(oDateValue, sCalendarType, bUTC, bStrict);\n if (oJSDate) {\n return oJSDate;\n }\n } else {\n var aDateValues = this._parseInterval(sValue, sCalendarType, bUTC, bStrict);\n var oJSDate1, oJSDate2;\n if (aDateValues && aDateValues.length == 2) {\n var oDateValue1 = mergeWithoutOverwrite(aDateValues[0], aDateValues[1]);\n var oDateValue2 = mergeWithoutOverwrite(aDateValues[1], aDateValues[0]);\n oJSDate1 = fnCreateDate(oDateValue1, sCalendarType, bUTC, bStrict);\n oJSDate2 = fnCreateDate(oDateValue2, sCalendarType, bUTC, bStrict);\n if (oJSDate1 && oJSDate2) {\n if (this.oFormatOptions.singleIntervalValue && oJSDate1.getTime() === oJSDate2.getTime()) {\n return [\n oJSDate1,\n null\n ];\n }\n var bValid = isValidDateRange(oJSDate1, oJSDate2);\n if (bStrict && !bValid) {\n Log.error('StrictParsing: Invalid date range. The given end date is before the start date.');\n return [\n null,\n null\n ];\n }\n return [\n oJSDate1,\n oJSDate2\n ];\n }\n }\n }\n if (!this.bIsFallback) {\n var vDate;\n this.aFallbackFormats.every(function (oFallbackFormat) {\n vDate = oFallbackFormat.parse(sValue, bUTC, bStrict);\n if (Array.isArray(vDate)) {\n return !(vDate[0] && vDate[1]);\n } else {\n return !vDate;\n }\n });\n return vDate;\n }\n if (!this.oFormatOptions.interval) {\n return null;\n } else {\n return [\n null,\n null\n ];\n }\n};\nDateFormat.prototype.parseCldrDatePattern = function (sPattern) {\n if (mCldrDatePattern[sPattern]) {\n return mCldrDatePattern[sPattern];\n }\n var aFormatArray = [], i, bQuoted = false, oCurrentObject = null, sState = '', sNewState = '', mAppeared = {}, bIntervalStartFound = false;\n for (i = 0; i < sPattern.length; i++) {\n var sCurChar = sPattern.charAt(i), sNextChar, sPrevChar, sPrevPrevChar;\n if (bQuoted) {\n if (sCurChar == '\\'') {\n sPrevChar = sPattern.charAt(i - 1);\n sPrevPrevChar = sPattern.charAt(i - 2);\n sNextChar = sPattern.charAt(i + 1);\n if (sPrevChar == '\\'' && sPrevPrevChar != '\\'') {\n bQuoted = false;\n } else if (sNextChar == '\\'') {\n i += 1;\n } else {\n bQuoted = false;\n continue;\n }\n }\n if (sState == 'text') {\n oCurrentObject.value += sCurChar;\n } else {\n oCurrentObject = {\n type: 'text',\n value: sCurChar\n };\n aFormatArray.push(oCurrentObject);\n sState = 'text';\n }\n } else {\n if (sCurChar == '\\'') {\n bQuoted = true;\n } else if (this.oSymbols[sCurChar]) {\n sNewState = this.oSymbols[sCurChar].name;\n if (sState == sNewState) {\n oCurrentObject.digits++;\n } else {\n oCurrentObject = {\n type: sNewState,\n symbol: sCurChar,\n digits: 1\n };\n aFormatArray.push(oCurrentObject);\n sState = sNewState;\n if (!bIntervalStartFound) {\n if (mAppeared[sNewState]) {\n oCurrentObject.repeat = true;\n bIntervalStartFound = true;\n } else {\n mAppeared[sNewState] = true;\n }\n }\n }\n } else {\n if (sState == 'text') {\n oCurrentObject.value += sCurChar;\n } else {\n oCurrentObject = {\n type: 'text',\n value: sCurChar\n };\n aFormatArray.push(oCurrentObject);\n sState = 'text';\n }\n }\n }\n }\n mCldrDatePattern[sPattern] = aFormatArray;\n return aFormatArray;\n};\nDateFormat.prototype.parseRelative = function (sValue, bUTC) {\n var aPatterns, oEntry, rPattern, oResult, iValue;\n if (!sValue) {\n return null;\n }\n aPatterns = this.oLocaleData.getRelativePatterns(this.aRelativeParseScales, this.oFormatOptions.relativeStyle);\n for (var i = 0; i < aPatterns.length; i++) {\n oEntry = aPatterns[i];\n rPattern = new RegExp('^\\\\s*' + oEntry.pattern.replace(/\\{0\\}/, '(\\\\d+)') + '\\\\s*$', 'i');\n oResult = rPattern.exec(sValue);\n if (oResult) {\n if (oEntry.value !== undefined) {\n return computeRelativeDate(oEntry.value, oEntry.scale);\n } else {\n iValue = parseInt(oResult[1]);\n return computeRelativeDate(iValue * oEntry.sign, oEntry.scale);\n }\n }\n }\n function computeRelativeDate(iDiff, sScale) {\n var iToday, oToday = new Date(), oJSDate;\n if (bUTC) {\n iToday = oToday.getTime();\n } else {\n iToday = Date.UTC(oToday.getFullYear(), oToday.getMonth(), oToday.getDate(), oToday.getHours(), oToday.getMinutes(), oToday.getSeconds(), oToday.getMilliseconds());\n }\n oJSDate = new Date(iToday);\n switch (sScale) {\n case 'second':\n oJSDate.setUTCSeconds(oJSDate.getUTCSeconds() + iDiff);\n break;\n case 'minute':\n oJSDate.setUTCMinutes(oJSDate.getUTCMinutes() + iDiff);\n break;\n case 'hour':\n oJSDate.setUTCHours(oJSDate.getUTCHours() + iDiff);\n break;\n case 'day':\n oJSDate.setUTCDate(oJSDate.getUTCDate() + iDiff);\n break;\n case 'week':\n oJSDate.setUTCDate(oJSDate.getUTCDate() + iDiff * 7);\n break;\n case 'month':\n oJSDate.setUTCMonth(oJSDate.getUTCMonth() + iDiff);\n break;\n case 'quarter':\n oJSDate.setUTCMonth(oJSDate.getUTCMonth() + iDiff * 3);\n break;\n case 'year':\n oJSDate.setUTCFullYear(oJSDate.getUTCFullYear() + iDiff);\n break;\n }\n if (bUTC) {\n return oJSDate;\n } else {\n return new Date(oJSDate.getUTCFullYear(), oJSDate.getUTCMonth(), oJSDate.getUTCDate(), oJSDate.getUTCHours(), oJSDate.getUTCMinutes(), oJSDate.getUTCSeconds(), oJSDate.getUTCMilliseconds());\n }\n }\n};\nDateFormat.prototype.formatRelative = function (oJSDate, bUTC, aRange) {\n var oToday = new Date(), oDateUTC, sScale = this.oFormatOptions.relativeScale || 'day', iDiff, sPattern, iDiffSeconds;\n iDiffSeconds = (oJSDate.getTime() - oToday.getTime()) / 1000;\n if (this.oFormatOptions.relativeScale == 'auto') {\n sScale = this._getScale(iDiffSeconds, this.aRelativeScales);\n }\n if (!aRange) {\n aRange = this._mRanges[sScale];\n }\n if (sScale == 'year' || sScale == 'month' || sScale == 'day') {\n oToday = new Date(Date.UTC(oToday.getFullYear(), oToday.getMonth(), oToday.getDate()));\n oDateUTC = new Date(0);\n if (bUTC) {\n oDateUTC.setUTCFullYear(oJSDate.getUTCFullYear(), oJSDate.getUTCMonth(), oJSDate.getUTCDate());\n } else {\n oDateUTC.setUTCFullYear(oJSDate.getFullYear(), oJSDate.getMonth(), oJSDate.getDate());\n }\n oJSDate = oDateUTC;\n }\n iDiff = this._getDifference(sScale, [\n oToday,\n oJSDate\n ]);\n if (this.oFormatOptions.relativeScale != 'auto' && (iDiff < aRange[0] || iDiff > aRange[1])) {\n return null;\n }\n sPattern = this.oLocaleData.getRelativePattern(sScale, iDiff, iDiffSeconds > 0, this.oFormatOptions.relativeStyle);\n return formatMessage(sPattern, [Math.abs(iDiff)]);\n};\nDateFormat.prototype._mRanges = {\n second: [\n -60,\n 60\n ],\n minute: [\n -60,\n 60\n ],\n hour: [\n -24,\n 24\n ],\n day: [\n -6,\n 6\n ],\n week: [\n -4,\n 4\n ],\n month: [\n -12,\n 12\n ],\n year: [\n -10,\n 10\n ]\n};\nDateFormat.prototype._mScales = {\n second: 1,\n minute: 60,\n hour: 3600,\n day: 86400,\n week: 604800,\n month: 2592000,\n quarter: 7776000,\n year: 31536000\n};\nDateFormat.prototype._getScale = function (iDiffSeconds, aScales) {\n var sScale, sTestScale;\n iDiffSeconds = Math.abs(iDiffSeconds);\n for (var i = 0; i < aScales.length; i++) {\n sTestScale = aScales[i];\n if (iDiffSeconds >= this._mScales[sTestScale]) {\n sScale = sTestScale;\n break;\n }\n }\n if (!sScale) {\n sScale = aScales[aScales.length - 1];\n }\n return sScale;\n};\nfunction cutDateFields(oDate, iStartIndex) {\n var aFields = [\n 'FullYear',\n 'Month',\n 'Date',\n 'Hours',\n 'Minutes',\n 'Seconds',\n 'Milliseconds'\n ], sMethodName;\n var oDateCopy = new Date(oDate.getTime());\n for (var i = iStartIndex; i < aFields.length; i++) {\n sMethodName = 'set' + aFields[iStartIndex];\n oDateCopy[sMethodName].apply(oDateCopy, [0]);\n }\n return oDateCopy;\n}\nvar mRelativeDiffs = {\n year: function (oFromDate, oToDate) {\n return oToDate.getFullYear() - oFromDate.getFullYear();\n },\n month: function (oFromDate, oToDate) {\n return oToDate.getMonth() - oFromDate.getMonth() + this.year(oFromDate, oToDate) * 12;\n },\n week: function (oFromDate, oToDate, oFormat) {\n var iFromDay = oFormat._adaptDayOfWeek(oFromDate.getDay());\n var iToDay = oFormat._adaptDayOfWeek(oToDate.getDay());\n oFromDate = cutDateFields(oFromDate, 3);\n oToDate = cutDateFields(oToDate, 3);\n return (oToDate.getTime() - oFromDate.getTime() - (iToDay - iFromDay) * oFormat._mScales.day * 1000) / (oFormat._mScales.week * 1000);\n },\n day: function (oFromDate, oToDate, oFormat) {\n oFromDate = cutDateFields(oFromDate, 3);\n oToDate = cutDateFields(oToDate, 3);\n return (oToDate.getTime() - oFromDate.getTime()) / (oFormat._mScales.day * 1000);\n },\n hour: function (oFromDate, oToDate, oFormat) {\n oFromDate = cutDateFields(oFromDate, 4);\n oToDate = cutDateFields(oToDate, 4);\n return (oToDate.getTime() - oFromDate.getTime()) / (oFormat._mScales.hour * 1000);\n },\n minute: function (oFromDate, oToDate, oFormat) {\n oFromDate = cutDateFields(oFromDate, 5);\n oToDate = cutDateFields(oToDate, 5);\n return (oToDate.getTime() - oFromDate.getTime()) / (oFormat._mScales.minute * 1000);\n },\n second: function (oFromDate, oToDate, oFormat) {\n oFromDate = cutDateFields(oFromDate, 6);\n oToDate = cutDateFields(oToDate, 6);\n return (oToDate.getTime() - oFromDate.getTime()) / (oFormat._mScales.second * 1000);\n }\n};\nDateFormat.prototype._adaptDayOfWeek = function (iDayOfWeek) {\n var iFirstDayOfWeek = LocaleData.getInstance(Core.getConfiguration().getFormatSettings().getFormatLocale()).getFirstDayOfWeek();\n var iDayNumberOfWeek = iDayOfWeek - (iFirstDayOfWeek - 1);\n if (iDayNumberOfWeek <= 0) {\n iDayNumberOfWeek += 7;\n }\n return iDayNumberOfWeek;\n};\nDateFormat.prototype._getDifference = function (sScale, aDates) {\n var oFromDate = aDates[0];\n var oToDate = aDates[1];\n return Math.round(mRelativeDiffs[sScale](oFromDate, oToDate, this));\n};\nDateFormat.prototype.getAllowedCharacters = function (aFormatArray) {\n if (this.oFormatOptions.relative) {\n return '';\n }\n var sAllowedCharacters = '';\n var bNumbers = false;\n var bAll = false;\n var oPart;\n for (var i = 0; i < aFormatArray.length; i++) {\n oPart = aFormatArray[i];\n switch (oPart.type) {\n case 'text':\n if (sAllowedCharacters.indexOf(oPart.value) < 0) {\n sAllowedCharacters += oPart.value;\n }\n break;\n case 'day':\n case 'year':\n case 'weekYear':\n case 'dayNumberOfWeek':\n case 'weekInYear':\n case 'hour0_23':\n case 'hour1_24':\n case 'hour0_11':\n case 'hour1_12':\n case 'minute':\n case 'second':\n case 'fractionalsecond':\n if (!bNumbers) {\n sAllowedCharacters += '0123456789';\n bNumbers = true;\n }\n break;\n case 'month':\n case 'monthStandalone':\n if (oPart.digits < 3) {\n if (!bNumbers) {\n sAllowedCharacters += '0123456789';\n bNumbers = true;\n }\n } else {\n bAll = true;\n }\n break;\n default:\n bAll = true;\n break;\n }\n }\n if (bAll) {\n sAllowedCharacters = '';\n }\n return sAllowedCharacters;\n};\nexport default DateFormat;","import LocaleData from \"./LocaleData.js\";\n\nconst cache = new Map();\n\nconst getCachedLocaleDataInstance = locale => {\n\tif (!cache.has(locale)) {\n\t\tcache.set(locale, LocaleData.getInstance(locale));\n\t}\n\n\treturn cache.get(locale);\n};\n\nexport default getCachedLocaleDataInstance;\n","import CalendarDate from \"./CalendarDate.js\";\n\nconst cache = new Map();\n\nconst getMinCalendarDate = primaryCalendarType => {\n\tconst key = `min ${primaryCalendarType}`;\n\n\tif (!cache.has(key)) {\n\t\tconst minDate = new CalendarDate(1, 0, 1, primaryCalendarType);\n\t\tminDate.setYear(1);\n\t\tminDate.setMonth(0);\n\t\tminDate.setDate(1);\n\t\tcache.set(key, minDate);\n\t}\n\n\treturn cache.get(key);\n};\n\nconst getMaxCalendarDate = primaryCalendarType => {\n\tconst key = `max ${primaryCalendarType}`;\n\n\tif (!cache.has(key)) {\n\t\tconst maxDate = new CalendarDate(1, 0, 1, primaryCalendarType);\n\t\tmaxDate.setYear(9999);\n\t\tmaxDate.setMonth(11);\n\t\tconst tempDate = new CalendarDate(maxDate, primaryCalendarType);\n\t\ttempDate.setDate(1);\n\t\ttempDate.setMonth(tempDate.getMonth() + 1, 0);\n\t\tmaxDate.setDate(tempDate.getDate());// 31st for Gregorian Calendar\n\t\tcache.set(key, maxDate);\n\t}\n\n\treturn cache.get(key);\n};\n\nexport {\n\tgetMinCalendarDate,\n\tgetMaxCalendarDate,\n};\n","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { getMaxCalendarDate, getMinCalendarDate } from \"@ui5/webcomponents-localization/dist/dates/ExtremeDates.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.DateComponentBase.prototype */ {\n\t\t/**\n\t\t * Sets a calendar type used for display.\n\t\t * If not set, the calendar type of the global configuration is used.\n\t\t * @type {CalendarType}\n\t\t * @public\n\t\t */\n\t\tprimaryCalendarType: {\n\t\t\ttype: CalendarType,\n\t\t},\n\n\t\t/**\n\t\t * Defines the secondary calendar type.\n\t\t * If not set, the calendar will only show the primary calendar type.\n\t\t * @type {CalendarType}\n\t\t * @since 1.0.0-rc.16\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tsecondaryCalendarType: {\n\t\t\ttype: CalendarType,\n\t\t},\n\n\t\t/**\n\t\t * Determines the minimum date available for selection.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @since 1.0.0-rc.6\n\t\t * @public\n\t\t */\n\t\tminDate: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines the maximum date available for selection.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @since 1.0.0-rc.6\n\t\t * @public\n\t\t */\n\t\tmaxDate: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines the format, displayed in the input field.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tformatPattern: {\n\t\t\ttype: String,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * Abstract class that provides common functionality for date-related components (day picker, month picker, year picker, calendar, date picker, date range picker, date time picker)\n * This includes:\n * - \"languageAware: true\" metadata setting, CLDR fetch and i18n initialization\n * - common properties (primaryCalendar, minDate, maxDate and formatPattern) declaration and methods that operate on them\n * - additional common methods\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.DateComponentBase\n * @extends sap.ui.webcomponents.base.UI5Element\n * @public\n */\nclass DateComponentBase extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tget _primaryCalendarType() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn this.primaryCalendarType || getCalendarType() || localeData.getPreferredCalendarType();\n\t}\n\n\tget _minDate() {\n\t\treturn this.minDate && this.getFormat().parse(this.minDate) ? this._getCalendarDateFromString(this.minDate) : getMinCalendarDate(this._primaryCalendarType);\n\t}\n\n\tget _maxDate() {\n\t\treturn this.maxDate && this.getFormat().parse(this.maxDate) ? this._getCalendarDateFromString(this.maxDate) : getMaxCalendarDate(this._primaryCalendarType);\n\t}\n\n\tget _formatPattern() {\n\t\treturn this.formatPattern || \"medium\"; // get from config\n\t}\n\n\tget _isPattern() {\n\t\treturn this._formatPattern !== \"medium\" && this._formatPattern !== \"short\" && this._formatPattern !== \"long\";\n\t}\n\n\t_getCalendarDateFromString(value) {\n\t\tconst jsDate = this.getFormat().parse(value);\n\t\tif (jsDate) {\n\t\t\treturn CalendarDate.fromLocalJSDate(jsDate, this._primaryCalendarType);\n\t\t}\n\t}\n\n\t_getTimeStampFromString(value) {\n\t\tconst calDate = this._getCalendarDateFromString(value);\n\t\tif (calDate) {\n\t\t\treturn calDate.toUTCJSDate().valueOf();\n\t\t}\n\t}\n\n\t_getStringFromTimestamp(timestamp) {\n\t\tconst localDate = new Date(timestamp);\n\t\treturn this.getFormat().format(localDate, true);\n\t}\n\n\tgetFormat() {\n\t\tlet dateFormat;\n\t\tif (this._isPattern) {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t\t} else {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t\t}\n\t\treturn dateFormat;\n\t}\n\n\tstatic async onDefine() {\n\t\t[DateComponentBase.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tfetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),\n\t\t]);\n\t}\n}\n\nexport default DateComponentBase;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`${ context._isPhone ? block1(context, tags, suffix) : block7(context, tags, suffix) }`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-dialog\", tags, suffix)} ?with-padding=${context.withPadding} stretch _disable-initial-focus @ui5-before-open=\"${ifDefined(context._propagateDialogEvent)}\" @ui5-after-open=\"${ifDefined(context._afterDialogOpen)}\" @ui5-before-close=\"${ifDefined(context._propagateDialogEvent)}\" @ui5-after-close=\"${ifDefined(context._afterDialogClose)}\">${ !context._hideHeader ? block2(context, tags, suffix) : undefined }<slot></slot><slot slot=\"footer\" name=\"footer\"></slot></${scopeTag(\"ui5-dialog\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`${ context.header.length ? block3(context, tags, suffix) : block4(context, tags, suffix) }`;\nconst block3 = (context, tags, suffix) => html`<slot slot=\"header\" name=\"header\"></slot>`;\nconst block4 = (context, tags, suffix) => html`<header class=\"${classMap(context.classes.header)}\">${ context.headerText ? block5(context, tags, suffix) : undefined }${ !context._hideCloseButton ? block6(context, tags, suffix) : undefined }</header>`;\nconst block5 = (context, tags, suffix) => html`<${scopeTag(\"ui5-title\", tags, suffix)} level=\"H2\" class=\"ui5-popup-header-text ui5-responsive-popover-header-text\">${ifDefined(context.headerText)}</${scopeTag(\"ui5-title\", tags, suffix)}>`;\nconst block6 = (context, tags, suffix) => html`<${scopeTag(\"ui5-button\", tags, suffix)} icon=\"decline\" design=\"Transparent\" aria-label=\"${ifDefined(context._closeDialogAriaLabel)}\" @click=\"${context.close}\"></${scopeTag(\"ui5-button\", tags, suffix)}>`;\nconst block7 = (context, tags, suffix) => html`<section style=\"${styleMap(context.styles.root)}\" class=\"${classMap(context.classes.root)}\" role=\"dialog\" aria-modal=\"${ifDefined(context._ariaModal)}\" aria-label=\"${ifDefined(context._ariaLabel)}\" aria-labelledby=\"${ifDefined(context._ariaLabelledBy)}\" dir=\"${ifDefined(context.effectiveDir)}\" @keydown=${context._onkeydown} @focusout=${context._onfocusout} @mouseup=${context._onmouseup} @mousedown=${context._onmousedown}><span class=\"first-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToLast}></span><span class=\"ui5-popover-arrow\" style=\"${styleMap(context.styles.arrow)}\"></span>${ context._displayHeader ? block8(context, tags, suffix) : undefined }<div style=\"${styleMap(context.styles.content)}\" class=\"${classMap(context.classes.content)}\" @scroll=\"${context._scroll}\"><slot></slot></div>${ context._displayFooter ? block11(context, tags, suffix) : undefined }<span class=\"last-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToFirst}></span></section>`;\nconst block8 = (context, tags, suffix) => html`<header class=\"ui5-popup-header-root\" id=\"ui5-popup-header\">${ context.header.length ? block9(context, tags, suffix) : block10(context, tags, suffix) }</header>`;\nconst block9 = (context, tags, suffix) => html`<slot name=\"header\"></slot>`;\nconst block10 = (context, tags, suffix) => html`<h2 class=\"ui5-popup-header-text\">${ifDefined(context.headerText)}</h2>`;\nconst block11 = (context, tags, suffix) => html`${ context.footer.length ? block12(context, tags, suffix) : undefined }`;\nconst block12 = (context, tags, suffix) => html`<footer class=\"ui5-popup-footer-root\"><slot name=\"footer\"></slot></footer>`;\n\n\nexport default block0;","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"resize-corner\";\nconst pathData = \"M386.5 305c6-5 13-8 19-8 7 0 14 3 19 8 5 6 8 12 8 19s-3 13-8 19l-161 161c-6 5-12 8-19 8s-13-3-19-8c-5-5-8-12-8-18 0-7 3-14 8-20zm38-134c5 5 8 12 8 19 0 6-3 13-8 18l-296 296c-5 5-12 8-18 8-7 0-14-3-19-8-6-5-8-12-8-19s2-13 8-19l295-295c6-6 13-8 19-8 7 0 14 2 19 8z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"resize-corner\";\nconst pathData = \"M384 224v32q0 12-10 22L182 470q-10 10-22 10h-32zM224 480l160-160v32q0 12-10 22l-96 96q-10 10-22 10h-32zm160-64v32q0 12-10 22t-22 10h-32z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/resize-corner.js\";\nimport pathDataV5 from \"./v4/resize-corner.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<section style=\"${styleMap(context.styles.root)}\" class=\"${classMap(context.classes.root)}\" role=\"dialog\" aria-modal=\"${ifDefined(context._ariaModal)}\" aria-label=\"${ifDefined(context._ariaLabel)}\" aria-labelledby=\"${ifDefined(context._ariaLabelledBy)}\" dir=\"${ifDefined(context.effectiveDir)}\" @keydown=${context._onkeydown} @focusout=${context._onfocusout} @mouseup=${context._onmouseup} @mousedown=${context._onmousedown}><span class=\"first-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToLast}></span>${ context._displayHeader ? block1(context, tags, suffix) : undefined }<div style=\"${styleMap(context.styles.content)}\" class=\"${classMap(context.classes.content)}\" @scroll=\"${context._scroll}\"><slot></slot></div>${ context.footer.length ? block4(context, tags, suffix) : undefined }${ context.resizable ? block5(context, tags, suffix) : undefined }<span class=\"last-fe\" data-ui5-focus-trap tabindex=\"0\" @focusin=${context.forwardToFirst}></span></section> `;\nconst block1 = (context, tags, suffix) => html`<header class=\"ui5-popup-header-root\" id=\"ui5-popup-header\" tabindex=\"${ifDefined(context._headerTabIndex)}\" @keydown=\"${context._onDragOrResizeKeyDown}\" @mousedown=\"${context._onDragMouseDown}\">${ context.header.length ? block2(context, tags, suffix) : block3(context, tags, suffix) }</header>`;\nconst block2 = (context, tags, suffix) => html`<slot name=\"header\"></slot>`;\nconst block3 = (context, tags, suffix) => html`<h2 id=\"ui5-popup-header-text\" class=\"ui5-popup-header-text\">${ifDefined(context.headerText)}</h2>`;\nconst block4 = (context, tags, suffix) => html`<footer class=\"ui5-popup-footer-root\"><slot name=\"footer\"></slot></footer>`;\nconst block5 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} name=\"resize-corner\" dir=\"${ifDefined(context.effectiveDir)}\" class=\"ui5-popup-resize-handle\" @mousedown=\"${context._onResizeMouseDown}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Dialog.css\",content:\":host{min-width:20rem;min-height:6rem;max-height:94%;max-width:90%;flex-direction:column;box-shadow:var(--sapContent_Shadow3)}:host([stretch]){width:90%;height:94%}:host([stretch][on-phone]){width:100%;height:100%;max-height:100%;max-width:100%}.ui5-popup-header-root{background:var(--sapPageHeader_Background)}:host([draggable]) .ui5-popup-header-root,:host([draggable]) ::slotted([slot=header]){cursor:move}:host([draggable]) .ui5-popup-header-root *{cursor:auto}.ui5-popup-header-root:focus{outline:var(--_ui5_dialog_outline);border-radius:var(--_ui5_dialog_header_border_radius);outline-offset:var(--_ui5_dialog_header_focus_offset)}.ui5-popup-root{display:flex;flex-direction:column;max-width:100vw}:host([stretch]) .ui5-popup-content{width:100%;height:100%}.ui5-popup-content{min-height:var(--_ui5_dialog_content_min_height);flex:1 1 auto}.ui5-popup-resize-handle{position:absolute;bottom:var(--_ui5_dialog_resize_handle_bottom);right:var(--_ui5_dialog_resize_handle_right);cursor:se-resize;color:var(--_ui5_dialog_resize_handle_color)}.ui5-popup-resize-handle[dir=rtl]{left:-.25rem;right:unset;cursor:sw-resize}\"}","import { isPhone, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n\tisUp, isDown, isLeft, isRight,\n\tisUpShift, isDownShift, isLeftShift, isRightShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Popup from \"./Popup.js\";\nimport \"@ui5/webcomponents-icons/dist/resize-corner.js\";\nimport Icon from \"./Icon.js\";\n\n// Template\nimport DialogTemplate from \"./generated/templates/DialogTemplate.lit.js\";\n// Styles\nimport browserScrollbarCSS from \"./generated/themes/BrowserScrollbar.css.js\";\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport dialogCSS from \"./generated/themes/Dialog.css.js\";\n\n/**\n * Defines the step size at which this component would change by when being dragged or resized with the keyboard.\n */\nconst STEP_SIZE = 16;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-dialog\",\n\tslots: /** @lends sap.ui.webcomponents.main.Dialog.prototype */ {\n\t\t/**\n\t\t * Defines the header HTML Element.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>header</code> slot is provided, the labelling of the dialog is a responsibility of the application developer.\n\t\t * <code>accessibleName</code> should be used.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tfooter: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Dialog.prototype */ {\n\t\t/**\n\t\t * Defines the header text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>header</code> slot is provided, the <code>headerText</code> is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component should be stretched to fullscreen.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The component will be stretched to approximately\n\t\t * 90% of the viewport.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tstretch: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is draggable.\n\t\t * If this property is set to true, the Dialog will be draggable by its header.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The component can be draggable only in desktop mode.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @since 1.0.0-rc.9\n\t\t * @public\n\t\t */\n\t\tdraggable: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Configures the component to be resizable.\n\t\t * If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.\n\t\t * In RTL languages, the resize handle will be placed in the bottom left corner.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The component can be resizable only in desktop mode.\n\t\t * <br>\n\t\t * <b>Note:</b> Upon resizing, externally defined height and width styling will be ignored.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @since 1.0.0-rc.10\n\t\t * @public\n\t\t */\n\t\tresizable: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonPhone: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDesktop: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-dialog</code> component is used to temporarily display some information in a\n * size-limited window in front of the regular app screen.\n * It is used to prompt the user for an action or a confirmation.\n * The <code>ui5-dialog</code> interrupts the current app processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The dialog combines concepts known from other technologies where the windows have\n * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n * <br><br>\n * The <code>ui5-dialog</code> is modal, which means that user action is required before returning to the parent window is possible.\n * The content of the <code>ui5-dialog</code> is fully customizable.\n *\n * <h3>Structure</h3>\n * A <code>ui5-dialog</code> consists of a header, content, and a footer for action buttons.\n * The <code>ui5-dialog</code> is usually displayed at the center of the screen.\n * Its position can be changed by the user. To enable this, you need to set the property <code>draggable</code> accordingly.\n\n *\n * <h3>Responsive Behavior</h3>\n * The <code>stretch</code> property can be used to stretch the\n * <code>ui5-dialog</code> on full screen.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Dialog\";</code>\n *\n * <b>Note:</b> We don't recommend nesting popup-like components (<code>ui5-dialog</code>, <code>ui5-popover</code>) inside <code>ui5-dialog</code>.\n * Ideally you should create all popups on the same level inside your HTML page and just open them from one another, rather than nesting them.\n *\n * <b>Note:</b> We don't recommend nesting popup-like components (<code>ui5-dialog</code>, <code>ui5-popover</code>) inside other components containing z-index.\n * This might break z-index management.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Dialog\n * @extends Popup\n * @tagname ui5-dialog\n * @public\n */\nclass Dialog extends Popup {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._screenResizeHandler = this._center.bind(this);\n\n\t\tthis._dragMouseMoveHandler = this._onDragMouseMove.bind(this);\n\t\tthis._dragMouseUpHandler = this._onDragMouseUp.bind(this);\n\n\t\tthis._resizeMouseMoveHandler = this._onResizeMouseMove.bind(this);\n\t\tthis._resizeMouseUpHandler = this._onResizeMouseUp.bind(this);\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tIcon,\n\t\t];\n\t}\n\n\tstatic get template() {\n\t\treturn DialogTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn [browserScrollbarCSS, PopupsCommonCss, dialogCSS];\n\t}\n\n\tstatic _isHeader(element) {\n\t\treturn element.classList.contains(\"ui5-popup-header-root\") || element.getAttribute(\"slot\") === \"header\";\n\t}\n\n\t/**\n\t * Shows the dialog.\n\t *\n\t * @param {boolean} preventInitialFocus Prevents applying the focus inside the popup\n\t * @async\n\t * @returns {Promise} Resolves when the dialog is open\n\t * @public\n\t */\n\tasync show(preventInitialFocus = false) {\n\t\tawait super._open(preventInitialFocus);\n\t}\n\n\tget isModal() { // Required by Popup.js\n\t\treturn true;\n\t}\n\n\tget shouldHideBackdrop() { // Required by Popup.js\n\t\treturn false;\n\t}\n\n\tget _ariaLabelledBy() { // Required by Popup.js\n\t\tlet ariaLabelledById;\n\n\t\tif (this.headerText !== \"\" && !this.accessibleName) {\n\t\t\tariaLabelledById = \"ui5-popup-header-text\";\n\t\t}\n\n\t\treturn ariaLabelledById;\n\t}\n\n\tget _ariaLabel() {\n\t\tlet ariaLabel;\n\n\t\tif (this.header.length > 0 && !!this.accessibleName) {\n\t\t\tariaLabel = this.accessibleName;\n\t\t}\n\n\t\treturn this.accessibleName ? this.accessibleName : ariaLabel;\n\t}\n\n\tget _ariaModal() { // Required by Popup.js\n\t\treturn true;\n\t}\n\n\tget _displayProp() {\n\t\treturn \"flex\";\n\t}\n\n\t/**\n\t * Determines if the header of the dialog should be shown.\n\t */\n\tget _displayHeader() {\n\t\treturn this.header.length || this.headerText || this.draggable || this.resizable;\n\t}\n\n\tget _movable() {\n\t\treturn !this.stretch && this.onDesktop && (this.draggable || this.resizable);\n\t}\n\n\tget _headerTabIndex() {\n\t\treturn this._movable ? \"0\" : undefined;\n\t}\n\n\t_show() {\n\t\tsuper._show();\n\t\tthis._center();\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._isRTL = this.effectiveDir === \"rtl\";\n\t\tthis.onPhone = isPhone();\n\t\tthis.onDesktop = isDesktop();\n\t\tthis._detachResizeHandlers();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._attachResizeHandlers();\n\t}\n\n\tonExitDOM() {\n\t\tsuper.onExitDOM();\n\t\tthis._detachResizeHandlers();\n\t}\n\n\t_attachResizeHandlers() {\n\t\tResizeHandler.register(this, this._screenResizeHandler);\n\t\tResizeHandler.register(document.body, this._screenResizeHandler);\n\t\tthis._resizeHandlersAttached = true;\n\t}\n\n\t_detachResizeHandlers() {\n\t\tif (this._resizeHandlersAttached) {\n\t\t\tResizeHandler.deregister(this, this._screenResizeHandler);\n\t\t\tResizeHandler.deregister(document.body, this._screenResizeHandler);\n\t\t\tthis._resizeHandlersAttached = false;\n\t\t}\n\t}\n\n\t_center() {\n\t\tconst height = window.innerHeight - this.offsetHeight,\n\t\t\twidth = window.innerWidth - this.offsetWidth;\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${Math.round(height / 2)}px`,\n\t\t\tleft: `${Math.round(width / 2)}px`,\n\t\t});\n\t}\n\n\t_revertSize() {\n\t\tObject.assign(this.style, {\n\t\t\ttop: \"\",\n\t\t\tleft: \"\",\n\t\t\twidth: \"\",\n\t\t\theight: \"\",\n\t\t});\n\t\tthis.removeEventListener(\"ui5-before-close\", this._revertSize);\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\t_onDragMouseDown(event) {\n\t\t// allow dragging only on the header\n\t\tif (!this._movable || !this.draggable || !Dialog._isHeader(event.target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t} = window.getComputedStyle(this);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t\twidth: `${Math.round(Number.parseFloat(width) * 100) / 100}px`,\n\t\t\theight: `${Math.round(Number.parseFloat(height) * 100) / 100}px`,\n\t\t});\n\n\t\tthis._x = event.clientX;\n\t\tthis._y = event.clientY;\n\n\t\tthis._attachMouseDragHandlers();\n\t}\n\n\t_onDragMouseMove(event) {\n\t\tevent.preventDefault();\n\n\t\tconst calcX = this._x - event.clientX;\n\t\tconst calcY = this._y - event.clientY;\n\t\tconst {\n\t\t\tleft,\n\t\t\ttop,\n\t\t} = this.getBoundingClientRect();\n\n\t\tObject.assign(this.style, {\n\t\t\tleft: `${Math.floor(left - calcX)}px`,\n\t\t\ttop: `${Math.floor(top - calcY)}px`,\n\t\t});\n\n\t\tthis._x = event.clientX;\n\t\tthis._y = event.clientY;\n\t}\n\n\t_onDragMouseUp() {\n\t\tthis._x = null;\n\t\tthis._y = null;\n\n\t\tthis._detachMouseDragHandlers();\n\t}\n\n\t_onDragOrResizeKeyDown(event) {\n\t\tif (!this._movable || !Dialog._isHeader(event.target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.draggable && [isUp, isDown, isLeft, isRight].some(key => key(event))) {\n\t\t\tthis._dragWithEvent(event);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.resizable && [isUpShift, isDownShift, isLeftShift, isRightShift].some(key => key(event))) {\n\t\t\tthis._resizeWithEvent(event);\n\t\t}\n\t}\n\n\t_dragWithEvent(event) {\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t\twidth,\n\t\t\theight,\n\t\t} = this.getBoundingClientRect();\n\n\t\tlet newPos,\n\t\t\tposDirection;\n\n\t\tswitch (true) {\n\t\tcase isUp(event):\n\t\t\tnewPos = top - STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isDown(event):\n\t\t\tnewPos = top + STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isLeft(event):\n\t\t\tnewPos = left - STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\tcase isRight(event):\n\t\t\tnewPos = left + STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\t}\n\n\t\tnewPos = clamp(\n\t\t\tnewPos,\n\t\t\t0,\n\t\t\tposDirection === \"left\" ? window.innerWidth - width : window.innerHeight - height,\n\t\t);\n\n\t\tthis.style[posDirection] = `${newPos}px`;\n\t}\n\n\t_resizeWithEvent(event) {\n\t\tthis._detachResizeHandlers();\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize);\n\n\t\tconst { top, left } = this.getBoundingClientRect(),\n\t\t\tstyle = window.getComputedStyle(this),\n\t\t\tminWidth = Number.parseFloat(style.minWidth),\n\t\t\tminHeight = Number.parseFloat(style.minHeight),\n\t\t\tmaxWidth = window.innerWidth - left,\n\t\t\tmaxHeight = window.innerHeight - top;\n\n\t\tlet width = Number.parseFloat(style.width),\n\t\t\theight = Number.parseFloat(style.height);\n\n\t\tswitch (true) {\n\t\tcase isUpShift(event):\n\t\t\theight -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isDownShift(event):\n\t\t\theight += STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isLeftShift(event):\n\t\t\twidth -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isRightShift(event):\n\t\t\twidth += STEP_SIZE;\n\t\t\tbreak;\n\t\t}\n\n\t\twidth = clamp(width, minWidth, maxWidth);\n\t\theight = clamp(height, minHeight, maxHeight);\n\n\t\tObject.assign(this.style, {\n\t\t\twidth: `${width}px`,\n\t\t\theight: `${height}px`,\n\t\t});\n\t}\n\n\t_attachMouseDragHandlers() {\n\t\tthis._detachResizeHandlers();\n\n\t\twindow.addEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_detachMouseDragHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_onResizeMouseDown(event) {\n\t\tif (!this._movable || !this.resizable) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tminWidth,\n\t\t\tminHeight,\n\t\t} = window.getComputedStyle(this);\n\n\t\tthis._initialX = event.clientX;\n\t\tthis._initialY = event.clientY;\n\t\tthis._initialWidth = Number.parseFloat(width);\n\t\tthis._initialHeight = Number.parseFloat(height);\n\t\tthis._initialTop = top;\n\t\tthis._initialLeft = left;\n\t\tthis._minWidth = Number.parseFloat(minWidth);\n\t\tthis._minHeight = Number.parseFloat(minHeight);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\n\t\tthis._attachMouseResizeHandlers();\n\t}\n\n\t_onResizeMouseMove(event) {\n\t\tconst { clientX, clientY } = event;\n\n\t\tlet newWidth,\n\t\t\tnewLeft;\n\n\t\tif (this._isRTL) {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth - (clientX - this._initialX),\n\t\t\t\tthis._minWidth,\n\t\t\t\tthis._initialLeft + this._initialWidth,\n\t\t\t);\n\n\t\t\tnewLeft = clamp(\n\t\t\t\tthis._initialLeft + (clientX - this._initialX),\n\t\t\t\t0,\n\t\t\t\tthis._initialX + this._initialWidth - this._minWidth,\n\t\t\t);\n\t\t} else {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth + (clientX - this._initialX),\n\t\t\t\tthis._minWidth,\n\t\t\t\twindow.innerWidth - this._initialLeft,\n\t\t\t);\n\t\t}\n\n\t\tconst newHeight = clamp(\n\t\t\tthis._initialHeight + (clientY - this._initialY),\n\t\t\tthis._minHeight,\n\t\t\twindow.innerHeight - this._initialTop,\n\t\t);\n\n\t\tObject.assign(this.style, {\n\t\t\theight: `${newHeight}px`,\n\t\t\twidth: `${newWidth}px`,\n\t\t\tleft: newLeft ? `${newLeft}px` : undefined,\n\t\t});\n\t}\n\n\t_onResizeMouseUp() {\n\t\tthis._initialX = null;\n\t\tthis._initialY = null;\n\t\tthis._initialWidth = null;\n\t\tthis._initialHeight = null;\n\t\tthis._initialTop = null;\n\t\tthis._initialLeft = null;\n\t\tthis._minWidth = null;\n\t\tthis._minHeight = null;\n\n\t\tthis._detachMouseResizeHandlers();\n\t}\n\n\t_attachMouseResizeHandlers() {\n\t\tthis._detachResizeHandlers();\n\n\t\twindow.addEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize);\n\t}\n\n\t_detachMouseResizeHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t}\n}\n\nDialog.define();\n\nexport default Dialog;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.TitleLevel.prototype\n * @public\n */\nconst TitleLevels = {\n\t/**\n\t * Renders <code>h1</code> tag.\n\t * @public\n\t * @type {H1}\n\t */\n\tH1: \"H1\",\n\n\t/**\n\t * Renders <code>h2</code> tag.\n\t * @public\n\t * @type {H2}\n\t */\n\tH2: \"H2\",\n\n\t/**\n\t * Renders <code>h3</code> tag.\n\t * @public\n\t * @type {H3}\n\t */\n\tH3: \"H3\",\n\n\t/**\n\t * Renders <code>h4</code> tag.\n\t * @public\n\t * @type {H4}\n\t */\n\tH4: \"H4\",\n\n\t/**\n\t * Renders <code>h5</code> tag.\n\t * @public\n\t * @type {H5}\n\t */\n\tH5: \"H5\",\n\n\t/**\n\t * Renders <code>h6</code> tag.\n\t * @public\n\t * @type {H6}\n\t */\n\tH6: \"H6\",\n};\n\n/**\n * @class\n * Defines the <code>ui5-title</code> level\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.TitleLevel\n * @public\n * @enum {string}\n */\nclass TitleLevel extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!TitleLevels[value];\n\t}\n}\n\nTitleLevel.generateTypeAccessors(TitleLevels);\n\nexport default TitleLevel;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`${ context.h1 ? block1(context, tags, suffix) : undefined }${ context.h2 ? block2(context, tags, suffix) : undefined }${ context.h3 ? block3(context, tags, suffix) : undefined }${ context.h4 ? block4(context, tags, suffix) : undefined }${ context.h5 ? block5(context, tags, suffix) : undefined }${ context.h6 ? block6(context, tags, suffix) : undefined }`;\nconst block1 = (context, tags, suffix) => html`<h1 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h1>`;\nconst block2 = (context, tags, suffix) => html`<h2 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h2>`;\nconst block3 = (context, tags, suffix) => html`<h3 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h3>`;\nconst block4 = (context, tags, suffix) => html`<h4 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h4>`;\nconst block5 = (context, tags, suffix) => html`<h5 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h5>`;\nconst block6 = (context, tags, suffix) => html`<h6 class=\"ui5-title-root\"><span id=\"${ifDefined(context._id)}-inner\"><slot></slot></span></h6>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Title.css\",content:\":host(:not([hidden])){display:block;cursor:text}:host{max-width:100%;color:var(--sapGroup_TitleTextColor);font-size:var(--ui5_title_level_2Size);font-family:\\\"72override\\\",var(--sapFontFamily);text-shadow:var(--sapContent_TextShadow)}.ui5-title-root{display:inline-block;position:relative;font-weight:400;font-size:inherit;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;vertical-align:bottom;-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0;margin:0;cursor:inherit}:host([wrapping-type=Normal]) .ui5-title-root{white-space:pre-line}:host([level=H1]){font-size:var(--ui5_title_level_1Size)}:host([level=H2]){font-size:var(--ui5_title_level_2Size)}:host([level=H3]){font-size:var(--ui5_title_level_3Size)}:host([level=H4]){font-size:var(--ui5_title_level_4Size)}:host([level=H5]){font-size:var(--ui5_title_level_5Size)}:host([level=H6]){font-size:var(--ui5_title_level_6Size)}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport TitleLevel from \"./types/TitleLevel.js\";\nimport WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport TitleTemplate from \"./generated/templates/TitleTemplate.lit.js\";\n\n// Styles\nimport titleCss from \"./generated/themes/Title.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-title\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Title.prototype */ {\n\n\t\t/**\n\t\t * Defines how the text of a component will be displayed when there is not enough space.\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code> - The text will be truncated with an ellipsis.</li>\n\t\t * <li><code>Normal</code> - The text will wrap. The words will not be broken based on hyphenation.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {WrappingType}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\twrappingType: {\n\t\t\ttype: WrappingType,\n\t\t\tdefaultValue: WrappingType.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the component level.\n\t\t * Available options are: <code>\"H6\"</code> to <code>\"H1\"</code>.\n\t\t *\n\t\t * @type {TitleLevel}\n\t\t * @defaultvalue \"H2\"\n\t\t * @public\n\t\t*/\n\t\tlevel: {\n\t\t\ttype: TitleLevel,\n\t\t\tdefaultValue: TitleLevel.H2,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Title.prototype */ {\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-title</code> component is used to display titles inside a page.\n * It is a simple, large-sized text with explicit header/title semantics.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Title\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Title\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-title\n * @public\n */\nclass Title extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn TitleTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn titleCss;\n\t}\n\n\tget normalizedLevel() {\n\t\treturn this.level.toLowerCase();\n\t}\n\n\tget h1() {\n\t\treturn this.normalizedLevel === \"h1\";\n\t}\n\n\tget h2() {\n\t\treturn this.normalizedLevel === \"h2\";\n\t}\n\n\tget h3() {\n\t\treturn this.normalizedLevel === \"h3\";\n\t}\n\n\tget h4() {\n\t\treturn this.normalizedLevel === \"h4\";\n\t}\n\n\tget h5() {\n\t\treturn this.normalizedLevel === \"h5\";\n\t}\n\n\tget h6() {\n\t\treturn this.normalizedLevel === \"h6\";\n\t}\n}\n\nTitle.define();\n\nexport default Title;\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\ResponsivePopover.css\",content:\":host{--_ui5_input_width:100%;min-width:6.25rem;min-height:2rem}:host(:not([with-padding])){--_ui5_popup_content_padding:0}:host([opened]){display:inline-block}.ui5-responsive-popover-header{height:var(--_ui5-responsive_popover_header_height);display:flex;justify-content:space-between;align-items:center;padding:0 1rem;box-shadow:var(--sapContent_HeaderShadow)}:host [dir=rtl] .ui5-responsive-popover-header{padding:0 1rem 0 0}.ui5-responsive-popover-header-text{width:calc(100% - var(--_ui5_button_base_min_width))}.ui5-responsive-popover-header-no-title{justify-content:flex-end}\"}","import { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getNextZIndex } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport { RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON } from \"./generated/i18n/i18n-defaults.js\";\nimport ResponsivePopoverTemplate from \"./generated/templates/ResponsivePopoverTemplate.lit.js\";\nimport Popover from \"./Popover.js\";\nimport Dialog from \"./Dialog.js\";\nimport Button from \"./Button.js\";\nimport Title from \"./Title.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\n\n// Styles\nimport ResponsivePopoverCss from \"./generated/themes/ResponsivePopover.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-responsive-popover\",\n\tproperties: /** @lends sap.ui.webcomponents.main.ResponsivePopover.prototype */ {\n\n\t\t/**\n\t\t * Defines if padding would be added around the content.\n\t\t * @private\n\t\t */\n\t\twithPadding: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.\n\t\t * By default both the header and footer would be displayed.\n\t\t * @private\n\t\t */\n\t\tcontentOnlyOnDesktop: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Used internaly for controls which must not have header.\n\t\t * @private\n\t\t */\n\t\t_hideHeader: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether a close button will be rendered in the header of the component\n\t\t * <b>Note:</b> If you are using the <code>header</code> slot, this property will have no effect\n\t\t *\n\t\t * @private\n\t\t * @type {Boolean}\n\t\t * @defaultvalue false\n\t\t * @since 1.0.0-rc.16\n\t\t */\n\t\t_hideCloseButton: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-responsive-popover</code> acts as a Popover on desktop and tablet, while on phone it acts as a Dialog.\n * The component improves tremendously the user experience on mobile.\n *\n * <h3>Usage</h3>\n * Use it when you want to make sure that all the content is visible on any device.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ResponsivePopover\n * @extends Popover\n * @tagname ui5-responsive-popover\n * @since 1.0.0-rc.6\n * @public\n */\nclass ResponsivePopover extends Popover {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn [Popover.styles, ResponsivePopoverCss];\n\t}\n\n\tget classes() {\n\t\tconst allClasses = super.classes;\n\n\t\tallClasses.header = {\n\t\t\t\"ui5-responsive-popover-header\": true,\n\t\t\t\"ui5-responsive-popover-header-no-title\": !this.headerText,\n\t\t};\n\n\t\treturn allClasses;\n\t}\n\n\tstatic get template() {\n\t\treturn ResponsivePopoverTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tButton,\n\t\t\tDialog,\n\t\t\tTitle,\n\t\t];\n\t}\n\n\t/**\n\t * Shows popover on desktop and dialog on mobile.\n\t * @param {HTMLElement} opener the element that the popover is shown at\n\t * @param {boolean} preventInitialFocus Prevents applying the focus inside the popup\n\t * @public\n\t * @async\n\t * @returns {Promise} Resolves when the responsive popover is open\n\t */\n\tasync showAt(opener, preventInitialFocus = false) {\n\t\tif (!isPhone()) {\n\t\t\tawait super.showAt(opener, preventInitialFocus);\n\t\t} else {\n\t\t\tthis.style.display = \"contents\";\n\t\t\tthis.style.zIndex = getNextZIndex();\n\t\t\tawait this._dialog.show(preventInitialFocus);\n\t\t}\n\t}\n\n\t/**\n\t * Closes the popover/dialog.\n\t * @public\n\t */\n\tclose(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {\n\t\tif (!isPhone()) {\n\t\t\tsuper.close(escPressed, preventRegistryUpdate, preventFocusRestore);\n\t\t} else {\n\t\t\tthis._dialog.close(escPressed, preventRegistryUpdate, preventFocusRestore);\n\t\t}\n\t}\n\n\ttoggle(opener) {\n\t\tif (this.isOpen()) {\n\t\t\treturn this.close();\n\t\t}\n\n\t\tthis.showAt(opener);\n\t}\n\n\t/**\n\t * Tells if the responsive popover is open\n\t * @public\n\t * @returns {boolean}\n\t */\n\tisOpen() {\n\t\treturn isPhone() ? this._dialog.isOpen() : super.isOpen();\n\t}\n\n\tget _dialog() {\n\t\treturn this.shadowRoot.querySelector(\"[ui5-dialog]\");\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _displayHeader() {\n\t\treturn (this._isPhone || !this.contentOnlyOnDesktop) && super._displayHeader;\n\t}\n\n\tget _displayFooter() {\n\t\treturn this._isPhone || !this.contentOnlyOnDesktop;\n\t}\n\n\tget _closeDialogAriaLabel() {\n\t\treturn ResponsivePopover.i18nBundle.getText(RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON);\n\t}\n\n\t_afterDialogOpen(event) {\n\t\tthis.opened = true;\n\t\tthis._propagateDialogEvent(event);\n\t}\n\n\t_afterDialogClose(event) {\n\t\tthis.opened = false;\n\t\tthis._propagateDialogEvent(event);\n\t}\n\n\t_propagateDialogEvent(event) {\n\t\tconst type = event.type.replace(\"ui5-\", \"\");\n\n\t\tthis.fireEvent(type, event.detail);\n\t}\n\n\tstatic async onDefine() {\n\t\tResponsivePopover.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nResponsivePopover.define();\n\nexport default ResponsivePopover;\n","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n* @public\n*/\nconst metadata = {\n\ttag: \"ui5-date\",\n\tproperties: /** @lends sap.ui.webcomponents.main.CalendarDate.prototype */ {\n\n\t\t/**\n\t\t * The date formatted according to the <code>formatPattern</code> property of the <code>ui5-calendar</code> that hosts the component\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-date</code> component defines a calendar date to be used inside <code>ui5-calendar</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.CalendarDate\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-date\n * @implements sap.ui.webcomponents.main.ICalendarDate\n * @public\n */\nclass CalendarDate extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n}\n\nCalendarDate.define();\n\nexport default CalendarDate;\n","import Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport DateComponentBase from \"./DateComponentBase.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tproperties: /** @lends sap.ui.webcomponents.main.CalendarPart.prototype */ {\n\t\t/**\n\t\t * The timestamp of the currently focused date. Set this property to move the component's focus to a certain date.\n\t\t * <b>Node:</b> Timestamp is 10-digit Integer representing the seconds (not milliseconds) since the Unix Epoch.\n\t\t * @type {Integer}\n\t\t * @protected\n\t\t */\n\t\ttimestamp: {\n\t\t\ttype: Integer,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * Abstract base class for Calendar, DayPicker, MonthPicker and YearPicker that adds support for:\n * - common properties (timestamp, selectedDates): declarations and methods that operate on them\n * - other common code\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.CalendarPart\n * @extends DateComponentBase\n * @public\n */\nclass CalendarPart extends DateComponentBase {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tget _minTimestamp() {\n\t\treturn this._minDate.valueOf() / 1000;\n\t}\n\n\tget _maxTimestamp() {\n\t\treturn this._maxDate.valueOf() / 1000;\n\t}\n\n\t/**\n\t * Returns the effective timestamp to be used by the respective calendar part\n\t * @protected\n\t */\n\tget _timestamp() {\n\t\tlet timestamp = this.timestamp !== undefined ? this.timestamp : getTodayUTCTimestamp(this._primaryCalendarType);\n\t\tif (timestamp < this._minTimestamp || timestamp > this._maxTimestamp) {\n\t\t\ttimestamp = this._minTimestamp;\n\t\t}\n\t\treturn timestamp;\n\t}\n\n\tget _localDate() {\n\t\treturn new Date(this._timestamp * 1000);\n\t}\n\n\t/**\n\t * Returns a CalendarDate instance, representing the _timestamp getter - this date is central to all components' rendering logic\n\t * @protected\n\t */\n\tget _calendarDate() {\n\t\treturn CalendarDate.fromTimestamp(this._localDate.getTime(), this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Change a timestamp and enforce limits\n\t *\n\t * @param timestamp\n\t * @protected\n\t */\n\t_safelySetTimestamp(timestamp) {\n\t\tconst min = this._minDate.valueOf() / 1000;\n\t\tconst max = this._maxDate.valueOf() / 1000;\n\n\t\tif (timestamp < min) {\n\t\t\ttimestamp = min;\n\t\t}\n\t\tif (timestamp > max) {\n\t\t\ttimestamp = max;\n\t\t}\n\n\t\tthis.timestamp = timestamp;\n\t}\n\n\t/**\n\t * Modify a timestamp by a certain amount of days/months/years and enforce limits\n\t * @param amount\n\t * @param unit\n\t * @protected\n\t */\n\t_safelyModifyTimestampBy(amount, unit) {\n\t\tconst newDate = modifyDateBy(this._calendarDate, amount, unit);\n\t\tthis._safelySetTimestamp(newDate.valueOf() / 1000);\n\t}\n\n\t_getTimestampFromDom(domNode) {\n\t\tconst oMonthDomRef = domNode.getAttribute(\"data-sap-timestamp\");\n\t\treturn parseInt(oMonthDomRef);\n\t}\n}\n\nexport default CalendarPart;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-left\";\nconst pathData = \"M237.5 256l103 102c6 6 9 14 9 22s-3 15-9 22c-6 6-14 9-22 9s-15-3-22-9l-124-124c-6-7-9-14-9-22s3-16 9-22l124-124c7-6 14-9 22-9s16 3 22 9 9 14 9 22-3 15-9 22z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-left\";\nconst pathData = \"M351.5 421q12 12 0 23-5 5-11 5t-11-5l-166-165q-9-10-9-23t9-23l165-164q5-5 11.5-5t11.5 5 5 11-5 11l-159 159q-6 6 0 12z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/slim-arrow-left.js\";\nimport pathDataV5 from \"./v4/slim-arrow-left.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-right\";\nconst pathData = \"M275.5 256l-103-102c-6-7-9-14-9-22s3-16 9-22c7-6 14-9 22-9s16 3 22 9l124 124c6 6 9 14 9 22s-3 15-9 22l-124 124c-6 6-14 9-22 9s-15-3-22-9c-6-7-9-14-9-22s3-16 9-22z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-right\";\nconst pathData = \"M357.5 233q10 10 10 23t-10 23l-165 165q-12 11-23 0t0-23l160-159q6-6 0-12l-159-159q-5-5-5-11t5-11 11-5 11 5z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/slim-arrow-right.js\";\nimport pathDataV5 from \"./v4/slim-arrow-right.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-calheader-root\" dir=\"${ifDefined(context.effectiveDir)}\"><div data-ui5-cal-header-btn-prev class=\"${classMap(context.classes.prevButton)}\" @mousedown=${context.onPrevButtonClick} title=\"${ifDefined(context._prevButtonText)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-calheader-arrowicon\" name=\"slim-arrow-left\"></${scopeTag(\"ui5-icon\", tags, suffix)}></div><div class=\"ui5-calheader-midcontainer\"><div data-ui5-cal-header-btn-month class=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\" ?hidden=\"${context.isMonthButtonHidden}\" tabindex=\"0\" aria-label=\"${ifDefined(context.accInfo.ariaLabelMonthButton)}\" @click=${context.onMonthButtonClick} @keydown=${context.onMonthButtonKeyDown} @keyup=${context.onMonthButtonKeyUp}><span>${ifDefined(context._monthButtonText)}</span>${ context.hasSecondaryCalendarType ? block1(context, tags, suffix) : undefined }</div><div data-ui5-cal-header-btn-year class=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\" ?hidden=\"${context.isYearButtonHidden}\" tabindex=\"0\" @click=${context.onYearButtonClick} @keydown=${context.onYearButtonKeyDown} @keyup=${context.onYearButtonKeyUp}><span>${ifDefined(context._yearButtonText)}</span>${ context.hasSecondaryCalendarType ? block2(context, tags, suffix) : undefined }</div></div><div data-ui5-cal-header-btn-next class=\"${classMap(context.classes.nextButton)}\" @mousedown=${context.onNextButtonClick} title=${ifDefined(context._nextButtonText)}><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-calheader-arrowicon\" name=\"slim-arrow-right\"></${scopeTag(\"ui5-icon\", tags, suffix)}></div></div>`;\nconst block1 = (context, tags, suffix) => html`<span class=\"ui5-calheader-btn-sectext\">${ifDefined(context._secondMonthButtonText)}</span>`;\nconst block2 = (context, tags, suffix) => html`<span class=\"ui5-calheader-btn-sectext\">${ifDefined(context._secondYearButtonText)}</span>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\CalendarHeader.css\",content:\":host{display:block;width:100%;height:100%}.ui5-calheader-root{display:flex;height:100%;padding:var(--_ui5_calendar_header_padding);box-sizing:border-box}.ui5-calheader-arrowbtn{display:flex;justify-content:center;align-items:center;width:var(--_ui5_calendar_header_arrow_button_width);background-color:var(--sapButton_Lite_Background);color:var(--sapButton_TextColor);cursor:pointer;overflow:hidden;white-space:nowrap;padding:0;font-size:var(--sapFontSize)}.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:active,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:focus,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:hover{pointer-events:none;opacity:.4;outline:none;background-color:var(--sapButton_Lite_Background);color:var(--sapButton_TextColor)}[hidden].ui5-calheader-arrowbtn.ui5-calheader-middlebtn{display:none}.ui5-calheader-arrowbtn:focus{outline:none}.ui5-calheader-arrowbtn:hover{background-color:var(--sapButton_Hover_Background);color:var(--sapButton_Hover_TextColor);box-shadow:var(--_ui5_calendar_header_arrow_button_box_shadow)}.ui5-calheader-arrowbtn:active{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor)}.ui5-calheader-arrowbtn,.ui5-calheader-middlebtn{border:var(--_ui5_calendar_header_arrow_button_border);border-radius:var(--_ui5_calendar_header_arrow_button_border_radius);display:flex;background-color:var(--_ui5_calendar_header_button_background_color)}.ui5-calheader-middlebtn{flex-direction:column;align-items:center;justify-content:center}.ui5-calheader-btn-sectext{color:var(--sapNeutralElementColor);font-size:.625rem}.ui5-calheader-arrowicon{color:currentColor;pointer-events:none}.ui5-calheader-midcontainer{display:flex;justify-content:space-around;flex:1 1 auto;padding:0 .5rem}.ui5-calheader-midcontainer .ui5-calheader-middlebtn:first-child{margin-right:.5rem}.ui5-calheader-middlebtn{font-family:\\\"72override\\\",var(--sapFontFamily);width:var(--_ui5_calendar_header_middle_button_width);flex:var(--_ui5_calendar_header_middle_button_flex);position:relative;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui5-calheader-middlebtn:focus{border:var(--_ui5_calendar_header_middle_button_focus_border);border-radius:var(--_ui5_calendar_header_middle_button_focus_border_radius);outline:var(--_ui5_calendar_header_middle_button_focus_outline);outline-offset:-.125rem;background:var(--_ui5_calendar_header_middle_button_focus_background)}.ui5-calheader-middlebtn:focus:active{outline:var(--_ui5_calendar_header_middle_button_focus_active_outline);outline-offset:-.0625rem;background:var(--_ui5_calendar_header_middle_button_focus_active_background)}.ui5-calheader-middlebtn:focus:after{content:\\\"\\\";display:var(--_ui5_calendar_header_middle_button_focus_after_display);width:var(--_ui5_calendar_header_middle_button_focus_after_width);height:var(--_ui5_calendar_header_middle_button_focus_after_height);border:var(--_ui5_calendar_header_middle_button_focus_after_border);position:absolute;top:var(--_ui5_calendar_header_middle_button_focus_after_top_offset);left:var(--_ui5_calendar_header_middle_button_focus_after_left_offset)}.ui5-calheader-middlebtn:focus:active:after{border-color:var(--sapContent_ContrastFocusColor)}[dir=rtl] .ui5-calheader-root-midcontainer .ui5-calheader-middlebtn:first-child{margin-left:.5rem;margin-right:0}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport Icon from \"./Icon.js\";\nimport CalendarHeaderTemplate from \"./generated/templates/CalendarHeaderTemplate.lit.js\";\nimport {\n\tCALENDAR_HEADER_NEXT_BUTTON,\n\tCALENDAR_HEADER_PREVIOUS_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport styles from \"./generated/themes/CalendarHeader.css.js\";\n\nconst metadata = {\n\ttag: \"ui5-calendar-header\",\n\tlanguageAware: true,\n\tproperties: {\n\t\t/**\n\t\t * Already normalized by Calendar\n\t\t * @type {Integer}\n\t\t * @public\n\t\t */\n\t\ttimestamp: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t/**\n\t\t * Already normalized by Calendar\n\t\t * @type {CalendarType}\n\t\t * @public\n\t\t */\n\t\tprimaryCalendarType: {\n\t\t\ttype: CalendarType,\n\t\t},\n\n\t\t/**\n\t\t * Already normalized by Calendar\n\t\t * @sience 1.0.0-rc.16\n\t\t * @defaultvalue undefined\n\t\t * @type {CalendarType}\n\t\t * @public\n\t\t */\n\t\tsecondaryCalendarType: {\n\t\t\ttype: CalendarType,\n\t\t},\n\n\t\t/**\n\t\t * Stores information for month button for secondary calendar type\n\t\t * @type {Object}\n\t\t * @private\n\t\t*/\n\t\tbuttonTextForSecondaryCalendarType: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\tisNextButtonDisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\tisPrevButtonDisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\tisMonthButtonHidden: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_monthButtonText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t_yearButtonText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\tisYearButtonHidden: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: {\n\t\t\"previous-press\": {},\n\t\t\"next-press\": {},\n\t\t\"show-month-press\": {},\n\t\t\"show-year-press\": {},\n\t},\n};\n\nclass CalendarHeader extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn CalendarHeaderTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Icon];\n\t}\n\n\tstatic async onDefine() {\n\t\tCalendarHeader.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._prevButtonText = CalendarHeader.i18nBundle.getText(CALENDAR_HEADER_PREVIOUS_BUTTON);\n\t\tthis._nextButtonText = CalendarHeader.i18nBundle.getText(CALENDAR_HEADER_NEXT_BUTTON);\n\n\t\tif (this.hasSecondaryCalendarType) {\n\t\t\tthis._secondMonthButtonText = this.buttonTextForSecondaryCalendarType.monthButtonText;\n\t\t\tthis._secondYearButtonText = this.buttonTextForSecondaryCalendarType.yearButtonText;\n\t\t}\n\t}\n\n\tonPrevButtonClick(event) {\n\t\tthis.fireEvent(\"previous-press\", event);\n\t}\n\n\tonNextButtonClick(event) {\n\t\tthis.fireEvent(\"next-press\", event);\n\t}\n\n\tonMonthButtonClick(event) {\n\t\tthis.fireEvent(\"show-month-press\", event);\n\t}\n\n\tonMonthButtonKeyDown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireEvent(\"show-month-press\", event);\n\t\t}\n\t}\n\n\tonMonthButtonKeyUp(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.fireEvent(\"show-month-press\", event);\n\t\t}\n\t}\n\n\tonYearButtonClick(event) {\n\t\tthis.fireEvent(\"show-year-press\", event);\n\t}\n\n\tonYearButtonKeyDown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireEvent(\"show-year-press\", event);\n\t\t}\n\t}\n\n\tonYearButtonKeyUp(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.fireEvent(\"show-year-press\", event);\n\t\t}\n\t}\n\n\tget hasSecondaryCalendarType() {\n\t\treturn !!this.secondaryCalendarType;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tprevButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this.isPrevButtonDisabled,\n\t\t\t},\n\t\t\tnextButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this.isNextButtonDisabled,\n\t\t\t},\n\t\t};\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\tariaLabelMonthButton: this.hasSecondaryCalendarType\n\t\t\t\t? `${this._monthButtonText}, ${this.buttonTextForSecondaryCalendarType.info}` : `${this._monthButtonText}`,\n\t\t};\n\t}\n}\n\nCalendarHeader.define();\n\nexport default CalendarHeader;\n","import { getFormatSettings } from \"../InitialConfiguration.js\";\n\nlet formatSettings;\n\nconst getFirstDayOfWeek = () => {\n\tif (formatSettings === undefined) {\n\t\tformatSettings = getFormatSettings();\n\t}\n\n\treturn formatSettings.firstDayOfWeek;\n};\n\nexport { getFirstDayOfWeek }; // eslint-disable-line\n","import UniversalDate from \"../sap/ui/core/date/UniversalDate.js\";\n\nconst calculateWeekNumber = (confFirstDayOfWeek, oDate, iYear, oLocale, oLocaleData) => {\n\tlet iWeekNum = 0;\n\tlet iWeekDay = 0;\n\tconst iFirstDayOfWeek = Number.isInteger(confFirstDayOfWeek) ? confFirstDayOfWeek : oLocaleData.getFirstDayOfWeek();\n\n\t// search Locale for containing \"en-US\", since sometimes\n\t// when any user settings have been defined, subtag \"sapufmt\" is added to the locale name\n\t// this is described inside sap.ui.core.Configuration file\n\tif (oLocale && (oLocale.getLanguage() === \"en\" && oLocale.getRegion() === \"US\")) {\n\t\t/*\n\t\t\t* in US the week starts with Sunday\n\t\t\t* The first week of the year starts with January 1st. But Dec. 31 is still in the last year\n\t\t\t* So the week beginning in December and ending in January has 2 week numbers\n\t\t\t*/\n\t\tconst oJanFirst = new UniversalDate(oDate.getTime());\n\t\toJanFirst.setUTCFullYear(iYear, 0, 1);\n\t\tiWeekDay = oJanFirst.getUTCDay();\n\n\t\t// get the date for the same weekday like jan 1.\n\t\tconst oCheckDate = new UniversalDate(oDate.getTime());\n\t\toCheckDate.setUTCDate(oCheckDate.getUTCDate() - oCheckDate.getUTCDay() + iWeekDay);\n\n\t\tiWeekNum = Math.round((oCheckDate.getTime() - oJanFirst.getTime()) / 86400000 / 7) + 1;\n\t} else {\n\t\t// normally the first week of the year is the one where the first Thursday of the year is\n\t\t// find Thursday of this week\n\t\t// if the checked day is before the 1. day of the week use a day of the previous week to check\n\t\tconst oThursday = new UniversalDate(oDate.getTime());\n\t\toThursday.setUTCDate(oThursday.getUTCDate() - iFirstDayOfWeek);\n\t\tiWeekDay = oThursday.getUTCDay();\n\t\toThursday.setUTCDate(oThursday.getUTCDate() - iWeekDay + 4);\n\n\t\tconst oFirstDayOfYear = new UniversalDate(oThursday.getTime());\n\t\toFirstDayOfYear.setUTCMonth(0, 1);\n\t\tiWeekDay = oFirstDayOfYear.getUTCDay();\n\t\tlet iAddDays = 0;\n\t\tif (iWeekDay > 4) {\n\t\t\tiAddDays = 7; // first day of year is after Thursday, so first Thursday is in the next week\n\t\t}\n\t\tconst oFirstThursday = new UniversalDate(oFirstDayOfYear.getTime());\n\t\toFirstThursday.setUTCDate(1 - iWeekDay + 4 + iAddDays);\n\n\t\tiWeekNum = Math.round((oThursday.getTime() - oFirstThursday.getTime()) / 86400000 / 7) + 1;\n\t}\n\n\treturn iWeekNum;\n};\n\nexport default calculateWeekNumber;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.CalendarSelectionMode.prototype\n * @public\n */\nconst CalendarSelectionModes = {\n\t/**\n\t * Only one date can be selected at a time\n\t * @public\n\t * @type {Single}\n\t */\n\tSingle: \"Single\",\n\n\t/**\n\t * Several dates can be selected\n\t * @public\n\t * @type {Multiple}\n\t */\n\tMultiple: \"Multiple\",\n\n\t/**\n\t * A range defined by a start date and an end date can be selected\n\t * @public\n\t * @type {Range}\n\t */\n\tRange: \"Range\",\n};\n\n/**\n * @class\n * Different date selection modes for <code>ui5-calendar</code>.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.CalendarSelectionMode\n * @public\n * @enum {string}\n */\nclass CalendarSelectionMode extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!CalendarSelectionModes[value];\n\t}\n}\n\nCalendarSelectionMode.generateTypeAccessors(CalendarSelectionModes);\n\nexport default CalendarSelectionMode;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-dp-root\" style=\"${styleMap(context.styles.wrapper)}\" @keydown=${context._onkeydown} @keyup=${context._onkeyup} @click=${context._onclick} @mouseover=${context._onmouseover} @focusin=${context._onfocusin} @focusout=${context._onfocusout}><div id=\"${ifDefined(context._id)}-content\" class=\"ui5-dp-content\" role=\"grid\" aria-roledescription=\"${ifDefined(context.ariaRoledescription)}\"><div role=\"row\" class=\"ui5-dp-days-names-container\">${ repeat(context._dayNames, (item, index) => item._id || index, (item, index) => block1(item, index, context, tags, suffix)) }</div>${ repeat(context._weeks, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</div></div>`;\nconst block1 = (item, index, context, tags, suffix) => html`<div role=\"columnheader\" aria-label=\"${ifDefined(item.name)}\" class=\"${ifDefined(item.classes)}\">${ifDefined(item.ultraShortName)}</div>`;\nconst block2 = (item, index, context, tags, suffix) => html`${ item.length ? block3(item, index, context, tags, suffix) : block9(item, index, context, tags, suffix) }`;\nconst block3 = (item, index, context, tags, suffix) => html`<div class=\"ui5-dp-weeks-row\" role=\"row\">${ repeat(item, (item, index) => item._id || index, (item, index) => block4(item, index, context, tags, suffix)) }</div>`;\nconst block4 = (item, index, context, tags, suffix) => html`${ item.timestamp ? block5(item, index, context, tags, suffix) : block7(item, index, context, tags, suffix) }`;\nconst block5 = (item, index, context, tags, suffix) => html`<div tabindex=\"${ifDefined(item._tabIndex)}\" ?data-sap-focus-ref=\"${item.focusRef}\" data-sap-timestamp=\"${ifDefined(item.timestamp)}\" role=\"gridcell\" aria-selected=\"${ifDefined(item.ariaSelected)}\" aria-label=\"${ifDefined(item.ariaLabel)}\" aria-disabled=\"${ifDefined(item.ariaDisabled)}\" class=\"${ifDefined(item.classes)}\"><span class=\"ui5-dp-daytext\" data-sap-timestamp=\"${ifDefined(item.timestamp)}\">${ifDefined(item.day)}</span>${ item._isSecondaryCalendarType ? block6(item, index, context, tags, suffix) : undefined }</div>`;\nconst block6 = (item, index, context, tags, suffix) => html`<span class=\"ui5-dp-daytext ui5-dp-daysectext\">${ifDefined(item.secondDay)}</span>`;\nconst block7 = (item, index, context, tags, suffix) => html`${ !item.isHidden ? block8(item, index, context, tags, suffix) : undefined }`;\nconst block8 = (item, index, context, tags, suffix) => html`<div class=\"ui5-dp-weekname-container\" role=\"rowheader\" aria-label=\"Calendar Week ${ifDefined(item.weekNum)}\"><span class=\"ui5-dp-weekname\">${ifDefined(item.weekNum)}</span></div>`;\nconst block9 = (item, index, context, tags, suffix) => html`<div class=\"sapWCEmptyWeek\"></div>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\DayPicker.css\",content:\":host(:not([hidden])){display:block}:host{height:100%;width:100%}:host([hide-week-numbers]) .ui5-dp-content{flex-basis:100%}:host([secondary-calendar-type]) .ui5-dp-item{flex-direction:column;justify-content:var(--_ui5_day_picker_item_justify_content)}:host([secondary-calendar-type]) .ui5-dp-daytext{height:1.575rem;padding:.575rem 0 0 0}:host([secondary-calendar-type]) .ui5-dp-daysectext{font-size:.625rem;height:1rem;padding:0 .375rem .375rem 50%}.ui5-dp-dayname,.ui5-dp-item,.ui5-dp-weekname{width:var(--_ui5_day_picker_item_width);height:var(--_ui5_day_picker_item_height);margin-top:var(--_ui5_daypicker_item_margin);margin-right:var(--_ui5_daypicker_item_margin);font-family:\\\"72override\\\",var(--sapFontFamily);border-radius:var(--_ui5_daypicker_item_border_radius)}.ui5-dp-weekname{color:var(--_ui5_daypicker_weekname_color)}.ui5-dp-weeks-row{display:flex}.ui5-dp-content{display:flex;flex-basis:87.5%;flex-direction:column;font-family:\\\"72override\\\",var(--sapFontFamily)}.ui5-dp-days-names-container{display:flex;height:var(--_ui5_daypicker_daynames_container_height)}.ui5-dp-weeknumber-container{padding-top:var(--_ui5_daypicker_weeknumbers_container_padding_top);flex-basis:12.5%}.ui5-dp-dayname,.ui5-dp-item,.ui5-dp-weekname,.ui5-dp-weekname-container{display:flex;flex-grow:1;justify-content:center;align-items:center;font-size:var(--sapFontSmallSize);outline:none;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui5-dp-item{position:relative;color:var(--sapTextColor);background:var(--sapLegend_WorkingBackground);font-size:var(--sapFontSize);border:var(--_ui5_daypicker_item_border)}.ui5-dp-item:hover{background:var(--sapList_Hover_Background)}.ui5-dp-daytext{display:flex;width:100%;height:100%;justify-content:center;align-items:center;box-sizing:border-box}.ui5-dp-dayname{color:var(--_ui5_daypicker_dayname_color);height:100%}.ui5-dp-item.ui5-dp-item--weeekend{background:var(--sapLegend_NonWorkingBackground)}.ui5-dp-item.ui5-dp-item--disabled{pointer-events:none;opacity:.5}.ui5-dp-item.ui5-dp-item--weeekend:hover{background:var(--sapList_Hover_Background)}.ui5-dp-item.ui5-dp-item--othermonth{color:var(--_ui5_daypicker_item_othermonth_color);background:var(--_ui5_daypicker_item_othermonth_background_color);border-color:transparent}.ui5-dp-item.ui5-dp-item--othermonth:hover,.ui5-dp-item.ui5-dp-item--weeekend.ui5-dp-item--othermonth:hover{color:var(--_ui5_daypicker_item_othermonth_hover_color);background:var(--sapList_Hover_Background)}.ui5-dp-item:focus:after{content:\\\"\\\";width:var(--_ui5_daypicker_item_width_focus_after);height:var(--_ui5_daypicker_item_height_focus_after);border:var(--_ui5_daypicker_item_border_focus_after);position:absolute;top:var(--_ui5_daypicker_item_outline_offset);left:var(--_ui5_daypicker_item_outline_offset);outline:var(--_ui5_daypicker_item_outline_focus_after);border-radius:var(--_ui5_daypicker_item_border_radius_focus_after);outline-offset:-.1875rem}.ui5-dp-item.ui5-dp-item--now{border:var(--_ui5_daypicker_item_now_border);padding:.0625rem;box-shadow:inset 0 0 0 .0625rem var(--_ui5_daypicker_item_selected_border_color);outline:var(--_ui5_daypicker_item_now_outline);outline-offset:var(--_ui5_daypicker_item_now_outline_offset)}.ui5-dp-item.ui5-dp-item--now.ui5-dp-item--selected{box-shadow:var(--_ui5_daypicker_item_now_box_shadow)}:host([secondary-calendar-type]) .ui5-dp-item.ui5-dp-item--now .ui5-dp-daytext{height:1.387rem;padding-top:.387rem}:host([secondary-calendar-type]) .ui5-dp-item.ui5-dp-item--now .ui5-dp-daysectext{height:.812rem;padding-top:0;padding-bottom:.187rem}.ui5-dp-item.ui5-dp-item--selected{background:var(--sapContent_Selected_Background);box-shadow:var(--_ui5_daypicker_item_selected_box_shadow);font-weight:var(--_ui5_daypicker_item_selected_between_text_font)}.ui5-dp-item.ui5-dp-item--selected.ui5-dp-item.ui5-dp-item--now .ui5-dp-daytext{outline:var(--_ui5_daypicker_item_selected_text_outline);outline-offset:-.3125rem;border-radius:.5rem;font-weight:var(--_ui5_daypicker_item_selected_between_text_font)}.ui5-dp-item.ui5-dp-item--selected .ui5-dp-daytext{background:var(--_ui5_daypicker_item_selected_background);color:var(--sapContent_Selected_TextColor)}.ui5-dp-item.ui5-dp-item--selected:hover .ui5-dp-daytext{background:var(--_ui5_daypicker_item_selected_daytext_hover_background);color:var(--sapContent_Selected_TextColor)}.ui5-dp-item.ui5-dp-item--now:focus:after{width:var(--_ui5_daypicker_item_now_focus_after_width);height:var(--_ui5_daypicker_item_now_focus_after_height);top:var(--_ui5_daypicker_item_now_outline_offset_focus_after);left:var(--_ui5_daypicker_item_now_outline_offset_focus_after);outline:var(--_ui5_daypicker_item_outline_focus_after);border-radius:var(--_ui5_daypicker_item_border_radius_focus_after);outline-offset:-.3125rem}.ui5-dp-item.ui5-dp-item--selected.ui5-dp-item--now:focus:after{width:var(--_ui5_daypicker_item_now_selected_focus_after_width);height:var(--_ui5_daypicker_item_now_selected_focus_after_height);border-color:var(--sapContent_ContrastFocusColor);top:var(--_ui5_daypicker_item_now_selected_outline_offset);left:var(--_ui5_daypicker_item_now_selected_outline_offset);outline-offset:-.1875rem}.ui5-dp-item.ui5-dp-item--selected:hover{background:var(--sapContent_Selected_Hover_Background);color:var(--sapContent_ContrastTextColor)}.ui5-dp-item.ui5-dp-item--selected:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.ui5-dp-items-container{outline:none}.ui5-dp-item.ui5-dp-item--selected-between .ui5-dp-daytext,.ui5-dp-item[hovered] .ui5-dp-daytext{background-color:var(--_ui5_daypicker_item_selected_between_text_background);color:var(--sapTextColor);font-weight:var(--_ui5_daypicker_item_selected_between_text_font)}.ui5-dp-item.ui5-dp-item--selected-between,.ui5-dp-item[hovered]{border:1px solid var(--sapContent_Selected_Background);border-radius:var(--_ui5_daypicker_item_selected_between_border);background:var(--_ui5_daypicker_item_selected_between_background);box-shadow:var(--_ui5_daypicker_item_selected_box_shadow)}.ui5-dp-item.ui5-dp-item--selected-between:hover{background:var(--_ui5_daypicker_item_selected_between_hover_background)}.ui5-dp-item.ui5-dp-item--selected.ui5-dp-item--selected-between:focus:after{border-color:var(--sapContent_FocusColor)}.ui5-dp-items-container>:first-child{justify-content:flex-end}.ui5-dp-emptyweek{height:var(--_ui5_day_picker_empty_height)}.ui5-dp-item.ui5-dp-item--now.ui5-dp-item--selected.ui5-dp-item--withsecondtype{outline-offset:-.3125rem;border:2px solid var(--sapLegend_CurrentDateTime);outline-color:var(--sapSelectedColor)}.ui5-dp-item.ui5-dp-item--now.ui5-dp-item--selected.ui5-dp-item--withsecondtype:focus:after{outline-offset:-.1875rem;border-radius:.1875rem}.ui5-dp-item.ui5-dp-item--now.ui5-dp-item--selected.ui5-dp-item--withsecondtype .ui5-dp-daytext{outline:none}\"}","import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getFirstDayOfWeek } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport {\n\tisSpace,\n\tisSpaceShift,\n\tisEnter,\n\tisEnterShift,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport calculateWeekNumber from \"@ui5/webcomponents-localization/dist/dates/calculateWeekNumber.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport DayPickerTemplate from \"./generated/templates/DayPickerTemplate.lit.js\";\n\nimport {\n\tDAY_PICKER_WEEK_NUMBER_TEXT,\n\tDAY_PICKER_NON_WORKING_DAY,\n\tDAY_PICKER_TODAY,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport dayPickerCSS from \"./generated/themes/DayPicker.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-daypicker\",\n\tproperties: /** @lends sap.ui.webcomponents.main.DayPicker.prototype */ {\n\t\t/**\n\t\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t\t * @type {Array}\n\t\t * @public\n\t\t */\n\t\tselectedDates: {\n\t\t\ttype: Integer,\n\t\t\tmultiple: true,\n\t\t\tcompareValues: true,\n\t\t},\n\n\t\t/**\n\t\t * Defines the type of selection used in the day picker component.\n\t\t * Accepted property values are:<br>\n\t\t * <ul>\n\t\t * <li><code>CalendarSelectionMode.Single</code> - enables a single date selection.(default value)</li>\n\t\t * <li><code>CalendarSelectionMode.Range</code> - enables selection of a date range.</li>\n\t\t * <li><code>CalendarSelectionMode.Multiple</code> - enables selection of multiple dates.</li>\n\t\t * </ul>\n\t\t * @type {CalendarSelectionMode}\n\t\t * @defaultvalue \"Single\"\n\t\t * @public\n\t\t */\n\t\tselectionMode: {\n\t\t\ttype: CalendarSelectionMode,\n\t\t\tdefaultValue: CalendarSelectionMode.Single,\n\t\t},\n\n\t\t/**\n\t\t * Defines the visibility of the week numbers column.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:<b> For calendars other than Gregorian,\n\t\t * the week numbers are not displayed regardless of what is set.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\thideWeekNumbers: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\t_weeks: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t},\n\n\t\t_dayNames: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t},\n\n\t\t/**\n\t\t * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself\n\t\t * @type {boolean}\n\t\t * @private\n\t\t */\n\t\t_hidden: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * When selectionMode=\"Range\" and the first day in the range is selected, this is the currently hovered (when using mouse) or focused (when using keyboard) day by the user\n\t\t * @private\n\t\t */\n\t\t_secondTimestamp: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.DayPicker.prototype */ {\n\t\t/**\n\t\t * Fired when the selected date(s) change\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tchange: {},\n\t\t/**\n\t\t * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tnavigate: {},\n\t},\n};\n\nconst isBetween = (x, num1, num2) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\n\nconst DAYS_IN_WEEK = 7;\n\n/**\n * @class\n *\n * Represents one month view inside a calendar.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.DayPicker\n * @extends CalendarPart\n * @tagname ui5-daypicker\n * @public\n */\nclass DayPicker extends CalendarPart {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get template() {\n\t\treturn DayPickerTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn dayPickerCSS;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._buildWeeks(localeData);\n\t\tthis._buildDayNames(localeData);\n\t}\n\n\t/**\n\t * Builds the _weeks object that represents the month\n\t * @param localeData\n\t * @private\n\t */\n\t_buildWeeks(localeData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tthis._weeks = [];\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType);\n\t\tconst secondaryMonthsNames = this.hasSecondaryCalendarType && localeData.getMonths(\"wide\", this.secondaryCalendarType);\n\t\tconst nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);\n\t\tconst todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);\n\t\tconst tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times\n\t\tconst todayDate = CalendarDate.fromLocalJSDate(new Date(), this._primaryCalendarType); // current day date - calculate once\n\t\tconst calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf\n\t\tconst minDate = this._minDate; // store the _minDate (expensive getter)\n\t\tconst maxDate = this._maxDate; // store the _maxDate (expensive getter)\n\n\t\tconst tempSecondDate = this.hasSecondaryCalendarType && this._getSecondaryDay(tempDate);\n\n\t\tlet week = [];\n\t\tfor (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping\n\t\t\tconst timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it\n\n\t\t\tlet dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;\n\t\t\tif (dayOfTheWeek < 0) {\n\t\t\t\tdayOfTheWeek += DAYS_IN_WEEK;\n\t\t\t}\n\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();\n\t\t\tconst isSelected = this._isDaySelected(timestamp);\n\t\t\tconst isSelectedBetween = this._isDayInsideSelectionRange(timestamp);\n\t\t\tconst isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();\n\t\t\tconst isWeekend = this._isWeekend(tempDate);\n\t\t\tconst isDisabled = tempDate.valueOf() < minDate.valueOf() || tempDate.valueOf() > maxDate.valueOf();\n\t\t\tconst isToday = tempDate.isSame(todayDate);\n\t\t\tconst isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;\n\n\t\t\tconst nonWorkingAriaLabel = isWeekend ? `${nonWorkingDayLabel} ` : \"\";\n\t\t\tconst todayAriaLabel = isToday ? `${todayLabel} ` : \"\";\n\t\t\tconst ariaLabel = this.hasSecondaryCalendarType\n\t\t\t\t? `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNames[tempSecondDate.getMonth()]} ${tempSecondDate.getDate()}, ${tempSecondDate.getYear()}`\n\t\t\t\t: `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}`;\n\n\t\t\tconst day = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? \"0\" : \"-1\",\n\t\t\t\tselected: isSelected,\n\t\t\t\tday: tempDate.getDate(),\n\t\t\t\tsecondDay: this.hasSecondaryCalendarType && tempSecondDate.getDate(),\n\t\t\t\t_isSecondaryCalendarType: this.hasSecondaryCalendarType,\n\t\t\t\tclasses: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,\n\t\t\t\tariaLabel,\n\t\t\t\tariaSelected: isSelected ? \"true\" : \"false\",\n\t\t\t\tariaDisabled: isOtherMonth ? \"true\" : undefined,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t};\n\n\t\t\tif (isFirstDayOfWeek) {\n\t\t\t\tday.classes += \" ui5-dp-firstday\";\n\t\t\t}\n\n\t\t\tif (isSelected) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected-between\";\n\t\t\t}\n\n\t\t\tif (isToday) {\n\t\t\t\tday.classes += \" ui5-dp-item--now\";\n\t\t\t}\n\n\t\t\tif (isOtherMonth) {\n\t\t\t\tday.classes += \" ui5-dp-item--othermonth\";\n\t\t\t}\n\n\t\t\tif (isWeekend) {\n\t\t\t\tday.classes += \" ui5-dp-item--weeekend\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tday.classes += \" ui5-dp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tday.classes += \" ui5-dp-item--withsecondtype\";\n\t\t\t}\n\n\t\t\tweek.push(day);\n\n\t\t\tif (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week\n\t\t\t\tweek.unshift({\n\t\t\t\t\tweekNum: calculateWeekNumber(getFirstDayOfWeek(), tempDate.toUTCJSDate(), tempDate.getYear(), getLocale(), localeData),\n\t\t\t\t\tisHidden: this.shouldHideWeekNumbers,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers\n\t\t\t\tthis._weeks.push(week);\n\t\t\t\tweek = [];\n\t\t\t}\n\n\t\t\ttempDate.setDate(tempDate.getDate() + 1);\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\ttempSecondDate.setDate(tempSecondDate.getDate() + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Builds the dayNames object (header of the month)\n\t * @param localeData\n\t * @private\n\t */\n\t_buildDayNames(localeData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tlet dayOfTheWeek;\n\n\t\tconst aDayNamesWide = localeData.getDays(\"wide\", this._primaryCalendarType);\n\t\tconst aDayNamesAbbreviated = localeData.getDays(\"abbreviated\", this._primaryCalendarType);\n\t\tlet dayName;\n\n\t\tthis._dayNames = [];\n\t\tthis._dayNames.push({\n\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\tname: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),\n\t\t});\n\t\tfor (let i = 0; i < DAYS_IN_WEEK; i++) {\n\t\t\tdayOfTheWeek = i + this._getFirstDayOfWeek();\n\t\t\tif (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed\n\t\t\t\tdayOfTheWeek -= DAYS_IN_WEEK;\n\t\t\t}\n\t\t\tdayName = {\n\t\t\t\tname: aDayNamesWide[dayOfTheWeek],\n\t\t\t\tultraShortName: aDayNamesAbbreviated[dayOfTheWeek],\n\t\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\t};\n\n\t\t\tthis._dayNames.push(dayName);\n\t\t}\n\n\t\tthis._dayNames[1].classes += \" ui5-dp-firstday\";\n\n\t\tif (this.shouldHideWeekNumbers) {\n\t\t\tthis._dayNames.shift();\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._autoFocus && !this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis._autoFocus = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis._autoFocus = false;\n\t}\n\n\t/**\n\t * Tells if the day is selected (dark blue)\n\t * @param timestamp\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isDaySelected(timestamp) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\treturn timestamp === this.selectedDates[0];\n\t\t}\n\n\t\t// Multiple, Range\n\t\treturn this.selectedDates.includes(timestamp);\n\t}\n\n\t/**\n\t * Tells if the day is inside a selection range (light blue)\n\t * @param timestamp\n\t * @returns {*}\n\t * @private\n\t */\n\t_isDayInsideSelectionRange(timestamp) {\n\t\t// No selection at all (or not in range selection mode)\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\t// Two dates selected - stable range\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\t/**\n\t * Selects/deselects a day\n\t * @param event\n\t * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)\n\t * @private\n\t */\n\t_selectDate(event, isShift) {\n\t\tconst target = event.target;\n\n\t\tif (!this._isDayPressed(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\tthis.selectedDates = [timestamp];\n\t\t} else if (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\tif (this.selectedDates.length > 0 && isShift) {\n\t\t\t\tthis._multipleSelection(timestamp);\n\t\t\t} else {\n\t\t\t\tthis._toggleTimestampInSelection(timestamp);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.selectedDates = (this.selectedDates.length === 1) ? [...this.selectedDates, timestamp]\t: [timestamp];\n\t\t}\n\n\t\tthis.fireEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t/**\n\t * Selects/deselects the whole row (week)\n\t * @param event\n\t * @private\n\t */\n\t_selectWeek(event) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst dayInThisWeek = week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst notAllDaysOfThisWeekSelected = week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));\n\t\t\t\tif (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week\n\t\t\t\t\tweek.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._addTimestampToSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t} else { // only if all days of this week are selected, deselect them\n\t\t\t\t\tweek.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._removeTimestampFromSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.fireEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_toggleTimestampInSelection(timestamp) {\n\t\tif (this.selectedDates.includes(timestamp)) {\n\t\t\tthis._removeTimestampFromSelection(timestamp);\n\t\t} else {\n\t\t\tthis._addTimestampToSelection(timestamp);\n\t\t}\n\t}\n\n\t_addTimestampToSelection(timestamp) {\n\t\tif (!this.selectedDates.includes(timestamp)) {\n\t\t\tthis.selectedDates = [...this.selectedDates, timestamp];\n\t\t}\n\t}\n\n\t_removeTimestampFromSelection(timestamp) {\n\t\tthis.selectedDates = this.selectedDates.filter(value => value !== timestamp);\n\t}\n\n\t/**\n\t * When at least one day is selected and the user pressed shift\n\t * @param timestamp\n\t * @private\n\t */\n\t_multipleSelection(timestamp) {\n\t\tconst min = Math.min(...this.selectedDates);\n\t\tconst max = Math.max(...this.selectedDates);\n\t\tlet start;\n\t\tlet end;\n\t\tlet toggle = false;\n\n\t\tif (timestamp < min) {\n\t\t\tstart = timestamp;\n\t\t\tend = min;\n\t\t} else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused\n\t\t\tconst distanceToMin = Math.abs(timestamp - min);\n\t\t\tconst distanceToMax = Math.abs(timestamp - max);\n\n\t\t\tif (distanceToMin < distanceToMax) {\n\t\t\t\tstart = timestamp;\n\t\t\t\tend = max;\n\t\t\t} else {\n\t\t\t\tstart = min;\n\t\t\t\tend = timestamp;\n\t\t\t}\n\t\t\ttoggle = true;\n\t\t} else {\n\t\t\tstart = max;\n\t\t\tend = timestamp;\n\t\t}\n\n\t\tconst startDate = CalendarDate.fromTimestamp(start * 1000);\n\t\tconst endDate = CalendarDate.fromTimestamp(end * 1000);\n\n\t\twhile (startDate.valueOf() <= endDate.valueOf()) {\n\t\t\tthis[toggle ? \"_toggleTimestampInSelection\" : \"_addTimestampToSelection\"](startDate.valueOf() / 1000);\n\t\t\tstartDate.setDate(startDate.getDate() + 1);\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the _secondTimestamp\n\t * @param event\n\t * @private\n\t */\n\t_onmouseover(event) {\n\t\tconst hoveredItem = event.target.closest(\".ui5-dp-item\");\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(event) || isEnterShift(event)) {\n\t\t\tthis._selectDate(event, isEnterShift(event));\n\t\t} else if (isSpace(event) || isSpaceShift(event)) {\n\t\t\tevent.preventDefault();\n\t\t} else if (isLeft(event)) {\n\t\t\tthis._modifyTimestampBy(-1, \"day\");\n\t\t} else if (isRight(event)) {\n\t\t\tthis._modifyTimestampBy(1, \"day\");\n\t\t} else if (isUp(event)) {\n\t\t\tthis._modifyTimestampBy(-7, \"day\");\n\t\t} else if (isDown(event)) {\n\t\t\tthis._modifyTimestampBy(7, \"day\");\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._modifyTimestampBy(-1, \"month\");\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._modifyTimestampBy(1, \"month\");\n\t\t} else if (isPageUpShift(event) || isPageUpAlt(event)) {\n\t\t\tthis._modifyTimestampBy(-1, \"year\");\n\t\t} else if (isPageDownShift(event) || isPageDownAlt(event)) {\n\t\t\tthis._modifyTimestampBy(1, \"year\");\n\t\t} else if (isPageUpShiftCtrl(event)) {\n\t\t\tthis._modifyTimestampBy(-10, \"year\");\n\t\t} else if (isPageDownShiftCtrl(event)) {\n\t\t\tthis._modifyTimestampBy(10, \"year\");\n\t\t} else if (isHome(event) || isEnd(event)) {\n\t\t\tthis._onHomeOrEnd(isHome(event));\n\t\t} else if (isHomeCtrl(event)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setDate(1); // Set the first day of the month\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else if (isEndCtrl(event)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(tempDate.getMonth() + 1);\n\t\t\ttempDate.setDate(0); // Set the last day of the month (0th day of next month)\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\t// Even if Space+Shift was pressed, ignore the shift unless in Multiple selection\n\t\tif (isSpace(event) || (isSpaceShift(event) && this.selectionMode !== CalendarSelectionMode.Multiple)) {\n\t\t\tthis._selectDate(event, false);\n\t\t} else if (isSpaceShift(event)) {\n\t\t\tthis._selectWeek(event);\n\t\t}\n\t}\n\n\t/**\n\t * Click is the same as Enter: Click+Shift has the same effect as Enter+Shift\n\t * @param event\n\t * @private\n\t */\n\t_onclick(event) {\n\t\tthis._selectDate(event, event.shiftKey);\n\t}\n\n\t/**\n\t * One Home or End, move the focus to the first or last item in the row\n\t * @param homePressed\n\t * @private\n\t */\n\t_onHomeOrEnd(homePressed) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst dayInThisWeek = week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week\n\t\t\t\tthis._setTimestamp(parseInt(week[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasPreviousPage() {\n\t\treturn !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasNextPage() {\n\t\treturn !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * Same as PageUp\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-1, \"month\");\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * Same as PageDown\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(1, \"month\");\n\t}\n\n\t/**\n\t * Modifies the timestamp by a certain amount of days/months/years\n\t * @param amount\n\t * @param unit\n\t * @private\n\t */\n\t_modifyTimestampBy(amount, unit) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, unit);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis._updateSecondTimestamp();\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t/**\n\t * During range selection, when the user is navigating with the keyboard, the currently focused day is considered the \"second day\"\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\tget shouldHideWeekNumbers() {\n\t\tif (this._primaryCalendarType !== CalendarType.Gregorian) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.hideWeekNumbers;\n\t}\n\n\tget hasSecondaryCalendarType() {\n\t\treturn !!this.secondaryCalendarType;\n\t}\n\n\t_isWeekend(oDate) {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\tconst iWeekDay = oDate.getDay(),\n\t\t\tiWeekendStart = localeData.getWeekendStart(),\n\t\t\tiWeekendEnd = localeData.getWeekendEnd();\n\n\t\treturn (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)\n\t\t\t|| (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));\n\t}\n\n\t_isDayPressed(target) {\n\t\tconst targetParent = target.parentNode;\n\t\treturn (target.className.indexOf(\"ui5-dp-item\") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains(\"ui5-dp-item\"));\n\t}\n\n\t_getSecondaryDay(tempDate) {\n\t\treturn new CalendarDate(tempDate, this.secondaryCalendarType);\n\t}\n\n\t_getFirstDay() {\n\t\tlet daysFromPreviousMonth;\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\n\t\t// determine weekday of first day in month\n\t\tconst firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\tfirstDay.setDate(1);\n\t\tdaysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;\n\t\tif (daysFromPreviousMonth < 0) {\n\t\t\tdaysFromPreviousMonth = 7 + daysFromPreviousMonth;\n\t\t}\n\n\t\tif (daysFromPreviousMonth > 0) {\n\t\t\tfirstDay.setDate(1 - daysFromPreviousMonth);\n\t\t}\n\n\t\treturn firstDay;\n\t}\n\n\t_getFirstDayOfWeek() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tconst confFirstDayOfWeek = getFirstDayOfWeek();\n\t\treturn Number.isInteger(confFirstDayOfWeek) ? confFirstDayOfWeek : localeData.getFirstDayOfWeek();\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\tdisplay: this._hidden ? \"none\" : \"flex\",\n\t\t\t\t\"justify-content\": \"center\",\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoledescription() {\n\t\treturn this.hasSecondaryCalendarType\n\t\t\t? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType} calendar`\n\t\t\t: `${this._primaryCalendarType} calendar`;\n\t}\n}\n\nDayPicker.define();\n\nexport default DayPicker;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-mp-root\" role=\"grid\" aria-readonly=\"false\" aria-multiselectable=\"false\" @keydown=${context._onkeydown} @keyup=${context._onkeyup} @click=${context._selectMonth} @focusin=${context._onfocusin}>${ repeat(context._months, (item, index) => item._id || index, (item, index) => block1(item, index, context, tags, suffix)) }</div>`;\nconst block1 = (item, index, context, tags, suffix) => html`<div class=\"ui5-mp-quarter\">${ repeat(item, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</div>`;\nconst block2 = (item, index, context, tags, suffix) => html`<div data-sap-timestamp=${ifDefined(item.timestamp)} tabindex=${ifDefined(item._tabIndex)} ?data-sap-focus-ref=\"${item.focusRef}\" class=\"${ifDefined(item.classes)}\" role=\"gridcell\" aria-selected=\"${ifDefined(item.ariaSelected)}\">${ifDefined(item.name)}</div>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\MonthPicker.css\",content:\":host(:not([hidden])){display:block}:host{width:100%;height:100%}.ui5-mp-root{padding:2rem 0 1rem 0;display:flex;flex-direction:column;font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSize);justify-content:center;align-items:center}.ui5-mp-item{display:flex;width:calc(33.333% - .125rem);height:var(--_ui5_month_picker_item_height);color:var(--sapTextColor);background-color:var(--sapLegend_WorkingBackground);align-items:center;justify-content:center;margin:var(--_ui5_monthpicker_item_margin);box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;outline:none;position:relative;border:var(--_ui5_monthpicker_item_border);border-radius:var(--_ui5_monthpicker_item_border_radius)}.ui5-mp-item:hover{background-color:var(--sapList_Hover_Background)}.ui5-mp-item.ui5-mp-item--selected{box-shadow:var(--_ui5_monthpicker_item_selected_box_shadow);font-weight:var(--_ui5_monthpicker_item_selected_font_wieght);background-color:var(--_ui5_monthpicker_item_selected_background_color);color:var(--_ui5_monthpicker_item_selected_text_color)}.ui5-mp-item.ui5-mp-item--disabled{pointer-events:none;opacity:.5}.ui5-mp-item.ui5-mp-item--selected:focus{background-color:var(--sapContent_Selected_Background)}.ui5-mp-item.ui5-mp-item--selected:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.ui5-mp-item.ui5-mp-item--selected:hover{background-color:var(--_ui5_monthpicker_item_selected_hover_color)}.ui5-mp-item:focus:after{content:\\\"\\\";position:absolute;width:var(--_ui5_monthpicker_item_focus_after_width);height:var(--_ui5_monthpicker_item_focus_after_height);border:var(--_ui5_monthpicker_item_focus_after_border);top:var(--_ui5_monthpicker_item_focus_after_offset);left:var(--_ui5_monthpicker_item_focus_after_offset);border-radius:var(--_ui5_monthpicker_item_focus_after_border_radius);outline:var(--_ui5_monthpicker_item_focus_after_outline)}.ui5-mp-quarter{display:flex;justify-content:center;align-items:center;width:100%}\"}","import getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport MonthPickerTemplate from \"./generated/templates/MonthPickerTemplate.lit.js\";\nimport styles from \"./generated/themes/MonthPicker.css.js\";\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-monthpicker\",\n\tproperties: /** @lends sap.ui.webcomponents.main.MonthPicker.prototype */ {\n\t\t/**\n\t\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t\t * @type {Array}\n\t\t * @public\n\t\t */\n\t\tselectedDates: {\n\t\t\ttype: Integer,\n\t\t\tmultiple: true,\n\t\t\tcompareValues: true,\n\t\t},\n\n\t\t_months: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t},\n\n\t\t_hidden: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.MonthPicker.prototype */ {\n\t\t/**\n\t\t * Fired when the user selects a month (space/enter/click).\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tchange: {},\n\t\t/**\n\t\t * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n\t\t * @since 1.0.0-rc.9\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tnavigate: {},\n\t},\n};\n\nconst PAGE_SIZE = 12; // Total months on a single page\nconst ROW_SIZE = 3; // Months per row (4 rows of 3 months each)\n\n/**\n * Month picker component.\n *\n * @class\n *\n * Displays months which can be selected.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.MonthPicker\n * @extends CalendarPart\n * @tagname ui5-monthpicker\n * @public\n */\nclass MonthPicker extends CalendarPart {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get template() {\n\t\treturn MonthPickerTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._buildMonths();\n\t}\n\n\t_buildMonths() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType);\n\n\t\tconst months = [];\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < 12; i++) {\n\t\t\ttempDate.setMonth(i);\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear() && date.getMonth() === tempDate.getMonth();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth();\n\t\t\tconst isDisabled = this._isOutOfSelectableRange(tempDate, minDate, maxDate);\n\n\t\t\tconst month = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? \"0\" : \"-1\",\n\t\t\t\tselected: isSelected,\n\t\t\t\tariaSelected: isSelected ? \"true\" : \"false\",\n\t\t\t\tname: monthsNames[i],\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-mp-item\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--selected\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--disabled\";\n\t\t\t}\n\n\t\t\tconst quarterIndex = parseInt(i / ROW_SIZE);\n\n\t\t\tif (months[quarterIndex]) {\n\t\t\t\tmonths[quarterIndex].push(month);\n\t\t\t} else {\n\t\t\t\tmonths[quarterIndex] = [month];\n\t\t\t}\n\t\t}\n\n\t\tthis._months = months;\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(event)) {\n\t\t\tthis._selectMonth(event);\n\t\t} else if (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t} else if (isLeft(event)) {\n\t\t\tthis._modifyTimestampBy(-1);\n\t\t} else if (isRight(event)) {\n\t\t\tthis._modifyTimestampBy(1);\n\t\t} else if (isUp(event)) {\n\t\t\tthis._modifyTimestampBy(-ROW_SIZE);\n\t\t} else if (isDown(event)) {\n\t\t\tthis._modifyTimestampBy(ROW_SIZE);\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t\t} else if (isHome(event) || isEnd(event)) {\n\t\t\tthis._onHomeOrEnd(isHome(event));\n\t\t} else if (isHomeCtrl(event)) {\n\t\t\tthis._setTimestamp(parseInt(this._months[0][0].timestamp)); // first month of first row\n\t\t} else if (isEndCtrl(event)) {\n\t\t\tthis._setTimestamp(parseInt(this._months[PAGE_SIZE / ROW_SIZE - 1][ROW_SIZE - 1].timestamp)); // last month of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed) {\n\t\tthis._months.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getMonth() === this._calendarDate.getMonth());\n\t\t\tif (indexInRow !== -1) { // The current month is on this row\n\t\t\t\tconst index = homePressed ? 0 : ROW_SIZE - 1; // select the first (if Home) or last (if End) month on the row\n\t\t\t\tthis._setTimestamp(parseInt(row[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t/**\n\t * Modifies timestamp by a given amount of months and, if necessary, loads the prev/next page\n\t * @param amount\n\t * @private\n\t */\n\t_modifyTimestampBy(amount) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, \"month\");\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis._selectMonth(event);\n\t\t}\n\t}\n\n\t/**\n\t * User clicked with the mouser or pressed Enter/Space\n\t * @param event\n\t * @private\n\t */\n\t_selectMonth(event) {\n\t\tevent.preventDefault();\n\t\tif (event.target.className.indexOf(\"ui5-mp-item\") > -1) {\n\t\t\tconst timestamp = this._getTimestampFromDom(event.target);\n\t\t\tthis._safelySetTimestamp(timestamp);\n\t\t\tthis.fireEvent(\"change\", { timestamp: this.timestamp });\n\t\t}\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasPreviousPage() {\n\t\treturn this._calendarDate.getYear() !== this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasNextPage() {\n\t\treturn this._calendarDate.getYear() !== this._maxDate.getYear();\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * User pressed the \"<\" button in the calendar header (same as PageUp)\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * User pressed the \">\" button in the calendar header (same as PageDown)\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t}\n\n\t_isOutOfSelectableRange(date, minDate, maxDate) {\n\t\tconst month = date.getMonth();\n\t\tconst year = date.getYear();\n\t\tconst minYear = minDate.getYear();\n\t\tconst minMonth = minDate.getMonth();\n\t\tconst maxYear = maxDate.getYear();\n\t\tconst maxMonth = maxDate.getMonth();\n\n\t\treturn year < minYear || (year === minYear && month < minMonth) || year > maxYear || (year === maxYear && month > maxMonth);\n\t}\n}\n\nMonthPicker.define();\n\nexport default MonthPicker;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-yp-root\" role=\"grid\" aria-readonly=\"false\" aria-multiselectable=\"false\" @keydown=${context._onkeydown} @keyup=${context._onkeyup} @click=${context._selectYear} @focusin=${context._onfocusin}>${ repeat(context._years, (item, index) => item._id || index, (item, index) => block1(item, index, context, tags, suffix)) }</div>`;\nconst block1 = (item, index, context, tags, suffix) => html`<div class=\"ui5-yp-interval-container\">${ repeat(item, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</div>`;\nconst block2 = (item, index, context, tags, suffix) => html`<div data-sap-timestamp=\"${ifDefined(item.timestamp)}\" tabindex=\"${ifDefined(item._tabIndex)}\" ?data-sap-focus-ref=\"${item.focusRef}\" class=\"${ifDefined(item.classes)}\" role=\"gridcell\" aria-selected=\"${ifDefined(item.ariaSelected)}\">${ifDefined(item.year)}</div>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\YearPicker.css\",content:\":host(:not([hidden])){display:block}:host{width:100%;height:100%}.ui5-yp-root{padding:2rem 0 1rem 0;display:flex;flex-direction:column;font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSize);justify-content:center;align-items:center}.ui5-yp-interval-container{display:flex;justify-content:center;align-items:center;width:100%}.ui5-yp-item{display:flex;margin:var(--_ui5_yearpicker_item_margin);width:calc(25% - .125rem);height:var(--_ui5_year_picker_item_height);color:var(--sapTextColor);background-color:var(--sapLegend_WorkingBackground);align-items:center;justify-content:center;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;outline:none;position:relative;border:var(--_ui5_yearpicker_item_border);border-radius:var(--_ui5_yearpicker_item_border_radius)}.ui5-yp-item:hover{background-color:var(--sapList_Hover_Background)}.ui5-yp-item.ui5-yp-item--selected{background-color:var(--_ui5_yearpicker_item_selected_background_color);color:var(--_ui5_yearpicker_item_selected_text_color);box-shadow:var(--_ui5_yearpicker_item_selected_box_shadow);font-weight:700}.ui5-yp-item.ui5-yp-item--disabled{pointer-events:none;opacity:.5}.ui5-yp-item.ui5-yp-item--selected:focus{background-color:var(--_ui5_yearpicker_item_selected_focus)}.ui5-yp-item.ui5-yp-item--selected:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.ui5-yp-item.ui5-yp-item--selected:hover{background-color:var(--_ui5_yearpicker_item_selected_hover_color)}.ui5-yp-item:focus:after{content:\\\"\\\";position:absolute;width:var(--_ui5_yearpicker_item_focus_after_width);height:var(--_ui5_yearpicker_item_focus_after_height);border:var(--_ui5_yearpicker_item_focus_after_border);top:var(--_ui5_yearpicker_item_focus_after_offset);left:var(--_ui5_yearpicker_item_focus_after_offset);border-radius:var(--_ui5_yearpicker_item_focus_after_border_radius);outline:var(--_ui5_yearpicker_item_focus_after_outline)}\"}","import DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { getMaxCalendarDate } from \"@ui5/webcomponents-localization/dist/dates/ExtremeDates.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport YearPickerTemplate from \"./generated/templates/YearPickerTemplate.lit.js\";\nimport styles from \"./generated/themes/YearPicker.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-yearpicker\",\n\tproperties: /** @lends sap.ui.webcomponents.main.YearPicker.prototype */ {\n\t\t/**\n\t\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t\t * @type {Array}\n\t\t * @public\n\t\t */\n\t\tselectedDates: {\n\t\t\ttype: Integer,\n\t\t\tmultiple: true,\n\t\t\tcompareValues: true,\n\t\t},\n\n\t\t_years: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t},\n\n\t\t_hidden: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.YearPicker.prototype */ {\n\t\t/**\n\t\t * Fired when the user selects a year (space/enter/click).\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tchange: {},\n\t\t/**\n\t\t * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n\t\t * @since 1.0.0-rc.9\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tnavigate: {},\n\t},\n};\n\nconst PAGE_SIZE = 20; // Total years on a single page\nconst ROW_SIZE = 4; // Years per row (5 rows of 4 years each)\n\n/**\n * @class\n *\n * Displays years which can be selected.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.YearPicker\n * @extends CalendarPart\n * @tagname ui5-yearpicker\n * @public\n */\nclass YearPicker extends CalendarPart {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic get template() {\n\t\treturn YearPickerTemplate;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._buildYears();\n\t}\n\n\t_buildYears() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._primaryCalendarType }, getLocale());\n\n\t\tthis._calculateFirstYear();\n\t\tthis._lastYear = this._firstYear + PAGE_SIZE - 1;\n\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\ttempDate.setYear(this._firstYear);\n\n\t\tconst intervals = [];\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < PAGE_SIZE; i++) {\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getYear() === calendarDate.getYear();\n\t\t\tconst isDisabled = tempDate.getYear() < minDate.getYear() || tempDate.getYear() > maxDate.getYear();\n\n\t\t\tconst year = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\t_tabIndex: isFocused ? \"0\" : \"-1\",\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\tselected: isSelected,\n\t\t\t\tariaSelected: isSelected ? \"true\" : \"false\",\n\t\t\t\tyear: oYearFormat.format(tempDate.toLocalJSDate()),\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-yp-item\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tyear.classes += \" ui5-yp-item--selected\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tyear.classes += \" ui5-yp-item--disabled\";\n\t\t\t}\n\n\t\t\tconst intervalIndex = parseInt(i / ROW_SIZE);\n\n\t\t\tif (intervals[intervalIndex]) {\n\t\t\t\tintervals[intervalIndex].push(year);\n\t\t\t} else {\n\t\t\t\tintervals[intervalIndex] = [year];\n\t\t\t}\n\n\t\t\ttempDate.setYear(tempDate.getYear() + 1);\n\t\t}\n\n\t\tthis._years = intervals;\n\t}\n\n\t_calculateFirstYear() {\n\t\tconst absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear(); // 9999\n\t\tconst currentYear = this._calendarDate.getYear();\n\n\t\t// 1. If first load - center the current year (set first year to be current year minus half page size)\n\t\tif (!this._firstYear) {\n\t\t\tthis._firstYear = currentYear - PAGE_SIZE / 2;\n\t\t}\n\n\t\t// 2. If out of range - change by a page (20) - do not center in order to keep the same position as the last page\n\t\tif (currentYear < this._firstYear) {\n\t\t\tthis._firstYear -= PAGE_SIZE;\n\t\t} else if (currentYear >= this._firstYear + PAGE_SIZE) {\n\t\t\tthis._firstYear += PAGE_SIZE;\n\t\t}\n\n\t\t// 3. If the date was changed by more than 20 years - reset _firstYear completely\n\t\tif (Math.abs(this._firstYear - currentYear) >= PAGE_SIZE) {\n\t\t\tthis._firstYear = currentYear - PAGE_SIZE / 2;\n\t\t}\n\n\t\t// Keep it in the range between the min and max year\n\t\tthis._firstYear = Math.max(this._firstYear, this._minDate.getYear());\n\t\tthis._firstYear = Math.min(this._firstYear, this._maxDate.getYear());\n\n\t\t// If first year is > 9980, make it 9980 to not show any years beyond 9999\n\t\tif (this._firstYear > absoluteMaxYear - PAGE_SIZE + 1) {\n\t\t\tthis._firstYear = absoluteMaxYear - PAGE_SIZE + 1;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(event)) {\n\t\t\tthis._selectYear(event);\n\t\t} else if (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t} else if (isLeft(event)) {\n\t\t\tthis._modifyTimestampBy(-1);\n\t\t} else if (isRight(event)) {\n\t\t\tthis._modifyTimestampBy(1);\n\t\t} else if (isUp(event)) {\n\t\t\tthis._modifyTimestampBy(-ROW_SIZE);\n\t\t} else if (isDown(event)) {\n\t\t\tthis._modifyTimestampBy(ROW_SIZE);\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t\t} else if (isHome(event) || isEnd(event)) {\n\t\t\tthis._onHomeOrEnd(isHome(event));\n\t\t} else if (isHomeCtrl(event)) {\n\t\t\tthis._setTimestamp(parseInt(this._years[0][0].timestamp)); // first year of first row\n\t\t} else if (isEndCtrl(event)) {\n\t\t\tthis._setTimestamp(parseInt(this._years[PAGE_SIZE / ROW_SIZE - 1][ROW_SIZE - 1].timestamp)); // last year of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed) {\n\t\tthis._years.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getYear() === this._calendarDate.getYear());\n\t\t\tif (indexInRow !== -1) { // The current year is on this row\n\t\t\t\tconst index = homePressed ? 0 : ROW_SIZE - 1; // select the first (if Home) or last (if End) year on the row\n\t\t\t\tthis._setTimestamp(parseInt(row[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t/**\n\t * Modifies timestamp by a given amount of years and, if necessary, loads the prev/next page\n\t * @param amount\n\t * @private\n\t */\n\t_modifyTimestampBy(amount) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, \"year\");\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireEvent(\"navigate\", { timestamp: this.timestamp });\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis._selectYear(event);\n\t\t}\n\t}\n\n\t/**\n\t * User clicked with the mouser or pressed Enter/Space\n\t * @param event\n\t * @private\n\t */\n\t_selectYear(event) {\n\t\tevent.preventDefault();\n\t\tif (event.target.className.indexOf(\"ui5-yp-item\") > -1) {\n\t\t\tconst timestamp = this._getTimestampFromDom(event.target);\n\t\t\tthis._safelySetTimestamp(timestamp);\n\t\t\tthis.fireEvent(\"change\", { timestamp: this.timestamp });\n\t\t}\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasPreviousPage() {\n\t\treturn this._firstYear > this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called from Calendar.js\n\t * @protected\n\t */\n\t_hasNextPage() {\n\t\treturn this._firstYear + PAGE_SIZE - 1 < this._maxDate.getYear();\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * User pressed the \"<\" button in the calendar header (same as PageUp)\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * User pressed the \">\" button in the calendar header (same as PageDown)\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t}\n}\n\nYearPicker.define();\n\nexport default YearPicker;\n","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport _Calendars from './_Calendars.js';\nvar Gregorian = UniversalDate.extend('sap.ui.core.date.Gregorian', {\n constructor: function () {\n this.oDate = this.createDate(Date, arguments);\n this.sCalendarType = CalendarType.Gregorian;\n }\n});\nGregorian.UTC = function () {\n return Date.UTC.apply(Date, arguments);\n};\nGregorian.now = function () {\n return Date.now();\n};\n_Calendars.set(CalendarType.Gregorian, Gregorian);\nexport default Gregorian;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-cal-root\" @keydown=${context._onkeydown}><div id=\"${ifDefined(context._id)}-content\" class=\"ui5-cal-content\"><${scopeTag(\"ui5-daypicker\", tags, suffix)} id=\"${ifDefined(context._id)}-daypicker\" ?hidden=\"${context._isDayPickerHidden}\" format-pattern=\"${ifDefined(context._formatPattern)}\" .selectedDates=\"${ifDefined(context._selectedDatesTimestamps)}\" ._hidden=\"${ifDefined(context._isDayPickerHidden)}\" .primaryCalendarType=\"${ifDefined(context._primaryCalendarType)}\" .secondaryCalendarType=\"${ifDefined(context.secondaryCalendarType)}\" .selectionMode=\"${ifDefined(context.selectionMode)}\" .minDate=\"${ifDefined(context.minDate)}\" .maxDate=\"${ifDefined(context.maxDate)}\" timestamp=\"${ifDefined(context._timestamp)}\" ?hide-week-numbers=\"${context.hideWeekNumbers}\" @ui5-change=\"${ifDefined(context.onSelectedDatesChange)}\" @ui5-navigate=\"${ifDefined(context.onNavigate)}\"></${scopeTag(\"ui5-daypicker\", tags, suffix)}><${scopeTag(\"ui5-monthpicker\", tags, suffix)} id=\"${ifDefined(context._id)}-MP\" ?hidden=\"${context._isMonthPickerHidden}\" format-pattern=\"${ifDefined(context._formatPattern)}\" .selectedDates=\"${ifDefined(context._selectedDatesTimestamps)}\" ._hidden=\"${ifDefined(context._isMonthPickerHidden)}\" .primaryCalendarType=\"${ifDefined(context._primaryCalendarType)}\" .minDate=\"${ifDefined(context.minDate)}\" .maxDate=\"${ifDefined(context.maxDate)}\" timestamp=\"${ifDefined(context._timestamp)}\" @ui5-change=\"${ifDefined(context.onSelectedMonthChange)}\" @ui5-navigate=\"${ifDefined(context.onNavigate)}\"></${scopeTag(\"ui5-monthpicker\", tags, suffix)}><${scopeTag(\"ui5-yearpicker\", tags, suffix)} id=\"${ifDefined(context._id)}-YP\" ?hidden=\"${context._isYearPickerHidden}\" format-pattern=\"${ifDefined(context._formatPattern)}\" .selectedDates=\"${ifDefined(context._selectedDatesTimestamps)}\" ._hidden=\"${ifDefined(context._isYearPickerHidden)}\" .primaryCalendarType=\"${ifDefined(context._primaryCalendarType)}\" .minDate=\"${ifDefined(context.minDate)}\" .maxDate=\"${ifDefined(context.maxDate)}\" timestamp=\"${ifDefined(context._timestamp)}\" @ui5-change=\"${ifDefined(context.onSelectedYearChange)}\" @ui5-navigate=\"${ifDefined(context.onNavigate)}\"></${scopeTag(\"ui5-yearpicker\", tags, suffix)}></div><!-- Positioned above the content due to flex-direction:column-reverse, but physically here for tab order to work --><${scopeTag(\"ui5-calendar-header\", tags, suffix)} id=\"${ifDefined(context._id)}-head\" .primaryCalendarType=\"${ifDefined(context._primaryCalendarType)}\" .secondaryCalendarType=\"${ifDefined(context.secondaryCalendarType)}\" .buttonTextForSecondaryCalendarType=\"${ifDefined(context.secondaryCalendarTypeButtonText)}\" timestamp=\"${ifDefined(context._timestamp)}\" .isPrevButtonDisabled=\"${ifDefined(context._previousButtonDisabled)}\" .isNextButtonDisabled=\"${ifDefined(context._nextButtonDisabled)}\" .isMonthButtonHidden=\"${ifDefined(context._isHeaderMonthButtonHidden)}\" ._monthButtonText=\"${ifDefined(context._headerMonthButtonText)}\" ._yearButtonText=\"${ifDefined(context._headerYearButtonText)}\" @ui5-previous-press=\"${ifDefined(context.onHeaderPreviousPress)}\" @ui5-next-press=\"${ifDefined(context.onHeaderNextPress)}\" @ui5-show-month-press=\"${ifDefined(context.onHeaderShowMonthPress)}\" @ui5-show-year-press=\"${ifDefined(context.onHeaderShowYearPress)}\"></${scopeTag(\"ui5-calendar-header\", tags, suffix)}></div>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Calendar.css\",content:\":host(:not([hidden])){display:inline-block}.ui5-cal-root{background:var(--sapList_Background);box-sizing:border-box;height:var(--_ui5_calendar_height);width:var(--_ui5_calendar_width);padding:var(--_ui5_calendar_padding);display:flex;flex-direction:column-reverse;justify-content:flex-end}.ui5-cal-root [ui5-calendar-header]{height:var(--_ui5_calendar_header_height)}\"}","import CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisF4,\n\tisF4Shift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport * as CalendarDateComponent from \"./CalendarDate.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport CalendarHeader from \"./CalendarHeader.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\n// Default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Template\nimport CalendarTemplate from \"./generated/templates/CalendarTemplate.lit.js\";\n\n// Styles\nimport calendarCSS from \"./generated/themes/Calendar.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-calendar\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {\n\t\t/**\n\t\t * Defines the type of selection used in the calendar component.\n\t\t * Accepted property values are:<br>\n\t\t * <ul>\n\t\t * <li><code>CalendarSelectionMode.Single</code> - enables a single date selection.(default value)</li>\n\t\t * <li><code>CalendarSelectionMode.Range</code> - enables selection of a date range.</li>\n\t\t * <li><code>CalendarSelectionMode.Multiple</code> - enables selection of multiple dates.</li>\n\t\t * </ul>\n\t\t * @type {CalendarSelectionMode}\n\t\t * @defaultvalue \"Single\"\n\t\t * @public\n\t\t */\n\t\tselectionMode: {\n\t\t\ttype: CalendarSelectionMode,\n\t\t\tdefaultValue: CalendarSelectionMode.Single,\n\t\t},\n\n\t\t/**\n\t\t * Defines the visibility of the week numbers column.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> For calendars other than Gregorian,\n\t\t * the week numbers are not displayed regardless of what is set.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\thideWeekNumbers: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Which picker is currently visible to the user: day/month/year\n\t\t */\n\t\t_currentPicker: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"day\",\n\t\t},\n\n\t\t_previousButtonDisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_nextButtonDisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_headerMonthButtonText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t_headerYearButtonText: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {\n\t\t/**\n\t\t * Defines the selected date or dates (depending on the <code>selectionMode</code> property) for this calendar as instances of <code>ui5-date</code>\n\t\t *\n\t\t * @type {sap.ui.webcomponents.main.ICalendarDate[]}\n\t\t * @slot dates\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"dates\",\n\t\t\ttype: HTMLElement,\n\t\t\tinvalidateOnChildChange: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {\n\t\t/**\n\t\t * Fired when the selected dates change.\n\t\t * <b>Note:</b> If you call <code>preventDefault()</code> for this event, the component will not\n\t\t * create instances of <code>ui5-date</code> for the newly selected dates. In that case you should do this manually.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.Calendar#selected-dates-change\n\t\t * @allowPreventDefault\n\t\t * @param {Array} values The selected dates\n\t\t * @param {Array} dates The selected dates as UTC timestamps\n\t\t * @public\n\t\t */\n\t\t\"selected-dates-change\": {\n\t\t\tdetail: {\n\t\t\t\tdates: { type: Array },\n\t\t\t\tvalues: { type: Array },\n\t\t\t},\n\t\t},\n\n\t\t\"show-month-press\": {},\n\t\t\"show-year-press\": {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-calendar</code> component allows users to select one or more dates.\n * <br><br>\n * Currently selected dates are represented with instances of <code>ui5-date</code> as\n * children of the <code>ui5-calendar</code>. The value property of each <code>ui5-date</code> must be a\n * date string, correctly formatted according to the <code>ui5-calendar</code>'s <code>formatPattern</code> property.\n * Whenever the user changes the date selection, <code>ui5-calendar</code> will automatically create/remove instances\n * of <code>ui5-date</code> in itself, unless you prevent this behavior by calling <code>preventDefault()</code> for the\n * <code>selected-dates-change</code> event. This is useful if you want to control the selected dates externally.\n * <br><br>\n *\n * <h3>Usage</h3>\n *\n * The user can navigate to a particular date by:\n * <br>\n * <ul>\n * <li>Pressing over a month inside the months view</li>\n * <li>Pressing over an year inside the years view</li>\n * </ul>\n * <br>\n * The user can confirm a date selection by pressing over a date inside the days view.\n * <br><br>\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-calendar</code> provides advanced keyboard handling.\n * When a picker is showed and focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n * <br>\n * - Day picker: <br>\n * <ul>\n * <li>[F4] - Shows month picker</li>\n * <li>[SHIFT] + [F4] - Shows year picker</li>\n * <li>[PAGEUP] - Navigate to the previous month</li>\n * <li>[PAGEDOWN] - Navigate to the next month</li>\n * <li>[SHIFT] + [PAGEUP] - Navigate to the previous year</li>\n * <li>[SHIFT] + [PAGEDOWN] - Navigate to the next year</li>\n * <li>[CTRL] + [SHIFT] + [PAGEUP] - Navigate ten years backwards</li>\n * <li>[CTRL] + [SHIFT] + [PAGEDOWN] - Navigate ten years forwards</li>\n * <li>[HOME] - Navigate to the first day of the week</li>\n * <li>[END] - Navigate to the last day of the week</li>\n * <li>[CTRL] + [HOME] - Navigate to the first day of the month</li>\n * <li>[CTRL] + [END] - Navigate to the last day of the month</li>\n * </ul>\n * <br>\n * - Month picker: <br>\n * <ul>\n * <li>[PAGEUP] - Navigate to the previous year</li>\n * <li>[PAGEDOWN] - Navigate to the next year</li>\n * <li>[HOME] - Navigate to the first month of the current row</li>\n * <li>[END] - Navigate to the last month of the current row</li>\n * <li>[CTRL] + [HOME] - Navigate to the first month of the current year</li>\n * <li>[CTRL] + [END] - Navigate to the last month of the year</li>\n * </ul>\n * <br>\n * - Year picker: <br>\n * <ul>\n * <li>[PAGEUP] - Navigate to the previous year range</li>\n * <li>[PAGEDOWN] - Navigate the next year range</li>\n * <li>[HOME] - Navigate to the first year of the current row</li>\n * <li>[END] - Navigate to the last year of the current row</li>\n * <li>[CTRL] + [HOME] - Navigate to the first year of the current year range</li>\n * <li>[CTRL] + [END] - Navigate to the last year of the current year range</li>\n * </ul>\n * <br>\n *\n* <h3>Calendar types</h3>\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the <code>primaryCalendarType</code> property and import one or more of the following modules:\n * <br><br>\n *\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";</code>\n * <br><br>\n *\n * Or, you can use the global configuration and set the <code>calendarType</code> key:\n * <br>\n * <code>\n * <script data-id=\"sap-ui-config\" type=\"application/json\">\n * {\n *\t\"calendarType\": \"Japanese\"\n * }\n * </script>\n * </code>\n *\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Calendar\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Calendar\n * @extends CalendarPart\n * @tagname ui5-calendar\n * @appenddocs CalendarDate\n * @public\n * @since 1.0.0-rc.11\n */\nclass Calendar extends CalendarPart {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get template() {\n\t\treturn CalendarTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn calendarCSS;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget _selectedDatesTimestamps() {\n\t\treturn this.dates.map(date => {\n\t\t\tconst value = date.value;\n\t\t\treturn value && !!this.getFormat().parse(value) ? this._getTimeStampFromString(value) / 1000 : undefined;\n\t\t}).filter(date => !!date);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_setSelectedDates(selectedDates) {\n\t\tconst selectedValues = selectedDates.map(timestamp => this.getFormat().format(new Date(timestamp * 1000), true)); // Format as UTC\n\t\tconst valuesInDOM = [...this.dates].map(dateElement => dateElement.value);\n\n\t\t// Remove all elements for dates that are no longer selected\n\t\tthis.dates.filter(dateElement => !selectedValues.includes(dateElement.value)).forEach(dateElement => {\n\t\t\tthis.removeChild(dateElement);\n\t\t});\n\n\t\t// Create tags for the selected dates that don't already exist in DOM\n\t\tselectedValues.filter(value => !valuesInDOM.includes(value)).forEach(value => {\n\t\t\tconst dateElement = document.createElement(\"ui5-date\");\n\t\t\tdateElement.value = value;\n\t\t\tthis.appendChild(dateElement);\n\t\t});\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished(); // Await for the current picker to render and then ask if it has previous/next pages\n\t\tthis._previousButtonDisabled = !this._currentPickerDOM._hasPreviousPage();\n\t\tthis._nextButtonDisabled = !this._currentPickerDOM._hasNextPage();\n\n\t\tconst yearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this.primaryCalendarType });\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._headerMonthButtonText = localeData.getMonths(\"wide\", this.primaryCalendarType)[this._calendarDate.getMonth()];\n\n\t\tif (this._currentPicker === \"year\") {\n\t\t\tconst rangeStart = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\tconst rangeEnd = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\trangeStart.setYear(this._currentPickerDOM._firstYear);\n\t\t\trangeEnd.setYear(this._currentPickerDOM._lastYear);\n\n\t\t\tthis._headerYearButtonText = `${yearFormat.format(rangeStart.toLocalJSDate(), true)} - ${yearFormat.format(rangeEnd.toLocalJSDate(), true)}`;\n\t\t} else {\n\t\t\tthis._headerYearButtonText = String(yearFormat.format(this._localDate, true));\n\t\t}\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress(event) {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"month\";\n\t\tthis.fireEvent(\"show-month-press\", event);\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress(event) {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"year\";\n\t\tthis.fireEvent(\"show-year-press\", event);\n\t}\n\n\tget _currentPickerDOM() {\n\t\treturn this.shadowRoot.querySelector(`[ui5-${this._currentPicker}picker]`);\n\t}\n\n\t/**\n\t * The year clicked the \"Previous\" button in the header\n\t */\n\tonHeaderPreviousPress() {\n\t\tthis._currentPickerDOM._showPreviousPage();\n\t}\n\n\t/**\n\t * The year clicked the \"Next\" button in the header\n\t */\n\tonHeaderNextPress() {\n\t\tthis._currentPickerDOM._showNextPage();\n\t}\n\n\tget secondaryCalendarTypeButtonText() {\n\t\tif (!this.secondaryCalendarType) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localDate = new Date(this._timestamp * 1000);\n\t\tconst secondYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this.secondaryCalendarType });\n\t\tconst secondMonthInfo = this._getDisplayedSecondaryMonthText();\n\t\tconst secondYearText = secondYearFormat.format(localDate, true);\n\t\treturn {\n\t\t\tyearButtonText: secondYearText,\n\t\t\tmonthButtonText: secondMonthInfo.text,\n\t\t\tmonthButtonInfo: secondMonthInfo.info,\n\t\t};\n\t}\n\n\t_getDisplayedSecondaryMonthText() {\n\t\tconst month = this._getDisplayedSecondaryMonths();\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tconst pattern = localeData.getIntervalPattern();\n\t\tconst secondaryMonthsNames = getCachedLocaleDataInstance(getLocale()).getMonthsStandAlone(\"abbreviated\", this.secondaryCalendarType);\n\t\tconst secondaryMonthsNamesWide = getCachedLocaleDataInstance(getLocale()).getMonthsStandAlone(\"wide\", this.secondaryCalendarType);\n\n\t\tif (month.startMonth === month.endMonth) {\n\t\t\treturn {\n\t\t\t\ttext: localeData.getMonths(\"abbreviated\", this.secondaryCalendarType)[month.startMonth],\n\t\t\t\ttextInfo: localeData.getMonths(\"wide\", this.secondaryCalendarType)[month.startMonth],\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttext: pattern.replace(/\\{0\\}/, secondaryMonthsNames[month.startMonth]).replace(/\\{1\\}/, secondaryMonthsNames[month.endMonth]),\n\t\t\ttextInfo: pattern.replace(/\\{0\\}/, secondaryMonthsNamesWide[month.startMonth]).replace(/\\{1\\}/, secondaryMonthsNamesWide[month.endMonth]),\n\t\t};\n\t}\n\n\t_getDisplayedSecondaryMonths() {\n\t\tconst localDate = new Date(this._timestamp * 1000);\n\t\tlet firstDate = CalendarDate.fromLocalJSDate(localDate, this._primaryCalendarType);\n\t\tfirstDate.setDate(1);\n\t\tfirstDate = new CalendarDate(firstDate, this.secondaryCalendarType);\n\t\tconst startMonth = firstDate.getMonth();\n\n\t\tlet lastDate = CalendarDate.fromLocalJSDate(localDate, this._primaryCalendarType);\n\t\tlastDate.setDate(this._getDaysInMonth(lastDate));\n\t\tlastDate = new CalendarDate(lastDate, this.secondaryCalendarType);\n\t\tconst endMonth = lastDate.getMonth();\n\n\t\treturn { startMonth, endMonth };\n\t}\n\n\t_getDaysInMonth(date) {\n\t\tconst tempCalendarDate = new CalendarDate(date);\n\t\ttempCalendarDate.setDate(1);\n\t\ttempCalendarDate.setMonth(tempCalendarDate.getMonth() + 1);\n\t\ttempCalendarDate.setDate(0);\n\t\treturn tempCalendarDate.getDate();\n\t}\n\n\t/**\n\t * The month button is hidden when the month picker or year picker is shown\n\t * @returns {boolean}\n\t * @private\n\t */\n\tget _isHeaderMonthButtonHidden() {\n\t\treturn this._currentPicker === \"month\" || this._currentPicker === \"year\";\n\t}\n\n\tget _isDayPickerHidden() {\n\t\treturn this._currentPicker !== \"day\";\n\t}\n\n\tget _isMonthPickerHidden() {\n\t\treturn this._currentPicker !== \"month\";\n\t}\n\n\tget _isYearPickerHidden() {\n\t\treturn this._currentPicker !== \"year\";\n\t}\n\n\tonSelectedDatesChange(event) {\n\t\tconst timestamp = event.detail.timestamp;\n\t\tconst selectedDates = event.detail.dates;\n\t\tconst datesValues = selectedDates.map(ts => {\n\t\t\tconst calendarDate = CalendarDate.fromTimestamp(ts * 1000, this._primaryCalendarType);\n\t\t\treturn this.getFormat().format(calendarDate.toUTCJSDate(), true);\n\t\t});\n\n\t\tthis.timestamp = timestamp;\n\t\tconst defaultPrevented = !this.fireEvent(\"selected-dates-change\", { timestamp, dates: [...selectedDates], values: datesValues }, true);\n\t\tif (!defaultPrevented) {\n\t\t\tthis._setSelectedDates(selectedDates);\n\t\t}\n\t}\n\n\tonSelectedMonthChange(event) {\n\t\tthis.timestamp = event.detail.timestamp;\n\t\tthis._currentPicker = \"day\";\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonSelectedYearChange(event) {\n\t\tthis.timestamp = event.detail.timestamp;\n\t\tthis._currentPicker = \"day\";\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonNavigate(event) {\n\t\tthis.timestamp = event.detail.timestamp;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isF4(event) && this._currentPicker !== \"month\") {\n\t\t\tthis._currentPicker = \"month\";\n\t\t}\n\n\t\tif (isF4Shift(event) && this._currentPicker !== \"year\") {\n\t\t\tthis._currentPicker = \"year\";\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array of UTC timestamps, representing the selected dates.\n\t * @protected\n\t * @deprecated\n\t */\n\tget selectedDates() {\n\t\treturn this._selectedDatesTimestamps;\n\t}\n\n\t/**\n\t * Creates instances of <code>ui5-date</code> inside this <code>ui5-calendar</code> with values, equal to the provided UTC timestamps\n\t * @protected\n\t * @deprecated\n\t * @param selectedDates Array of UTC timestamps\n\t */\n\tset selectedDates(selectedDates) {\n\t\tthis._setSelectedDates(selectedDates);\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tCalendarDateComponent.default,\n\t\t\tCalendarHeader,\n\t\t\tDayPicker,\n\t\t\tMonthPicker,\n\t\t\tYearPicker,\n\t\t];\n\t}\n}\n\nCalendar.define();\n\nexport default Calendar;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-date-picker-root\" style=\"${styleMap(context.styles.main)}\"><!-- INPUT --><${scopeTag(\"ui5-input\", tags, suffix)} id=\"${ifDefined(context._id)}-inner\" class=\"ui5-date-picker-input\" placeholder=\"${ifDefined(context._placeholder)}\" type=\"${ifDefined(context.type)}\" value=\"${ifDefined(context.value)}\" ?disabled=\"${context.disabled}\" ?required=\"${context.required}\" ?readonly=\"${context.readonly}\" value-state=\"${ifDefined(context.valueState)}\" data-sap-focus-ref ._inputAccInfo =\"${ifDefined(context.accInfo)}\" @ui5-change=\"${ifDefined(context._onInputChange)}\" @ui5-input=\"${ifDefined(context._onInputInput)}\" @ui5-submit=\"${ifDefined(context._onInputSubmit)}\" @keydown=\"${context._onkeydown}\">${ context.valueStateMessage.length ? block1(context, tags, suffix) : undefined }${ !context.readonly ? block2(context, tags, suffix) : undefined }</${scopeTag(\"ui5-input\", tags, suffix)}><slot name=\"formSupport\"></slot></div>`;\nconst block1 = (context, tags, suffix) => html`<slot name=\"valueStateMessage\" slot=\"valueStateMessage\"></slot>`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} slot=\"icon\" name=\"${ifDefined(context.openIconName)}\" tabindex=\"-1\" accessible-name=\"${ifDefined(context.openIconTitle)}\" show-tooltip @click=\"${context.togglePicker}\" input-icon ?pressed=\"${context._isPickerOpen}\" dir=\"${ifDefined(context.effectiveDir)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<${scopeTag(\"ui5-responsive-popover\", tags, suffix)} id=\"${ifDefined(context._id)}-responsive-popover\" allow-target-overlap stay-open-on-scroll placement-type=\"Bottom\" horizontal-align=\"Left\" ?disable-scrolling=\"${context._isIE}\" hide-arrow with-padding ?_hide-header=${ifDefined(context._shouldHideHeader)} @keydown=\"${context._onkeydown}\" @ui5-after-close=\"${ifDefined(context.onResponsivePopoverAfterClose)}\">${ context.showHeader ? block1(context, tags, suffix) : undefined }<${scopeTag(\"ui5-calendar\", tags, suffix)} id=\"${ifDefined(context._id)}-calendar\" primary-calendar-type=\"${ifDefined(context._primaryCalendarType)}\" secondary-calendar-type=\"${ifDefined(context.secondaryCalendarType)}\" format-pattern=\"${ifDefined(context._formatPattern)}\" timestamp=\"${ifDefined(context._calendarTimestamp)}\" .selectionMode=\"${ifDefined(context._calendarSelectionMode)}\" .minDate=\"${ifDefined(context.minDate)}\" .maxDate=\"${ifDefined(context.maxDate)}\" @ui5-selected-dates-change=\"${ifDefined(context.onSelectedDatesChange)}\" @ui5-show-month-press=\"${ifDefined(context.onHeaderShowMonthPress)}\" @ui5-show-year-press=\"${ifDefined(context.onHeaderShowYearPress)}\" ?hide-week-numbers=\"${context.hideWeekNumbers}\" ._currentPicker=\"${ifDefined(context._calendarCurrentPicker)}\">${ repeat(context._calendarSelectedDates, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</${scopeTag(\"ui5-calendar\", tags, suffix)}>${ context.showFooter ? block3(context, tags, suffix) : undefined }</${scopeTag(\"ui5-responsive-popover\", tags, suffix)}> `;\nconst block1 = (context, tags, suffix) => html`<div slot=\"header\" class=\"ui5-responsive-popover-header\"><div class=\"row\"><span>${ifDefined(context._headerTitleText)}</span><${scopeTag(\"ui5-button\", tags, suffix)} class=\"ui5-responsive-popover-close-btn\" icon=\"decline\" design=\"Transparent\" @click=\"${context.closePicker}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div></div>`;\nconst block2 = (item, index, context, tags, suffix) => html`<${scopeTag(\"ui5-date\", tags, suffix)} value=\"${ifDefined(item)}\"></${scopeTag(\"ui5-date\", tags, suffix)}>`;\nconst block3 = (context, tags, suffix) => html``;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\DatePicker.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}[input-icon]{color:var(--_ui5_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5_input_icon_padding);margin-right:var(--_ui5_input_icon_margin);border-left:var(--_ui5_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5_input_icon_border_radius);align-self:center}[input-icon][pressed]{background:var(--_ui5_input_icon_pressed_bg);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:not([pressed]):not(:active):hover{background:var(--_ui5_input_icon_hover_bg);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon]:hover{border-left:var(--_ui5_select_hover_icon_left_border);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon][dir=rtl]:hover{border-left:none;border-right:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]{border-left:none;margin-right:0;margin-left:var(--_ui5_input_icon_margin);border-right:var(--_ui5_input_icon_border)}:host(:not([hidden])){display:inline-block;line-height:normal;letter-spacing:normal;word-spacing:normal}:host{color:var(--sapField_TextColor);background-color:var(--sapField_Background);border-radius:var(--_ui5-datepicker_border_radius)}:host([value-state=Error]){background-color:var(--sapField_InvalidBackground)}:host(:not([disabled]):not([readonly]):active){background:var(--_ui5-datepicker-hover-background)}:host(:not([disabled]):not([readonly]):hover){background:var(--_ui5-datepicker-hover-background)}:host .ui5-date-picker-input{width:100%;min-width:12.5625rem;color:inherit;background-color:inherit;line-height:inherit;letter-spacing:inherit;word-spacing:inherit}:host(:not([disabled]):not([readonly])) .ui5-date-picker-input[focused]{background-color:var(--_ui5-datepicker-hover-background)}[slot=icon]{border-top-right-radius:var(--_ui5-datepicker_icon_border_radius);border-bottom-right-radius:var(--_ui5-datepicker_icon_border_radius)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\DatePickerPopover.css\",content:\"[ui5-calendar]{width:100%;display:flex;justify-content:center}\"}","import { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getRoundedTimestamp from \"@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport {\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n\tisShow,\n\tisF4,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone, isIE } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport \"@ui5/webcomponents-icons/dist/appointment-2.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport DateComponentBase from \"./DateComponentBase.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Calendar from \"./Calendar.js\";\nimport * as CalendarDateComponent from \"./CalendarDate.js\";\nimport Input from \"./Input.js\";\nimport InputType from \"./types/InputType.js\";\nimport DatePickerTemplate from \"./generated/templates/DatePickerTemplate.lit.js\";\nimport DatePickerPopoverTemplate from \"./generated/templates/DatePickerPopoverTemplate.lit.js\";\n\n// default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Styles\nimport datePickerCss from \"./generated/themes/DatePicker.css.js\";\nimport datePickerPopoverCss from \"./generated/themes/DatePickerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-date-picker\",\n\taltTag: \"ui5-datepicker\",\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {\n\t\t/**\n\t\t * Defines a formatted date value.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is required.\n\t\t *\n\t\t * @since 1.0.0-rc.9\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is displayed as disabled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is displayed as read-only.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines a short hint, intended to aid the user with data entry when the\n\t\t * component has no value.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.\n\t\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the visibility of the week numbers column.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> For calendars other than Gregorian,\n\t\t * the week numbers are not displayed regardless of what is set.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\thideWeekNumbers: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the aria-label attribute for the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t_isPickerOpen: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_respPopoverConfig: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t_calendarCurrentPicker: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"day\",\n\t\t},\n\t},\n\n\tslots: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the component.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t * <br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t\t * @type {HTMLElement}\n\t\t * @since 1.0.0-rc.7\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\n\tevents: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {\n\n\t\t/**\n\t\t * Fired when the input operation has finished by pressing Enter or on focusout.\n\t\t *\n\t\t * @event\n\t\t * @allowPreventDefault\n\t\t * @public\n\t\t * @param {String} value The submitted value.\n\t\t * @param {Boolean} valid Indicator if the value is in correct format pattern and in valid range.\n\t\t*/\n\t\tchange: {\n\t\t\tdetails: {\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: String,\n\t\t\t\t},\n\t\t\t\tvalid: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the value of the component is changed at each key stroke.\n\t\t *\n\t\t * @event\n\t\t * @allowPreventDefault\n\t\t * @public\n\t\t * @param {String} value The submitted value.\n\t\t * @param {Boolean} valid Indicator if the value is in correct format pattern and in valid range.\n\t\t*/\n\t\tinput: {\n\t\t\tdetails: {\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: String,\n\t\t\t\t},\n\t\t\t\tvalid: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-date-picker</code> component provides an input field with assigned calendar which opens on user action.\n * The <code>ui5-date-picker</code> allows users to select a localized date using touch,\n * mouse, or keyboard input. It consists of two parts: the date input field and the\n * date picker.\n *\n * <h3>Usage</h3>\n *\n * The user can enter a date by:\n * <ul>\n * <li>Using the calendar that opens in a popup</li>\n * <li>Typing it in directly in the input field</li>\n * </ul>\n * <br><br>\n * When the user makes an entry and presses the enter key, the calendar shows the corresponding date.\n * When the user directly triggers the calendar display, the actual date is displayed.\n *\n * <h3>Formatting</h3>\n *\n * If a date is entered by typing it into\n * the input field, it must fit to the used date format.\n * <br><br>\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see <ui5-link target=\"_blank\" href=\"http://unicode.org/reports/tr35/#Date_Field_Symbol_Table\" class=\"api-table-content-cell-link\">UTS #35: Unicode Locale Data Markup Language</ui5-link>.\n * <br><br>\n * For example, if the <code>format-pattern</code> is \"yyyy-MM-dd\",\n * a valid value string is \"2015-07-30\" and the same is displayed in the input.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-date-picker</code> provides advanced keyboard handling.\n * If the <code>ui5-date-picker</code> is focused,\n * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.\n * Once the drop-down is opened, you can use the <code>UP</code>, <code>DOWN</code>, <code>LEFT</code>, <code>RIGHT</code> arrow keys\n * to navigate through the dates and select one by pressing the <code>Space</code> or <code>Enter</code> keys. Moreover you can\n * use TAB to reach the buttons for changing month and year.\n * <br>\n *\n * If the <code>ui5-date-picker</code> is focused and the picker dialog is not opened the user can\n * increment or decrement the corresponding field of the JS date object referenced by <code>dateValue</code> propery\n * by using the following shortcuts:\n * <br>\n * <ul>\n * <li>[PAGEDOWN] - Decrements the corresponding day of the month by one</li>\n * <li>[SHIFT] + [PAGEDOWN] - Decrements the corresponding month by one</li>\n * <li>[SHIFT] + [CTRL] + [PAGEDOWN] - Decrements the corresponding year by one</li>\n * <li>[PAGEUP] - Increments the corresponding day of the month by one</li>\n * <li>[SHIFT] + [PAGEUP] - Increments the corresponding month by one</li>\n * <li>[SHIFT] + [CTRL] + [PAGEUP] - Increments the corresponding year by one</li>\n * </ul>\n *\n * <h3>Calendar types</h3>\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the <code>primaryCalendarType</code> property and import one or more of the following modules:\n * <br><br>\n *\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";</code>\n * <br><br>\n *\n * Or, you can use the global configuration and set the <code>calendarType</code> key:\n * <br>\n * <pre><code><script data-id=\"sap-ui-config\" type=\"application/json\">\n * {\n *\t\"calendarType\": \"Japanese\"\n * }\n * </script></code></pre>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/DatePicker\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.DatePicker\n * @extends DateComponentBase\n * @tagname ui5-date-picker\n * @public\n */\nclass DatePicker extends DateComponentBase {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get template() {\n\t\treturn DatePickerTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn DatePickerPopoverTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn datePickerCss;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn [ResponsivePopoverCommonCss, datePickerPopoverCss];\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tonResponsivePopoverAfterClose() {\n\t\tthis._isPickerOpen = false;\n\t\tif (isPhone()) {\n\t\t\tthis.blur(); // close device's keyboard and prevent further typing\n\t\t} else {\n\t\t\tthis._getInput().focus();\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\t[\"minDate\", \"maxDate\"].forEach(prop => {\n\t\t\tif (this[prop] && !this.isValid(this[prop])) {\n\t\t\t\tconsole.warn(`Invalid value for property \"${prop}\": ${this[prop]} is not compatible with the configured format pattern: \"${this._displayFormat}\"`); // eslint-disable-line\n\t\t\t}\n\t\t});\n\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this);\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\n\t\tthis.liveValue = this.value;\n\t}\n\n\t/**\n\t * Override in derivatives to change calendar selection mode\n\t * @returns {string}\n\t * @protected\n\t */\n\tget _calendarSelectionMode() {\n\t\treturn \"Single\";\n\t}\n\n\t/**\n\t * Used to provide a timestamp to the Calendar (to focus it to a relevant date when open) based on the component's state\n\t * Override in derivatives to provide the calendar a timestamp based on their properties\n\t * By default focus the calendar on the selected date if set, or the current day otherwise\n\t * @protected\n\t */\n\tget _calendarTimestamp() {\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\tconst millisecondsUTC = this.dateValueUTC.getTime();\n\t\t\treturn getRoundedTimestamp(millisecondsUTC);\n\t\t}\n\n\t\treturn getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Used to provide selectedDates to the calendar based on the component's state\n\t * Override in derivatives to provide different rules for setting the calendar's selected dates\n\t * @protected\n\t */\n\tget _calendarSelectedDates() {\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn [this.value];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isShow(event)) {\n\t\t\tevent.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down\n\t\t\tif (this.isOpen()) {\n\t\t\t\tif (!isF4(event)) {\n\t\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPageUpShiftCtrl(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"year\");\n\t\t} else if (isPageUpShift(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"month\");\n\t\t} else if (isPageUp(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"day\");\n\t\t} else if (isPageDownShiftCtrl(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"year\");\n\t\t} else if (isPageDownShift(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"month\");\n\t\t} else if (isPageDown(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"day\");\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param amount\n\t * @param unit\n\t * @protected\n\t */\n\t_modifyDateValue(amount, unit) {\n\t\tif (!this.dateValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, this._minDate, this._maxDate);\n\t\tconst newValue = this.formatValue(modifiedDate.toUTCJSDate());\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t_updateValueAndFireEvents(value, normalizeValue, events, updateValue = true) {\n\t\tconst valid = this._checkValueValidity(value);\n\n\t\tif (valid && normalizeValue) {\n\t\t\tvalue = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n\t\t}\n\n\t\tlet executeEvent = true;\n\t\tthis.liveValue = value;\n\n\t\tevents.forEach(event => {\n\t\t\tif (!this.fireEvent(event, { value, valid }, true)) {\n\t\t\t\texecuteEvent = false;\n\t\t\t}\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (updateValue) {\n\t\t\tthis.value = value;\n\t\t\tthis._updateValueState(); // Change the value state to Error/None, but only if needed\n\t\t}\n\t}\n\n\t_updateValueState() {\n\t\tconst isValid = this._checkValueValidity(this.value);\n\t\tif (!isValid) { // If not valid - always set Error regardless of the current value state\n\t\t\tthis.valueState = ValueState.Error;\n\t\t} else if (isValid && this.valueState === ValueState.Error) { // However if valid, change only Error (but not the others) to None\n\t\t\tthis.valueState = ValueState.None;\n\t\t}\n\t}\n\n\t_toggleAndFocusInput() {\n\t\tthis.togglePicker();\n\t\tthis._getInput().focus();\n\t}\n\n\t_getInput() {\n\t\treturn this.shadowRoot.querySelector(\"[ui5-input]\");\n\t}\n\n\t/**\n\t * The ui5-input \"submit\" event handler - fire change event when the user presses enter\n\t * @protected\n\t */\n\t_onInputSubmit(event) {}\n\n\t/**\n\t * The ui5-input \"change\" event handler - fire change event when the user focuses out of the input\n\t * @protected\n\t */\n\t_onInputChange(event) {\n\t\tthis._updateValueAndFireEvents(event.target.value, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t/**\n\t * The ui5-input \"input\" event handler - fire input even when the user types\n\t * @protected\n\t */\n\tasync _onInputInput(event) {\n\t\tthis._updateValueAndFireEvents(event.target.value, false, [\"input\"], false);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_checkValueValidity(value) {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.isValid(value) && this.isInValidRange(value);\n\t}\n\n\t_click(event) {\n\t\tif (isPhone()) {\n\t\t\tthis.responsivePopover.showAt(this);\n\t\t\tevent.preventDefault(); // prevent immediate selection of any item\n\t\t}\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @param {string} value A value to be tested against the current date format\n\t * @public\n\t */\n\tisValid(value = \"\") {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!this.getFormat().parse(value);\n\t}\n\n\t/**\n\t * Checks if a date is between the minimum and maximum date.\n\t * @param {string} value A value to be checked\n\t * @returns {boolean}\n\t * @public\n\t */\n\tisInValidRange(value = \"\") {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst calendarDate = this._getCalendarDateFromString(value);\n\t\treturn calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @protected\n\t */\n\tnormalizeValue(value) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC\n\t}\n\n\tget _displayFormat() {\n\t\treturn this.getFormat().oFormatOptions.pattern;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn DatePicker.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget phone() {\n\t\treturn isPhone();\n\t}\n\n\tget showHeader() {\n\t\treturn this.phone;\n\t}\n\n\tget showFooter() {\n\t\treturn this.phone;\n\t}\n\n\tget _isIE() {\n\t\treturn isIE();\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": \"true\",\n\t\t\t\"ariaAutoComplete\": \"none\",\n\t\t\t\"role\": \"combobox\",\n\t\t\t\"ariaControls\": `${this._id}-responsive-popover`,\n\t\t\t\"ariaExpanded\": this.isOpen(),\n\t\t\t\"ariaRequired\": this.required,\n\t\t\t\"ariaLabel\": getEffectiveAriaLabelText(this),\n\t\t};\n\t}\n\n\tget openIconTitle() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_OPEN_ICON_TITLE);\n\t}\n\n\tget openIconName() {\n\t\treturn \"appointment-2\";\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);\n\t}\n\n\t/**\n\t * Defines whether the dialog on mobile should have header\n\t * @private\n\t */\n\tget _shouldHideHeader() {\n\t\treturn false;\n\t}\n\n\tasync _respPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"[ui5-responsive-popover]\");\n\t}\n\n\t_canOpenPicker() {\n\t\treturn !this.disabled && !this.readonly;\n\t}\n\n\t/**\n\t * The user selected a new date in the calendar\n\t * @param event\n\t * @protected\n\t */\n\tonSelectedDatesChange(event) {\n\t\tevent.preventDefault();\n\t\tconst newValue = event.detail.values && event.detail.values[0];\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tthis.closePicker();\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress() {\n\t\tthis._calendarCurrentPicker = \"month\";\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress() {\n\t\tthis._calendarCurrentPicker = \"year\";\n\t}\n\n\t/**\n\t * Formats a Java Script date object into a string representing a locale date\n\t * according to the <code>formatPattern</code> property of the DatePicker instance\n\t * @param {object} date A Java Script date object to be formatted as string\n\t * @returns {string} The date as string\n\t * @public\n\t */\n\tformatValue(date) {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t/**\n\t * Closes the picker.\n\t * @public\n\t */\n\tclosePicker() {\n\t\tthis.responsivePopover.close();\n\t}\n\n\t/**\n\t * Opens the picker.\n\t * @public\n\t * @async\n\t * @returns {Promise} Resolves when the picker is open\n\t */\n\tasync openPicker() {\n\t\tthis._isPickerOpen = true;\n\t\tthis._calendarCurrentPicker = \"day\";\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tthis.responsivePopover.showAt(this);\n\t}\n\n\ttogglePicker() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.closePicker();\n\t\t} else if (this._canOpenPicker()) {\n\t\t\tthis.openPicker();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the picker is open.\n\t * @returns {boolean} true if the picker is open, false otherwise\n\t * @public\n\t */\n\tisOpen() {\n\t\treturn !!this._isPickerOpen;\n\t}\n\n\t/**\n\t * Currently selected date represented as a Local JavaScript Date instance.\n\t *\n\t * @readonly\n\t * @type { Date }\n\t * @public\n\t */\n\tget dateValue() {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue) : this.getFormat().parse(this.value);\n\t}\n\n\tget dateValueUTC() {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue, true) : this.getFormat().parse(this.value);\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn InputType.Text;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tIcon,\n\t\t\tResponsivePopover,\n\t\t\tCalendar,\n\t\t\tCalendarDateComponent.default,\n\t\t\tInput,\n\t\t\tButton,\n\t\t];\n\t}\n}\n\nDatePicker.define();\n\nexport default DatePicker;\n","/**\n * Returns a timestamp with only the year, month and day (with zero hours, minutes and seconds) and without 000 for milliseconds\n * @param millisecondsUTC\n * @returns {number}\n */\nconst getRoundedTimestamp = millisecondsUTC => {\n\tif (!millisecondsUTC) {\n\t\tmillisecondsUTC = new Date().getTime();\n\t}\n\tconst rounded = millisecondsUTC - (millisecondsUTC % (24 * 60 * 60 * 1000));\n\treturn rounded / 1000;\n};\n\nexport default getRoundedTimestamp;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"time-entry-request\";\nconst pathData = \"M256.5 103c15 0 25 11 25 26v120l72 95c7 10 5 28-5 35-11 8-29 5-36-5l-77-102c-2-5-5-10-5-15V129c0-15 10-26 26-26zm0-102c140 0 255 115 255 256 0 140-115 255-255 255-16 0-26-10-26-25 0-16 10-26 26-26 112 0 204-92 204-204 0-113-92-205-204-205-105 0-192 79-202 182-3 12-16 23-28 23-16-3-26-16-23-28 15-128 122-228 253-228zm-103 307c16 0 26 10 26 25 0 16-10 26-26 26h-127c-16 0-26-10-26-26 0-15 10-25 26-25h127zm0 76c16 0 26 11 26 26s-10 26-26 26h-127c-16 0-26-11-26-26s10-26 26-26h127zm0 77c16 0 26 10 26 26 0 15-10 25-26 25h-127c-16 0-26-10-26-25 0-16 10-26 26-26h127z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"time-entry-request\";\nconst pathData = \"M416 272q0 16-16 16H224V144q0-16 16-16t16 16v112h144q16 0 16 16zM256 0q53 0 99.5 20T437 75t55 81.5 20 99.5q0 49-17.5 92.5T447 426t-71 56-88 28v-32q40-6 75.5-25.5t61-49T465 336t15-80q0-46-17.5-87t-48-71.5-71.5-48T256 32q-38 0-72.5 12T121 77.5t-49 51T41 192H8q11-41 34.5-76.5t56-61 72.5-40T256 0zM144 480q16 0 16 16 0 6-4.5 11t-11.5 5H16q-6 0-11-5t-5-11q0-7 5-11.5t11-4.5h128zm0-64q16 0 16 16 0 6-4.5 11t-11.5 5H16q-6 0-11-5t-5-11q0-7 5-11.5t11-4.5h128zm0-64q16 0 16 16 0 6-4.5 11t-11.5 5H16q-6 0-11-5t-5-11q0-7 5-11.5t11-4.5h128z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/time-entry-request.js\";\nimport pathDataV5 from \"./v4/time-entry-request.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}\" class=\"ui5-time-picker-root\"><${scopeTag(\"ui5-input\", tags, suffix)} id=\"${ifDefined(context._id)}-inner\" value=\"${ifDefined(context.value)}\" placeholder=\"${ifDefined(context._placeholder)}\" ?disabled=\"${context.disabled}\" ?readonly=\"${context.readonly}\" value-state=\"${ifDefined(context.valueState)}\" ._inputAccInfo=\"${ifDefined(context.accInfo)}\" data-sap-focus-ref @click=\"${context._handleInputClick}\" @ui5-change=\"${ifDefined(context._handleInputChange)}\" @ui5-input=\"${ifDefined(context._handleInputLiveChange)}\" class=\"ui5-time-picker-input\" @keydown=\"${context._onkeydown}\">${ context.valueStateMessage.length ? block1(context, tags, suffix) : undefined }${ !context.readonly ? block2(context, tags, suffix) : undefined }</${scopeTag(\"ui5-input\", tags, suffix)}></div>`;\nconst block1 = (context, tags, suffix) => html`<slot name=\"valueStateMessage\" slot=\"valueStateMessage\"></slot>`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} slot=\"icon\" name=\"${ifDefined(context.openIconName)}\" tabindex=\"-1\" show-tooltip @click=\"${context.togglePicker}\" input-icon ?pressed=\"${context._isPickerOpen}\" class=\"ui5-time-picker-input-icon-button\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<${scopeTag(\"ui5-responsive-popover\", tags, suffix)} id=\"${ifDefined(context._id)}-responsive-popover\" class=\"ui5-time-picker-popover\" placement-type=\"Bottom\" horizontal-align=\"Left\" allow-target-overlap _hide-header hide-arrow stay-open-on-scroll @ui5-after-close=\"${ifDefined(context.onResponsivePopoverAfterClose)}\" @wheel=\"${context._handleWheel}\" @keydown=\"${context._onkeydown}\"><${scopeTag(\"ui5-time-selection\", tags, suffix)} id=\"${ifDefined(context._id)}-time-sel\" value=\"${ifDefined(context._timeSelectionValue)}\" format-pattern=\"${ifDefined(context._formatPattern)}\" .hideHours=\"${ifDefined(context.hideHours)}\" .hideMinutes=\"${ifDefined(context.hideMinutes)}\" .hideSeconds=\"${ifDefined(context.hideSeconds)}\" .minutesStep=\"${ifDefined(context.minutesStep)}\" .secondsStep=\"${ifDefined(context.secondsStep)}\" .maxHours=\"${ifDefined(context.maxHours)}\" .maxMinutes=\"${ifDefined(context.maxMinutes)}\" .maxSeconds=\"${ifDefined(context.maxSeconds)}\" @ui5-change=\"${ifDefined(context.onTimeSelectionChange)}\"></${scopeTag(\"ui5-time-selection\", tags, suffix)}><div slot=\"footer\" class=\"ui5-time-picker-footer\" @keydown=${context._onfooterkeydown}><${scopeTag(\"ui5-button\", tags, suffix)} id=\"submit\" design=\"Emphasized\" @click=\"${context.submitPickers}\">${ifDefined(context.submitButtonLabel)}</${scopeTag(\"ui5-button\", tags, suffix)}><${scopeTag(\"ui5-button\", tags, suffix)} id=\"close\" design=\"Transparent\" @click=\"${context.closePicker}\">${ifDefined(context.cancelButtonLabel)}</${scopeTag(\"ui5-button\", tags, suffix)}></div></${scopeTag(\"ui5-responsive-popover\", tags, suffix)}>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"${classMap(context.classes.root)}\" tabindex=\"-1\" @keydown=${context._onkeydown} @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\">${ context._hasHoursSlider ? block1(context, tags, suffix) : undefined }${ context._hasMinutesSlider ? block2(context, tags, suffix) : undefined }${ context._hasSecondsSlider ? block3(context, tags, suffix) : undefined }${ context._hasPeriodsSlider ? block4(context, tags, suffix) : undefined }</div>`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-wheelslider\", tags, suffix)} label = \"${ifDefined(context.hoursSliderTitle)}\" ._items=\"${ifDefined(context.hoursArray)}\" data-sap-focus-ref ?expanded=\"${context._hoursSliderFocused}\" value=\"${ifDefined(context._hours)}\" @ui5-select=\"${ifDefined(context.onHoursChange)}\" @click=\"${context.selectSlider}\" @focusin=\"${context.selectSlider}\" data-sap-slider=\"hours\" ?cyclic=\"${context._isCyclic}\"></${scopeTag(\"ui5-wheelslider\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-wheelslider\", tags, suffix)} label = \"${ifDefined(context.minutesSliderTitle)}\" ._items=\"${ifDefined(context.minutesArray)}\" ?expanded=\"${context._minutesSliderFocused}\" value=\"${ifDefined(context._minutes)}\" @ui5-select=\"${ifDefined(context.onMinutesChange)}\" @click=\"${context.selectSlider}\" @focusin=\"${context.selectSlider}\" data-sap-slider=\"minutes\" ?cyclic=\"${context._isCyclic}\"></${scopeTag(\"ui5-wheelslider\", tags, suffix)}>`;\nconst block3 = (context, tags, suffix) => html`<${scopeTag(\"ui5-wheelslider\", tags, suffix)} label = \"${ifDefined(context.secondsSliderTitle)}\" ._items=\"${ifDefined(context.secondsArray)}\" ?expanded=\"${context._secondsSliderFocused}\" value=\"${ifDefined(context._seconds)}\" @ui5-select=\"${ifDefined(context.onSecondsChange)}\" @click=\"${context.selectSlider}\" @focusin=\"${context.selectSlider}\" data-sap-slider=\"seconds\" ?cyclic=\"${context._isCyclic}\"></${scopeTag(\"ui5-wheelslider\", tags, suffix)}>`;\nconst block4 = (context, tags, suffix) => html`<${scopeTag(\"ui5-wheelslider\", tags, suffix)} label = \"${ifDefined(context.periodSliderTitle)}\" ._items=\"${ifDefined(context.periodsArray)}\" ?expanded=\"${context._periodSliderFocused}\" value=\"${ifDefined(context._period)}\" @ui5-select=\"${ifDefined(context.onPeriodChange)}\" @click=\"${context.selectSlider}\" @focusin=\"${context.selectSlider}\" data-sap-slider=\"periods\"></${scopeTag(\"ui5-wheelslider\", tags, suffix)}>`;\n\n\nexport default block0;","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"navigation-up-arrow\";\nconst pathData = \"M258.5 237l-102 103c-6 6-14 9-22 9s-15-3-22-9c-6-7-9-14-9-22s3-16 9-22l124-124c7-6 14-9 22-9s16 3 22 9l124 124c6 6 9 14 9 22s-3 15-9 22c-6 6-14 9-22 9s-15-3-22-9z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"navigation-up-arrow\";\nconst pathData = \"M86.5 380q-9 9-22.5 9t-22.5-9q-10-10-10-23t10-23l193-197q4-2 5-3 2-1 2.5-1.5t2.5-1.5q6-2 11-2 2 0 3 .5t2 .5q4 0 6 1t3.5 2 3.5 2q1 1 1.5 1t1.5 1 2 1l192 196q10 10 10 23t-10 23q-9 9-22.5 9t-22.5-9l-154-155q-16-10-32 0z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/navigation-up-arrow.js\";\nimport pathDataV5 from \"./v4/navigation-up-arrow.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"navigation-down-arrow\";\nconst pathData = \"M258.5 275l102-103c7-6 14-9 22-9s16 3 22 9c6 7 9 14 9 22s-3 15-9 22l-124 124c-6 6-14 9-22 9s-15-3-22-9l-124-124c-6-7-9-14-9-22s3-15 9-22c7-6 14-9 22-9s16 3 22 9z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"navigation-down-arrow\";\nconst pathData = \"M425.5 137q9-9 22.5-9t22.5 9q10 10 10 23t-10 23l-193 197q-4 2-5 3-2 1-2.5 1.5t-2.5 1.5q-6 2-11 2-2 0-3-.5t-2-.5q-4 0-6-1t-3.5-2-3.5-2q-1-1-1.5-1t-1.5-1-2-1l-192-196q-10-10-10-23t10-23q9-9 22.5-9t22.5 9l154 155q16 10 32 0z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/navigation-down-arrow.js\";\nimport pathDataV5 from \"./v4/navigation-down-arrow.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","const tasks = new WeakMap();\n\nclass AnimationQueue {\n\tstatic get tasks() {\n\t\treturn tasks;\n\t}\n\n\tstatic enqueue(element, task) {\n\t\tif (!tasks.has(element)) {\n\t\t\ttasks.set(element, []);\n\t\t}\n\n\t\ttasks.get(element).push(task);\n\t}\n\n\tstatic run(element, task) {\n\t\tif (!tasks.has(element)) {\n\t\t\ttasks.set(element, []);\n\t\t}\n\n\t\treturn task().then(() => {\n\t\t\tconst elementTasks = tasks.get(element);\n\n\t\t\tif (elementTasks.length > 0) {\n\t\t\t\treturn AnimationQueue.run(element, elementTasks.shift());\n\t\t\t}\n\t\t\ttasks.delete(element);\n\t\t});\n\t}\n\n\tstatic push(element, task) {\n\t\tconst elementTasks = tasks.get(element);\n\n\t\tif (elementTasks) {\n\t\t\tAnimationQueue.enqueue(element, task);\n\t\t} else {\n\t\t\tAnimationQueue.run(element, task);\n\t\t}\n\t}\n}\n\nexport default AnimationQueue;\n","export default {\n\tdefaultDuration: 400,\n\telement: document.createElement(\"DIV\"),\n\tidentity: () => {},\n};\n","import animate from \"./animate.js\";\nimport animationConfig from \"./config.js\";\n\nexport default ({\n\telement = animationConfig.element,\n\tduration = animationConfig.duration,\n\tprogress: progressCallback = animationConfig.identity,\n\tdx = 0,\n\tdy = 0,\n}) => {\n\tlet scrollLeft;\n\tlet scrollTop;\n\n\treturn animate({\n\t\tbeforeStart: () => {\n\t\t\tscrollLeft = element.scrollLeft;\n\t\t\tscrollTop = element.scrollTop;\n\t\t},\n\t\tduration,\n\t\telement,\n\t\tprogress: progress => {\n\t\t\tprogressCallback(progress);\n\n\t\t\telement.scrollLeft = scrollLeft + (progress * dx); // easing - linear\n\t\t\telement.scrollTop = scrollTop + (progress * dy); // easing - linear\n\t\t},\n\t});\n};\n","import AnimationQueue from \"./AnimationQueue.js\";\nimport animationConfig from \"./config.js\";\n\nexport default ({\n\tbeforeStart = animationConfig.identity,\n\tduration = animationConfig.defaultDuration,\n\telement = animationConfig.element,\n\tprogress: progressCallback = animationConfig.identity,\n}) => {\n\tlet start = null;\n\tlet stopped = false;\n\tlet animationFrame;\n\tlet stop;\n\tlet animate;\n\n\tconst promise = new Promise((resolve, reject) => {\n\t\tanimate = timestamp => {\n\t\t\tstart = start || timestamp;\n\n\t\t\tconst timeElapsed = timestamp - start;\n\t\t\tconst remaining = duration - timeElapsed;\n\n\t\t\tif (timeElapsed <= duration) {\n\t\t\t\tconst progress = 1 - remaining / duration; // easing formula (currently linear)\n\t\t\t\tprogressCallback(progress);\n\t\t\t\tanimationFrame = !stopped && requestAnimationFrame(animate);\n\t\t\t} else {\n\t\t\t\tprogressCallback(1);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\n\t\tstop = () => {\n\t\t\tstopped = true;\n\t\t\tcancelAnimationFrame(animationFrame);\n\t\t\treject(new Error(\"animation stopped\"));\n\t\t};\n\t}).catch(oReason => oReason);\n\n\tAnimationQueue.push(element, () => {\n\t\tbeforeStart();\n\t\trequestAnimationFrame(animate);\n\n\t\treturn new Promise(resolve => {\n\t\t\tpromise.then(() => resolve());\n\t\t});\n\t});\n\n\treturn {\n\t\tpromise: () => promise,\n\t\tstop: () => stop,\n\t};\n};\n","import { supportsTouch } from \"../Device.js\";\nimport EventProvider from \"../EventProvider.js\";\nimport scroll from \"../animations/scroll.js\";\n\nconst scrollEventName = \"scroll\";\nconst touchEndEventName = supportsTouch() ? \"touchend\" : \"mouseup\";\n\nclass ScrollEnablement extends EventProvider {\n\tconstructor(containerComponent) {\n\t\tsuper();\n\t\tthis.containerComponent = containerComponent;\n\t\tthis.mouseMove = this.ontouchmove.bind(this);\n\t\tthis.mouseUp = this.ontouchend.bind(this);\n\t\tthis.touchStart = this.ontouchstart.bind(this);\n\n\t\tthis.supportsTouch = supportsTouch();\n\n\t\t// On Android devices touchmove is thrown one more time than neccessary (together with touchend)\n\t\t// so we have to cache the previus coordinates in order to provide correct parameters in the\n\t\t// event for Android\n\t\tthis.cachedValue = {};\n\n\t\t// In components like Carousel you need to know if the user has clicked on something or swiped\n\t\t// in order to throw the needed event or not\n\t\tthis.startX = 0;\n\t\tthis.startY = 0;\n\n\t\tif (this.supportsTouch) {\n\t\t\tcontainerComponent.addEventListener(\"touchstart\", this.touchStart, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchmove\", this.mouseMove, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchend\", this.mouseUp, { passive: true });\n\t\t} else {\n\t\t\tcontainerComponent.addEventListener(\"mousedown\", this.touchStart, { passive: true });\n\t\t}\n\t}\n\n\tset scrollContainer(container) {\n\t\tthis._container = container;\n\t}\n\n\tget scrollContainer() {\n\t\treturn this._container;\n\t}\n\n\t/**\n\t * Scrolls the container to the left/top position, retrying retryCount times, if the container is not yet painted\n\t *\n\t * @param left\n\t * @param top\n\t * @param retryCount\n\t * @param retryInterval\n\t * @returns {Promise<void>} resolved when scrolled successfully\n\t */\n\tasync scrollTo(left, top, retryCount = 0, retryInterval = 0) {\n\t\tlet containerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\t\twhile (!containerPainted && retryCount > 0) {\n\t\t\tawait new Promise(resolve => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tcontainerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\t\t\t\t\tretryCount--;\n\t\t\t\t\tresolve();\n\t\t\t\t}, retryInterval);\n\t\t\t});\n\t\t}\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\n\t\tthis._container.scrollLeft = left;\n\t\tthis._container.scrollTop = top;\n\t}\n\n\tmove(dx, dy, disableAnimation) {\n\t\tif (disableAnimation) {\n\t\t\tthis._container.scrollLeft += dx;\n\t\t\tthis._container.scrollTop += dy;\n\t\t\treturn;\n\t\t}\n\n\t\treturn scroll({\n\t\t\telement: this._container,\n\t\t\tdx,\n\t\t\tdy,\n\t\t});\n\t}\n\n\tgetScrollLeft() {\n\t\treturn this._container.scrollLeft;\n\t}\n\n\tgetScrollTop() {\n\t\treturn this._container.scrollTop;\n\t}\n\n\t_isTouchInside(touch) {\n\t\tconst rect = this._container.getBoundingClientRect();\n\t\tconst x = this.supportsTouch ? touch.clientX : touch.x;\n\t\tconst y = this.supportsTouch ? touch.clientY : touch.y;\n\n\t\treturn x >= rect.left && x <= rect.right\n\t\t\t&& y >= rect.top && y <= rect.bottom;\n\t}\n\n\tontouchstart(event) {\n\t\tconst touch = this.supportsTouch ? event.touches[0] : null;\n\n\t\tif (!this.supportsTouch) {\n\t\t\tdocument.addEventListener(\"mouseup\", this.mouseUp, { passive: true });\n\t\t\tdocument.addEventListener(\"mousemove\", this.mouseMove, { passive: true });\n\t\t} else {\n\t\t\t// Needed only on mobile\n\t\t\tthis.startX = touch.pageX;\n\t\t\tthis.startY = touch.pageY;\n\t\t}\n\n\t\tthis._prevDragX = this.supportsTouch ? touch.pageX : event.x;\n\t\tthis._prevDragY = this.supportsTouch ? touch.pageY : event.y;\n\n\t\tthis._canScroll = this._isTouchInside(this.supportsTouch ? touch : event);\n\t}\n\n\tontouchmove(event) {\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst touch = this.supportsTouch ? event.touches[0] : null;\n\n\t\tconst dragX = this.supportsTouch ? touch.pageX : event.x;\n\t\tconst dragY = this.supportsTouch ? touch.pageY : event.y;\n\n\t\tcontainer.scrollLeft += this._prevDragX - dragX;\n\t\tcontainer.scrollTop += this._prevDragY - dragY;\n\n\t\tthis.fireEvent(scrollEventName, {\n\t\t\tisLeft: dragX > this._prevDragX,\n\t\t\tisRight: dragX < this._prevDragX,\n\t\t});\n\n\t\tthis.cachedValue.dragX = this._prevDragX;\n\t\tthis.cachedValue.dragY = this._prevDragY;\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\t}\n\n\tontouchend(event) {\n\t\tif (this.supportsTouch) {\n\t\t\tconst deltaX = Math.abs(event.changedTouches[0].pageX - this.startX);\n\t\t\tconst deltaY = Math.abs(event.changedTouches[0].pageY - this.startY);\n\n\t\t\tif (deltaX < 10 && deltaY < 10) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst dragX = this.supportsTouch ? event.changedTouches[0].pageX : event.x;\n\t\tconst dragY = this.supportsTouch ? event.changedTouches[0].pageY : event.y;\n\n\t\tcontainer.scrollLeft += this._prevDragX - dragX;\n\t\tcontainer.scrollTop += this._prevDragY - dragY;\n\n\t\tconst useCachedValues = dragX === this._prevDragX;\n\t\tconst _dragX = useCachedValues ? this.cachedValue.dragX : dragX;\n\t\t// const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed\n\n\t\tthis.fireEvent(touchEndEventName, {\n\t\t\tisLeft: _dragX < this._prevDragX,\n\t\t\tisRight: _dragX > this._prevDragX,\n\t\t});\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\n\t\tif (!this.supportsTouch) {\n\t\t\tdocument.removeEventListener(\"mousemove\", this.mouseMove, { passive: true });\n\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseUp);\n\t\t}\n\t}\n}\n\nexport default ScrollEnablement;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}\" ?disabled= \"${ifDefined(context.disabled)}\" value = \"${ifDefined(context.value)}\" label = \"${ifDefined(context.label)}\" @click = ${ifDefined(context._onclick)} @keydown=${context._onkeydown} class = \"${classMap(context.classes.root)}\" data-sap-focus-ref tabindex=\"0\" @wheel=\"${context._handleWheel}\"><div class=\"ui5-wheelslider-header-block\"><div id=\"${ifDefined(context._id)}--label\" class=\"ui5-wheelslider-label\">${ifDefined(context.label)}</div><div class=\"ui5-wheelslider-invisible-text\"></div><${scopeTag(\"ui5-button\", tags, suffix)} class=\"ui5-wheelslider-arrow\" icon=\"navigation-up-arrow\" @click=${context._onArrowUp} tabindex=\"-1\"></${scopeTag(\"ui5-button\", tags, suffix)}></div><div id=\"${ifDefined(context._id)}--inner\" class=\"ui5-wheelslider-inner\"><div id=\"${ifDefined(context._id)}--selection-frame\" class=\"ui5-wheelslider-selection-frame\"></div><div id=\"${ifDefined(context._id)}--wrapper\" class=\"ui5-wheelslider-wrapper\">${ context.expanded ? block1(context, tags, suffix) : block3(context, tags, suffix) }</div></div><div class=\"ui5-wheelslider-footer-block\"><${scopeTag(\"ui5-button\", tags, suffix)} class=\"ui5-wheelslider-arrow\" icon=\"navigation-down-arrow\" @click=${context._onArrowDown} tabindex=\"-1\"></${scopeTag(\"ui5-button\", tags, suffix)}></div></div>`;\nconst block1 = (context, tags, suffix) => html`<ul id=\"${ifDefined(context._id)}--items-list\" role=\"listbox\" aria-label=\"${ifDefined(context.label)}\">${ repeat(context._itemsToShow, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</ul>`;\nconst block2 = (item, index, context, tags, suffix) => html`<li class=\"ui5-wheelslider-item\" data-item-index=\"${index}\" role=\"option\" aria-selected=\"${ifDefined(item.selected)}\">${ifDefined(item.value)}</li>`;\nconst block3 = (context, tags, suffix) => html`<ul id=\"${ifDefined(context._id)}--items-list\" role=\"listbox\" aria-label=\"${ifDefined(context.label)}\"><li class=\"ui5-wheelslider-item\" role=\"option\" aria-selected=\"true\">${ifDefined(context.value)}</li></ul>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\WheelSlider.css\",content:\".ui5-wheelslider-root{overflow:hidden;height:100%;vertical-align:middle;text-align:center;box-sizing:border-box;font-family:\\\"72override\\\",var(--sapFontFamily);justify-content:space-between;flex-direction:column;display:inline-flex;width:var(--_ui5_wheelslider_item_width)}.ui5-wheelslider-root .ui5-wheelslider-label{box-sizing:border-box;height:2rem;line-height:2rem;width:var(--_ui5_wheelslider_item_width);font-size:var(--sapFontSmallSize);color:var(--_ui5_wheelslider_label_text_color);text-align:center;vertical-align:middle;visibility:hidden}.ui5-wheelslider-root .ui5-wheelslider-arrow{visibility:hidden;box-sizing:border-box;height:1.5rem;user-select:none;outline:none}:host([expanded]) .ui5-wheelslider-arrow{visibility:var(--_ui5_wheelslider_arrows_visibility);box-sizing:border-box;border-color:transparent;cursor:pointer}:host([expanded]) .ui5-wheelslider-arrow:hover{visibility:var(--_ui5_wheelslider_arrows_visibility);box-sizing:border-box;border-color:inherit;cursor:pointer}.ui5-wheelslider-root .ui5-wheelslider-inner{position:relative;overflow:hidden;height:100%;box-sizing:border-box;user-select:none;list-style:none;margin-top:0}:host([expanded]) .ui5-wheelslider-inner{margin-top:0}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-item{height:var(--_ui5_wheelslider_item_height);line-height:var(--_ui5_wheelslider_item_height);width:var(--_ui5_wheelslider_item_width);box-sizing:border-box;background:var(--_ui5_wheelslider_selected_item_background_color);border:.625px solid var(--_ui5_wheelslider_item_border_color);font-size:var(--_ui5_wheelslider_item_text_size);color:var(--_ui5_wheelslider_collapsed_item_text_color);text-align:center;border-radius:var(--_ui_wheelslider_item_border_radius);cursor:pointer}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-item:hover{background:var(--_ui_wheelslider_item_hover_color);border-color:var(--_ui5_wheelslider_item_hovered_border_color)}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-item:focus{outline:1px dotted #000;outline-offset:-3px}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-selection-frame{width:var(--_ui5_wheelslider_item_width);height:var(--_ui5_wheelslider_item_height);position:absolute;box-sizing:border-box;visibility:hidden;z-index:1}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-wrapper>ul{transition:all .4s;margin:0;padding:0;position:absolute;top:var(--_ui5_wheelslider_selection_frame_margin_top);height:3000px;cursor:pointer;list-style-type:none}.ui5-wheelslider-root.ui5-phone .ui5-wheelslider-inner .ui5-wheelslider-wrapper>ul{top:var(--_ui5_wheelslider_mobile_selection_frame_margin_top)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-wrapper>ul{list-style-type:none;top:0;padding-top:calc(var(--_ui5_wheelslider_item_height)*2)}:host([expanded]) .ui5-wheelslider-root.ui5-phone .ui5-wheelslider-inner .ui5-wheelslider-wrapper>ul{list-style-type:none;top:0;padding-top:calc(var(--_ui5_wheelslider_item_height)*4)}.ui5-wheelslider-root .ui5-wheelslider-inner .ui5-wheelslider-wrapper{height:var(--_ui5_wheelslider_height);position:relative;overflow:hidden;outline:none}.ui5-wheelslider-root.ui5-phone .ui5-wheelslider-inner .ui5-wheelslider-wrapper{height:var(--_ui5_wheelslider_mobile_height)}:host([expanded]){height:100%;cursor:default;margin:0;justify-content:space-between;flex-direction:column;display:inline-flex}:host([expanded]) .ui5-wheelslider-label{display:block;visibility:visible}.ui5-wheelslider-root .ui5-wheelslider-inner{max-height:100%;height:var(--_ui5_wheelslider_height)}.ui5-wheelslider-root.ui5-phone .ui5-wheelslider-inner{height:var(--_ui5_wheelslider_mobile_height)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-item{background:var(--_ui5_wheelslider_item_background_color);color:var(--_ui5_wheelslider_item_text_color);border:1px solid var(--_ui5_wheelslider_item_expanded_border_color);border-radius:var(--_ui_wheelslider_item_border_radius);offset-position:auto;cursor:auto}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-item:hover{background:var(--_ui_wheelslider_item_expanded_hover_color);border-color:var(--_ui5_wheelslider_item_hovered_border_color)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-item:active{background:var(--_ui5_wheelslider_active_item_background_color);color:var(--_ui5_wheelslider_active_item_text_color)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-item:focus{outline:1px dotted #000;outline-offset:-3px}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-selection-frame{visibility:visible;-webkit-box-shadow:inset 0 0 0 2px var(--_ui5_wheelslider_selection_frame_color);-moz-box-shadow:inset 0 0 0 2px var(--_ui5_wheelslider_selection_frame_color);box-shadow:inset 0 0 0 2px var(--_ui5_wheelslider_selection_frame_color);border-radius:var(--_ui_wheelslider_item_border_radius);margin-top:var(--_ui5_wheelslider_selection_frame_margin_top)}:host([expanded]) .ui5-wheelslider-root.ui5-phone .ui5-wheelslider-inner .ui5-wheelslider-selection-frame{margin-top:var(--_ui5_wheelslider_mobile_selection_frame_margin_top)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-selection-frame:hover+.ui5-wheelslider-wrapper ul>li.ui5-wheelslider-item[aria-selected=true]{background:var(--_ui_wheelslider_item_expanded_hover_color)}:host([expanded]) .ui5-wheelslider-inner .ui5-wheelslider-selection-frame:active+ul>li.ui5-wheelslider-item[aria-selected=true]{background:var(--_ui5_wheelslider_selected_item_background_color);color:#d3d3d3}.ui5-wheelslider-root:focus{outline:none}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisDown,\n\tisUp,\n\tisPageUp,\n\tisPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getEffectiveContentDensity from \"@ui5/webcomponents-base/dist/util/getEffectiveContentDensity.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-up-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport WheelSliderTemplate from \"./generated/templates/WheelSliderTemplate.lit.js\";\nimport Button from \"./Button.js\";\n\n// Styles\nimport WheelSliderCss from \"./generated/themes/WheelSlider.css.js\";\n\n/**\n * @private\n */\nconst metadata = {\n\ttag: \"ui5-wheelslider\",\n\tproperties: /** @lends sap.ui.webcomponents.main.WheelSlider.prototype */ {\n\t\t/**\n\t\t * Defines whether the component is disabled\n\t\t * (default is set to <code>false</code>).\n\t\t * A disabled component can't be pressed or\n\t\t * focused, and it is not in the tab chain.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the currently selected value\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"0\",\n\t\t},\n\n\t\t/**\n\t\t * Defines the label of the wheelslider.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the wheelslider is expanded.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\texpanded: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_items: {\n\t\t\ttype: String,\n\t\t\tmultiple: true,\n\t\t\tcompareValues: true,\n\t\t},\n\n\t\t_itemsToShow: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the wheelslider has a cyclic behaviour.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tcyclic: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.WheelSlider.prototype */ {\n\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.WheelSlider.prototype */ {\n\t\t/**\n\t\t * Fires when the wheel slider is expanded.\n\t\t */\n\t\texpand: {},\n\n\t\t/**\n\t\t * Fires when the wheel slider is collapsed.\n\t\t */\n\t\tcollapse: {},\n\n\t\t/**\n\t\t * Fires when new value is selected.\n\t\t */\n\t\tselect: {\n\t\t\tdetail: {\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: String,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nconst CELL_SIZE_COMPACT = 32;\nconst CELL_SIZE_COZY = 46;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/WheelSlider.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.WheelSlider\n * @extends UI5Element\n * @tagname ui5-wheelslider\n * @public\n * @since 1.0.0-rc.6\n */\nclass WheelSlider extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn WheelSliderCss;\n\t}\n\n\tstatic get template() {\n\t\treturn WheelSliderTemplate;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._currentElementIndex = 0;\n\t\tthis._itemsToShow = [];\n\t\tthis._scroller = new ScrollEnablement(this);\n\t\tthis._scroller.attachEvent(\"scroll\", this._updateScrolling.bind(this));\n\t\tthis._scroller.attachEvent(\"mouseup\", this._handleScrollTouchEnd.bind(this));\n\t\tthis._scroller.attachEvent(\"touchend\", this._handleScrollTouchEnd.bind(this));\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.expanded && this.cyclic) {\n\t\t\tconst index = this._currentElementIndex % this._items.length;\n\t\t\tthis._currentElementIndex = (this._timesMultipliedOnCyclic() / 2) * this._items.length + index;\n\t\t}\n\n\t\tif (!this.value) {\n\t\t\tthis.value = this._items[0];\n\t\t}\n\n\t\tthis._buildItemsToShow();\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Button];\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._scroller.scrollContainer) {\n\t\t\tthis._scroller.scrollContainer = this.shadowRoot.querySelector(`#${this._id}--wrapper`);\n\t\t}\n\n\t\tif (!this.expanded) {\n\t\t\tthis._scroller.scrollTo(0, 0);\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\tconst elements = this.shadowRoot.querySelectorAll(\".ui5-wheelslider-item\");\n\t\t\tfor (let i = 0; i < elements.length; i++) {\n\t\t\t\tif (elements[i].textContent === this.value) {\n\t\t\t\t\tthis._selectElementByIndex(Number(elements[i].dataset.itemIndex) + this._getCurrentRepetition() * this._items.length);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._selectElement(elements[0]);\n\t\t}\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-wheelslider-root\": true,\n\t\t\t\t\"ui5-phone\": isPhone(),\n\t\t\t},\n\t\t};\n\t}\n\n\texpandSlider() {\n\t\tthis.expanded = true;\n\t\tthis.fireEvent(\"expand\", {});\n\t}\n\n\tcollapseSlider() {\n\t\tthis.expanded = false;\n\t\tthis.fireEvent(\"collapse\", {});\n\t}\n\n\tget _itemCellHeight() {\n\t\tconst defaultSize = getEffectiveContentDensity(document.body) === \"compact\" ? CELL_SIZE_COMPACT : CELL_SIZE_COZY;\n\n\t\tif (this.shadowRoot.querySelectorAll(\".ui5-wheelslider-item\").length) {\n\t\t\tconst itemComputedStyle = getComputedStyle(this.shadowRoot.querySelector(\".ui5-wheelslider-item\"));\n\t\t\tconst itemHeightValue = itemComputedStyle.getPropertyValue(\"--_ui5_wheelslider_item_height\");\n\t\t\tconst onlyDigitsValue = itemHeightValue.replace(\"px\", \"\");\n\t\t\treturn Number(onlyDigitsValue) || defaultSize;\n\t\t}\n\n\t\treturn defaultSize;\n\t}\n\n\t_updateScrolling() {\n\t\tconst cellSizeInPx = this._itemCellHeight,\n\t\t\tscrollWhere = this._scroller.scrollContainer.scrollTop;\n\t\tlet offsetIndex;\n\n\t\tif (!scrollWhere) {\n\t\t\treturn;\n\t\t}\n\n\t\toffsetIndex = Math.round(scrollWhere / cellSizeInPx);\n\n\t\tif (this.value === this._itemsToShow[offsetIndex].value) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.cyclic) {\n\t\t\tconst newIndex = this._handleArrayBorderReached(offsetIndex);\n\t\t\tif (offsetIndex !== newIndex) {\n\t\t\t\toffsetIndex = newIndex;\n\t\t\t}\n\t\t}\n\n\t\tthis.value = this._itemsToShow[offsetIndex].value;\n\t\tthis._currentElementIndex = offsetIndex;\n\t}\n\n\t_handleScrollTouchEnd() {\n\t\tif (this.expanded) {\n\t\t\tthis._selectElementByIndex(this._currentElementIndex);\n\t\t}\n\t}\n\n\t_selectElement(element) {\n\t\tif (element && this._items.indexOf(element.textContent) > -1) {\n\t\t\tthis._currentElementIndex = Number(element.dataset.itemIndex);\n\t\t\tthis._selectElementByIndex(this._currentElementIndex);\n\t\t}\n\t}\n\n\t_getCurrentRepetition() {\n\t\tif (this._currentElementIndex) {\n\t\t\treturn Math.floor(this._currentElementIndex / this._items.length);\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t_selectElementByIndex(currentIndex) {\n\t\tlet index = currentIndex;\n\t\tconst itemsCount = this._itemsToShow.length;\n\t\tconst cellSizeInPx = this._itemCellHeight;\n\t\tconst scrollBy = cellSizeInPx * index;\n\n\t\tif (this.cyclic) {\n\t\t\tindex = this._handleArrayBorderReached(index);\n\t\t}\n\n\t\tif (index < itemsCount && index > -1) {\n\t\t\tthis._scroller.scrollTo(0, scrollBy, 5, 100); // sometimes the container isn't painted yet so retry 5 times (although it succeeds on the 1st)\n\t\t\tthis._currentElementIndex = index;\n\t\t\tthis.value = this._items[index - (this._getCurrentRepetition() * this._items.length)];\n\t\t\tthis.fireEvent(\"select\", { value: this.value });\n\t\t}\n\t}\n\n\t_timesMultipliedOnCyclic() {\n\t\tconst minElementsInCyclicWheelSlider = 70;\n\t\tconst repetitionCount = Math.round(minElementsInCyclicWheelSlider / this._items.length);\n\t\tconst minRepetitionCount = 3;\n\n\t\treturn Math.max(minRepetitionCount, repetitionCount);\n\t}\n\n\t_buildItemsToShow() {\n\t\tlet itemsToShow = this._items;\n\t\tif (this.cyclic) {\n\t\t\tif (itemsToShow.length < this._items.length * this._timesMultipliedOnCyclic()) {\n\t\t\t\tfor (let i = 0; i < this._timesMultipliedOnCyclic(); i++) {\n\t\t\t\t\titemsToShow = itemsToShow.concat(this._items);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._itemsToShow = itemsToShow.map(value => {\n\t\t\treturn {\n\t\t\t\tvalue,\n\t\t\t\t\"selected\": (value === this.value),\n\t\t\t};\n\t\t});\n\t}\n\n\t_handleArrayBorderReached(currentIndex) {\n\t\tconst arrayLength = this._itemsToShow.length;\n\t\tconst maxVisibleElementsOnOneSide = 7;\n\t\tlet index = currentIndex;\n\n\t\tif (maxVisibleElementsOnOneSide > index) {\n\t\t\tindex += this._items.length * 2;\n\t\t} else if (index > arrayLength - maxVisibleElementsOnOneSide) {\n\t\t\tindex -= this._items.length * 2;\n\t\t}\n\n\t\treturn index;\n\t}\n\n\t_handleWheel(e) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif (e.timeStamp === this._prevWheelTimestamp || !this.expanded) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.deltaY > 0) {\n\t\t\tthis._itemUp();\n\t\t} else if (e.deltaY < 0) {\n\t\t\tthis._itemDown();\n\t\t}\n\n\t\tthis._prevWheelTimestamp = e.timeStamp;\n\t}\n\n\t_onclick(e) {\n\t\tif (!e.target.classList.contains(\"ui5-wheelslider-item\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\tthis.value = e.target.textContent;\n\t\t\tthis._selectElement(e.target);\n\t\t\tthis.fireEvent(\"select\", { value: this.value });\n\t\t} else {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t_onArrowDown(e) {\n\t\te.preventDefault();\n\t\tthis._itemDown();\n\t}\n\n\t_onArrowUp(e) {\n\t\te.preventDefault();\n\t\tthis._itemUp();\n\t}\n\n\t_itemDown() {\n\t\tconst nextElementIndex = this._currentElementIndex + 1;\n\t\tthis._selectElementByIndex(nextElementIndex);\n\t}\n\n\t_itemUp() {\n\t\tconst nextElementIndex = this._currentElementIndex - 1;\n\t\tthis._selectElementByIndex(nextElementIndex);\n\t}\n\n\t_onkeydown(e) {\n\t\tif (!this.expanded) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUp(e)) {\n\t\t\tthis._onArrowUp(e);\n\t\t}\n\n\t\tif (isDown(e)) {\n\t\t\tthis._onArrowDown(e);\n\t\t}\n\n\t\tif (isPageDown(e)) {\n\t\t\tthis._selectLimitCell(e, false);\n\t\t}\n\n\t\tif (isPageUp(e)) {\n\t\t\tthis._selectLimitCell(e, true);\n\t\t}\n\t}\n\n\t_selectLimitCell(event, isMax) {\n\t\tevent.preventDefault();\n\t\tconst intexIncrease = this.cyclic ? this._items.length : 0;\n\t\tif (isMax) {\n\t\t\tthis._selectElementByIndex(this._items.length - 1 + intexIncrease);\n\t\t} else {\n\t\t\tthis._selectElementByIndex(intexIncrease);\n\t\t}\n\t}\n}\n\nWheelSlider.define();\n\nexport default WheelSlider;\n","const generateTimeItemsArray = (x, step = 1) => {\n\tconst array = [];\n\tfor (let i = 0; i < x; i++) {\n\t\tif (i % step === 0) {\n\t\t\tlet tempString = i.toString();\n\t\t\tif (tempString.length === 1) {\n\t\t\t\ttempString = `0${tempString}`;\n\t\t\t}\n\n\t\t\tarray.push(tempString);\n\t\t}\n\t}\n\n\treturn array;\n};\n\nconst getHours = (config, max) => {\n\tlet hoursValueArray = [];\n\n\tif (config.isTwelveHoursFormat) {\n\t\thoursValueArray = generateTimeItemsArray(max || 12, 1);\n\t} else {\n\t\thoursValueArray = generateTimeItemsArray(max || 24, 1);\n\t}\n\n\tif (config.minHour === 1) {\n\t\tfor (let i = 0; i < hoursValueArray.length; i++) {\n\t\t\tconst tempValue = hoursValueArray[i] * 1 + 1;\n\n\t\t\tif (tempValue.toString().length === 1) {\n\t\t\t\thoursValueArray[i] = `0${tempValue.toString()}`;\n\t\t\t} else {\n\t\t\t\thoursValueArray[i] = tempValue.toString();\n\t\t\t}\n\t\t}\n\t}\n\n\treturn hoursValueArray;\n};\n\nconst getMinutes = (max, step) => {\n\treturn generateTimeItemsArray(max || 60, step);\n};\n\nconst getSeconds = (max, step) => {\n\treturn generateTimeItemsArray(max || 60, step);\n};\n\nconst getHoursConfigByFormat = type => {\n\tconst config = {};\n\n\tif (type === \"hour0_23\") {\n\t\tconfig.minHour = 0;\n\t\tconfig.maxHour = 23;\n\t\tconfig.isTwelveHoursFormat = false;\n\t} else if (type === \"hour1_24\") {\n\t\tconfig.minHour = 1;\n\t\tconfig.maxHour = 24;\n\t\tconfig.isTwelveHoursFormat = false;\n\t} else if (type === \"hour0_11\") {\n\t\tconfig.minHour = 0;\n\t\tconfig.maxHour = 11;\n\t\tconfig.isTwelveHoursFormat = true;\n\t} else if (type === \"hour1_12\") {\n\t\tconfig.minHour = 1;\n\t\tconfig.maxHour = 12;\n\t\tconfig.isTwelveHoursFormat = true;\n\t}\n\n\treturn config;\n};\n\nconst getTimeControlsByFormat = (formatArray, hoursConfig) => {\n\tconst timeControls = [false, false, false, false]; // hours, minutes, seconds and am/pm\n\n\tfor (let i = 0; i < formatArray.length; i++) {\n\t\tif (hoursConfig.maxHour !== 0) {\n\t\t\ttimeControls[0] = true;\n\t\t}\n\t\tif (hoursConfig.maxHour !== 0 && hoursConfig.isTwelveHoursFormat) {\n\t\t\ttimeControls[0] = true;\n\t\t}\n\t\tif (formatArray[i].type === \"minute\") {\n\t\t\ttimeControls[1] = true;\n\t\t}\n\t\tif (formatArray[i].type === \"second\") {\n\t\t\ttimeControls[2] = true;\n\t\t}\n\t\tif (formatArray[i].type === \"amPmMarker\") {\n\t\t\ttimeControls[3] = true;\n\t\t}\n\t}\n\n\treturn timeControls;\n};\n\nexport {\n\tgetHours,\n\tgetMinutes,\n\tgetSeconds,\n\tgetHoursConfigByFormat,\n\tgetTimeControlsByFormat,\n};\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\TimeSelection.css\",content:\":host(:not([hidden])){display:inline-block;min-width:18rem}.ui5-time-selection-root{width:100%;height:100%;display:flex;justify-content:center;align-items:stretch;direction:ltr;box-sizing:border-box}.ui5-time-selection-root.ui5-phone{height:90vh}[ui5-wheelslider]{padding-left:.25rem;padding-right:.25rem}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isPhone, isIE } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport {\n\tisLeft,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/time-entry-request.js\";\nimport timeSelectionTemplate from \"./generated/templates/TimeSelectionTemplate.lit.js\";\nimport WheelSlider from \"./WheelSlider.js\";\nimport {\n\tgetHours,\n\tgetMinutes,\n\tgetSeconds,\n\tgetHoursConfigByFormat,\n\tgetTimeControlsByFormat,\n} from \"./timepicker-utils/TimeSlider.js\";\n\nimport {\n\tTIMEPICKER_HOURS_LABEL,\n\tTIMEPICKER_MINUTES_LABEL,\n\tTIMEPICKER_SECONDS_LABEL,\n\tTIMEPICKER_PERIODS_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport timeSelectionCss from \"./generated/themes/TimeSelection.css.js\";\n\nconst capitalizeFirst = str => str.substr(0, 1).toUpperCase() + str.substr(1);\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-time-selection\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.TimeSelection.prototype */ {\n\t\t/**\n\t\t * Defines a formatted time value.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Determines the format, displayed in the input field.\n\t\t *\n\t\t * Example:\n\t\t * HH:mm:ss -> 11:42:35\n\t\t * hh:mm:ss a -> 2:23:15 PM\n\t\t * mm:ss -> 12:04 (only minutes and seconds)\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tformatPattern: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Hides the hours slider regardless of formatPattern\n\t\t * This property is only needed for the duration picker use case which requires non-standard slider combinations\n\t\t * @public\n\t\t */\n\t\thideHours: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Hides the minutes slider regardless of formatPattern\n\t\t * This property is only needed for the duration picker use case which requires non-standard slider combinations\n\t\t * @public\n\t\t */\n\t\thideMinutes: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Hides the seconds slider regardless of formatPattern\n\t\t * This property is only needed for the duration picker use case which requires non-standard slider combinations\n\t\t * @public\n\t\t */\n\t\thideSeconds: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * The maximum number of hours to be displayed for the hours slider (only needed for the duration picker use case)\n\t\t * @public\n\t\t */\n\t\tmaxHours: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t/**\n\t\t * The maximum number of minutes to be displayed for the minutes slider (only needed for the duration picker use case)\n\t\t * @public\n\t\t */\n\t\tmaxMinutes: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\t/**\n\t\t * The maximum number of seconds to be displayed for the seconds slider (only needed for the duration picker use case)\n\t\t * @public\n\t\t */\n\t\tmaxSeconds: {\n\t\t\ttype: Integer,\n\t\t},\n\n\t\tsecondsStep: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 1,\n\t\t},\n\n\t\tminutesStep: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 1,\n\t\t},\n\n\t\t_currentSlider: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"hours\",\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.TimeSelection.prototype */ {\n\t\t/**\n\t\t * Fired when the value changes due to user interaction with the sliders\n\t\t */\n\t\tchange: {},\n\n\t\t/**\n\t\t * Fired when the expanded/collapsed slider changes (a new slider is expanded or the expanded slider is collapsed)\n\t\t */\n\t\tsliderChange: {},\n\t},\n};\n\n/**\n * @class\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.TimeSelection\n * @extends UI5Element\n * @tagname ui5-time-selection\n * @private\n * @since 1.0.0-rc.12\n */\nclass TimeSelection extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn timeSelectionCss;\n\t}\n\n\tstatic get template() {\n\t\treturn timeSelectionTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [WheelSlider];\n\t}\n\n\tstatic async onDefine() {\n\t\t[TimeSelection.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tfetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),\n\t\t]);\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tget _hoursConfiguration() {\n\t\tconst hourFormat = this.getFormat().aFormatArray.find(item => item.type.startsWith(\"hour\")); // try to find an entry for the hours\n\t\treturn getHoursConfigByFormat(hourFormat ? hourFormat.type : \"hour0_23\");\n\t}\n\n\tget _neededSliders() {\n\t\tconst formatArray = this.getFormat().aFormatArray;\n\t\treturn getTimeControlsByFormat(formatArray, this._hoursConfiguration);\n\t}\n\n\tget _hasHoursSlider() {\n\t\treturn this._neededSliders[0] && !this.hideHours;\n\t}\n\n\tget _hasMinutesSlider() {\n\t\treturn this._neededSliders[1] && !this.hideMinutes;\n\t}\n\n\tget _hasSecondsSlider() {\n\t\treturn this._neededSliders[2] && !this.hideSeconds;\n\t}\n\n\tget _hasPeriodsSlider() {\n\t\treturn this._neededSliders[3];\n\t}\n\n\tget secondsArray() {\n\t\treturn getSeconds(this.maxSeconds ? this.maxSeconds + 1 : undefined, this.secondsStep);\n\t}\n\n\tget minutesArray() {\n\t\treturn getMinutes(this.maxMinutes ? this.maxMinutes + 1 : undefined, this.minutesStep);\n\t}\n\n\tget hoursArray() {\n\t\treturn getHours(this._hoursConfiguration, this.maxHours ? this.maxHours + 1 : undefined);\n\t}\n\n\tget periodsArray() {\n\t\treturn this.getFormat().aDayPeriods.map(x => x.toUpperCase());\n\t}\n\n\tget _hoursSliderFocused() {\n\t\treturn this._currentSlider === \"hours\";\n\t}\n\n\tget _minutesSliderFocused() {\n\t\treturn this._currentSlider === \"minutes\";\n\t}\n\n\tget _secondsSliderFocused() {\n\t\treturn this._currentSlider === \"seconds\";\n\t}\n\n\tget _periodSliderFocused() {\n\t\treturn this._currentSlider === \"periods\";\n\t}\n\n\tget _hours() {\n\t\tlet hours;\n\t\tconst dateValue = this.validDateValue;\n\t\tif (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() > this._hoursConfiguration.maxHour) {\n\t\t\thours = dateValue.getHours() - 12;\n\t\t} else if (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() < this._hoursConfiguration.minHour) {\n\t\t\thours = dateValue.getHours() + 12;\n\t\t} else {\n\t\t\thours = dateValue.getHours();\n\t\t}\n\t\tif (hours.toString().length === 1) {\n\t\t\thours = `0${hours}`;\n\t\t}\n\t\treturn hours.toString();\n\t}\n\n\tget _minutes() {\n\t\tconst minutes = this.validDateValue.getMinutes().toString();\n\t\treturn minutes.length === 1 ? `0${minutes}` : minutes;\n\t}\n\n\tget _seconds() {\n\t\tconst seconds = this.validDateValue.getSeconds().toString();\n\t\treturn seconds.length === 1 ? `0${seconds}` : seconds;\n\t}\n\n\tget _period() {\n\t\tif (!this._hoursConfiguration.isTwelveHoursFormat) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet period;\n\t\tconst dateValue = this.validDateValue;\n\t\tif (this._hoursConfiguration.minHour === 1) {\n\t\t\tperiod = dateValue.getHours() >= this._hoursConfiguration.maxHour ? this.periodsArray[1] : this.periodsArray[0];\n\t\t} else {\n\t\t\tperiod = (dateValue.getHours() > this._hoursConfiguration.maxHour || dateValue.getHours() === this._hoursConfiguration.minHour) ? this.periodsArray[1] : this.periodsArray[0];\n\t\t}\n\t\treturn period;\n\t}\n\n\tsetValue(date) {\n\t\tconst value = this.formatValue(date);\n\t\tif (this.isValid(value)) {\n\t\t\tthis.value = this.normalizeValue(value);\n\t\t\tthis.fireEvent(\"change\", { value: this.value, valid: true });\n\t\t}\n\t}\n\n\tonHoursChange(event) {\n\t\tlet hours = event.detail.value;\n\t\tconst isTwelveHoursFormat = this._hoursConfiguration.isTwelveHoursFormat;\n\n\t\tif (isTwelveHoursFormat) {\n\t\t\tif (this._period === this.periodsArray[0]) { // AM\n\t\t\t\thours = hours === \"12\" ? 0 : hours;\n\t\t\t}\n\n\t\t\tif (this._period === this.periodsArray[1]) { // PM\n\t\t\t\thours = hours === \"12\" ? hours : hours * 1 + 12;\n\t\t\t}\n\t\t}\n\n\t\tconst date = this.validDateValue;\n\t\tdate.setHours(hours);\n\t\tthis.setValue(date);\n\t}\n\n\tonMinutesChange(event) {\n\t\tconst minutes = event.detail.value;\n\t\tconst date = this.validDateValue;\n\t\tdate.setMinutes(minutes);\n\t\tthis.setValue(date);\n\t}\n\n\tonSecondsChange(event) {\n\t\tconst seconds = event.detail.value;\n\t\tconst date = this.validDateValue;\n\t\tdate.setSeconds(seconds);\n\t\tthis.setValue(date);\n\t}\n\n\tonPeriodChange(event) {\n\t\tconst period = event.detail.value;\n\t\tconst date = this.validDateValue;\n\t\tif (period === this.periodsArray[0] && date.getHours() >= 12) {\n\t\t\tdate.setHours(date.getHours() - 12);\n\t\t} if (period === this.periodsArray[1] && date.getHours() < 12) {\n\t\t\tdate.setHours(date.getHours() + 12);\n\t\t}\n\t\tthis.setValue(date);\n\t}\n\n\tisValid(value) {\n\t\treturn value === \"\" || this.getFormat().parse(value);\n\t}\n\n\tnormalizeValue(value) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value));\n\t}\n\n\tget _formatPattern() {\n\t\tconst pattern = this.formatPattern;\n\t\tconst hasHours = !!pattern.match(/H/i);\n\t\tconst fallback = !pattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getCombinedDateTimePattern(\"medium\", \"medium\", this._primaryCalendarType) : pattern;\n\t}\n\n\tget _isPattern() {\n\t\treturn this._formatPattern !== \"medium\" && this._formatPattern !== \"short\" && this._formatPattern !== \"long\";\n\t}\n\n\t/**\n\t * Event handler for the \"click\" and \"focusin\" events of the sliders\n\t * @param event\n\t */\n\tselectSlider(event) {\n\t\tthis._setCurrentSlider(event.target.closest(\"[ui5-wheelslider]\").getAttribute(\"data-sap-slider\"));\n\t}\n\n\t_setCurrentSlider(slider) {\n\t\tif (this._currentSlider === slider) {\n\t\t\treturn;\n\t\t}\n\t\tthis._currentSlider = slider;\n\t\tthis.fireEvent(\"slider-change\", { slider });\n\t}\n\n\tget _currentSliderDOM() {\n\t\treturn this.shadowRoot.querySelector(`[data-sap-slider=\"${this._currentSlider}\"]`);\n\t}\n\n\tget _activeSliders() {\n\t\treturn [\"hours\", \"minutes\", \"seconds\", \"periods\"].filter(slider => this[`_has${capitalizeFirst(slider)}Slider`]);\n\t}\n\n\t_onfocusin(event) {\n\t\tif (!this._currentSlider) {\n\t\t\tthis._setCurrentSlider(this._activeSliders[0]);\n\t\t}\n\n\t\tif (event.target === event.currentTarget) {\n\t\t\tthis._currentSliderDOM.focus();\n\t\t}\n\t}\n\n\t_onfocusout(event) {\n\t\tif (!this.shadowRoot.contains(event.relatedTarget)) {\n\t\t\tthis._setCurrentSlider(\"\");\n\t\t}\n\t}\n\n\tasync _onkeydown(event) {\n\t\tif (!(isLeft(event) || isRight(event))) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\n\t\tconst activeSliders = this._activeSliders;\n\t\tconst activeSlider = event.target.closest(\"[ui5-wheelslider]\").getAttribute(\"data-sap-slider\");\n\t\tlet index = activeSliders.indexOf(activeSlider);\n\t\tif (isLeft(event)) {\n\t\t\tindex = index === 0 ? activeSliders.length - 1 : index - 1;\n\t\t} else if (isRight(event)) {\n\t\t\tindex = index === activeSliders.length - 1 ? 0 : index + 1;\n\t\t}\n\t\tthis._setCurrentSlider(activeSliders[index]);\n\t\tthis._currentSliderDOM.focus();\n\t}\n\n\t_handleWheel(e) {\n\t\te.preventDefault();\n\t}\n\n\tgetFormat() {\n\t\tlet dateFormat;\n\t\tif (this._isPattern) {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t});\n\t\t} else {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t});\n\t\t}\n\n\t\treturn dateFormat;\n\t}\n\n\tformatValue(date) {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\tget dateValue() {\n\t\treturn this.value ? this.getFormat().parse(this.value) : new Date();\n\t}\n\n\tget validDateValue() {\n\t\treturn this.isValid(this.value) ? this.dateValue : new Date();\n\t}\n\n\tget hoursSliderTitle() {\n\t\treturn TimeSelection.i18nBundle.getText(TIMEPICKER_HOURS_LABEL);\n\t}\n\n\tget minutesSliderTitle() {\n\t\treturn TimeSelection.i18nBundle.getText(TIMEPICKER_MINUTES_LABEL);\n\t}\n\n\tget secondsSliderTitle() {\n\t\treturn TimeSelection.i18nBundle.getText(TIMEPICKER_SECONDS_LABEL);\n\t}\n\n\tget periodSliderTitle() {\n\t\treturn TimeSelection.i18nBundle.getText(TIMEPICKER_PERIODS_LABEL);\n\t}\n\n\tget _isCyclic() {\n\t\treturn !isIE();\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-time-selection-root\": true,\n\t\t\t\t\"ui5-phone\": isPhone(),\n\t\t\t},\n\t\t};\n\t}\n}\n\nTimeSelection.define();\n\nexport default TimeSelection;\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\TimePicker.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}[input-icon]{color:var(--_ui5_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5_input_icon_padding);margin-right:var(--_ui5_input_icon_margin);border-left:var(--_ui5_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5_input_icon_border_radius);align-self:center}[input-icon][pressed]{background:var(--_ui5_input_icon_pressed_bg);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:not([pressed]):not(:active):hover{background:var(--_ui5_input_icon_hover_bg);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon]:hover{border-left:var(--_ui5_select_hover_icon_left_border);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon][dir=rtl]:hover{border-left:none;border-right:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]{border-left:none;margin-right:0;margin-left:var(--_ui5_input_icon_margin);border-right:var(--_ui5_input_icon_border)}:host(:not([hidden])){display:inline-block}:host{color:var(--sapField_TextColor);background-color:var(--sapField_Background);border-radius:var(--_ui5-time_picker_border_radius)}:host([value-state=Error]){background-color:var(--sapField_InvalidBackground)}:host(:not([disabled]):hover){background:var(--sapField_Hover_Background)}:host .ui5-time-picker-input{width:100%;color:inherit;background-color:inherit}.ui5-time-picker-input-icon-button{border-left:.0625rem solid transparent}.ui5-time-picker-input-icon-button:hover{cursor:pointer;border-left:var(--_ui5_time_picker_border);background:var(--sapButton_Hover_Background)}.ui5-time-picker-input-icon-button:active{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor)}.ui5-time-picker-input-icon-button[pressed]{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor)}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\TimePickerPopover.css\",content:\".ui5-time-picker-footer{height:fit-content;display:flex;justify-content:flex-end;width:100%}.ui5-time-picker-footer>[ui5-button]{margin:1%;min-width:20%}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport {\n\tisShow,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/time-entry-request.js\";\nimport Icon from \"./Icon.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport TimePickerTemplate from \"./generated/templates/TimePickerTemplate.lit.js\";\nimport TimePickerPopoverTemplate from \"./generated/templates/TimePickerPopoverTemplate.lit.js\";\nimport Input from \"./Input.js\";\nimport Button from \"./Button.js\";\nimport TimeSelection from \"./TimeSelection.js\";\n\nimport {\n\tTIMEPICKER_SUBMIT_BUTTON,\n\tTIMEPICKER_CANCEL_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TimePickerCss from \"./generated/themes/TimePicker.css.js\";\nimport TimePickerPopoverCss from \"./generated/themes/TimePickerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.TimePickerBase.prototype */ {\n\t\t/**\n\t\t * Defines a formatted time value.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the <code>ui5-time-picker</code>.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the <code>ui5-time-picker</code> is displayed as disabled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the <code>ui5-time-picker</code> is displayed as readonly.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_isPickerOpen: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.TimePickerBase.prototype */ {\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the <code>ui5-time-picker</code>.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t * <br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t\t * when the <code>ui5-time-picker</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t\t * @type {HTMLElement}\n\t\t * @since 1.0.0-rc.8\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.TimePickerBase.prototype */ {\n\t\t/**\n\t\t * Fired when the input operation has finished by clicking the \"OK\" button or\n\t\t * when the text in the input field has changed and the focus leaves the input field.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t*/\n\t\tchange: {},\n\t\t/**\n\t\t * Fired when the value of the <code>ui5-time-picker</code> is changed at each key stroke.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t*/\n\t\tinput: {},\n\t},\n};\n\n/**\n * @class\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.TimePickerBase\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\nclass TimePickerBase extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn TimePickerCss;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn TimePickerPopoverTemplate;\n\t}\n\n\tstatic get template() {\n\t\treturn TimePickerTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tIcon,\n\t\t\tResponsivePopover,\n\t\t\tTimeSelection,\n\t\t\tInput,\n\t\t\tButton,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\t[TimePickerBase.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tfetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),\n\t\t]);\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn [ResponsivePopoverCommonCss, TimePickerPopoverCss];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @abstract\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * @abstract\n\t * @protected\n\t */\n\tget _formatPattern() {\n\t\treturn undefined;\n\t}\n\n\tget _effectiveValue() {\n\t\treturn this.value;\n\t}\n\n\tget _timeSelectionValue() {\n\t\treturn this.tempValue;\n\t}\n\n\tonTimeSelectionChange(event) {\n\t\tthis.tempValue = event.detail.value; // every time the user changes the sliders -> update tempValue\n\t}\n\n\tsubmitPickers() {\n\t\tthis._updateValueAndFireEvents(this.tempValue, true, [\"change\", \"value-changed\"]);\n\t\tthis.closePicker();\n\t}\n\n\tonResponsivePopoverAfterClose() {\n\t\tthis._isPickerOpen = false;\n\t}\n\n\tasync _handleInputClick() {\n\t\tif (this._isPickerOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst inputField = await this._getInputField();\n\n\t\tif (inputField) {\n\t\t\tinputField.select();\n\t\t}\n\t}\n\n\t_updateValueAndFireEvents(value, normalizeValue, events) {\n\t\tif (value === this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst valid = this.isValid(value);\n\t\tif (valid && normalizeValue) {\n\t\t\tvalue = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n\t\t}\n\n\t\tthis.value = \"\"; // Do not remove! DurationPicker use case -> value is 05:10, user tries 05:12, after normalization value is changed back to 05:10 so no invalidation happens, but the input still shows 05:12. Thus we enforce invalidation with the \"\"\n\t\tthis.value = value;\n\t\tthis.tempValue = value; // if the picker is open, sync it\n\t\tthis._updateValueState(); // Change the value state to Error/None, but only if needed\n\t\tevents.forEach(event => {\n\t\t\tthis.fireEvent(event, { value, valid });\n\t\t});\n\t}\n\n\t_updateValueState() {\n\t\tconst isValid = this.isValid(this.value);\n\t\tif (!isValid) { // If not valid - always set Error regardless of the current value state\n\t\t\tthis.valueState = ValueState.Error;\n\t\t} else if (isValid && this.valueState === ValueState.Error) { // However if valid, change only Error (but not the others) to None\n\t\t\tthis.valueState = ValueState.None;\n\t\t}\n\t}\n\n\tasync _handleInputChange(event) {\n\t\tthis._updateValueAndFireEvents(event.target.value, true, [\"change\", \"value-changed\"]);\n\t}\n\n\tasync _handleInputLiveChange(event) {\n\t\tthis._updateValueAndFireEvents(event.target.value, false, [\"input\"]);\n\t}\n\n\t/**\n\t * Closes the picker\n\t * @public\n\t */\n\tasync closePicker() {\n\t\tconst responsivePopover = await this._getPopover();\n\t\tresponsivePopover.close();\n\t\tthis._isPickerOpen = false;\n\t}\n\n\t/**\n\t * Opens the picker.\n\t * @async\n\t * @public\n\t * @returns {Promise} Resolves when the picker is open\n\t */\n\tasync openPicker() {\n\t\tthis.tempValue = this.value && this.isValid(this.value) ? this.value : this.getFormat().format(new Date());\n\t\tconst responsivePopover = await this._getPopover();\n\t\tresponsivePopover.showAt(this);\n\t\tthis._isPickerOpen = true;\n\t}\n\n\ttogglePicker() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.closePicker();\n\t\t} else if (this._canOpenPicker()) {\n\t\t\tthis.openPicker();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the picker is open\n\t * @public\n\t * @returns {boolean}\n\t */\n\tisOpen() {\n\t\treturn !!this._isPickerOpen;\n\t}\n\n\t_canOpenPicker() {\n\t\treturn !this.disabled && !this.readonly;\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"[ui5-responsive-popover]\");\n\t}\n\n\t_getInput() {\n\t\treturn this.shadowRoot.querySelector(\"[ui5-input]\");\n\t}\n\n\t_getInputField() {\n\t\tconst input = this._getInput();\n\t\treturn input && input.getInputDOMRef();\n\t}\n\n\t_onkeydown(e) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.togglePicker();\n\t\t}\n\n\t\tif (this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPageUpShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(1, \"second\");\n\t\t} else if (isPageUpShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(1, \"minute\");\n\t\t} else if (isPageUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(1, \"hour\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(-1, \"second\");\n\t\t} else if (isPageDownShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(-1, \"minute\");\n\t\t} else if (isPageDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyValueBy(-1, \"hour\");\n\t\t}\n\t}\n\n\tget _isPattern() {\n\t\treturn this._formatPattern !== \"medium\" && this._formatPattern !== \"short\" && this._formatPattern !== \"long\";\n\t}\n\n\tgetFormat() {\n\t\tlet dateFormat;\n\t\tif (this._isPattern) {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t});\n\t\t} else {\n\t\t\tdateFormat = DateFormat.getInstance({\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t});\n\t\t}\n\n\t\treturn dateFormat;\n\t}\n\n\t/**\n\t * Formats a Java Script date object into a string representing a locale date and time\n\t * according to the <code>formatPattern</code> property of the TimePicker instance\n\t * @param {object} date A Java Script date object to be formatted as string\n\t * @public\n\t * @returns {string}\n\t */\n\tformatValue(date) {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current <code>formatPattern</code> value.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> an empty string is considered as valid value.\n\t * @param {string} value The value to be tested against the current date format\n\t * @public\n\t * @returns {boolean}\n\t */\n\tisValid(value) {\n\t\treturn value === \"\" || this.getFormat().parse(value);\n\t}\n\n\tnormalizeValue(value) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value));\n\t}\n\n\t_modifyValueBy(amount, unit) {\n\t\tconst date = this.getFormat().parse(this._effectiveValue);\n\t\tif (!date) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (unit === \"hour\") {\n\t\t\tdate.setHours(date.getHours() + amount);\n\t\t} else if (unit === \"minute\") {\n\t\t\tdate.setMinutes(date.getMinutes() + amount);\n\t\t} else if (unit === \"second\") {\n\t\t\tdate.setSeconds(date.getSeconds() + amount);\n\t\t}\n\n\t\tconst newValue = this.formatValue(date);\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t_handleWheel(e) {\n\t\te.preventDefault();\n\t}\n\n\tget submitButtonLabel() {\n\t\treturn TimePickerBase.i18nBundle.getText(TIMEPICKER_SUBMIT_BUTTON);\n\t}\n\n\tget cancelButtonLabel() {\n\t\treturn TimePickerBase.i18nBundle.getText(TIMEPICKER_CANCEL_BUTTON);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tget openIconName() {\n\t\treturn \"time-entry-request\";\n\t}\n}\n\nexport default TimePickerBase;\n","import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport TimePickerBase from \"./TimePickerBase.js\";\n\nimport {\n\tTIMEPICKER_INPUT_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-time-picker\",\n\taltTag: \"ui5-timepicker\",\n\tproperties: /** @lends sap.ui.webcomponents.main.TimePickerBase.prototype */ {\n\t\t/**\n\t\t * Defines a short hint, intended to aid the user with data entry when the\n\t\t * component has no value.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.\n\t\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue undefined\n\t\t * @public\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Determines the format, displayed in the input field.\n\t\t *\n\t\t * Example:\n\t\t * HH:mm:ss -> 11:42:35\n\t\t * hh:mm:ss a -> 2:23:15 PM\n\t\t * mm:ss -> 12:04 (only minutes and seconds)\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tformatPattern: {\n\t\t\ttype: String,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-time-picker</code> component provides an input field with assigned sliders which are opened on user action.\n * The <code>ui5-time-picker</code> allows users to select a localized time using touch,\n * mouse, or keyboard input. It consists of two parts: the time input field and the\n * sliders.\n *\n * <h3>Usage</h3>\n * The user can enter a time by:\n * <ul>\n * <li>Using the sliders that are displayed in a popup</li>\n * <li>Typing it in directly in the input field</li>\n * </ul>\n * <br><br>\n * When the user makes an entry and chooses the enter key, the sliders shows the corresponding time.\n * When the user directly triggers the sliders display, the actual time is displayed.\n * For the <code>ui5-time-picker</code>\n *\n * <h3>Formatting</h3>\n *\n * If a time is entered by typing it into\n * the input field, it must fit to the used time format.\n * <br><br>\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see <ui5-link target=\"_blank\" href=\"http://unicode.org/reports/tr35/#Date_Field_Symbol_Table\" class=\"api-table-content-cell-link\">UTS #35: Unicode Locale Data Markup Language</ui5-link>.\n * <br><br>\n * For example, if the <code>format-pattern</code> is \"HH:mm:ss\",\n * a valid value string is \"11:42:35\" and the same is displayed in the input.\n *\n * <h3>Keyboard handling</h3>\n * [F4], [ALT]+[UP], [ALT]+[DOWN] Open/Close picker dialog and move focus to it.\n * <br>\n * When closed:\n * <ul>\n * <li>[PAGEUP] - Increments hours by 1. If 12 am is reached, increment hours to 1 pm and vice versa.</li>\n * <li>[PAGEDOWN] - Decrements the corresponding field by 1. If 1 pm is reached, decrement hours to 12 am and vice versa.</li>\n * <li>[SHIFT]+[PAGEUP] Increments minutes by 1.</li>\n * <li>[SHIFT]+ [PAGEDOWN] Decrements minutes by 1.</li>\n * <li>[SHIFT]+[CTRL]+[PAGEUP] Increments seconds by 1.</li>\n * <li>[SHIFT]+[CTRL]+ [PAGEDOWN] Decrements seconds by 1.</li>\n * </ul>\n * When opened:\n * <ul>\n * <li>[UP] If focus is on one of the selection lists: Select the value which is above the current value. If the first value is selected, select the last value in the list. Exception: AM/ PM List: stay on the first item.</li>\n * <li>[DOWN] If focus is on one of the selection lists: Select the value which is below the current value. If the last value is selected, select the first value in the list. Exception: AM/ PM List: stay on the last item.</li>\n * <li>[LEFT] If focus is on one of the selection lists: Move focus to the selection list which is left of the current selection list. If focus is at the first selection list, move focus to the last selection list.</li>\n * <li>[RIGHT] If focus is on one of the selection lists: Move focus to the selection list which is right of the current selection list. When focus is at the last selection list, move focus to the first selection list.</li>\n * <li>[PAGEUP] If focus is on one of the selection lists: Move focus to the first entry of this list.</li>\n * <li>[PAGEDOWN] If focus is on one of the selection lists: Move focus to the last entry of this list.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/TimePicker.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.TimePicker\n * @extends TimePickerBase\n * @tagname ui5-time-picker\n * @public\n * @since 1.0.0-rc.6\n */\nclass TimePicker extends TimePickerBase {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tget _formatPattern() {\n\t\tconst hasHours = !!this.formatPattern.match(/H/i);\n\t\tconst fallback = !this.formatPattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getTimePattern(\"medium\") : this.formatPattern;\n\t}\n\n\tget _displayFormat() {\n\t\treturn this.getFormat().oFormatOptions.pattern;\n\t}\n\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\t/**\n\t * Currently selected time represented as JavaScript Date instance\n\t *\n\t * @readonly\n\t * @type { Date }\n\t * @public\n\t */\n\tget dateValue() {\n\t\treturn this.getFormat().parse(this._effectiveValue);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": \"dialog\",\n\t\t\t\"ariaAutoComplete\": \"none\",\n\t\t\t\"role\": \"combobox\",\n\t\t\t\"ariaControls\": `${this._id}-responsive-popover`,\n\t\t\t\"ariaExpanded\": this.isOpen(),\n\t\t};\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn TimePicker.i18nBundle.getText(TIMEPICKER_INPUT_DESCRIPTION);\n\t}\n}\n\nTimePicker.define();\n\nexport default TimePicker;\n","class RadioButtonGroup {\n\tstatic hasGroup(groupName) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getCheckedRadioFromGroup(groupName) {\n\t\treturn this.checkedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName) {\n\t\tthis.checkedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn, groupName) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tthis.getGroup(groupName).push(radioBtn);\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic removeFromGroup(radioBtn, groupName) {\n\t\tif (!this.hasGroup(groupName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this.getGroup(groupName);\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (checkedRadio === radioBtn) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic createGroup(radioBtn, groupName) {\n\t\tif (radioBtn.checked) {\n\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item, groupName) {\n\t\tconst group = this.getGroup(groupName),\n\t\t\tgroupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToSelect = this._nextSelectable(currentItemPosition, group);\n\n\t\tthis.updateSelectionInGroup(nextItemToSelect, groupName);\n\t}\n\n\tstatic updateTabOrder(groupName) {\n\t\tif (!this.hasGroup(groupName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this.getGroup(groupName);\n\t\tconst hasCheckedRadio = group.some(radioBtn => radioBtn.checked);\n\n\t\tgroup.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {\n\t\t\tif (hasCheckedRadio) {\n\t\t\t\tradioBtn._tabIndex = radioBtn.checked ? \"0\" : \"-1\";\n\t\t\t} else {\n\t\t\t\tradioBtn._tabIndex = idx === 0 ? \"0\" : \"-1\";\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic selectPreviousItem(item, groupName) {\n\t\tconst group = this.getGroup(groupName),\n\t\t\tgroupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToSelect = this._previousSelectable(currentItemPosition, group);\n\n\t\tthis.updateSelectionInGroup(previousItemToSelect, groupName);\n\t}\n\n\tstatic selectItem(item, groupName) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect, groupName) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tthis._deselectRadio(checkedRadio);\n\t\tthis._selectRadio(radioBtnToSelect);\n\t\tthis.checkedRadios.set(groupName, radioBtnToSelect);\n\t}\n\n\tstatic _deselectRadio(radioBtn) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.checked = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.focus();\n\t\t\tradioBtn.checked = true;\n\t\t\tradioBtn._checked = true;\n\t\t\tradioBtn.fireEvent(\"change\");\n\t\t}\n\t}\n\n\tstatic _nextSelectable(pos, group) {\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToSelect = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled || group[0].readonly) {\n\t\t\t\treturn this._nextSelectable(1, group);\n\t\t\t}\n\t\t\tnextRadioToSelect = group[0];\n\t\t} else if (group[pos + 1].disabled || group[pos + 1].readonly) {\n\t\t\treturn this._nextSelectable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToSelect = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToSelect;\n\t}\n\n\tstatic _previousSelectable(pos, group) {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToSelect = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {\n\t\t\t\treturn this._previousSelectable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToSelect = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled || group[pos - 1].readonly) {\n\t\t\treturn this._previousSelectable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToSelect = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToSelect;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn, groupName) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.checked) {\n\t\t\tif (!checkedRadio) {\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== checkedRadio) {\n\t\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === checkedRadio) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get checkedRadios() {\n\t\tif (!this._checkedRadios) {\n\t\t\tthis._checkedRadios = new Map();\n\t\t}\n\t\treturn this._checkedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-radio-root ${classMap(context.classes.main)}\" role=\"radio\" aria-checked=\"${ifDefined(context.checked)}\" aria-readonly=\"${ifDefined(context.ariaReadonly)}\" aria-disabled=\"${ifDefined(context.ariaDisabled)}\" aria-label=\"${ifDefined(context.ariaLabelText)}\" aria-describedby=\"${ifDefined(context.ariaDescribedBy)}\" tabindex=\"${ifDefined(context.tabIndex)}\" dir=\"${ifDefined(context.effectiveDir)}\" @click=\"${context._onclick}\" @keydown=\"${context._onkeydown}\" @keyup=\"${context._onkeyup}\" @mousedown=\"${context._onmousedown}\" @mouseup=\"${context._onmouseup}\" @focusout=\"${context._onfocusout}\"><div class='ui5-radio-inner ${classMap(context.classes.inner)}'><svg class=\"ui5-radio-svg\" focusable=\"false\" aria-hidden=\"true\">${blockSVG1(context, tags, suffix)}</svg><input type='radio' ?checked=\"${context.checked}\" ?readonly=\"${context.readonly}\" ?disabled=\"${context.disabled}\" name=\"${ifDefined(context.name)}\" data-sap-no-tab-ref/></div>${ context.text ? block1(context, tags, suffix) : undefined }${ context.hasValueState ? block2(context, tags, suffix) : undefined }</div>`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-label\", tags, suffix)} id=\"${ifDefined(context._id)}-label\" class=\"ui5-radio-label\" for=\"${ifDefined(context._id)}\" wrapping-type=\"${ifDefined(context.wrappingType)}\">${ifDefined(context.text)}</${scopeTag(\"ui5-label\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-descr\" class=\"ui5-hidden-text\">${ifDefined(context.valueStateText)}</span>`;\n\nconst blockSVG1 = (context, tags, suffix) => svg`<circle class=\"ui5-radio-svg-outer\" cx=\"50%\" cy=\"50%\" r=\"50%\" /><circle class=\"ui5-radio-svg-inner\" cx=\"50%\" cy=\"50%\" r=\"22%\" />`;\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\RadioButton.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host(:not([hidden])){display:inline-block}:host{min-width:var(--_ui5_radio_button_min_width);max-width:100%;text-overflow:ellipsis;overflow:hidden;color:var(--_ui5_radio_button_color);cursor:pointer;border-radius:var(--_ui5_radio_button_border_radius);transition:var(--_ui5_radio_button_transition)}:host([checked]){color:var(--_ui5_radio_button_checked_fill)}:host([checked]) .ui5-radio-svg-inner{fill:currentColor}:host([checked]) .ui5-radio-svg-outer{stroke:var(--_ui5_radio_button_outer_ring_color)}:host([disabled]) .ui5-radio-root{color:var(--_ui5_radio_button_color);opacity:var(--sapContent_DisabledOpacity)}:host([disabled][checked]) .ui5-radio-svg-outer{stroke:var(--_ui5_radio_button_color)}:host(:not([disabled])) .ui5-radio-root:focus:before{content:\\\"\\\";display:var(--_ui5_radio_button_focus_outline);position:absolute;top:var(--_ui5_radio_button_focus_dist);bottom:var(--_ui5_radio_button_focus_dist);left:var(--_ui5_radio_button_focus_dist);right:var(--_ui5_radio_button_focus_dist);pointer-events:none;border:var(--_ui5_radio_button_border_width) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5_radio_button_border_radius)}:host(:not([disabled])[readonly]) .ui5-radio-root:focus:before{border:var(--_ui5_radio_button_border_width) var(--_ui5_radio_button_border_readonly_focus_style) var(--sapContent_FocusColor)}:host(:not([disabled])) .ui5-radio-root:focus{border-radius:var(--_ui5_radio_button_border_radius);border:var(--_ui5_radio_button_focus_border)}:host(:not([disabled]):hover){background:var(--_ui5_radio_button_hover_background);box-shadow:var(--_ui5_radio_button_hover_shadow)}:host(:not([active]):not([value-state=Error]):not([value-state=Warning])) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5_radio_button_hover_fill);stroke:var(--_ui5_radio_button_outer_ring_hover_color)}:host(:not([value-state=Error]):not([value-state=Warning])[checked]) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5_radio_button_hover_fill);stroke:var(--_ui5_radio_button_outer_ring_checked_hover_color)}:host([active][checked]:not([value-state])) .ui5-radio-svg-outer{stroke:var(--_ui5_radio_button_outer_ring_checked_hover_color)}:host([active]:not([checked]):not([value-state])) .ui5-radio-svg-outer{stroke:var(--_ui5_radio_button_outer_ring_active_color)}:host([text]) .ui5-radio-root:focus:before{right:0}:host([text]) .ui5-radio-inner{padding:var(--_ui5_radio_button_outer_ring_padding_with_label)}:host([checked][readonly]) .ui5-radio-svg-inner{fill:var(--sapContent_NonInteractiveIconColor)}:host([readonly]) .ui5-radio-root .ui5-radio-svg-outer{fill:var(--sapField_ReadOnly_Background);stroke:var(--sapField_ReadOnly_BorderColor)}:host([value-state=Error]) .ui5-radio-svg-outer,:host([value-state=Warning]) .ui5-radio-svg-outer{stroke-width:2}:host([value-state=Error][checked]) .ui5-radio-svg-inner{fill:var(--_ui5_radio_button_checked_error_fill)}:host([value-state=Error]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer,:host([value-state=Error]) .ui5-radio-svg-outer{stroke:var(--sapField_InvalidColor);fill:var(--sapField_InvalidBackground)}:host([value-state=Warning][checked]) .ui5-radio-svg-inner{fill:var(--_ui5_radio_button_checked_warning_fill)}:host([value-state=Warning]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer,:host([value-state=Warning]) .ui5-radio-svg-outer{stroke:var(--sapField_WarningColor);fill:var(--sapField_WarningBackground)}:host([value-state=Error]) .ui5-radio-root,:host([value-state=Information]) .ui5-radio-root,:host([value-state=Warning]) .ui5-radio-root{stroke-dasharray:var(--_ui5_radio_button_warning_error_border_dash)}.ui5-radio-root{height:var(--_ui5_radio_button_height);position:relative;display:inline-flex;flex-wrap:nowrap;outline:none;max-width:100%;width:var(--_ui5_radio_button_inner_width);box-sizing:border-box;border:var(--_ui5_radio_button_border);border-radius:var(--_ui5_radio_button_border_radius);transition:var(--_ui5_radio_button_transition);cursor:pointer}.ui5-radio-inner{display:flex;align-items:center;padding:var(--_ui5_radio_button_outer_ring_padding);flex-shrink:0;height:var(--_ui5_radio_button_inner_size);font-size:1rem;pointer-events:none;vertical-align:top}.ui5-radio-inner:focus{outline:none}.ui5-radio-inner input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit;margin:0}[ui5-label].ui5-radio-label{display:flex;align-items:center;padding-right:var(--_ui5_radio_button_label_offset);vertical-align:top;cursor:default;max-width:100%;text-overflow:ellipsis;overflow:hidden;pointer-events:none;color:var(--_ui5_radio_button_label_color)}:host([wrapping-type=Normal][text]) .ui5-radio-root{height:auto}:host([wrapping-type=Normal][text]) [ui5-label].ui5-radio-label{padding:var(--_ui5_radio_button_label_side_padding) 0;word-break:break-all}.ui5-radio-svg{height:var(--_ui5_radio_button_svg_size);width:var(--_ui5_radio_button_svg_size);overflow:visible;pointer-events:none}.ui5-radio-svg-outer{fill:var(--_ui5_radio_button_outer_ring_bg);stroke:currentColor;stroke-width:var(--_ui5_radio_button_outer_ring_width)}.ui5-radio-svg-inner{fill:none}.ui5-radio-svg-inner,.ui5-radio-svg-outer{flex-shrink:0}:host([text]) [dir=rtl].ui5-radio-root:focus:before{left:0;right:var(--_ui5_radio_button_rtl_focus_right)}[dir=rtl] .ui5-radio-inner{padding:var(--_ui5_radio_button_outer_ring_padding_rtl)}[dir=rtl] [ui5-label].ui5-radio-label{padding-left:var(--_ui5_radio_button_label_offset);padding-right:0}:host(.ui5-li-singlesel-radiobtn) .ui5-radio-root .ui5-radio-inner .ui5-radio-svg-outer{fill:var(--sapList_Background)}\"}","import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio = null;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-radio-button\",\n\taltTag: \"ui5-radiobutton\",\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.RadioButton.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the component is disabled.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is read-only.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A read-only component is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is checked or not.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The property value can be changed with user interaction,\n\t\t * either by clicking/tapping on the component,\n\t\t * or by using the Space or Enter key.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\tdefaultValue: ValueState.None,\n\t\t\ttype: ValueState,\n\t\t},\n\n\t\t/**\n\t\t * Defines the name of the component.\n\t\t * Radio buttons with the same <code>name</code> will form a radio button group.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t * The selection can be changed with <code>ARROW_UP/DOWN</code> and <code>ARROW_LEFT/RIGHT</code> keys between radio buttons in same group.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t * Only one radio button can be selected per group.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect when submitting forms, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the form value of the component.\n\t\t * When a form with a radio button group is submitted, the group's value\n\t\t * will be the value of the currently selected radio button.\n\t\t * <br>\n\t\t * <b>Important:</b> For the <code>value</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component text wraps when there is not enough space.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code> - The text will be truncated with an ellipsis.</li>\n\t\t * <li><code>Normal</code> - The text will wrap. The words will not be broken based on hyphenation.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {WrappingType}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\twrappingType: {\n\t\t\ttype: WrappingType,\n\t\t\tdefaultValue: WrappingType.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the component.\n\t\t * If not provided a default text alternative will be set, if present.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.16\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"-1\",\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Defines the active state (pressed or not) of the component.\n\t\t * @private\n\t\t */\n\t\t active: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.RadioButton.prototype */ {\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.RadioButton.prototype */ {\n\n\t\t/**\n\t\t * Fired when the component checked state changes.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tchange: {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-radio-button</code> component enables users to select a single option from a set of options.\n * When a <code>ui5-radio-button</code> is selected by the user, the\n * <code>change</code> event is fired.\n * When a <code>ui5-radio-button</code> that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the <code>name</code> property.\n * <br>\n * <b>Note:</b> If <code>ui5-radio-button</code> is not part of a group, it can be selected once, but can not be deselected back.\n *\n * <h3>Keyboard Handling</h3>\n *\n * Once the <code>ui5-radio-button</code> is on focus, it might be selected by pressing the Space and Enter keys.\n * <br>\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n * <br>\n * <b>Note:</b> On entering radio button group, the focus goes to the currently selected radio button.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/RadioButton\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.RadioButton\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-radio-button\n * @public\n */\nclass RadioButton extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn RadioButtonTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn radioButtonCss;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Label];\n\t}\n\n\tstatic async onDefine() {\n\t\tRadioButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncGroup();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tsyncGroup() {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name;\n\t\tthis._checked = this.checked;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled || !element.checked;\n\t\t\t\tnativeInput.value = element.checked ? element.value : \"\";\n\t\t\t});\n\t\t} else if (this.value) {\n\t\t\tconsole.warn(`In order for the \"value\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(event) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(event) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis.active = true;\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tif (isDown(event) || isRight(event)) {\n\t\t\tthis._handleDown(event);\n\t\t}\n\n\t\tif (isUp(event) || isLeft(event)) {\n\t\t\tthis._handleUp(event);\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tvalueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Error\": RadioButton.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": RadioButton.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tmain: {},\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n\n\tget ariaDisabled() {\n\t\treturn this.disabled ? \"true\" : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [this.text, this.accessibleName].filter(Boolean).join(\" \");\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\tget tabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n\n\tget strokeWidth() {\n\t\treturn this.valueState === \"None\" ? \"1\" : \"2\";\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-textarea-root\" style=\"${styleMap(context.styles.main)}\" ?aria-invalid=\"${context.ariaInvalid}\" @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\">${ context.growing ? block1(context, tags, suffix) : undefined }<textarea id=\"${ifDefined(context._id)}-inner\" class=\"ui5-textarea-inner\" placeholder=\"${ifDefined(context.placeholder)}\" ?disabled=\"${context.disabled}\" ?readonly=\"${context.readonly}\" aria-label=\"${ifDefined(context.ariaLabelText)}\" aria-describedby=\"${ifDefined(context.ariaDescribedBy)}\" aria-required=\"${ifDefined(context.required)}\" maxlength=\"${ifDefined(context._exceededTextProps.calcedMaxLength)}\" .value=\"${ifDefined(context.value)}\" @input=\"${context._oninput}\" @change=\"${context._onchange}\" @keyup=\"${context._onkeyup}\" @keydown=\"${context._onkeydown}\" data-sap-focus-ref part=\"textarea\"></textarea>${ context.showExceededText ? block3(context, tags, suffix) : undefined }${ context.hasValueState ? block4(context, tags, suffix) : undefined }<slot name=\"formSupport\"></slot></div> `;\nconst block1 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}-mirror\" style=\"${styleMap(context.styles.mirror)}\" class=\"ui5-textarea-mirror\" aria-hidden=\"true\">${ repeat(context._mirrorText, (item, index) => item._id || index, (item, index) => block2(item, index, context, tags, suffix)) }</div>`;\nconst block2 = (item, index, context, tags, suffix) => html`${ifDefined(item.text)}<br />`;\nconst block3 = (context, tags, suffix) => html`<span class=\"ui5-textarea-exceeded-text\">${ifDefined(context._exceededTextProps.exceededText)}</span>`;\nconst block4 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-valueStateDesc\" class=\"ui5-hidden-text\">${ifDefined(context.ariaValueStateHiddenText)}</span>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`${ context.displayValueStateMessagePopover ? block1(context, tags, suffix) : undefined }`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-popover\", tags, suffix)} skip-registry-update prevent-focus-restore no-padding hide-arrow _disable-initial-focus class=\"ui5-valuestatemessage-popover\" style=\"${styleMap(context.styles.valueStateMsgPopover)}\" placement-type=\"Bottom\" horizontal-align=\"Left\"><div slot=\"header\" class=\"ui5-valuestatemessage-root ${classMap(context.classes.valueStateMsg)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-value-state-message-icon\" name=\"${ifDefined(context._valueStateMessageIcon)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.hasCustomValueState ? block2(context, tags, suffix) : block4(context, tags, suffix) }</div></${scopeTag(\"ui5-popover\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block3(item, index, context, tags, suffix)) }`;\nconst block3 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\nconst block4 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\TextArea.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host(:not([hidden])){display:inline-block}:host{width:100%;color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);font-style:normal;border-color:var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-sizing:border-box;line-height:1.4;letter-spacing:normal;word-spacing:normal}:host([disabled]){opacity:var(--_ui5_input_disabled_opacity);cursor:default;pointer-events:none;border-color:var(--sapField_ReadOnly_BorderColor);-webkit-text-fill-color:var(--sapContent_DisabledTextColor);color:var(--sapContent_DisabledTextColor)}:host([disabled]) .ui5-textarea-inner{background:var(--sapField_ReadOnly_Background)}:host([focused]) .ui5-textarea-inner{outline:var(--_ui5_textarea_focus_outline);outline-offset:-3px}:host([focused]:not([exceeding])) .ui5-textarea-inner{background-color:var(--sapField_Focus_Background);background-image:none;box-shadow:var(--_ui5_textarea_focus_box_shadow)}:host(:not([value-state]):not([exceeding]):not([readonly]):not([focused]):hover) .ui5-textarea-inner{box-shadow:var(--_ui5_textarea_hover_box_shadow);background-image:var(--_ui5_textarea_background_image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host([exceeding]) .ui5-textarea-inner,:host([value-state]:not([value-state=None])[focused]) .ui5-textarea-inner{outline:var(--_ui5_textarea_value_state_focus_outline);outline-offset:-4px}.ui5-textarea-root{height:100%;min-height:var(--_ui5_input_height);display:inline-flex;vertical-align:top;outline:none;box-sizing:border-box;border-radius:inherit;border-color:inherit}.ui5-textarea-inner{width:100%;height:100%;margin:0;padding:var(--_ui5_textarea_padding);box-sizing:border-box;color:inherit;font-size:inherit;font-family:inherit;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;overflow:auto;resize:none;border-color:inherit;border-radius:inherit;background-color:var(--sapField_Background);border-width:var(--_ui5_textarea_inner_border_width);border-style:solid;line-height:inherit;letter-spacing:inherit;word-spacing:inherit;background-image:var(--_ui5_textarea_background_image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host([growing]) .ui5-textarea-root{position:relative}:host([growing]) .ui5-textarea-inner{position:absolute;top:0;left:0}.ui5-textarea-mirror{line-height:1.4;visibility:hidden;width:100%;word-break:break-all;padding:var(--_ui5_textarea_padding);font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);white-space:pre-wrap;box-sizing:border-box}:host([readonly]){border-color:var(--sapField_ReadOnly_BorderColor)}:host([readonly]) .ui5-textarea-root .ui5-textarea-inner{background:var(--sapField_ReadOnly_Background)}:host([show-exceeded-text]) .ui5-textarea-root{flex-direction:column}.ui5-textarea-inner::-webkit-input-placeholder{font-style:var(--_ui5_textarea_placeholder_font_style);color:var(--sapField_PlaceholderTextColor)}.ui5-textarea-inner::-moz-placeholder{font-style:var(--_ui5_textarea_placeholder_font_style);color:var(--sapField_PlaceholderTextColor)}.ui5-textarea-inner:-ms-input-placeholder{font-style:var(--_ui5_textarea_placeholder_font_style);color:var(--sapField_PlaceholderTextColor)}.ui5-textarea-inner:-moz-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}:host(:not([value-state]):not([exceeding]):not([readonly]):hover){border-color:var(--sapField_Hover_BorderColor)}:host(:not([value-state]):not([exceeding]):not([readonly]):hover) .ui5-textarea-inner{background-color:var(--sapField_Hover_Background)}:host([exceeding]) .ui5-textarea-inner,:host([value-state]:not([value-state=None])) .ui5-textarea-inner{border-width:var(--_ui5_textarea_state_border_width)}:host([value-state=Error]) .ui5-textarea-inner,:host([value-state=Warning]) .ui5-textarea-inner{font-style:var(--_ui5_input_error_warning_font_style)}:host([exceeding]) .ui5-textarea-inner,:host([value-state=Warning]:not([readonly])) .ui5-textarea-inner{background-image:var(--_ui5_textarea_warning_background_image);background-size:100% var(--sapField_WarningBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([exceeding]:not([focused]):hover) .ui5-textarea-inner,:host([value-state=Warning]:not([exceeding]):not([readonly]):not([focused]):hover) .ui5-textarea-inner{box-shadow:var(--sapContent_Critical_Shadow);background-color:var(--sapField_Hover_Background)}:host([exceeding][focused]) .ui5-textarea-inner,:host([value-state=Warning][focused]:not([exceeding]):not([readonly])) .ui5-textarea-inner{background-image:none;box-shadow:var(--_ui5_textarea_value_state_warning_focus_box_shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Error]:not([readonly])) .ui5-textarea-inner{font-weight:var(--_ui5_input_error_font_weight);background-image:var(--_ui5_textarea_error_background_image);background-size:100% var(--sapField_InvalidBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Error]:not([exceeding]):not([readonly]):not([focused]):hover) .ui5-textarea-inner{box-shadow:var(--sapContent_Negative_Shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Error][focused]:not([exceeding]):not([readonly])) .ui5-textarea-inner{background-image:none;box-shadow:var(--_ui5_textarea_value_state_error_focus_box_shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Information]:not([readonly])) .ui5-textarea-inner{background-image:var(--_ui5_textarea_information_background_image);background-size:100% var(--sapField_InformationBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Information]:not([exceeding]):not([readonly]):not([focused]):hover) .ui5-textarea-inner{box-shadow:var(--sapContent_Informative_Shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Information][focused]:not([exceeding]):not([readonly])) .ui5-textarea-inner{background-image:none;box-shadow:var(--_ui5_textarea_focus_box_shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Success]:not([readonly])) .ui5-textarea-inner{background-image:var(--_ui_textarea_success_background_image);background-size:100% var(--sapField_SuccessBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Success]:not([exceeding]):not([readonly]):not([focused]):hover) .ui5-textarea-inner{box-shadow:var(--sapContent_Positive_Shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Success][focused]:not([exceeding]):not([readonly])) .ui5-textarea-inner{background-image:none;box-shadow:var(--_ui5_textarea_value_state_success_focus_box_shadow);background-color:var(--sapField_Hover_Background)}:host([value-state=Error]:not([readonly])){border-color:var(--sapField_InvalidColor)}:host([value-state=Error]:not([readonly])) .ui5-textarea-inner{background-color:var(--sapField_InvalidBackground)}:host([value-state=Error]:not([readonly]):not([disabled])) .ui5-textarea-inner,:host([value-state=Information]:not([readonly]):not([disabled])) .ui5-textarea-inner,:host([value-state=Warning]:not([readonly]):not([disabled])) .ui5-textarea-inner{border-style:var(--_ui5_input_error_warning_border_style)}:host([exceeding]),:host([value-state=Warning]:not([readonly])){border-color:var(--sapField_WarningColor)}:host([exceeding]) .ui5-textarea-inner,:host([value-state=Warning]:not([readonly])) .ui5-textarea-inner{background-color:var(--sapField_WarningBackground)}:host([value-state=Success]:not([readonly]):not([exceeding])){border-color:var(--sapField_SuccessColor)}:host([value-state=Success]:not([readonly]):not([exceeding])) .ui5-textarea-inner{background-color:var(--sapField_SuccessBackground);border-width:var(--_ui5_textarea_success_border_width)}:host([value-state=Information]:not([readonly]):not([exceeding])){border-color:var(--sapField_InformationColor)}:host([value-state=Information]:not([readonly]):not([exceeding])) .ui5-textarea-inner{background-color:var(--sapField_InformationBackground);border-width:var(--_ui5_textarea_state_border_width)}.ui5-textarea-exceeded-text{overflow:hidden;align-self:flex-end;padding:.125rem .125rem .5rem;color:var(--sapContent_LabelColor);font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSmallSize)}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { isIE } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport Popover from \"./Popover.js\";\n\nimport TextAreaTemplate from \"./generated/templates/TextAreaTemplate.lit.js\";\nimport TextAreaPopoverTemplate from \"./generated/templates/TextAreaPopoverTemplate.lit.js\";\n\nimport {\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tTEXTAREA_CHARACTERS_LEFT,\n\tTEXTAREA_CHARACTERS_EXCEEDED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport styles from \"./generated/themes/TextArea.css.js\";\nimport valueStateMessageStyles from \"./generated/themes/ValueStateMessage.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-textarea\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.TextArea.prototype */ {\n\t\t/**\n\t\t * Defines the value of the component.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Indicates whether the user can interact with the component or not.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is read-only.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A read-only component is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is required.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.3\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines a short hint intended to aid the user with data entry when the component has no value.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>maxlength</code> property is set,\n\t\t * the component turns into \"Warning\" state once the characters exceeds the limit.\n\t\t * In this case, only the \"Error\" state is considered and can be applied.\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @since 1.0.0-rc.7\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the number of visible text lines for the component.\n\t\t * <br><br>\n\t\t * <b>Notes:</b>\n\t\t * <ul>\n\t\t * <li>If the <code>growing</code> property is enabled, this property defines the minimum rows to be displayed\n\t\t * in the textarea.</li>\n\t\t * <li>The CSS <code>height</code> property wins over the <code>rows</code> property, if both are set.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultvalue 0\n\t\t * @public\n\t\t */\n\t\trows: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t},\n\n\t\t/**\n\t\t * Defines the maximum number of characters that the <code>value</code> can have.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultValue null\n\t\t * @public\n\t\t */\n\t\tmaxlength: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: null,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the characters exceeding the maximum allowed character count are visible\n\t\t * in the component.\n\t\t * <br><br>\n\t\t * If set to <code>false</code>, the user is not allowed to enter more characters than what is set in the\n\t\t * <code>maxlength</code> property.\n\t\t * If set to <code>true</code> the characters exceeding the <code>maxlength</code> value are selected on\n\t\t * paste and the counter below the component displays their number.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tshowExceededText: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Enables the component to automatically grow and shrink dynamically with its content.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If set to <code>true</code>, the CSS <code>height</code> property is ignored.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tgrowing: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the maximum number of lines that the component can grow.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultvalue 0\n\t\t * @public\n\t\t */\n\t\tgrowingMaxLines: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the component so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the textarea.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\texceeding: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_mirrorText: {\n\t\t\ttype: Object,\n\t\t\tmultiple: true,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_maxHeight: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_width: {\n\t\t\ttype: Integer,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.TextArea.prototype */ {\n\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the component.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed if the component has\n\t\t * <code>valueState</code> of type <code>Information</code>, <code>Warning</code> or <code>Error</code>.\n\t\t * @type {HTMLElement[]}\n\t\t * @since 1.0.0-rc.7\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.TextArea.prototype */ {\n\t\t/**\n\t\t * Fired when the text has changed and the focus leaves the component.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tchange: {},\n\n\t\t/**\n\t\t * Fired when the value of the component changes at each keystroke or when\n\t\t * something is pasted.\n\t\t *\n\t\t * @event\n\t\t * @since 1.0.0-rc.5\n\t\t * @public\n\t\t */\n\t\tinput: {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-textarea</code> component is used to enter multiple lines of text.\n * <br><br>\n * When empty, it can hold a placeholder similar to a <code>ui5-input</code>.\n * You can define the rows of the <code>ui5-textarea</code> and also determine specific behavior when handling long texts.\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-textarea</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>textarea - Used to style the native textarea</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/TextArea\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.TextArea\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-textarea\n * @public\n */\nclass TextArea extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn TextAreaTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn TextAreaPopoverTemplate;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn valueStateMessageStyles;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._firstRendering = true;\n\t\tthis._openValueStateMsgPopover = false;\n\t\tthis._fnOnResize = this._onResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._fnOnResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._fnOnResize);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._exceededTextProps = this._calcExceededText();\n\t\tthis._mirrorText = this._tokenizeText(this.value);\n\n\t\tthis.exceeding = this._exceededTextProps.leftCharactersCount < 0;\n\n\t\tif (this.growingMaxLines) {\n\t\t\t// this should be complex calc between line height and paddings - TODO: make it stable\n\t\t\tthis._maxHeight = `${this.growingMaxLines * 1.4 * 14 + 9}px`;\n\t\t}\n\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this);\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tthis.toggleValueStateMessage(this.openValueStateMsgPopover);\n\t\tthis._firstRendering = false;\n\t}\n\n\tgetInputDomRef() {\n\t\treturn this.getDomRef().querySelector(\"textarea\");\n\t}\n\n\t_onkeydown(event) {\n\t\tthis._keyDown = true;\n\n\t\tif (isEscape(event)) {\n\t\t\tconst nativeTextArea = this.getInputDomRef();\n\n\t\t\tthis.value = this.previousValue;\n\t\t\tnativeTextArea.value = this.value;\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\t}\n\n\t_onkeyup() {\n\t\tthis._keyDown = false;\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t\tthis._openValueStateMsgPopover = true;\n\t\tthis.previousValue = this.getInputDomRef().value;\n\t}\n\n\t_onfocusout(event) {\n\t\tconst focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(\".ui5-valuestatemessage-root\");\n\t\tthis.focused = false;\n\n\t\tif (!focusedOutToValueStateMessage) {\n\t\t\tthis._openValueStateMsgPopover = false;\n\t\t}\n\t}\n\n\t_onchange() {\n\t\tthis.fireEvent(\"change\", {});\n\t}\n\n\t_oninput(event) {\n\t\tconst nativeTextArea = this.getInputDomRef();\n\n\t\t/* skip calling change event when an textarea with a placeholder is focused on IE\n\t\t\t- value of the host and the internal textarea should be different in case of actual input\n\t\t\t- input is called when a key is pressed => keyup should not be called yet\n\t\t*/\n\t\tconst skipFiring = (nativeTextArea.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;\n\t\tif (event.target === nativeTextArea) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\tevent.stopImmediatePropagation();\n\t\t}\n\n\t\tif (skipFiring) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = nativeTextArea.value;\n\t\tthis.fireEvent(\"input\", {});\n\n\t\t// Angular two way data binding\n\t\tthis.fireEvent(\"value-changed\");\n\t}\n\n\t_onResize() {\n\t\tif (this.displayValueStateMessagePopover) {\n\t\t\tthis._width = this.offsetWidth;\n\t\t}\n\t}\n\n\ttoggleValueStateMessage(toggle) {\n\t\tif (toggle) {\n\t\t\tthis.openPopover();\n\t\t} else {\n\t\t\tthis.closePopover();\n\t\t}\n\t}\n\n\tasync openPopover() {\n\t\tthis.popover = await this._getPopover();\n\t\tthis.popover && this.popover.showAt(this.shadowRoot.querySelector(\".ui5-textarea-inner\"));\n\t}\n\n\tasync closePopover() {\n\t\tthis.popover = await this._getPopover();\n\t\tthis.popover && this.popover.close();\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"[ui5-popover]\");\n\t}\n\n\t_tokenizeText(value) {\n\t\tconst tokenizedText = value.replace(/&/gm, \"&\").replace(/\"/gm, \""\").replace(/'/gm, \"'\").replace(/</gm, \"<\")\n\t\t\t.replace(/>/gm, \">\")\n\t\t\t.split(\"\\n\");\n\n\t\tif (tokenizedText.length < this.rows) {\n\t\t\treturn this._mapTokenizedTextToObject([...tokenizedText, ...Array(this.rows - tokenizedText.length).fill(\"\")]);\n\t\t}\n\n\t\treturn this._mapTokenizedTextToObject(tokenizedText);\n\t}\n\n\t_mapTokenizedTextToObject(tokenizedText) {\n\t\treturn tokenizedText.map((token, index) => {\n\t\t\treturn {\n\t\t\t\ttext: token,\n\t\t\t\tlast: index === (tokenizedText.length - 1),\n\t\t\t};\n\t\t});\n\t}\n\n\t_calcExceededText() {\n\t\tlet calcedMaxLength,\n\t\t\texceededText,\n\t\t\tleftCharactersCount;\n\n\t\tif (this.showExceededText) {\n\t\t\tconst maxLength = this.maxlength || 0;\n\n\t\t\tif (maxLength) {\n\t\t\t\tleftCharactersCount = maxLength - this.value.length;\n\n\t\t\t\tif (leftCharactersCount >= 0) {\n\t\t\t\t\texceededText = TextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_LEFT, leftCharactersCount);\n\t\t\t\t} else {\n\t\t\t\t\texceededText = TextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_EXCEEDED, Math.abs(leftCharactersCount));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcalcedMaxLength = this.maxlength;\n\t\t}\n\n\t\treturn {\n\t\t\texceededText, leftCharactersCount, calcedMaxLength,\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tvalueStateMsg: {\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning || this.exceeding,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst lineHeight = 1.4 * 16;\n\n\t\treturn {\n\t\t\tmirror: {\n\t\t\t\t\"max-height\": this._maxHeight,\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: (this.rows && !this.growing) ? `${this.rows * lineHeight}px` : \"100%\",\n\t\t\t},\n\t\t\tfocusDiv: {\n\t\t\t\t\"height\": (this.showExceededText ? \"calc(100% - 26px)\" : \"100%\"),\n\t\t\t\t\"max-height\": (this._maxHeight),\n\t\t\t},\n\t\t\tvalueStateMsgPopover: {\n\t\t\t\t\"max-width\": `${this._width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget tabIndex() {\n\t\treturn this.disabled ? undefined : \"0\";\n\t}\n\n\tget ariaLabelText() {\n\t\tconst effectiveAriaLabelText = getEffectiveAriaLabelText(this);\n\n\t\tif (this.showExceededText) {\n\t\t\tif (effectiveAriaLabelText) {\n\t\t\t\treturn `${effectiveAriaLabelText} ${this._exceededTextProps.exceededText}`;\n\t\t\t}\n\n\t\t\treturn this._exceededTextProps.exceededText;\n\t\t}\n\n\t\treturn effectiveAriaLabelText;\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : undefined;\n\t}\n\n\tget ariaValueStateHiddenText() {\n\t\tif (!this.hasValueState) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.hasCustomValueState) {\n\t\t\treturn this.valueStateMessageText.map(el => el.textContent).join(\" \");\n\t\t}\n\n\t\treturn this.valueStateText;\n\t}\n\n\tget ariaInvalid() {\n\t\treturn this.valueState === \"Error\" ? \"true\" : undefined;\n\t}\n\n\tget openValueStateMsgPopover() {\n\t\treturn !this._firstRendering && this._openValueStateMsgPopover && this.displayValueStateMessagePopover;\n\t}\n\n\tget displayValueStateMessagePopover() {\n\t\treturn this.hasCustomValueState || this.hasValueState || this.exceeding;\n\t}\n\n\tget hasCustomValueState() {\n\t\treturn !!this.valueStateMessage.length && this.hasValueState;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState === ValueState.Error || this.valueState === ValueState.Warning || this.valueState === ValueState.Information;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.valueStateMessage.map(x => x.cloneNode(true));\n\t}\n\n\tget valueStateText() {\n\t\tif (this.valueState !== ValueState.Error && this.exceeding) {\n\t\t\treturn this.valueStateTextMappings()[ValueState.Warning];\n\t\t}\n\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tvalueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Information\": TextArea.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": TextArea.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": TextArea.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Popover];\n\t}\n\n\tstatic async onDefine() {\n\t\tTextArea.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nTextArea.define();\n\nexport default TextArea;\n","import DataType from \"./DataType.js\";\n\n/**\n * Enumeration for different mode behaviors of the <code>InvisibleMessage</code>.\n * @private\n */\nconst InvisibleMessageModes = {\n\n\t/**\n * Indicates that updates to the region should be presented at the next graceful opportunity,\n * such as at the end of reading the current sentence, or when the user pauses typing.\n */\n\tPolite: \"Polite\",\n\n\t/**\n * Indicates that updates to the region have the highest priority and should be presented to the user immediately.\n */\n\tAssertive: \"Assertive\",\n\n};\n\nclass InvisibleMessageMode extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!InvisibleMessageModes[value];\n\t}\n}\n\nInvisibleMessageMode.generateTypeAccessors(InvisibleMessageModes);\n\nexport default InvisibleMessageModes;\n","import InvisibleMessageMode from \"../types/InvisibleMessageMode.js\";\nimport getSingletonElementInstance from \"./getSingletonElementInstance.js\";\nimport { attachBoot } from \"../Boot.js\";\n\nlet politeSpan;\nlet assertiveSpan;\n\nattachBoot(() => {\n\tif (politeSpan && assertiveSpan) {\n\t\treturn;\n\t}\n\n\tconst styles = `position: absolute;\n\tclip: rect(1px,1px,1px,1px);\n\tuser-select: none;\n\tleft: -1000px;\n\ttop: -1000px;\n\tpointer-events: none;`;\n\n\tpoliteSpan = document.createElement(\"span\");\n\tassertiveSpan = document.createElement(\"span\");\n\n\tpoliteSpan.classList.add(\"ui5-invisiblemessage-polite\");\n\tassertiveSpan.classList.add(\"ui5-invisiblemessage-assertive\");\n\n\tpoliteSpan.setAttribute(\"aria-live\", \"polite\");\n\tassertiveSpan.setAttribute(\"aria-live\", \"assertive\");\n\n\tpoliteSpan.setAttribute(\"role\", \"alert\");\n\tassertiveSpan.setAttribute(\"role\", \"alert\");\n\n\tpoliteSpan.style.cssText = styles;\n\tassertiveSpan.style.cssText = styles;\n\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(politeSpan);\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(assertiveSpan);\n});\n\n/**\n * Inserts the string into the respective span, depending on the mode provided.\n *\n * @param {string} message String to be announced by the screen reader.\n * @param {sap.ui.core.InvisibleMessageMode} mode The mode to be inserted in the aria-live attribute.\n */\nconst announce = (message, mode) => {\n\t// If no type is presented, fallback to polite announcement.\n\tconst span = mode === InvisibleMessageMode.Assertive ? assertiveSpan : politeSpan;\n\n\t// Set textContent to empty string in order to trigger screen reader's announcement.\n\tspan.textContent = \"\";\n\tspan.textContent = message;\n\n\tif (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {\n\t\tconsole.warn(`You have entered an invalid mode. Valid values are: \"Polite\" and \"Assertive\". The framework will automatically set the mode to \"Polite\".`); // eslint-disable-line\n\t}\n};\n\nexport default announce;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-down\";\nconst pathData = \"M258.5 275l102-103c6-6 14-9 22-9s15 3 22 9c6 7 9 14 9 22s-3 16-9 22l-124 124c-6 6-14 9-22 9s-15-3-22-9l-124-124c-6-6-9-14-9-22s3-15 9-22c7-6 14-9 22-9s16 3 22 9z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"slim-arrow-down\";\nconst pathData = \"M420.5 187q11-12 23 0 5 5 5 11t-5 11l-165 165q-10 9-23 9t-22-9l-166-165q-5-5-5-11.5t5-11.5 11.5-5 11.5 5l160 160q5 6 11 0z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/slim-arrow-down.js\";\nimport pathDataV5 from \"./v4/slim-arrow-down.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n* @public\n*/\nconst metadata = {\n\ttag: \"ui5-option\",\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.Option.prototype */ {\n\n\t\t/**\n\t\t * Defines the selected state of the component.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is in disabled state.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is noninteractive.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.12\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the <code>icon</code> source URI.\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: null,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value of the <code>ui5-select</code> inside an HTML Form element when this component is selected.\n\t\t * For more information on HTML Form support, see the <code>name</code> property of <code>ui5-select</code>.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the focused state of the component.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @since 1.0.0-rc.13\n\t\t * @private\n\t\t */\n\t\t_focused: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Option.prototype */ {\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Option.prototype */ {},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-option</code> component defines the content of an option in the <code>ui5-select</code>.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Option\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-option\n * @implements sap.ui.webcomponents.main.ISelectOption\n * @public\n */\nclass Option extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tget stableDomRef() {\n\t\treturn `${this._id}-stable-dom-ref`;\n\t}\n}\n\nOption.define();\n\nexport default Option;\n","const NavigationMode = {\n\tAuto: \"Auto\",\n\tVertical: \"Vertical\",\n\tHorizontal: \"Horizontal\",\n\tPaging: \"Paging\",\n};\nexport default NavigationMode;\n","/**\n * @private\n * Different behavior for ItemNavigation.\n */\nconst ItemNavigationBehavior = {\n\t/**\n\t* Static behavior: navigations stops at the first or last item.\n \t*/\n\tStatic: \"Static\",\n\n\t/**\n\t* Cycling behavior: navigating past the last item continues with the first and vice versa.\n \t*/\n\tCyclic: \"Cyclic\",\n};\nexport default ItemNavigationBehavior;\n","import {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"../Keys.js\";\nimport getActiveElement from \"../util/getActiveElement.js\";\n\nimport NavigationMode from \"../types/NavigationMode.js\";\nimport ItemNavigationBehavior from \"../types/ItemNavigationBehavior.js\";\n\n/**\n * The ItemNavigation class manages the calculations to determine the correct \"tabindex\" for a group of related items inside a root component.\n * Important: ItemNavigation only does the calculations and does not change \"tabindex\" directly, this is a responsibility of the developer.\n *\n * The keys that trigger ItemNavigation are:\n * - Up/down\n * - Left/right\n * - Home/End\n *\n * Usage:\n * 1) Use the \"getItemsCallback\" constructor property to pass a callback to ItemNavigation, which, whenever called, will return the list of items to navigate among.\n *\n * Each item passed to ItemNavigation via \"getItemsCallback\" must be:\n * - A) either a UI5Element with a \"_tabIndex\" property\n * - B) or an Object with \"id\" and \"_tabIndex\" properties which represents a part of the root component's shadow DOM.\n * The \"id\" must be a valid ID within the shadow root of the component ItemNavigation operates on.\n * This object must not be a DOM object because, as said, ItemNavigation will not set \"tabindex\" on it. It must be a representation of a DOM object only\n * and the developer has the responsibility to update the \"tabindex\" in the component's DOM.\n * - C) a combination of the above\n *\n * Whenever the user navigates with the keyboard, ItemNavigation will modify the \"_tabIndex\" properties of the items.\n * It is the items' responsibilities to re-render themselves and apply the correct value of \"tabindex\" (i.e. to map the \"_tabIndex\" ItemNavigation set to them to the \"tabindex\" property).\n * If the items of the ItemNavigation are UI5Elements themselves, this can happen naturally since they will be invalidated by their \"_tabIndex\" property.\n * If the items are Objects with \"id\" and \"_tabIndex\" however, it is the developer's responsibility to apply these and the easiest way is to have the root component invalidated by ItemNavigation.\n * To do so, set the \"affectedPropertiesNames\" constructor property to point to one or more of the root component's properties that need refreshing when \"_tabIndex\" is changed deeply.\n *\n * 2) Call the \"setCurrentItem\" method of ItemNavigation whenever you want to change the current item.\n * This is most commonly required if the user for example clicks on an item and thus selects it directly.\n * Pass as the only argument to \"setCurrentItem\" the item that becomes current (must be one of the items, returned by \"getItemsCallback\").\n *\n * @class\n * @public\n */\nclass ItemNavigation {\n\t/**\n\t *\n\t * @param rootWebComponent the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n\t * @param options Object with configuration options:\n\t * - currentIndex: the index of the item that will be initially selected (from which navigation will begin)\n\t * - navigationMode (Auto|Horizontal|Vertical): whether the items are displayed horizontally (Horizontal), vertically (Vertical) or as a matrix (Auto) meaning the user can navigate in both directions (up/down and left/right)\n\t * - rowSize: tells how many items per row there are when the items are not rendered as a flat list but rather as a matrix. Relevant for navigationMode=Auto\n\t * \t- skipItemsSize: tells how many items upon PAGE_UP and PAGE_DOWN should be skipped to applying the focus on the next item\n\t * - behavior (Static|Cycling): tells what to do when trying to navigate beyond the first and last items\n\t * Static means that nothing happens if the user tries to navigate beyond the first/last item.\n\t * Cycling means that when the user navigates beyond the last item they go to the first and vice versa.\n\t * - getItemsCallback: function that, when called, returns an array with all items the user can navigate among\n\t * - affectedPropertiesNames: a list of metadata properties on the root component which, upon user navigation, will be reassigned by address thus causing the root component to invalidate\n\t */\n\tconstructor(rootWebComponent, options = {}) {\n\t\tthis._setRootComponent(rootWebComponent);\n\t\tthis._initOptions(options);\n\t}\n\n\t_setRootComponent(rootWebComponent) {\n\t\tif (!rootWebComponent.isUI5Element) {\n\t\t\tthrow new Error(\"The root web component must be a UI5 Element instance\");\n\t\t}\n\t\tthis.rootWebComponent = rootWebComponent;\n\t\tthis.rootWebComponent.addEventListener(\"keydown\", this._onkeydown.bind(this));\n\t\tthis.rootWebComponent._onComponentStateFinalized = () => {\n\t\t\tthis._init();\n\t\t};\n\t}\n\n\t_initOptions(options) {\n\t\tif (typeof options.getItemsCallback !== \"function\") {\n\t\t\tthrow new Error(\"getItemsCallback is required\");\n\t\t}\n\n\t\tthis._getItems = options.getItemsCallback;\n\t\tthis._currentIndex = options.currentIndex || 0;\n\t\tthis._rowSize = options.rowSize || 1;\n\t\tthis._behavior = options.behavior || ItemNavigationBehavior.Static;\n\t\tthis._navigationMode = options.navigationMode || NavigationMode.Auto;\n\t\tthis._affectedPropertiesNames = options.affectedPropertiesNames || [];\n\t\tthis._skipItemsSize = options.skipItemsSize || null;\n\t}\n\n\t/**\n\t * Call this method to set a new \"current\" (selected) item in the item navigation\n\t * Note: the item passed to this function must be one of the items, returned by the getItemsCallback function\n\t *\n\t * @public\n\t * @param current the new selected item\n\t */\n\tsetCurrentItem(current) {\n\t\tconst currentItemIndex = this._getItems().indexOf(current);\n\n\t\tif (currentItemIndex === -1) {\n\t\t\tconsole.warn(`The provided item is not managed by ItemNavigation`, current); // eslint-disable-line\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentIndex = currentItemIndex;\n\t\tthis._applyTabIndex();\n\t}\n\n\t/**\n\t * Call this method to dynamically change the row size\n\t *\n\t * @public\n\t * @param newRowSize\n\t */\n\tsetRowSize(newRowSize) {\n\t\tthis._rowSize = newRowSize;\n\t}\n\n\t_init() {\n\t\tthis._getItems().forEach((item, idx) => {\n\t\t\titem._tabIndex = (idx === this._currentIndex) ? \"0\" : \"-1\";\n\t\t});\n\t}\n\n\t_onkeydown(event) {\n\t\tif (!this._canNavigate()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst horizontalNavigationOn = this._navigationMode === NavigationMode.Horizontal || this._navigationMode === NavigationMode.Auto;\n\t\tconst verticalNavigationOn = this._navigationMode === NavigationMode.Vertical || this._navigationMode === NavigationMode.Auto;\n\n\t\tif (isUp(event) && verticalNavigationOn) {\n\t\t\tthis._handleUp();\n\t\t} else if (isDown(event) && verticalNavigationOn) {\n\t\t\tthis._handleDown();\n\t\t} else if (isLeft(event) && horizontalNavigationOn) {\n\t\t\tthis._handleLeft();\n\t\t} else if (isRight(event) && horizontalNavigationOn) {\n\t\t\tthis._handleRight();\n\t\t} else if (isHome(event)) {\n\t\t\tthis._handleHome();\n\t\t} else if (isEnd(event)) {\n\t\t\tthis._handleEnd();\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._handlePageUp();\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._handlePageDown();\n\t\t} else {\n\t\t\treturn; // if none of the supported keys is pressed, we don't want to prevent the event or update the item navigation\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tthis._applyTabIndex();\n\t\tthis._focusCurrentItem();\n\t}\n\n\t_handleUp() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex - this._rowSize >= 0) { // no border reached, just decrease the index by a row\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **last** item in the **previous** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize;\n\t\t\tconst firstItemInPreviousColumnIndex = firstItemInThisColumnIndex === 0 ? this._rowSize - 1 : firstItemInThisColumnIndex - 1; // find the first item in the previous column (if the current column is the first column -> move to the last column)\n\t\t\tconst rows = Math.ceil(itemsLength / this._rowSize); // how many rows there are (even if incomplete, f.e. for 14 items and _rowSize=4 -> 4 rows total, although only 2 items on the last row)\n\t\t\tlet lastItemInPreviousColumnIndex = firstItemInPreviousColumnIndex + (rows - 1) * this._rowSize; // multiply rows by columns, and add the column's first item's index\n\t\t\tif (lastItemInPreviousColumnIndex > itemsLength - 1) { // for incomplete rows, use the previous row's last item, as for them the last item is missing\n\t\t\t\tlastItemInPreviousColumnIndex -= this._rowSize;\n\t\t\t}\n\t\t\tthis._currentIndex = lastItemInPreviousColumnIndex;\n\t\t} else { // not cyclic, so just go to the first item\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleDown() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex + this._rowSize < itemsLength) { // no border reached, just increase the index by a row\n\t\t\tthis._currentIndex += this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **first** item in the **next** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize; // find the first item in the current column first\n\t\t\tconst firstItemInNextColumnIndex = (firstItemInThisColumnIndex + 1) % this._rowSize; // to get the first item in the next column, just increase the index by 1. The modulo by rows is for the case when we are at the last column\n\t\t\tthis._currentIndex = firstItemInNextColumnIndex;\n\t\t} else { // not cyclic, so just go to the last item\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleLeft() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex > 0) {\n\t\t\tthis._currentIndex -= 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleRight() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex < itemsLength - 1) {\n\t\t\tthis._currentIndex += 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleHome() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex -= this._currentIndex % homeEndRange;\n\t}\n\n\t_handleEnd() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex += (homeEndRange - 1 - this._currentIndex % homeEndRange); // eslint-disable-line\n\t}\n\n\t_handlePageUp() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageUpFlat();\n\t}\n\n\t_handlePageDown() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageDownFlat();\n\t}\n\n\t/**\n\t * Handles PAGE_UP in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageUpFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t}\n\n\t\tif (this._currentIndex + 1 > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items to the top,\n\t\t\t// move the focus up/left with the predefined number.\n\t\t\tthis._currentIndex -= this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t}\n\t}\n\n\t/**\n\t * Handles PAGE_DOWN in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageDownFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t}\n\n\t\tconst currentToEndRange = this._getItems().length - this._currentIndex - 1;\n\n\t\tif (currentToEndRange > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items until the bottom,\n\t\t\t// move the focus down/right with the predefined number.\n\t\t\tthis._currentIndex += this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t}\n\t}\n\n\t_applyTabIndex() {\n\t\tconst items = this._getItems();\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i]._tabIndex = i === this._currentIndex ? \"0\" : \"-1\";\n\t\t}\n\n\t\tthis._affectedPropertiesNames.forEach(propName => {\n\t\t\tconst prop = this.rootWebComponent[propName];\n\t\t\tthis.rootWebComponent[propName] = Array.isArray(prop) ? [...prop] : { ...prop };\n\t\t});\n\t}\n\n\t_focusCurrentItem() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focus();\n\t\t}\n\t}\n\n\t_canNavigate() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tconst activeElement = getActiveElement();\n\n\t\treturn currentItem && currentItem === activeElement;\n\t}\n\n\t_getCurrentItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items.length) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// normalize the index\n\t\twhile (this._currentIndex >= items.length) {\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t}\n\n\t\tif (this._currentIndex < 0) {\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\n\t\tconst currentItem = items[this._currentIndex];\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentItem.isUI5Element) {\n\t\t\treturn currentItem.getFocusDomRef();\n\t\t}\n\n\t\tif (!this.rootWebComponent.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.rootWebComponent.getDomRef().querySelector(`#${currentItem.id}`);\n\t}\n}\n\nexport default ItemNavigation;\n","import isNodeHidden from \"./isNodeHidden.js\";\n\nconst isNodeTabbable = node => {\n\tif (!node) {\n\t\treturn false;\n\t}\n\n\tconst nodeName = node.nodeName.toLowerCase();\n\n\tif (node.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\treturn false;\n\t}\n\n\tif (isNodeHidden(node)) {\n\t\treturn false;\n\t}\n\n\tconst tabIndex = node.getAttribute(\"tabindex\");\n\tif (tabIndex !== null && tabIndex !== undefined) {\n\t\treturn parseInt(tabIndex) >= 0;\n\t}\n\n\tif (nodeName === \"a\" || /input|select|textarea|button|object/.test(nodeName)) {\n\t\treturn !node.disabled;\n\t}\n};\n\nexport default isNodeTabbable;\n","import isNodeTabbable from \"./isNodeTabbable.js\";\n\nconst getTabbableElements = node => {\n\treturn getTabbables(node.children);\n};\n\nconst getLastTabbableElement = node => {\n\tconst tabbables = getTabbables(node.children);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes, tabbables) => {\n\tconst tabbablesNodes = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbablesNodes;\n\t}\n\n\tArray.from(nodes).forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE || currentNode.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentNode.shadowRoot) {\n\t\t\t// get the root node of the ShadowDom (1st none style tag)\n\t\t\tconst children = currentNode.shadowRoot.children;\n\t\t\tcurrentNode = Array.from(children).find(node => node.tagName !== \"STYLE\");\n\t\t}\n\n\t\tif (isNodeTabbable(currentNode)) {\n\t\t\ttabbablesNodes.push(currentNode);\n\t\t}\n\n\t\tif (currentNode.tagName === \"SLOT\") {\n\t\t\tgetTabbables(currentNode.assignedNodes(), tabbablesNodes);\n\t\t} else {\n\t\t\tgetTabbables(currentNode.children, tabbablesNodes);\n\t\t}\n\t});\n\n\treturn tabbablesNodes;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n","/**\n * Delays function execution by given threshold.\n * @param fn {Function}\n * @param delay {Integer}\n */\n\nlet debounceInterval = null;\n\nconst debounce = (fn, delay) => {\n\tclearTimeout(debounceInterval);\n\tdebounceInterval = setTimeout(() => {\n\t\tdebounceInterval = null;\n\t\tfn();\n\t}, delay);\n};\n\nexport default debounce;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListMode.prototype\n * @public\n */\nconst ListModes = {\n\t/**\n\t * Default mode (no selection).\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n\n\t/**\n\t * Right-positioned single selection mode (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelect}\n\t */\n\tSingleSelect: \"SingleSelect\",\n\n\t/**\n\t * Left-positioned single selection mode (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelectBegin}\n\t */\n\tSingleSelectBegin: \"SingleSelectBegin\",\n\n\t/**\n\t * Selected item is highlighted but no selection element is visible\n\t * (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelectEnd}\n\t */\n\tSingleSelectEnd: \"SingleSelectEnd\",\n\n\t/**\n\t * Selected item is highlighted and selection is changed upon arrow navigation\n\t * (only one list item can be selected - this is always the focused item).\n\t * @public\n\t * @type {SingleSelectAuto}\n\t */\n\tSingleSelectAuto: \"SingleSelectAuto\",\n\n\t/**\n\t * Multi selection mode (more than one list item can be selected).\n\t * @public\n\t * @type {MultiSelect}\n\t */\n\tMultiSelect: \"MultiSelect\",\n\n\t/**\n\t * Delete mode (only one list item can be deleted via provided delete button)\n\t * @public\n\t * @type {Delete}\n\t */\n\tDelete: \"Delete\",\n};\n\n/**\n * @class\n * Defines the type of <code>ui5-list</code>.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListMode\n * @public\n * @enum {string}\n */\nclass ListMode extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListModes[value];\n\t}\n}\n\nListMode.generateTypeAccessors(ListModes);\n\nexport default ListMode;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.GrowingMode.prototype\n * @public\n */\nconst GrowingModes = {\n\t/**\n\t * Component's <code>load-more</code> is fired upon pressing a \"More\" button.\n\t * at the bottom.\n\t * @public\n\t * @type {Button}\n\t */\n\tButton: \"Button\",\n\n\t/**\n\t * Component's <code>load-more</code> is fired upon scroll.\n\t * @public\n\t * @type {Scroll}\n\t */\n\tScroll: \"Scroll\",\n\n\t/**\n\t * Component's growing is not enabled.\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n};\n\n/**\n * @class\n * Defines the growing mode of the component.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.GrowingMode\n * @public\n * @enum {string}\n */\nclass GrowingMode extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!GrowingModes[value];\n\t}\n}\n\nGrowingMode.generateTypeAccessors(GrowingModes);\n\nexport default GrowingMode;\n","import GrowingMode from \"./GrowingMode.js\";\n\n/**\n * @class\n * Defines the growing mode, used in the <code>ui5-List</code>.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListGrowingMode\n * @public\n * @enum {string}\n */\nclass ListGrowingMode extends GrowingMode {\n}\n\nexport default ListGrowingMode;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListSeparators.prototype\n * @public\n */\nconst ListSeparatorsTypes = {\n\t/**\n\t * Separators between the items including the last and the first one.\n\t * @public\n\t * @type {All}\n\t */\n\tAll: \"All\",\n\t/**\n\t * Separators between the items.\n\t * <b>Note:</b> This enumeration depends on the theme.\n\t * @public\n\t * @type {Inner}\n\t */\n\tInner: \"Inner\",\n\t/**\n\t * No item separators.\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n};\n\n/**\n * @class\n * Defines which separator style will be applied for the list items.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListSeparators\n * @public\n * @enum {string}\n */\nclass ListSeparators extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListSeparatorsTypes[value];\n\t}\n}\n\nListSeparators.generateTypeAccessors(ListSeparatorsTypes);\n\nexport default ListSeparators;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.BusyIndicatorSize.prototype\n * @public\n */\nconst BusyIndicatorSizes = {\n\t/**\n\t * small size\n\t * @public\n\t * @type {Small}\n\t */\n\tSmall: \"Small\",\n\n\t/**\n\t * medium size\n\t * @public\n\t * @type {Medium}\n\t */\n\tMedium: \"Medium\",\n\n\t/**\n\t * large size\n\t * @public\n\t * @type {Large}\n\t */\n\tLarge: \"Large\",\n};\n\n/**\n * @class\n * Different types of BusyIndicator.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.BusyIndicatorSize\n * @public\n * @enum {string}\n */\nclass BusyIndicatorSize extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!BusyIndicatorSizes[value];\n\t}\n}\n\nBusyIndicatorSize.generateTypeAccessors(BusyIndicatorSizes);\n\nexport default BusyIndicatorSize;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"${classMap(context.classes.root)}\">${ context._isBusy ? block1(context, tags, suffix) : undefined }<slot></slot>${ context.active ? block3(context, tags, suffix) : undefined }</div>`;\nconst block1 = (context, tags, suffix) => html`<div class=\"ui5-busy-indicator-busy-area\" title=\"${ifDefined(context.ariaTitle)}\" tabindex=\"0\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuetext=\"Busy\" aria-labelledby=\"${ifDefined(context.labelId)}\" data-sap-focus-ref><div class=\"ui5-busy-indicator-circles-wrapper\"><div class=\"ui5-busy-indicator-circle circle-animation-0\"></div><div class=\"ui5-busy-indicator-circle circle-animation-1\"></div><div class=\"ui5-busy-indicator-circle circle-animation-2\"></div></div>${ context.text ? block2(context, tags, suffix) : undefined }</div>`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-label\", tags, suffix)} id=\"${ifDefined(context._id)}-label\" class=\"ui5-busy-indicator-text\">${ifDefined(context.text)}</${scopeTag(\"ui5-label\", tags, suffix)}>`;\nconst block3 = (context, tags, suffix) => html`<span data-ui5-focus-redirect tabindex=\"0\" @focusin=\"${context._redirectFocus}\"></span>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\BusyIndicator.css\",content:\":host(:not([hidden])){display:inline-block}:host([active]){color:var(--_ui5_busy_indicator_color)}:host([active]) :not(.ui5-busy-indicator-root--ie) ::slotted(:not([class^=ui5-busy-indicator-])){opacity:.6}:host([active]) .ui5-busy-indicator-root--ie ::slotted(:not([class^=ui5-busy-indicator-])){opacity:.95}:host([size=Small]) .ui5-busy-indicator-root{min-width:1.5rem;min-height:.5rem}:host([size=Small][text]:not([text=\\\"\\\"])) .ui5-busy-indicator-root{min-height:1.75rem}:host([size=Small]) .ui5-busy-indicator-circle{width:.5rem;height:.5rem}:host(:not([size])) .ui5-busy-indicator-root,:host([size=Medium]) .ui5-busy-indicator-root{min-width:3rem;min-height:1rem}:host(:not([size])[text]:not([text=\\\"\\\"])) .ui5-busy-indicator-root,:host([size=Medium][text]:not([text=\\\"\\\"])) .ui5-busy-indicator-root{min-height:2.25rem}:host(:not([size])) .ui5-busy-indicator-circle,:host([size=Medium]) .ui5-busy-indicator-circle{width:1rem;height:1rem}:host([size=Large]) .ui5-busy-indicator-root{min-width:6rem;min-height:2rem}:host([size=Large][text]:not([text=\\\"\\\"])) .ui5-busy-indicator-root{min-height:3.25rem}:host([size=Large]) .ui5-busy-indicator-circle{width:2rem;height:2rem}.ui5-busy-indicator-root{display:flex;justify-content:center;align-items:center;position:relative;background-color:inherit}.ui5-busy-indicator-busy-area{position:absolute;z-index:99;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;background-color:inherit;flex-direction:column}.ui5-busy-indicator-busy-area:focus{outline:var(--_ui5_busy_indicator_focus_outline);outline-offset:-2px;border-radius:var(--_ui5_busy_indicator_focus_border_radius)}.ui5-busy-indicator-circles-wrapper{line-height:0}.ui5-busy-indicator-circle{display:inline-block;background-color:currentColor;border-radius:50%}.ui5-busy-indicator-circle:before{content:\\\"\\\";width:100%;height:100%;border-radius:100%}.circle-animation-0{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite}.circle-animation-1{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation-delay:.2s}.circle-animation-2{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation-delay:.4s}.ui5-busy-indicator-text{width:100%;margin-top:.25rem;text-align:center}@keyframes grow{0%,50%,to{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isIE } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isTabNext } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport BusyIndicatorSize from \"./types/BusyIndicatorSize.js\";\nimport Label from \"./Label.js\";\n\n// Template\nimport BusyIndicatorTemplate from \"./generated/templates/BusyIndicatorTemplate.lit.js\";\n\nimport { BUSY_INDICATOR_TITLE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport busyIndicatorCss from \"./generated/themes/BusyIndicator.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-busy-indicator\",\n\taltTag: \"ui5-busyindicator\",\n\tlanguageAware: true,\n\tslots: /** @lends sap.ui.webcomponents.main.BusyIndicator.prototype */ {\n\n\t\t/**\n\t\t * Determines the content over which the component will appear.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.BusyIndicator.prototype */ {\n\n\t\t/**\n\t\t * Defines text to be displayed below the component. It can be used to inform the user of the current operation.\n\t\t * @type {String}\n\t\t * @public\n\t\t * @defaultvalue \"\"\n\t\t * @since 1.0.0-rc.7\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the size of the component.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t *\n\t\t * <ul>\n\t\t * <li><code>Small</code></li>\n\t\t * <li><code>Medium</code></li>\n\t\t * <li><code>Large</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {BusyIndicatorSize}\n\t\t * @defaultvalue \"Medium\"\n\t\t * @public\n\t\t */\n\t\tsize: {\n\t\t\ttype: BusyIndicatorSize,\n\t\t\tdefaultValue: BusyIndicatorSize.Medium,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the busy indicator is visible on the screen. By default it is not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the delay in milliseconds, after which the busy indicator will be visible on the screen.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultValue 1000\n\t\t * @public\n\t\t */\n\t\tdelay: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 1000,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the component is currently in busy state.\n\t\t * @private\n\t\t */\n\t\t_isBusy: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-busy-indicator</code> signals that some operation is going on and that the\n * user must wait. It does not block the current UI screen so other operations could be triggered in parallel.\n * It displays 3 dots and each dot expands and shrinks at a different rate, resulting in a cascading flow of animation.\n *\n * <h3>Usage</h3>\n * For the <code>ui5-busy-indicator</code> you can define the size, the text and whether it is shown or hidden.\n * In order to hide it, use the \"active\" property.\n * <br><br>\n * In order to show busy state over an HTML element, simply nest the HTML element in a <code>ui5-busy-indicator</code> instance.\n * <br>\n * <b>Note:</b> Since <code>ui5-busy-indicator</code> has <code>display: inline-block;</code> by default and no width of its own,\n * whenever you need to wrap a block-level element, you should set <code>display: block</code> to the busy indicator as well.\n *\n * <h4>When to use:</h4>\n * <ul>\n * <li>The user needs to be able to cancel the operation.</li>\n * <li>Only part of the application or a particular control is affected.</li>\n * </ul>\n *\n * <h4>When not to use:</h4>\n * <ul>\n * <li>The operation takes less than one second.</li>\n * <li>You need to block the screen and prevent the user from starting another activity.</li>\n * <li>Do not show multiple busy indicators at once.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/BusyIndicator\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.BusyIndicator\n * @extends UI5Element\n * @tagname ui5-busy-indicator\n * @public\n * @since 0.12.0\n */\nclass BusyIndicator extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._keydownHandler = this._handleKeydown.bind(this);\n\t\tthis._preventEventHandler = this._preventEvent.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tthis.addEventListener(\"keydown\", this._keydownHandler, {\n\t\t\tcapture: true,\n\t\t});\n\t\tthis.addEventListener(\"keyup\", this._preventEventHandler, {\n\t\t\tcapture: true,\n\t\t});\n\t}\n\n\tonExitDOM() {\n\t\tif (this._busyTimeoutId) {\n\t\t\tclearTimeout(this._busyTimeoutId);\n\t\t\tdelete this._busyTimeoutId;\n\t\t}\n\n\t\tthis.removeEventListener(\"keydown\", this._keydownHandler, true);\n\t\tthis.removeEventListener(\"keyup\", this._preventEventHandler, true);\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn busyIndicatorCss;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn BusyIndicatorTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Label];\n\t}\n\n\tstatic async onDefine() {\n\t\tBusyIndicator.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget ariaTitle() {\n\t\treturn BusyIndicator.i18nBundle.getText(BUSY_INDICATOR_TITLE);\n\t}\n\n\tget labelId() {\n\t\treturn this.text ? `${this._id}-label` : undefined;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-busy-indicator-root\": true,\n\t\t\t\t\"ui5-busy-indicator-root--ie\": isIE(),\n\t\t\t},\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.active) {\n\t\t\tif (!this._isBusy && !this._busyTimeoutId) {\n\t\t\t\tthis._busyTimeoutId = setTimeout(() => {\n\t\t\t\t\tdelete this._busyTimeoutId;\n\t\t\t\t\tthis._isBusy = true;\n\t\t\t\t}, Math.max(0, this.delay));\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._busyTimeoutId) {\n\t\t\t\tclearTimeout(this._busyTimeoutId);\n\t\t\t\tdelete this._busyTimeoutId;\n\t\t\t}\n\t\t\tthis._isBusy = false;\n\t\t}\n\t}\n\n\t_handleKeydown(event) {\n\t\tif (!this.active) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.stopImmediatePropagation();\n\n\t\t// move the focus to the last element in this DOM and let TAB continue to the next focusable element\n\t\tif (isTabNext(event)) {\n\t\t\tthis.focusForward = true;\n\t\t\tthis.shadowRoot.querySelector(\"[data-ui5-focus-redirect]\").focus();\n\t\t\tthis.focusForward = false;\n\t\t}\n\t}\n\n\t_preventEvent(event) {\n\t\tif (this.active) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t/**\n\t * Moves the focus to busy area when coming with SHIFT + TAB\n\t */\n\t_redirectFocus(event) {\n\t\tif (this.focusForward) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tthis.shadowRoot.querySelector(\".ui5-busy-indicator-busy-area\").focus();\n\t}\n}\n\nBusyIndicator.define();\n\nexport default BusyIndicator;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-list-root\" @focusin=\"${context._onfocusin}\" @keydown=\"${context._onkeydown}\"><div class=\"ui5-list-scroll-container\"><!-- header -->${ context.header.length ? block1(context, tags, suffix) : undefined }${ context.shouldRenderH1 ? block2(context, tags, suffix) : undefined }${ context.hasData ? block3(context, tags, suffix) : undefined }<span id=\"${ifDefined(context._id)}-modeLabel\" class=\"ui5-hidden-text\">${ifDefined(context.ariaLabelModeText)}</span><ul id=\"${ifDefined(context._id)}-listUl\" class=\"ui5-list-ul\" role=\"${ifDefined(context.accessibleRole)}\" aria-label=\"${ifDefined(context.ariaLabelTxt)}\" aria-labelledby=\"${ifDefined(context.ariaLabelledBy)}\"><slot></slot>${ context.showNoDataText ? block4(context, tags, suffix) : undefined }</ul>${ context.growsWithButton ? block5(context, tags, suffix) : undefined }${ context.footerText ? block6(context, tags, suffix) : undefined }${ context.hasData ? block7(context, tags, suffix) : undefined }<span tabindex=\"-1\" aria-hidden=\"true\" class=\"ui5-list-end-marker\"></span></div>${ context.busy ? block8(context, tags, suffix) : undefined }</div> `;\nconst block1 = (context, tags, suffix) => html`<slot name=\"header\" />`;\nconst block2 = (context, tags, suffix) => html`<header id=\"${ifDefined(context.headerID)}\" class=\"ui5-list-header\">${ifDefined(context.headerText)}</header>`;\nconst block3 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}-before\" tabindex=\"0\" class=\"ui5-list-focusarea\"></div>`;\nconst block4 = (context, tags, suffix) => html`<li id=\"${ifDefined(context._id)}-nodata\" class=\"ui5-list-nodata\" tabindex=\"${ifDefined(context.noDataTabIndex)}\"><div id=\"${ifDefined(context._id)}-nodata-text\" class=\"ui5-list-nodata-text\">${ifDefined(context.noDataText)}</div></li>`;\nconst block5 = (context, tags, suffix) => html`<div growing-button><div tabindex=\"0\" role=\"button\" aria-labelledby=\"${ifDefined(context._id)}-growingButton-text\" ?active=\"${context._loadMoreActive}\" @click=\"${context._onLoadMoreClick}\" @keydown=\"${context._onLoadMoreKeydown}\" @keyup=\"${context._onLoadMoreKeyup}\" @mousedown=\"${context._onLoadMoreMousedown}\" @mouseup=\"${context._onLoadMoreMouseup}\" growing-button-inner><span id=\"${ifDefined(context._id)}-growingButton-text\" growing-button-text>${ifDefined(context._growingButtonText)}</span></div></div>`;\nconst block6 = (context, tags, suffix) => html`<footer id=\"${ifDefined(context._id)}-footer\" class=\"ui5-list-footer\">${ifDefined(context.footerText)}</footer>`;\nconst block7 = (context, tags, suffix) => html`<div id=\"${ifDefined(context._id)}-after\" tabindex=\"0\" class=\"ui5-list-focusarea\"></div>`;\nconst block8 = (context, tags, suffix) => html`<div class=\"ui5-list-busy-row\"><${scopeTag(\"ui5-busy-indicator\", tags, suffix)} delay=\"${ifDefined(context.busyDelay)}\" active size=\"Medium\" class=\"ui5-list-busy-ind\" style=\"${styleMap(context.styles.busyInd)}\" data-sap-focus-ref></${scopeTag(\"ui5-busy-indicator\", tags, suffix)}></div>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\List.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}[growing-button]{display:flex;align-items:center;padding:var(--_ui5_load_more_padding);border-top:1px solid var(--sapList_BorderColor);box-sizing:border-box;cursor:pointer;outline:none}[growing-button-inner]{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:var(--_ui5_load_more_text_height);width:100%;color:var(--sapButton_TextColor);background-color:var(--sapList_Background);border:var(--_ui5_load_more_border);border-radius:var(--_ui5_load_more_border_radius);box-sizing:border-box}[growing-button-inner]:focus{outline:var(--_ui5_load_more_outline_width) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:-.125rem;border-color:transparent}[growing-button-inner]:hover{background-color:var(--sapList_Hover_Background)}[growing-button-inner]:active,[growing-button-inner][active]{background-color:var(--sapList_Active_Background);border-color:var(--sapList_Active_Background)}[growing-button-inner]:active>*,[growing-button-inner][active]>*{color:var(--sapList_Active_TextColor)}[growing-button-subtext],[growing-button-text]{width:100%;text-align:center;font-family:\\\"72override\\\",var(--sapFontFamily);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}[growing-button-text]{height:var(--_ui5_load_more_text_height);padding:.875rem 1rem 0 1rem;font-size:var(--_ui5_load_more_text_font_size);font-weight:700}[growing-button-subtext]{font-size:var(--sapFontSize);padding:var(--_ui5_load_more_desc_padding)}:host(:not([hidden])){display:block;max-width:100%;width:100%}:host([indent]) .ui5-list-root{padding:2rem}:host([separators=None]) .ui5-list-nodata{border-bottom:0}:host([busy]){opacity:.72}:host([busy]) .ui5-list-busy-row{position:absolute;left:0;right:0;bottom:0;top:0;outline:none}:host([busy]) .ui5-list-busy-ind{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.ui5-list-root{width:100%;height:100%;position:relative;box-sizing:border-box}.ui5-list-scroll-container{overflow:auto;height:100%}.ui5-list-ul{list-style-type:none;padding:0;margin:0}.ui5-list-ul:focus{outline:none}.ui5-list-focusarea{position:fixed}.ui5-list-header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;font-size:var(--sapFontHeader4Size);font-family:\\\"72override\\\",var(--sapFontFamily);color:var(--sapGroup_TitleTextColor);height:3rem;line-height:3rem;padding:0 1rem;background-color:var(--sapGroup_TitleBackground);border-bottom:1px solid var(--sapGroup_TitleBorderColor)}.ui5-list-footer{height:2rem;box-sizing:border-box;-webkit-text-size-adjust:none;font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);line-height:2rem;background-color:var(--sapList_FooterBackground);color:var(--ui5_list_footer_text_color);padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui5-list-nodata{list-style-type:none;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;color:var(--sapTextColor);background-color:var(--sapList_Background);border-bottom:1px solid var(--sapList_BorderColor);padding:0 1rem!important;height:var(--_ui5_list_no_data_height);font-size:var(--sapFontSize)}.ui5-list-nodata-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isIE } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport { getLastTabbableElement } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isTabNext, isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\nimport isElementInView from \"@ui5/webcomponents-base/dist/util/isElementInView.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport ListGrowingMode from \"./types/ListGrowingMode.js\";\nimport ListSeparators from \"./types/ListSeparators.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\n\n// Template\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\n\n// Styles\nimport listCss from \"./generated/themes/List.css.js\";\n\n// Texts\nimport {\n\tLOAD_MORE_TEXT, ARIA_LABEL_LIST_SELECTABLE,\n\tARIA_LABEL_LIST_MULTISELECTABLE,\n\tARIA_LABEL_LIST_DELETABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst INFINITE_SCROLL_DEBOUNCE_RATE = 250; // ms\n\nconst PAGE_UP_DOWN_SIZE = 10;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-list\",\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Defines the component header.\n\t\t * <br><br>\n\t\t * <b>Note:</b> When <code>header</code> is set, the\n\t\t * <code>headerText</code> property is ignored.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the items of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Use <code>ui5-li</code>, <code>ui5-li-custom</code>, and <code>ui5-li-groupheader</code> for the intended design.\n\t\t *\n\t\t * @type {sap.ui.webcomponents.main.IListItem[]}\n\t\t * @slot items\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"items\",\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Defines the component header text.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>header</code> is set this property is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer text.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tfooterText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the component is indented.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tindent: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the mode of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Available options are <code>None</code>, <code>SingleSelect</code>, <code>SingleSelectBegin</code>,\n\t\t * <code>SingleSelectEnd</code>, <code>MultiSelect</code>, and <code>Delete</code>.\n\t\t *\n\t\t * @type {ListMode}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tmode: {\n\t\t\ttype: ListMode,\n\t\t\tdefaultValue: ListMode.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text that is displayed when the component contains no items.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tnoDataText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the item separator style that is used.\n\t\t * <br><br>\n\t\t * <b>Notes:</b>\n\t\t * <ul>\n\t\t * <li>Avalaible options are <code>All</code>, <code>Inner</code>, and <code>None</code>.</li>\n\t\t * <li>When set to <code>None</code>, none of the items are separated by horizontal lines.</li>\n\t\t * <li>When set to <code>Inner</code>, the first item doesn't have a top separator and the last\n\t\t * item doesn't have a bottom separator.</li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ListSeparators}\n\t\t * @defaultvalue \"All\"\n\t\t * @public\n\t\t */\n\t\tseparators: {\n\t\t\ttype: ListSeparators,\n\t\t\tdefaultValue: ListSeparators.All,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component will have growing capability either by pressing a <code>More</code> button,\n\t\t * or via user scroll. In both cases <code>load-more</code> event is fired.\n\t\t * <br><br>\n\t\t *\n\t\t * Available options:\n\t\t * <br><br>\n\t\t * <code>Button</code> - Shows a <code>More</code> button at the bottom of the list,\n\t\t * pressing of which triggers the <code>load-more</code> event.\n\t\t * <br>\n\t\t * <code>Scroll</code> - The <code>load-more</code> event is triggered when the user scrolls to the bottom of the list;\n\t\t * <br>\n\t\t * <code>None</code> (default) - The growing is off.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Limitations:</b> <code>growing=\"Scroll\"</code> is not supported for Internet Explorer,\n\t\t * on IE the component will fallback to <code>growing=\"Button\"</code>.\n\t\t * @type {ListGrowingMode}\n\t\t * @defaultvalue \"None\"\n\t\t * @since 1.0.0-rc.13\n\t\t * @public\n\t\t */\n\t\tgrowing: {\n\t\t\ttype: ListGrowingMode,\n\t\t\tdefaultValue: ListGrowingMode.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the component would display a loading indicator over the list.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.6\n\t\t */\n\t\tbusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n\t\t *\n\t\t * @type {Integer}\n\t\t * @defaultValue 1000\n\t\t * @public\n\t\t */\n\t\tbusyDelay: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 1000,\n\t\t},\n\n\t\t/**\n\t\t * Defines the accessible name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the IDs of the elements that label the input.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t/**\n\t\t * Defines the accessible role of the component.\n\t\t * <br><br>\n\t\t * @public\n\t\t * @type {String}\n\t\t * @defaultvalue \"list\"\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleRole: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"list\",\n\t\t},\n\n\t\t/**\n\t\t * Defines if the entire list is in view port.\n\t\t * @private\n\t\t */\n\t\t_inViewport: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the active state of the <code>More</code> button.\n\t\t * @private\n\t\t */\n\t\t_loadMoreActive: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Fired when an item is activated, unless the item's <code>type</code> property\n\t\t * is set to <code>Inactive</code>.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#item-click\n\t\t * @param {HTMLElement} item The clicked item.\n\t\t * @public\n\t\t */\n\t\t\"item-click\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the <code>Close</code> button of any item is clicked\n\t\t * <br><br>\n\t\t * <b>Note:</b> This event is applicable to <code>ui5-li-notification</code> items only,\n\t\t * not to be confused with <code>item-delete</code>.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#item-close\n\t\t * @param {HTMLElement} item the item about to be closed.\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\t\"item-close\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the <code>Toggle</code> button of any item is clicked.\n\t\t * <br><br>\n\t\t * <b>Note:</b> This event is applicable to <code>ui5-li-notification-group</code> items only.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#item-toggle\n\t\t * @param {HTMLElement} item the toggled item.\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\t\"item-toggle\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the Delete button of any item is pressed.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A Delete button is displayed on each item,\n\t\t * when the component <code>mode</code> property is set to <code>Delete</code>.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#item-delete\n\t\t * @param {HTMLElement} item the deleted item.\n\t\t * @public\n\t\t */\n\t\t\"item-delete\": {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when selection is changed by user interaction\n\t\t * in <code>SingleSelect</code>, <code>SingleSelectBegin</code>, <code>SingleSelectEnd</code> and <code>MultiSelect</code> modes.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#selection-change\n\t\t * @param {Array} selectedItems An array of the selected items.\n\t\t * @param {Array} previouslySelectedItems An array of the previously selected items.\n\t\t * @public\n\t\t */\n\t\t\"selection-change\": {\n\t\t\tdetail: {\n\t\t\t\tselectedItems: { type: Array },\n\t\t\t\tpreviouslySelectedItems: { type: Array },\n\t\t\t\tselectionComponentPressed: { type: Boolean }, // protected, indicates if the user used the selection components to change the selection\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the user scrolls to the bottom of the list.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The event is fired when the <code>growing='Scroll'</code> property is enabled.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.List#load-more\n\t\t * @public\n\t\t * @since 1.0.0-rc.6\n\t\t */\n\t\t\"load-more\": {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-list</code> component allows displaying a list of items, advanced keyboard\n * handling support for navigating between items, and predefined modes to improve the development efficiency.\n * <br><br>\n * The <code>ui5-list</code> is a container for the available list items:\n * <ul>\n * <li><code>ui5-li</code></li>\n * <li><code>ui5-li-custom</code></li>\n * <li><code>ui5-li-groupheader</code></li>\n * </ul>\n * <br><br>\n * To benefit from the built-in selection mechanism, you can use the available\n * selection modes, such as\n * <code>SingleSelect</code>, <code>MultiSelect</code> and <code>Delete</code>.\n * <br><br>\n * Additionally, the <code>ui5-list</code> provides header, footer, and customization for the list item separators.\n *\n * <br><br>\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-list</code> provides advanced keyboard handling.\n * When a list is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n * <br>\n *\n * <ul>\n * <li>[UP/DOWN] - Navigates up and down the items</li>\n * <li>[HOME] - Navigates to first item</li>\n * <li>[END] - Navigates to the last item</li>\n * </ul>\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete),\n * when the <code>mode</code> property is in use:\n * <ul>\n * <li>[SPACE] - Select an item (if <code>type</code> is 'Active') when <code>mode</code> is selection</li>\n * <li>[DELETE] - Delete an item if <code>mode</code> property is <code>Delete</code></li>\n * </ul>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/List.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/StandardListItem.js\";</code> (for <code>ui5-li</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/CustomListItem.js\";</code> (for <code>ui5-li-custom</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/GroupHeaderListItem.js\";</code> (for <code>ui5-li-groupheader</code>)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.List\n * @extends UI5Element\n * @tagname ui5-list\n * @appenddocs StandardListItem CustomListItem GroupHeaderListItem\n * @public\n */\nclass List extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn ListTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn listCss;\n\t}\n\n\tstatic async onDefine() {\n\t\tList.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [BusyIndicator];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.initItemNavigation();\n\n\t\t// Stores the last focused item within the internal ul element.\n\t\tthis._previouslyFocusedItem = null;\n\n\t\t// Indicates that the List is forwarding the focus before or after the internal ul.\n\t\tthis._forwardingFocus = false;\n\n\t\tthis._previouslySelectedItem = null;\n\n\t\t// Indicates that the List has already subscribed for resize.\n\t\tthis.resizeListenerAttached = false;\n\n\t\t// Indicates if the IntersectionObserver started observing the List\n\t\tthis.listEndObserved = false;\n\n\t\tthis.addEventListener(\"ui5-_press\", this.onItemPress.bind(this));\n\t\tthis.addEventListener(\"ui5-close\", this.onItemClose.bind(this));\n\t\tthis.addEventListener(\"ui5-toggle\", this.onItemToggle.bind(this));\n\t\tthis.addEventListener(\"ui5-_focused\", this.onItemFocused.bind(this));\n\t\tthis.addEventListener(\"ui5-_forward-after\", this.onForwardAfter.bind(this));\n\t\tthis.addEventListener(\"ui5-_forward-before\", this.onForwardBefore.bind(this));\n\t\tthis.addEventListener(\"ui5-_selection-requested\", this.onSelectionRequested.bind(this));\n\t\tthis.addEventListener(\"ui5-_focus-requested\", this.focusUploadCollectionItem.bind(this));\n\n\t\tthis._handleResize = this.checkListInViewport.bind(this);\n\n\t\t// Indicates the List bottom most part has been detected by the IntersectionObserver\n\t\t// for the first time.\n\t\tthis.initialIntersection = true;\n\t}\n\n\tonExitDOM() {\n\t\tthis.unobserveListEnd();\n\t\tthis.resizeListenerAttached = false;\n\t\tResizeHandler.deregister(this.getDomRef(), this._handleResize);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.prepareListItems();\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.growsOnScroll) {\n\t\t\tthis.observeListEnd();\n\t\t} else if (this.listEndObserved) {\n\t\t\tthis.unobserveListEnd();\n\t\t}\n\n\t\tif (this.grows) {\n\t\t\tthis.checkListInViewport();\n\t\t\tthis.attachForResize();\n\t\t}\n\t}\n\n\tattachForResize() {\n\t\tif (!this.resizeListenerAttached) {\n\t\t\tthis.resizeListenerAttached = true;\n\t\t\tResizeHandler.register(this.getDomRef(), this._handleResize);\n\t\t}\n\t}\n\n\tget shouldRenderH1() {\n\t\treturn !this.header.length && this.headerText;\n\t}\n\n\tget headerID() {\n\t\treturn `${this._id}-header`;\n\t}\n\n\tget modeLabelID() {\n\t\treturn `${this._id}-modeLabel`;\n\t}\n\n\tget listEndDOM() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-list-end-marker\");\n\t}\n\n\tget hasData() {\n\t\treturn this.getSlottedNodes(\"items\").length !== 0;\n\t}\n\n\tget showNoDataText() {\n\t\treturn !this.hasData && this.noDataText;\n\t}\n\n\tget isDelete() {\n\t\treturn this.mode === ListMode.Delete;\n\t}\n\n\tget isSingleSelect() {\n\t\treturn [\n\t\t\tListMode.SingleSelect,\n\t\t\tListMode.SingleSelectBegin,\n\t\t\tListMode.SingleSelectEnd,\n\t\t\tListMode.SingleSelectAuto,\n\t\t].includes(this.mode);\n\t}\n\n\tget isMultiSelect() {\n\t\treturn this.mode === ListMode.MultiSelect;\n\t}\n\n\tget ariaLabelledBy() {\n\t\tif (this.accessibleNameRef || this.accessibleName) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst ids = [];\n\n\t\tif (this.isMultiSelect || this.isSingleSelect || this.isDelete) {\n\t\t\tids.push(this.modeLabelID);\n\t\t}\n\n\t\tif (this.shouldRenderH1) {\n\t\t\tids.push(this.headerID);\n\t\t}\n\n\t\treturn ids.length ? ids.join(\" \") : undefined;\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget ariaLabelModeText() {\n\t\tif (this.isMultiSelect) {\n\t\t\treturn List.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);\n\t\t}\n\t\tif (this.isSingleSelect) {\n\t\t\treturn List.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);\n\t\t}\n\t\tif (this.isDelete) {\n\t\t\treturn List.i18nBundle.getText(ARIA_LABEL_LIST_DELETABLE);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget grows() {\n\t\treturn this.growing !== ListGrowingMode.None;\n\t}\n\n\tget growsOnScroll() {\n\t\treturn this.growing === ListGrowingMode.Scroll && !isIE();\n\t}\n\n\tget growsWithButton() {\n\t\tif (isIE()) {\n\t\t\t// On IE fallback to \"More\" button, even if growing of type \"Scroll\" is set.\n\t\t\treturn this.grows;\n\t\t}\n\n\t\treturn this.growing === ListGrowingMode.Button;\n\t}\n\n\tget _growingButtonText() {\n\t\treturn List.i18nBundle.getText(LOAD_MORE_TEXT);\n\t}\n\n\tget busyIndPosition() {\n\t\tif (isIE() || !this.grows) {\n\t\t\treturn \"absolute\";\n\t\t}\n\n\t\treturn this._inViewport ? \"absolute\" : \"sticky\";\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tbusyInd: {\n\t\t\t\tposition: this.busyIndPosition,\n\t\t\t},\n\t\t};\n\t}\n\n\tinitItemNavigation() {\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledItems(),\n\t\t});\n\t}\n\n\tprepareListItems() {\n\t\tconst slottedItems = this.getSlottedNodes(\"items\");\n\n\t\tslottedItems.forEach((item, key) => {\n\t\t\tconst isLastChild = key === slottedItems.length - 1;\n\t\t\tconst showBottomBorder = this.separators === ListSeparators.All\n\t\t\t\t|| (this.separators === ListSeparators.Inner && !isLastChild);\n\n\t\t\titem._mode = this.mode;\n\t\t\titem.hasBorder = showBottomBorder;\n\t\t});\n\n\t\tthis._previouslySelectedItem = null;\n\t}\n\n\tasync observeListEnd() {\n\t\tif (!this.listEndObserved) {\n\t\t\tawait renderFinished();\n\t\t\tthis.getIntersectionObserver().observe(this.listEndDOM);\n\t\t\tthis.listEndObserved = true;\n\t\t}\n\t}\n\n\tunobserveListEnd() {\n\t\tif (this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver.disconnect();\n\t\t\tthis.growingIntersectionObserver = null;\n\t\t\tthis.listEndObserved = false;\n\t\t}\n\t}\n\n\tonInteresection(entries) {\n\t\tif (this.initialIntersection) {\n\t\t\tthis.initialIntersection = false;\n\t\t\treturn;\n\t\t}\n\t\tentries.forEach(entry => {\n\t\t\tif (entry.isIntersecting) {\n\t\t\t\tdebounce(this.loadMore.bind(this), INFINITE_SCROLL_DEBOUNCE_RATE);\n\t\t\t}\n\t\t});\n\t}\n\n\t/*\n\t* ITEM SELECTION BASED ON THE CURRENT MODE\n\t*/\n\tonSelectionRequested(event) {\n\t\tconst previouslySelectedItems = this.getSelectedItems();\n\t\tlet selectionChange = false;\n\t\tthis._selectionRequested = true;\n\n\t\tif (this[`handle${this.mode}`]) {\n\t\t\tselectionChange = this[`handle${this.mode}`](event.detail.item, event.detail.selected);\n\t\t}\n\n\t\tif (selectionChange) {\n\t\t\tthis.fireEvent(\"selection-change\", {\n\t\t\t\tselectedItems: this.getSelectedItems(),\n\t\t\t\tpreviouslySelectedItems,\n\t\t\t\tselectionComponentPressed: event.detail.selectionComponentPressed,\n\t\t\t\tkey: event.detail.key,\n\t\t\t});\n\t\t}\n\t}\n\n\thandleSingleSelect(item) {\n\t\tif (item.selected) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.deselectSelectedItems();\n\t\titem.selected = true;\n\n\t\treturn true;\n\t}\n\n\thandleSingleSelectBegin(item) {\n\t\treturn this.handleSingleSelect(item);\n\t}\n\n\thandleSingleSelectEnd(item) {\n\t\treturn this.handleSingleSelect(item);\n\t}\n\n\thandleSingleSelectAuto(item) {\n\t\treturn this.handleSingleSelect(item);\n\t}\n\n\thandleMultiSelect(item, selected) {\n\t\titem.selected = selected;\n\t\treturn true;\n\t}\n\n\thandleDelete(item) {\n\t\tthis.fireEvent(\"item-delete\", { item });\n\t}\n\n\tdeselectSelectedItems() {\n\t\tthis.getSelectedItems().forEach(item => { item.selected = false; });\n\t}\n\n\tgetSelectedItems() {\n\t\treturn this.getSlottedNodes(\"items\").filter(item => item.selected);\n\t}\n\n\tgetEnabledItems() {\n\t\treturn this.getSlottedNodes(\"items\").filter(item => !item.disabled);\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isTabNext(event)) {\n\t\t\tthis._handleTabNext(event);\n\t\t}\n\t}\n\n\t_onLoadMoreKeydown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isTabNext(event)) {\n\t\t\tthis.setPreviouslyFocusedItem(event.target);\n\t\t\tthis.focusAfterElement();\n\t\t}\n\t}\n\n\t_onLoadMoreKeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t}\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreMousedown() {\n\t\tthis._loadMoreActive = true;\n\t}\n\n\t_onLoadMoreMouseup() {\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreClick() {\n\t\tthis.loadMore();\n\t}\n\n\tcheckListInViewport() {\n\t\tthis._inViewport = isElementInView(this.getDomRef());\n\t}\n\n\tloadMore() {\n\t\tthis.fireEvent(\"load-more\");\n\t}\n\n\t/*\n\t* KEYBOARD SUPPORT\n\t*/\n\t_handleTabNext(event) {\n\t\t// If forward navigation is performed, we check if the List has headerToolbar.\n\t\t// If yes - we check if the target is at the last tabbable element of the headerToolbar\n\t\t// to forward correctly the focus to the selected, previously focused or to the first list item.\n\t\tlet lastTabbableEl;\n\t\tconst target = this.getNormalizedTarget(event.target);\n\n\t\tif (this.headerToolbar) {\n\t\t\tlastTabbableEl = this.getHeaderToolbarLastTabbableElement();\n\t\t}\n\n\t\tif (!lastTabbableEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (lastTabbableEl === target) {\n\t\t\tif (this.getFirstItem(x => x.selected && !x.disabled)) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else if (this.getPreviouslyFocusedItem()) {\n\t\t\t\tthis.focusPreviouslyFocusedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusFirstItem();\n\t\t\t}\n\n\t\t\tevent.stopImmediatePropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusin(event) {\n\t\t// If the focusin event does not origin from one of the 'triggers' - ignore it.\n\t\tif (!this.isForwardElement(this.getNormalizedTarget(event.target))) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\t// The focus arrives in the List for the first time.\n\t\t// If there is selected item - focus it or focus the first item.\n\t\tif (!this.getPreviouslyFocusedItem()) {\n\t\t\tif (this.getFirstItem(x => x.selected && !x.disabled)) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusFirstItem();\n\t\t\t}\n\n\t\t\tevent.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\t// The focus returns to the List,\n\t\t// focus the first selected item or the previously focused element.\n\t\tif (!this.getForwardingFocus()) {\n\t\t\tif (this.getFirstItem(x => x.selected && !x.disabled)) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusPreviouslyFocusedItem();\n\t\t\t}\n\n\t\t\tevent.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.setForwardingFocus(false);\n\t}\n\n\tisForwardElement(node) {\n\t\tconst nodeId = node.id;\n\t\tconst afterElement = this.getAfterElement();\n\t\tconst beforeElement = this.getBeforeElement();\n\n\t\tif (this._id === nodeId || (beforeElement && beforeElement.id === nodeId)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn afterElement && afterElement.id === nodeId;\n\t}\n\n\tonItemFocused(event) {\n\t\tconst target = event.target;\n\n\t\tthis._itemNavigation.setCurrentItem(target);\n\t\tthis.fireEvent(\"item-focused\", { item: target });\n\n\t\tif (this.mode === ListMode.SingleSelectAuto) {\n\t\t\tthis.onSelectionRequested({\n\t\t\t\tdetail: {\n\t\t\t\t\titem: target,\n\t\t\t\t\tselectionComponentPressed: false,\n\t\t\t\t\tselected: true,\n\t\t\t\t\tkey: event.detail.key,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tonItemPress(event) {\n\t\tconst pressedItem = event.detail.item;\n\n\t\tif (!this._selectionRequested && this.mode !== ListMode.Delete) {\n\t\t\tthis._selectionRequested = true;\n\t\t\tthis.onSelectionRequested({\n\t\t\t\tdetail: {\n\t\t\t\t\titem: pressedItem,\n\t\t\t\t\tselectionComponentPressed: false,\n\t\t\t\t\tselected: !pressedItem.selected,\n\t\t\t\t\tkey: event.detail.key,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.fireEvent(\"item-press\", { item: pressedItem });\n\t\tthis.fireEvent(\"item-click\", { item: pressedItem });\n\n\t\tthis._selectionRequested = false;\n\t}\n\n\t// This is applicable to NoficationListItem\n\tonItemClose(event) {\n\t\tthis.fireEvent(\"item-close\", { item: event.detail.item });\n\t}\n\n\tonItemToggle(event) {\n\t\tthis.fireEvent(\"item-toggle\", { item: event.detail.item });\n\t}\n\n\tonForwardBefore(event) {\n\t\tthis.setPreviouslyFocusedItem(event.target);\n\t\tthis.focusBeforeElement();\n\t\tevent.stopImmediatePropagation();\n\t}\n\n\tonForwardAfter(event) {\n\t\tthis.setPreviouslyFocusedItem(event.target);\n\n\t\tif (!this.growsWithButton) {\n\t\t\tthis.focusAfterElement();\n\t\t}\n\t}\n\n\tfocusBeforeElement() {\n\t\tthis.setForwardingFocus(true);\n\t\tthis.getBeforeElement().focus();\n\t}\n\n\tfocusAfterElement() {\n\t\tthis.setForwardingFocus(true);\n\t\tthis.getAfterElement().focus();\n\t}\n\n\tfocusFirstItem() {\n\t\t// only enabled items are focusable\n\t\tconst firstItem = this.getFirstItem(x => !x.disabled);\n\n\t\tif (firstItem) {\n\t\t\tfirstItem.focus();\n\t\t}\n\t}\n\n\tfocusPreviouslyFocusedItem() {\n\t\tconst previouslyFocusedItem = this.getPreviouslyFocusedItem();\n\n\t\tif (previouslyFocusedItem) {\n\t\t\tpreviouslyFocusedItem.focus();\n\t\t}\n\t}\n\n\tfocusFirstSelectedItem() {\n\t\t// only enabled items are focusable\n\t\tconst firstSelectedItem = this.getFirstItem(x => x.selected && !x.disabled);\n\n\t\tif (firstSelectedItem) {\n\t\t\tfirstSelectedItem.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses a list item and sets its tabindex to \"0\" via the ItemNavigation\n\t * @protected\n\t * @param item\n\t */\n\tfocusItem(item) {\n\t\tthis._itemNavigation.setCurrentItem(item);\n\t\titem.focus();\n\t}\n\n\tfocusUploadCollectionItem(event) {\n\t\tsetTimeout(() => {\n\t\t\tthis.setPreviouslyFocusedItem(event.target);\n\t\t\tthis.focusPreviouslyFocusedItem();\n\t\t}, 0);\n\t}\n\n\tsetForwardingFocus(forwardingFocus) {\n\t\tthis._forwardingFocus = forwardingFocus;\n\t}\n\n\tgetForwardingFocus() {\n\t\treturn this._forwardingFocus;\n\t}\n\n\tsetPreviouslyFocusedItem(item) {\n\t\tthis._previouslyFocusedItem = item;\n\t}\n\n\tgetPreviouslyFocusedItem() {\n\t\treturn this._previouslyFocusedItem;\n\t}\n\n\tgetFirstItem(filter) {\n\t\tconst slottedItems = this.getSlottedNodes(\"items\");\n\t\tlet firstItem = null;\n\n\t\tif (!filter) {\n\t\t\treturn !!slottedItems.length && slottedItems[0];\n\t\t}\n\n\t\tfor (let i = 0; i < slottedItems.length; i++) {\n\t\t\tif (filter(slottedItems[i])) {\n\t\t\t\tfirstItem = slottedItems[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn firstItem;\n\t}\n\n\tgetAfterElement() {\n\t\tif (!this._afterElement) {\n\t\t\tthis._afterElement = this.shadowRoot.querySelector(`#${this._id}-after`);\n\t\t}\n\t\treturn this._afterElement;\n\t}\n\n\tgetBeforeElement() {\n\t\tif (!this._beforeElement) {\n\t\t\tthis._beforeElement = this.shadowRoot.querySelector(`#${this._id}-before`);\n\t\t}\n\t\treturn this._beforeElement;\n\t}\n\n\tgetHeaderToolbarLastTabbableElement() {\n\t\treturn getLastTabbableElement(this.headerToolbar.getDomRef()) || this.headerToolbar.getDomRef();\n\t}\n\n\tgetNormalizedTarget(target) {\n\t\tlet focused = target;\n\n\t\tif (target.shadowRoot && target.shadowRoot.activeElement) {\n\t\t\tfocused = target.shadowRoot.activeElement;\n\t\t}\n\n\t\treturn focused;\n\t}\n\n\tgetIntersectionObserver() {\n\t\tif (!this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver = new IntersectionObserver(this.onInteresection.bind(this), {\n\t\t\t\troot: null,\n\t\t\t\trootMargin: \"0px\",\n\t\t\t\tthreshold: 1.0,\n\t\t\t});\n\t\t}\n\n\t\treturn this.growingIntersectionObserver;\n\t}\n}\n\nList.define();\n\nexport default List;\n","/**\n * Determines if the element is within the viewport.\n * @param el {HTMLElement}\n */\nconst isElementInView = el => {\n\tconst rect = el.getBoundingClientRect();\n\n\treturn (\n\t\trect.top >= 0 && rect.left >= 0\n\t\t\t&& rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)\n\t\t\t&& rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t);\n};\n\nexport default isElementInView;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"edit\";\nconst pathData = \"M503 94c12 12 12 29 0 40l-85 85-284 285c-6 6-12 8-20 8H28c-17 0-28-11-28-28v-85c0-9 3-15 9-20L293 94l85-85c12-11 29-11 40 0zM114 444l244-244-45-46L68 399zm284-284l46-46-46-45-45 45z\";\nconst ltr = false;\nconst collection = \"SAP-icons-v5\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nconst name = \"edit\";\nconst pathData = \"M475 104q5 7 5 12 0 6-5 11L150 453q-4 4-8 4L32 480l22-110q0-5 4-9L384 36q4-4 11-4t11 4zm-121 99l-46-45L84 381l46 46zm87-88l-46-44-64 64 45 45z\";\nconst ltr = false;\nconst collection = \"SAP-icons\";\nconst packageName = \"@ui5/webcomponents-icons\";\n\nregisterIcon(name, { pathData, ltr, collection, packageName });\n\nexport default { pathData };","import { isTheme } from \"@ui5/webcomponents-base/dist/config/Theme.js\";\nimport pathDataV4 from \"./v5/edit.js\";\nimport pathDataV5 from \"./v4/edit.js\";\nconst pathData = isTheme(\"sap_horizon\") ? pathDataV5 : pathDataV4;\nexport default { pathData };","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListItemType.prototype\n * @public\n */\nconst ListItemTypes = {\n\t/**\n\t * Indicates the list item does not have any active feedback when item is pressed.\n\t * @public\n\t * @type {Inactive}\n\t */\n\tInactive: \"Inactive\",\n\n\t/**\n\t * Indicates that the item is clickable via active feedback when item is pressed.\n\t * @public\n\t * @type {Active}\n\t */\n\tActive: \"Active\",\n\n\t/**\n\t * Enables detail button of the list item that fires detail-click event.\n\t * @public\n\t * @type {Detail}\n\t */\n\tDetail: \"Detail\",\n};\n\n/**\n * @class\n * Different types of ListItem.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListItemType\n * @public\n * @enum {string}\n */\nclass ListItemType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListItemTypes[value];\n\t}\n}\n\nListItemType.generateTypeAccessors(ListItemTypes);\n\nexport default ListItemType;\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\ListItemBase.css\",content:\":host(:not([hidden])){display:block}:host{height:var(--_ui5_list_item_base_height);background:var(--ui5-listitem-background-color);box-sizing:border-box;border-bottom:1px solid transparent}:host([selected]){background:var(--sapList_SelectionBackgroundColor)}:host([has-border]){border-bottom:var(--ui5-listitem-border-bottom)}:host([selected]){border-bottom:var(--ui5-listitem-selected-border-bottom)}:host([selected][has-border]){border-bottom:var(--ui5-listitem-selected-border-bottom)}.ui5-li-root{position:relative;display:flex;align-items:center;width:100%;height:100%;padding:0 1rem 0 1rem;box-sizing:border-box}:host([focused]) .ui5-li-root.ui5-li--focusable{outline:none}:host([focused]) .ui5-li-root.ui5-li--focusable:after{content:\\\"\\\";border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:host([focused]) .ui5-li-content:focus:after{content:\\\"\\\";border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:host([active][focused]) .ui5-li-root.ui5-li--focusable:after{border-color:var(--ui5-listitem-active-border-color)}:host([disabled]){opacity:var(--_ui5-listitembase_disabled_opacity);pointer-events:none}.ui5-li-content{max-width:100%;min-height:1px;font-family:\\\"72override\\\",var(--sapFontFamily);pointer-events:none}\"}","import litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isTabNext, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tproperties: /** @lends sap.ui.webcomponents.main.ListItemBase.prototype */ {\n\n\t\t/**\n\t\t * Defines the selected state of the <code>ListItem</code>.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t* Defines if the list item should display its bottom border.\n\t\t* @private\n\t\t*/\n\t\thasBorder: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"-1\",\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether <code>ui5-li</code> is in disabled state.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled <code>ui5-li</code> is noninteractive.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @protected\n\t\t * @since 1.0.0-rc.12\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the element is on focus\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.ListItemBase.prototype */ {\n\t\t_focused: {},\n\t\t\"_forward-after\": {},\n\t\t\"_forward-before\": {},\n\t},\n};\n\n/**\n * A class to serve as a foundation\n * for the <code>ListItem</code> and <code>GroupHeaderListItem</code> classes.\n *\n * @abstract\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ListItemBase\n * @extends UI5Element\n * @public\n */\nclass ListItemBase extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\t_onfocusin(event) {\n\t\tif (event.isMarked === \"button\" || event.isMarked === \"link\") {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focused = true;\n\t\tthis.fireEvent(\"_focused\", event);\n\t}\n\n\t_onfocusout(_event) {\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isTabNext(event)) {\n\t\t\treturn this._handleTabNext(event);\n\t\t}\n\n\t\tif (isTabPrevious(event)) {\n\t\t\treturn this._handleTabPrevious(event);\n\t\t}\n\t}\n\n\t_onkeyup() {}\n\n\t_handleTabNext(event) {\n\t\tconst target = event.target;\n\n\t\tif (this.shouldForwardTabAfter(target)) {\n\t\t\tthis.fireEvent(\"_forward-after\", { item: target });\n\t\t}\n\t}\n\n\t_handleTabPrevious(event) {\n\t\tconst target = event.target;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tconst eventData = event;\n\t\t\teventData.item = target;\n\t\t\tthis.fireEvent(\"_forward-before\", eventData);\n\t\t}\n\t}\n\n\t/*\n\t* Determines if th current list item either has no tabbable content or\n\t* [TAB] is performed onto the last tabbale content item.\n\t*/\n\tshouldForwardTabAfter(target) {\n\t\tconst aContent = getTabbableElements(this.getDomRef());\n\n\t\tif (target.getFocusDomRef) {\n\t\t\ttarget = target.getFocusDomRef();\n\t\t}\n\n\t\treturn !aContent.length || (aContent[aContent.length - 1] === target);\n\t}\n\n\t/*\n\t* Determines if the current list item is target of [SHIFT+TAB].\n\t*/\n\tshouldForwardTabBefore(target) {\n\t\treturn this.getDomRef() === target;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": !this.disabled,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaDisabled() {\n\t\treturn this.disabled ? \"true\" : undefined;\n\t}\n\n\tget tabIndex() {\n\t\tif (this.disabled) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (this.selected) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this._tabIndex;\n\t}\n}\n\nexport default ListItemBase;\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\ListItem.css\",content:\".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host([actionable]:not([disabled])){cursor:pointer}:host([selected][actionable]:not([active]):hover){background:var(--sapList_Hover_SelectionBackground)}:host([active][actionable]),:host([selected][active][actionable]){background:var(--sapList_Active_Background)}:host([actionable]:not([active]):not([selected]):hover){background:var(--sapList_Hover_Background)}:host([active][actionable]) .ui5-li-root.ui5-li--focusable .ui5-li-content:focus,:host([active][actionable]) .ui5-li-root.ui5-li--focusable:focus{outline-color:var(--sapContent_ContrastFocusColor)}:host([active][actionable]) .ui5-li-root .ui5-li-icon{color:var(--sapList_Active_TextColor)}:host([active][actionable]) .ui5-li-additional-text,:host([active][actionable]) .ui5-li-desc,:host([active][actionable]) .ui5-li-title{color:var(--sapList_Active_TextColor)}:host([additional-text-state=Warning]) .ui5-li-additional-text{color:var(--sapCriticalTextColor)}:host([additional-text-state=Success]) .ui5-li-additional-text{color:var(--sapPositiveTextColor)}:host([additional-text-state=Error]) .ui5-li-additional-text{color:var(--sapNegativeTextColor)}:host([additional-text-state=Information]) .ui5-li-additional-text{color:var(--sapInformativeTextColor)}:host([has-title][description]){height:5rem}:host([has-title][image]){height:5rem}:host([image]) .ui5-li-content{height:3rem}:host([description]) .ui5-li-root{padding:1rem}:host([description]) .ui5-li-content{height:3rem}:host([has-title][description]) .ui5-li-title{padding-bottom:.375rem}.ui5-li-text-wrapper{display:flex;flex-direction:column;flex:auto;min-width:1px;line-height:normal}:host([description]) .ui5-li-text-wrapper{height:100%;justify-content:space-between;padding:.125rem 0}.ui5-li-description-info-wrapper{display:flex;justify-content:space-between}.ui5-li-title{color:var(--sapTextColor);font-size:var(--_ui5_list_item_title_size)}.ui5-li-additional-text,.ui5-li-desc,.ui5-li-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui5-li-desc{color:var(--sapContent_LabelColor);font-size:var(--sapFontSize)}.ui5-li-additional-text{margin:0 .25rem;color:var(--sapNeutralTextColor);font-size:.875rem;min-width:3.75rem;text-align:right;max-width:40%}:host([description]) .ui5-li-additional-text{align-self:flex-end}.ui5-li-img{width:var(--_ui5_list_item_img_size);min-width:var(--_ui5_list_item_img_size);height:var(--_ui5_list_item_img_size);min-height:var(--_ui5_list_item_img_size);margin:var(--_ui5_list_item_img_margin);border-radius:.25rem}.ui5-li-img-inner{object-fit:contain}.ui5-li-icon{min-width:var(--_ui5_list_item_icon_size);min-height:var(--_ui5_list_item_icon_size);color:var(--sapContent_NonInteractiveIconColor);padding-right:.5rem}.ui5-li-content{display:flex;align-items:center;flex:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.ui5-li-deletebtn,.ui5-li-detailbtn{display:flex;align-items:center}.ui5-li-multisel-cb,.ui5-li-singlesel-radiobtn{flex-shrink:0}:host([description]) .ui5-li-singlesel-radiobtn{align-self:flex-start;margin-top:var(--_ui5_list_item_selection_btn_margin_top)}:host([description]) .ui5-li-multisel-cb{align-self:flex-start;margin-top:var(--_ui5_list_item_selection_btn_margin_top)}:host([_mode=SingleSelectBegin]) .ui5-li-root{padding-right:1rem;padding-left:0}:host([_mode=MultiSelect]) .ui5-li-root{padding-right:1rem;padding-left:0}:host([_mode=SingleSelectEnd]) .ui5-li-root{padding-right:0;padding-left:1rem}:host [ui5-checkbox].ui5-li-singlesel-radiobtn{margin-right:var(--_ui5_list_item_cb_margin_right)}:host [dir=rtl] .ui5-li-icon{padding-left:.5rem;padding-right:0}:host [dir=rtl] .ui5-li-img{margin:.5rem 0 .5rem .75rem}[dir=rtl] .ui5-li-additional-text{text-align:left}:host([_mode=SingleSelectBegin]) [dir=rtl].ui5-li-root{padding-right:0;padding-left:1rem}:host([_mode=MultiSelect]) [dir=rtl].ui5-li-root{padding-right:0;padding-left:1rem}:host([_mode=SingleSelectEnd]) [dir=rtl].ui5-li-root{padding-right:1rem;padding-left:0}\"}","import { isSpace, isEnter, isDelete } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport RadioButton from \"./RadioButton.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport Button from \"./Button.js\";\nimport {\n\tDELETE,\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tARIA_LABEL_LIST_ITEM_RADIO_BUTTON,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.ListItem.prototype */ {\n\n\t\t/**\n\t\t * Defines the visual indication and behavior of the list items.\n\t\t * Available options are <code>Active</code> (by default), <code>Inactive</code> and <code>Detail</code>.\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set to <code>Active</code>, the item will provide visual response upon press and hover,\n\t\t * while with type <code>Inactive</code> and <code>Detail</code> - will not.\n\t\t *\n\t\t * @type {ListItemType}\n\t\t * @defaultvalue \"Active\"\n\t\t * @public\n\t\t*/\n\t\ttype: {\n\t\t\ttype: ListItemType,\n\t\t\tdefaultValue: ListItemType.Active,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @private\n\t\t*/\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the tooltip of the component.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @private\n\t\t*/\n\t\tactionable: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Used to define the role of the list item.\n\t\t *\n\t\t * @private\n\t\t * @type {String}\n\t\t * @defaultvalue \"listitem\"\n\t\t * @since 1.0.0-rc.9\n\t\t *\n\t\t */\n\t\trole: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"listitem\",\n\t\t},\n\n\t\t_mode: {\n\t\t\ttype: ListMode,\n\t\t\tdefaultValue: ListMode.None,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.ListItem.prototype */ {\n\t\t/**\n\t\t * Fired when the user clicks on the detail button when type is <code>Detail</code>.\n\t\t *\n\t\t * @event sap.ui.webcomponents.main.ListItem#detail-click\n\t\t * @public\n\t\t */\n\t\t\"detail-click\": {},\n\t\t_press: {},\n\t\t_focused: {},\n\t\t\"_selection-requested\": {},\n\t},\n};\n\n/**\n * @class\n * A class to serve as a base\n * for the <code>StandardListItem</code> and <code>CustomListItem</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ListItem\n * @extends ListItemBase\n * @public\n */\nclass ListItem extends ListItemBase {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn [ListItemBase.styles, styles];\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tButton,\n\t\t\tRadioButton,\n\t\t\tCheckBox,\n\t\t];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.deactivateByKey = event => {\n\t\t\tif (isEnter(event)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\t}\n\n\tonBeforeRendering(...params) {\n\t\tthis.actionable = (this.type === ListItemType.Active) && (this._mode !== ListMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(event) {\n\t\tsuper._onkeydown(event);\n\n\t\tconst itemActive = this.type === ListItemType.Active;\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif ((isSpace(event) || isEnter(event)) && itemActive) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireItemPress(event);\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tthis.fireItemPress(event);\n\t\t}\n\n\t\tif (this.modeDelete && isDelete(event)) {\n\t\t\tthis.onDelete();\n\t\t}\n\t}\n\n\t_onmousedown(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.activate();\n\t}\n\n\t_onmouseup(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchstart(event) {\n\t\tthis._onmousedown(event);\n\t}\n\n\t_ontouchend(event) {\n\t\tthis._onmouseup(event);\n\t}\n\n\t_onfocusout() {\n\t\tsuper._onfocusout();\n\t\tthis.deactivate();\n\t}\n\n\t_onclick(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.fireItemPress(event);\n\t}\n\n\t/*\n\t * Called when selection components in Single (ui5-radio-button)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_selection-requested\", { item: this, selected: event.target.checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_selection-requested\", { item: this, selected: !event.target.selected, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete(event) {\n\t\tthis.fireEvent(\"_selection-requested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick(event) {\n\t\tthis.fireEvent(\"detail-click\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_press\", { item: this, selected: this.selected, key: event.key });\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._mode === ListMode.MultiSelect\n\t\t\t|| this._mode === ListMode.SingleSelectBegin;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._mode === ListMode.SingleSelectEnd || this._mode === ListMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListMode.SingleSelectBegin,\n\t\t\tListMode.SingleSelectEnd,\n\t\t\tListMode.SingleSelect,\n\t\t].includes(this._mode);\n\t}\n\n\tget modeMultiSelect() {\n\t\treturn this._mode === ListMode.MultiSelect;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._mode === ListMode.Delete;\n\t}\n\n\t/**\n\t * Used in UploadCollectionItem\n\t */\n\tget renderDeleteButton() {\n\t\treturn this.modeDelete;\n\t}\n\n\tget disableDeleteButton() {\n\t\treturn false;\n\t}\n\t/**\n\t * End\n\t */\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget typeActive() {\n\t\treturn this.type === ListItemType.Active;\n\t}\n\n\tget ariaSelected() {\n\t\tif (this.modeMultiSelect || this.modeSingleSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget ariaSelectedText() {\n\t\tlet ariaSelectedText;\n\n\t\t// Selected state needs to be supported separately since now the role mapping is list -> listitem[]\n\t\t// to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);\n\t\t// The text is added to aria-describedby because as part of the aria-labelledby\n\t\t// the whole content of the item is readout when the aria-labelledby value is changed.\n\t\tif (this.ariaSelected !== undefined) {\n\t\t\tariaSelectedText = this.ariaSelected ? ListItem.i18nBundle.getText(LIST_ITEM_SELECTED) : ListItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\t}\n\n\t\treturn ariaSelectedText;\n\t}\n\n\tget deleteText() {\n\t\treturn ListItem.i18nBundle.getText(DELETE);\n\t}\n\n\tget _accInfo() {\n\t\treturn {\n\t\t\trole: this.role,\n\t\t\tariaExpanded: undefined,\n\t\t\tariaLevel: undefined,\n\t\t\tariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),\n\t\t\tariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t};\n\t}\n\n\tstatic async onDefine() {\n\t\tListItem.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nexport default ListItem;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-avatar-root\" tabindex=\"${ifDefined(context.tabindex)}\" data-sap-focus-ref @keyup=${context._onkeyup} @keydown=${context._onkeydown} @focusout=${context._onfocusout} @focusin=${context._onfocusin} @click=${context._onclick} role=\"${ifDefined(context._role)}\" aria-haspopup=\"${ifDefined(context._ariaHasPopup)}\">${ context.hasImage ? block1(context, tags, suffix) : block2(context, tags, suffix) }</div>`;\nconst block1 = (context, tags, suffix) => html`<slot></slot>`;\nconst block2 = (context, tags, suffix) => html`${ context.icon ? block3(context, tags, suffix) : block4(context, tags, suffix) }`;\nconst block3 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-avatar-icon\" name=\"${ifDefined(context.icon)}\" accessible-name=\"${ifDefined(context.accessibleNameText)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block4 = (context, tags, suffix) => html`${ context.initials ? block5(context, tags, suffix) : undefined }`;\nconst block5 = (context, tags, suffix) => html`<span class=\"ui5-avatar-initials\">${ifDefined(context.validInitials)}</span>`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Avatar.css\",content:\":host(:not([hidden])){display:inline-block;box-sizing:border-box}:host(:not([hidden]).ui5_hovered){opacity:.7}:host([focused]){outline:var(--_ui5_avatar_outline);outline-offset:var(--_ui5_avatar_focus_offset)}:host([interactive]){cursor:pointer}:host{height:3rem;width:3rem;border-radius:50%;border:var(--ui5-avatar-initials-border);outline:none;color:var(--ui5-avatar-initials-color)}:host([shape=Square]),:host([shape=Square]) ::slotted(*){border-radius:.25rem}:host([shape=Square]) .ui5-avatar-root{border-radius:inherit}:host([shape=Square]) .ui5-avatar-img{border-radius:inherit}:host([_size=XS]),:host([size=XS]){height:2rem;width:2rem;min-height:2rem;min-width:2rem;font-size:var(--_ui5_avatar_fontsize_XS)}:host([_size=S]),:host([size=S]){min-height:3rem;min-width:3rem;font-size:var(--_ui5_avatar_fontsize_S)}:host([_size=M]),:host([size=M]){min-height:4rem;min-width:4rem;font-size:var(--_ui5_avatar_fontsize_M)}:host([_size=L]),:host([size=L]){min-height:5rem;min-width:5rem;font-size:var(--_ui5_avatar_fontsize_L)}:host([_size=XL]),:host([size=XL]){min-height:7rem;min-width:7rem;font-size:var(--_ui5_avatar_fontsize_XL)}:host .ui5-avatar-icon{height:1.5rem;width:1.5rem;color:inherit}:host([_size=XS]) .ui5-avatar-icon,:host([size=XS]) .ui5-avatar-icon{height:1rem;width:1rem}:host([_size=S]) .ui5-avatar-icon,:host([size=S]) .ui5-avatar-icon{height:1.5rem;width:1.5rem}:host([_size=M]) .ui5-avatar-icon,:host([size=M]) .ui5-avatar-icon{height:2rem;width:2rem}:host([_size=L]) .ui5-avatar-icon,:host([size=L]) .ui5-avatar-icon{height:2.5rem;width:2.5rem}:host([_size=XL]) .ui5-avatar-icon,:host([size=XL]) .ui5-avatar-icon{height:3rem;width:3rem}::slotted(*){border-radius:50%;width:100%;height:100%}:host(:not([_has-image])),:host(:not([color-scheme])),:host([_color-scheme=Accent6]),:host([color-scheme=Accent6]){background-color:var(--ui5-avatar-accent6);color:var(--ui5-avatar-accent6-color)}:host([_color-scheme=Accent1]),:host([color-scheme=Accent1]){background-color:var(--ui5-avatar-accent1);color:var(--ui5-avatar-accent1-color)}:host([_color-scheme=Accent2]),:host([color-scheme=Accent2]){background-color:var(--ui5-avatar-accent2);color:var(--ui5-avatar-accent2-color)}:host([_color-scheme=Accent3]),:host([color-scheme=Accent3]){background-color:var(--ui5-avatar-accent3);color:var(--ui5-avatar-accent3-color)}:host([_color-scheme=Accent4]),:host([color-scheme=Accent4]){background-color:var(--ui5-avatar-accent4);color:var(--ui5-avatar-accent4-color)}:host([_color-scheme=Accent5]),:host([color-scheme=Accent5]){background-color:var(--ui5-avatar-accent5);color:var(--ui5-avatar-accent5-color)}:host([_color-scheme=Accent7]),:host([color-scheme=Accent7]){background-color:var(--ui5-avatar-accent7);color:var(--ui5-avatar-accent7-color)}:host([_color-scheme=Accent8]),:host([color-scheme=Accent8]){background-color:var(--ui5-avatar-accent8);color:var(--ui5-avatar-accent8-color)}:host([_color-scheme=Accent9]),:host([color-scheme=Accent9]){background-color:var(--ui5-avatar-accent9);color:var(--ui5-avatar-accent9-color)}:host([_color-scheme=Accent10]),:host([color-scheme=Accent10]){background-color:var(--ui5-avatar-accent10);color:var(--ui5-avatar-accent10-color)}:host([_color-scheme=Placeholder]),:host([color-scheme=Placeholder]){background-color:var(--ui5-avatar-placeholder);color:var(--ui5-avatar-placeholder-color)}:host([_has-image]){background-color:transparent}:host([image-fit-type=Contain]) .ui5-avatar-img{background-size:contain}.ui5-avatar-root{display:flex;align-items:center;justify-content:center;outline:none}.ui5-avatar-img,.ui5-avatar-root{height:100%;width:100%;border-radius:50%}.ui5-avatar-img{background-repeat:no-repeat;background-position:50%;background-size:cover}.ui5-avatar-initials{color:inherit}::slotted(*){pointer-events:none}\"}","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * Different types of AvatarSize.\n * @lends sap.ui.webcomponents.main.types.AvatarSize.prototype\n * @public\n */\nconst AvatarSizes = {\n\t/**\n\t * component size - 2rem\n\t * font size - 1rem\n\t * @public\n\t * @type {XS}\n\t */\n\tXS: \"XS\",\n\n\t/**\n\t * component size - 3rem\n\t * font size - 1.5rem\n\t * @public\n\t * @type {S}\n\t */\n\tS: \"S\",\n\n\t/**\n\t * component size - 4rem\n\t * font size - 2rem\n\t * @public\n\t * @type {M}\n\t */\n\tM: \"M\",\n\n\t/**\n\t * component size - 5rem\n\t * font size - 2.5rem\n\t * @public\n\t * @type {L}\n\t */\n\tL: \"L\",\n\n\t/**\n\t * component size - 7rem\n\t * font size - 3rem\n\t * @public\n\t * @type {XL}\n\t */\n\tXL: \"XL\",\n};\n\n/**\n * @class\n * Different types of AvatarSize.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.AvatarSize\n * @public\n * @enum {string}\n */\nclass AvatarSize extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!AvatarSizes[value];\n\t}\n}\n\nAvatarSize.generateTypeAccessors(AvatarSizes);\n\nexport default AvatarSize;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * Different types of AvatarShape.\n * @lends sap.ui.webcomponents.main.types.AvatarShape.prototype\n * @public\n */\nconst AvatarShapes = {\n\t/**\n\t * Circular shape.\n\t * @public\n\t * @type {Circle}\n\t */\n\tCircle: \"Circle\",\n\n\t/**\n\t * Square shape.\n\t * @public\n\t * @type {Square}\n\t */\n\tSquare: \"Square\",\n};\n\n/**\n * @class\n * Different types of AvatarShape.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.AvatarShape\n * @public\n * @enum {string}\n */\nclass AvatarShape extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!AvatarShapes[value];\n\t}\n}\n\nAvatarShape.generateTypeAccessors(AvatarShapes);\n\nexport default AvatarShape;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * Different types of AvatarColorSchemes.\n * @lends sap.ui.webcomponents.main.types.AvatarColorScheme.prototype\n * @public\n */\nconst AvatarColorSchemes = {\n\t/**\n\t *\n\t * @public\n\t * @type {Accent1}\n\t */\n\tAccent1: \"Accent1\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent2}\n\t */\n\tAccent2: \"Accent2\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent3}\n\t */\n\tAccent3: \"Accent3\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent4}\n\t */\n\tAccent4: \"Accent4\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent5}\n\t */\n\tAccent5: \"Accent5\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent6}\n\t */\n\tAccent6: \"Accent6\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent7}\n\t */\n\tAccent7: \"Accent7\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent8}\n\t */\n\tAccent8: \"Accent8\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent9}\n\t */\n\tAccent9: \"Accent9\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Accent10}\n\t */\n\tAccent10: \"Accent10\",\n\n\t/**\n\t *\n\t * @public\n\t * @type {Placeholder}\n\t */\n\tPlaceholder: \"Placeholder\",\n};\n\n/**\n * @class\n * Different types of AvatarColorScheme.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.AvatarColorScheme\n * @public\n * @enum {string}\n */\nclass AvatarColorScheme extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!AvatarColorSchemes[value];\n\t}\n}\n\nAvatarColorScheme.generateTypeAccessors(AvatarColorSchemes);\n\nexport default AvatarColorScheme;\n","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\n// Template\nimport AvatarTemplate from \"./generated/templates/AvatarTemplate.lit.js\";\n\nimport { AVATAR_TOOLTIP } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nimport Icon from \"./Icon.js\";\nimport AvatarSize from \"./types/AvatarSize.js\";\nimport AvatarShape from \"./types/AvatarShape.js\";\nimport AvatarColorScheme from \"./types/AvatarColorScheme.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-avatar\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.Avatar.prototype */ {\n\n\t\t/**\n\t\t * Defines if the avatar is interactive (focusable and pressable)\n\t\t * @type {boolean}\n\t\t * @defaultValue false\n\t\t * @public\n\t\t */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements is on focus\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the name of the UI5 Icon, that would be displayed.\n\t\t * <br>\n\t\t * <b>Note:</b> If <code>image</code> slot is provided, the property would be ignored.\n\t\t * <br>\n\t\t * <b>Note:</b> You should import the desired icon first, then use its name as \"icon\".\n\t\t * <br><br>\n\t\t * import \"@ui5/webcomponents-icons/dist/{icon_name}.js\"\n\t\t * <br>\n\t\t * <pre><ui5-avatar icon=\"employee\"></pre>\n\t\t *\n\t\t * See all the available icons in the <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the displayed initials.\n\t\t * <br>\n\t\t * Up to two Latin letters can be displayed as initials.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tinitials: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the shape of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>Circle</code></li>\n\t\t * <li><code>Square</code></li>\n\t\t * </ul>\n\t\t * @type {AvatarShape}\n\t\t * @defaultvalue \"Circle\"\n\t\t * @public\n\t\t */\n\t\tshape: {\n\t\t\ttype: AvatarShape,\n\t\t\tdefaultValue: AvatarShape.Circle,\n\t\t},\n\n\t\t/**\n\t\t * Defines predefined size of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>XS</code></li>\n\t\t * <li><code>S</code></li>\n\t\t * <li><code>M</code></li>\n\t\t * <li><code>L</code></li>\n\t\t * <li><code>XL</code></li>\n\t\t * </ul>\n\t\t * @type {AvatarSize}\n\t\t * @defaultvalue \"S\"\n\t\t * @public\n\t\t */\n\t\tsize: {\n\t\t\ttype: AvatarSize,\n\t\t\tdefaultValue: AvatarSize.S,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_size: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: AvatarSize.S,\n\t\t},\n\n\t\t/**\n\t\t * Defines the background color of the desired image.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>Accent1</code></li>\n\t\t * <li><code>Accent2</code></li>\n\t\t * <li><code>Accent3</code></li>\n\t\t * <li><code>Accent4</code></li>\n\t\t * <li><code>Accent5</code></li>\n\t\t * <li><code>Accent6</code></li>\n\t\t * <li><code>Accent7</code></li>\n\t\t * <li><code>Accent8</code></li>\n\t\t * <li><code>Accent9</code></li>\n\t\t * <li><code>Accent10</code></li>\n\t\t * <li><code>Placeholder</code></li>\n\t\t * </ul>\n\t\t * @type {AvatarColorScheme}\n\t\t * @defaultvalue \"Accent6\"\n\t\t * @public\n\t\t */\n\t\tcolorScheme: {\n\t\t\ttype: AvatarColorScheme,\n\t\t\tdefaultValue: AvatarColorScheme.Accent6,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_colorScheme: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: AvatarColorScheme.Accent6,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the component.\n\t\t * If not provided a default text alternative will be set, if present.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.7\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the aria-haspopup value of the component when <code>interactive</code> property is <code>true</code>.\n\t\t * <br><br>\n\t\t * @type String\n\t\t * @since 1.0.0-rc.15\n\t\t * @protected\n\t\t */\n\t\tariaHaspopup: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_hasImage: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Avatar.prototype */ {\n\t\t/**\n\t\t * Receives the desired <code><img></code> tag\n\t\t *\n\t\t * <b>Note:</b> If you experience flickering of the provided image, you can hide the component until it is being defined with the following CSS:\n\t\t * <br /> <br />\n\t\t * <code>\n\t\t *\t\tui5-avatar:not(:defined) { <br />\n\t\t *\t\t\t visibility: hidden; <br />\n\t\t *\t\t} <br />\n\t\t * </code>\n\t\t * @type {HTMLElement}\n\t\t * @slot\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"image\",\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Avatar.prototype */ {\n\t\t/**\n\t\t* Fired on mouseup, space and enter if avatar is interactive\n\t\t*\n\t\t* @event\n\t\t* @private\n\t\t* @since 1.0.0-rc.11\n\t\t*/\n\t\tclick: {},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * An image-like control that has different display options for representing images and icons\n * in different shapes and sizes, depending on the use case.\n *\n * The shape can be circular or square. There are several predefined sizes, as well as an option to\n * set a custom size.\n *\n * <br><br>\n * <h3>Keyboard Handling</h3>\n *\n * <ul>\n * <li>[SPACE, ENTER, RETURN] - Fires the <code>click</code> event if the <code>interactive</code> property is set to true.</li>\n * <li>[SHIFT] - If [SPACE] is pressed, pressing [SHIFT] releases the component without triggering the click event.</li>\n * </ul>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Avatar.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Avatar\n * @extends UI5Element\n * @tagname ui5-avatar\n * @since 1.0.0-rc.6\n * @implements sap.ui.webcomponents.main.IAvatar\n * @public\n */\nclass Avatar extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn AvatarCss;\n\t}\n\n\tstatic get template() {\n\t\treturn AvatarTemplate;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Icon];\n\t}\n\n\tstatic async onDefine() {\n\t\tAvatar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget tabindex() {\n\t\treturn this._tabIndex || (this.interactive ? \"0\" : \"-1\");\n\t}\n\n\t/**\n\t * Returns the effective avatar size.\n\t * @readonly\n\t * @type { String }\n\t * @defaultValue \"S\"\n\t * @private\n\t */\n\tget _effectiveSize() {\n\t\t// we read the attribute, because the \"size\" property will always have a default value\n\t\treturn this.getAttribute(\"size\") || this._size;\n\t}\n\n\t/**\n\t * Returns the effective background color.\n\t * @readonly\n\t * @type { String }\n\t * @defaultValue \"Accent6\"\n\t * @private\n\t */\n\tget _effectiveBackgroundColor() {\n\t\t// we read the attribute, because the \"background-color\" property will always have a default value\n\t\treturn this.getAttribute(\"_color-scheme\") || this._colorScheme;\n\t}\n\n\tget _role() {\n\t\treturn this.interactive ? \"button\" : undefined;\n\t}\n\n\tget _ariaHasPopup() {\n\t\treturn this._getAriaHasPopup();\n\t}\n\n\tget validInitials() {\n\t\tconst validInitials = /^[a-zA-Z]{1,2}$/;\n\n\t\tif (this.initials && validInitials.test(this.initials)) {\n\t\t\treturn this.initials;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tget accessibleNameText() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\n\t\treturn Avatar.i18nBundle.getText(AVATAR_TOOLTIP) || undefined;\n\t}\n\n\tget hasImage() {\n\t\tthis._hasImage = !!this.image.length;\n\t\treturn this._hasImage;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._onclick = this.interactive ? this._onClickHandler.bind(this) : undefined;\n\t}\n\n\t_onClickHandler(event) {\n\t\t// prevent the native event and fire custom event to ensure the noConfict \"ui5-click\" is fired\n\t\tevent.stopPropagation();\n\t\tthis.fireEvent(\"click\");\n\t}\n\n\t_onkeydown(event) {\n\t\tif (!this.interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (this.interactive && !event.shiftKey && isSpace(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_onfocusin() {\n\t\tif (this.interactive) {\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_getAriaHasPopup() {\n\t\tif (!this.interactive || this.ariaHaspopup === \"\") {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.ariaHaspopup;\n\t}\n}\n\nAvatar.define();\n\nexport default Avatar;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<li part=\"native-li\" tabindex=\"${ifDefined(context.tabIndex)}\" class=\"${classMap(context.classes.main)}\" dir=\"${ifDefined(context.effectiveDir)}\" @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\" @keyup=\"${context._onkeyup}\" @keydown=\"${context._onkeydown}\" @mouseup=\"${context._onmouseup}\" @mousedown=\"${context._onmousedown}\" @touchstart=\"${context._ontouchstart}\" @touchend=\"${context._ontouchend}\" @click=\"${context._onclick}\" role=\"${ifDefined(context._accInfo.role)}\" aria-expanded=\"${ifDefined(context._accInfo.ariaExpanded)}\" title=\"${ifDefined(context.title)}\" aria-level=\"${ifDefined(context._accInfo.ariaLevel)}\" aria-posinset=\"${ifDefined(context._accInfo.posinset)}\" aria-setsize=\"${ifDefined(context._accInfo.setsize)}\" aria-describedby=\"${ifDefined(context._id)}-invisibleText-describedby\" aria-labelledby=\"${ifDefined(context._id)}-invisibleText ${ifDefined(context._id)}-content\" aria-disabled=\"${ifDefined(context.ariaDisabled)}\">${ context.placeSelectionElementBefore ? block1(context, tags, suffix) : undefined }<div id=\"${ifDefined(context._id)}-content\" class=\"ui5-li-content\">${ context.displayImage ? block5(context, tags, suffix) : undefined }${ context.displayIconBegin ? block6(context, tags, suffix) : undefined }<div class=\"ui5-li-text-wrapper\"><span part=\"title\" class=\"ui5-li-title\"><slot></slot></span>${ context.description ? block7(context, tags, suffix) : undefined }${ !context.typeActive ? block9(context, tags, suffix) : undefined }</div>${ !context.description ? block10(context, tags, suffix) : undefined }</div>${ context.displayIconEnd ? block12(context, tags, suffix) : undefined }${ context.typeDetail ? block13(context, tags, suffix) : undefined }${ context.placeSelectionElementAfter ? block14(context, tags, suffix) : undefined }<span id=\"${ifDefined(context._id)}-invisibleText\" class=\"ui5-hidden-text\">${ifDefined(context._accInfo.listItemAriaLabel)}${ifDefined(context.accessibleName)}</span><span id=\"${ifDefined(context._id)}-invisibleText-describedby\" class=\"ui5-hidden-text\">${ifDefined(context._accInfo.ariaSelectedText)}</span></li> `;\nconst block1 = (context, tags, suffix) => html`${ context.modeSingleSelect ? block2(context, tags, suffix) : undefined }${ context.modeMultiSelect ? block3(context, tags, suffix) : undefined }${ context.renderDeleteButton ? block4(context, tags, suffix) : undefined }`;\nconst block2 = (context, tags, suffix) => html`<${scopeTag(\"ui5-radio-button\", tags, suffix)} ?disabled=\"${context.isInactive}\" accessible-name=\"${ifDefined(context._accInfo.ariaLabelRadioButton)}\" tabindex=\"-1\" id=\"${ifDefined(context._id)}-singleSelectionElement\" class=\"ui5-li-singlesel-radiobtn\" ?checked=\"${context.selected}\" @click=\"${context.onSingleSelectionComponentPress}\"></${scopeTag(\"ui5-radio-button\", tags, suffix)}>`;\nconst block3 = (context, tags, suffix) => html`<${scopeTag(\"ui5-checkbox\", tags, suffix)} ?disabled=\"${context.isInactive}\" tabindex=\"-1\" id=\"${ifDefined(context._id)}-multiSelectionElement\" class=\"ui5-li-multisel-cb\" ?checked=\"${context.selected}\" aria-label=\"${ifDefined(context._accInfo.ariaLabel)}\" @click=\"${context.onMultiSelectionComponentPress}\"></${scopeTag(\"ui5-checkbox\", tags, suffix)}>`;\nconst block4 = (context, tags, suffix) => html`<div class=\"ui5-li-deletebtn\"><${scopeTag(\"ui5-button\", tags, suffix)} tabindex=\"-1\" data-sap-no-tab-ref id=\"${ifDefined(context._id)}-deleteSelectionElement\" design=\"Transparent\" icon=\"decline\" ?disabled=\"${context.disableDeleteButton}\" @click=\"${context.onDelete}\" title=\"${ifDefined(context.deleteText)}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div>`;\nconst block5 = (context, tags, suffix) => html`<${scopeTag(\"ui5-avatar\", tags, suffix)} shape=\"Square\" class=\"ui5-li-img\"><img src=\"${ifDefined(context.image)}\" class=\"ui5-li-img-inner\" /></${scopeTag(\"ui5-avatar\", tags, suffix)}>`;\nconst block6 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} part=\"icon\" name=\"${ifDefined(context.icon)}\" class=\"ui5-li-icon\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block7 = (context, tags, suffix) => html`<div class=\"ui5-li-description-info-wrapper\"><span part=\"description\" class=\"ui5-li-desc\">${ifDefined(context.description)}</span>${ context.additionalText ? block8(context, tags, suffix) : undefined }</div>`;\nconst block8 = (context, tags, suffix) => html`<span part=\"additional-text\" class=\"ui5-li-additional-text\">${ifDefined(context.additionalText)}</span>`;\nconst block9 = (context, tags, suffix) => html`<span class=\"ui5-hidden-text\">${ifDefined(context.type)}</span>`;\nconst block10 = (context, tags, suffix) => html`${ context.additionalText ? block11(context, tags, suffix) : undefined }`;\nconst block11 = (context, tags, suffix) => html`<span part=\"additional-text\" class=\"ui5-li-additional-text\">${ifDefined(context.additionalText)}</span>`;\nconst block12 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} part=\"icon\" name=\"${ifDefined(context.icon)}\" class=\"ui5-li-icon\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block13 = (context, tags, suffix) => html`<div class=\"ui5-li-detailbtn\"><${scopeTag(\"ui5-button\", tags, suffix)} design=\"Transparent\" icon=\"edit\" @click=\"${context.onDetailClick}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div>`;\nconst block14 = (context, tags, suffix) => html`${ context.modeSingleSelect ? block15(context, tags, suffix) : undefined }${ context.modeMultiSelect ? block16(context, tags, suffix) : undefined }${ context.renderDeleteButton ? block17(context, tags, suffix) : undefined }`;\nconst block15 = (context, tags, suffix) => html`<${scopeTag(\"ui5-radio-button\", tags, suffix)} ?disabled=\"${context.isInactive}\" accessible-name=\"${ifDefined(context._accInfo.ariaLabelRadioButton)}\" tabindex=\"-1\" id=\"${ifDefined(context._id)}-singleSelectionElement\" class=\"ui5-li-singlesel-radiobtn\" ?checked=\"${context.selected}\" @click=\"${context.onSingleSelectionComponentPress}\"></${scopeTag(\"ui5-radio-button\", tags, suffix)}>`;\nconst block16 = (context, tags, suffix) => html`<${scopeTag(\"ui5-checkbox\", tags, suffix)} ?disabled=\"${context.isInactive}\" tabindex=\"-1\" id=\"${ifDefined(context._id)}-multiSelectionElement\" class=\"ui5-li-multisel-cb\" ?checked=\"${context.selected}\" aria-label=\"${ifDefined(context._accInfo.ariaLabel)}\" @click=\"${context.onMultiSelectionComponentPress}\"></${scopeTag(\"ui5-checkbox\", tags, suffix)}>`;\nconst block17 = (context, tags, suffix) => html`<div class=\"ui5-li-deletebtn\"><${scopeTag(\"ui5-button\", tags, suffix)} tabindex=\"-1\" data-sap-no-tab-ref id=\"${ifDefined(context._id)}-deleteSelectionElement\" design=\"Transparent\" icon=\"decline\" ?disabled=\"${context.disableDeleteButton}\" @click=\"${context.onDelete}\" title=\"${ifDefined(context.deleteText)}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div>`;\n\n\nexport default block0;","import ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport Avatar from \"./Avatar.js\";\nimport StandardListItemTemplate from \"./generated/templates/StandardListItemTemplate.lit.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-li\",\n\tproperties: /** @lends sap.ui.webcomponents.main.StandardListItem.prototype */ {\n\n\t\t/**\n\t\t * Defines the description displayed right under the item text, if such is present.\n\t\t * @type {string}\n\t\t * @defaultvalue: \"\"\n\t\t * @public\n\t\t * @since 0.8.0\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the <code>icon</code> source URI.\n\t\t * <br><br>\n\t\t * <b>Note:</b>\n\t\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the <code>icon</code> should be displayed in the beginning of the list item or in the end.\n\t\t * <br><br>\n\t\t * <b>Note:</b> If <code>image</code> is set, the <code>icon</code> would be displayed after the <code>image</code>.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\ticonEnd: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the <code>image</code> source URI.\n\t\t * <br><br>\n\t\t * <b>Note:</b> The <code>image</code> would be displayed in the beginning of the list item.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\timage: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the <code>additionalText</code>, displayed in the end of the list item.\n\t\t * @type {string}\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tadditionalText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the state of the <code>additionalText</code>.\n\t\t * <br>\n\t\t * Available options are: <code>\"None\"</code> (by default), <code>\"Success\"</code>, <code>\"Warning\"</code>, <code>\"Information\"</code> and <code>\"Erorr\"</code>.\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tadditionalTextState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the component.\n\t\t * Note: If not provided a default text alternative will be set, if present.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item has text content.\n\t\t * @type {boolean}\n\t\t * @private\n\t\t */\n\t\thasTitle: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.StandardListItem.prototype */ {\n\t\t/**\n\t\t * Defines the text of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n * The <code>ui5-li</code> represents the simplest type of item for a <code>ui5-list</code>.\n *\n * This is a list item,\n * providing the most common use cases such as <code>text</code>,\n * <code>image</code> and <code>icon</code>.\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-li</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>title - Used to style the title of the list item</li>\n * <li>description - Used to style the description of the list item</li>\n * <li>additional-text - Used to style the additionalText of the list item</li>\n * <li>icon - Used to style the icon of the list item</li>\n * </ul>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.StandardListItem\n * @extends ListItem\n * @tagname ui5-li\n * @implements sap.ui.webcomponents.main.IListItem\n * @public\n */\nclass StandardListItem extends ListItem {\n\tstatic get template() {\n\t\treturn StandardListItemTemplate;\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tonBeforeRendering(...params) {\n\t\tsuper.onBeforeRendering(...params);\n\t\tthis.hasTitle = !!this.textContent;\n\t}\n\n\tget displayImage() {\n\t\treturn !!this.image;\n\t}\n\n\tget displayIconBegin() {\n\t\treturn (this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd() {\n\t\treturn (this.icon && this.iconEnd);\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\t...ListItem.dependencies,\n\t\t\tIcon,\n\t\t\tAvatar,\n\t\t];\n\t}\n}\n\nStandardListItem.define();\n\nexport default StandardListItem;\n","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`<div class=\"ui5-select-root\" dir=\"${ifDefined(context.effectiveDir)}\" id=\"${ifDefined(context._id)}-select\" @click=\"${context._onclick}\">${ context.selectedOptionIcon ? block1(context, tags, suffix) : undefined }<div class=\"ui5-select-label-root\" data-sap-focus-ref tabindex=\"${ifDefined(context.tabIndex)}\" role=\"combobox\" aria-haspopup=\"listbox\" aria-label=\"${ifDefined(context.ariaLabelText)}\" aria-describedby=\"${ifDefined(context.valueStateTextId)}\" aria-disabled=\"${ifDefined(context.isDisabled)}\" aria-required=\"${ifDefined(context.required)}\" aria-expanded=\"${ifDefined(context._isPickerOpen)}\" @keydown=\"${context._onkeydown}\" @keypress=\"${context._handleKeyboardNavigation}\" @keyup=\"${context._onkeyup}\" @focusin=\"${context._onfocusin}\" @focusout=\"${context._onfocusout}\">${ifDefined(context._text)}</div><${scopeTag(\"ui5-icon\", tags, suffix)} name=\"slim-arrow-down\" input-icon ?pressed=\"${context._iconPressed}\" dir=\"${ifDefined(context.effectiveDir)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.hasValueState ? block2(context, tags, suffix) : undefined }<slot name=\"formSupport\"></slot></div>`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-icon\", tags, suffix)} aria-hidden=\"true\" class=\"ui5-select-option-icon\" name=\"${ifDefined(context.selectedOptionIcon)}\" dir=\"${ifDefined(context.effectiveDir)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<span id=\"${ifDefined(context._id)}-valueStateDesc\" class=\"ui5-hidden-text\">${ifDefined(context.valueStateText)}</span>`;\n\n\nexport default block0;","/* eslint no-unused-vars: 0 */\nimport { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nconst block0 = (context, tags, suffix) => html`${ context.options ? block1(context, tags, suffix) : undefined }${ context.shouldOpenValueStateMessagePopover ? block13(context, tags, suffix) : undefined }`;\nconst block1 = (context, tags, suffix) => html`<${scopeTag(\"ui5-responsive-popover\", tags, suffix)} hide-arrow _disable-initial-focus placement-type=\"Bottom\" class=\"ui5-select-popover ${classMap(context.classes.popover)}\" horizontal-align=\"Stretch\" @ui5-after-open=\"${ifDefined(context._afterOpen)}\" @ui5-before-open=\"${ifDefined(context._beforeOpen)}\" @ui5-after-close=\"${ifDefined(context._afterClose)}\" @keydown=\"${context._onkeydown}\">${ context._isPhone ? block2(context, tags, suffix) : undefined }${ !context._isPhone ? block7(context, tags, suffix) : undefined }<${scopeTag(\"ui5-list\", tags, suffix)} mode=\"SingleSelectAuto\" separators=\"None\" @mousedown=\"${context._itemMousedown}\" @ui5-item-press=\"${ifDefined(context._handleItemPress)}\">${ repeat(context._syncedOptions, (item, index) => item._id || index, (item, index) => block12(item, index, context, tags, suffix)) }</${scopeTag(\"ui5-list\", tags, suffix)}></${scopeTag(\"ui5-responsive-popover\", tags, suffix)}>`;\nconst block2 = (context, tags, suffix) => html`<div slot=\"header\" class=\"ui5-responsive-popover-header\"><div class=\"row\"><span>${ifDefined(context._headerTitleText)}</span><${scopeTag(\"ui5-button\", tags, suffix)} class=\"ui5-responsive-popover-close-btn\" icon=\"decline\" design=\"Transparent\" @click=\"${context._toggleRespPopover}\"></${scopeTag(\"ui5-button\", tags, suffix)}></div>${ context.hasValueStateText ? block3(context, tags, suffix) : undefined }</div>`;\nconst block3 = (context, tags, suffix) => html`<div class=\"${classMap(context.classes.popoverValueState)} row ui5-select-value-state-dialog-header\">${ context.shouldDisplayDefaultValueStateMessage ? block4(context, tags, suffix) : block5(context, tags, suffix) }</div>`;\nconst block4 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block5 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block6(item, index, context, tags, suffix)) }`;\nconst block6 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\nconst block7 = (context, tags, suffix) => html`${ context.hasValueStateText ? block8(context, tags, suffix) : undefined }`;\nconst block8 = (context, tags, suffix) => html`<div slot=\"header\" class=\"${classMap(context.classes.popoverValueState)}\" style=${styleMap(context.styles.responsivePopoverHeader)}><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-value-state-message-icon\" name=\"${ifDefined(context._valueStateMessageInputIcon)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.shouldDisplayDefaultValueStateMessage ? block9(context, tags, suffix) : block10(context, tags, suffix) }</div>`;\nconst block9 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block10 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block11(item, index, context, tags, suffix)) }`;\nconst block11 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\nconst block12 = (item, index, context, tags, suffix) => html`<${scopeTag(\"ui5-li\", tags, suffix)} id=\"${ifDefined(item.id)}-li\" icon=\"${ifDefined(item.icon)}\" ?selected=\"${item.selected}\" ?focused=\"${item._focused}\" ?aria-selected=\"${item.selected}\" data-ui5-stable=\"${ifDefined(item.stableDomRef)}\">${ifDefined(item.textContent)}</${scopeTag(\"ui5-li\", tags, suffix)}>`;\nconst block13 = (context, tags, suffix) => html`<${scopeTag(\"ui5-popover\", tags, suffix)} skip-registry-update _disable-initial-focus prevent-focus-restore no-padding hide-arrow class=\"ui5-valuestatemessage-popover\" placement-type=\"Bottom\" horizontal-align=\"Left\"><div slot=\"header\" class=\"${classMap(context.classes.popoverValueState)}\" style=\"${styleMap(context.styles.popoverHeader)}\"><${scopeTag(\"ui5-icon\", tags, suffix)} class=\"ui5-input-value-state-message-icon\" name=\"${ifDefined(context._valueStateMessageInputIcon)}\"></${scopeTag(\"ui5-icon\", tags, suffix)}>${ context.shouldDisplayDefaultValueStateMessage ? block14(context, tags, suffix) : block15(context, tags, suffix) }</div></${scopeTag(\"ui5-popover\", tags, suffix)}>`;\nconst block14 = (context, tags, suffix) => html`${ifDefined(context.valueStateText)}`;\nconst block15 = (context, tags, suffix) => html`${ repeat(context.valueStateMessageText, (item, index) => item._id || index, (item, index) => block16(item, index, context, tags, suffix)) }`;\nconst block16 = (item, index, context, tags, suffix) => html`${ifDefined(item)}`;\n\n\nexport default block0;","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\Select.css\",content:\"[input-icon]{color:var(--_ui5_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5_input_icon_padding);margin-right:var(--_ui5_input_icon_margin);border-left:var(--_ui5_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5_input_icon_border_radius);align-self:center}[input-icon][pressed]{background:var(--_ui5_input_icon_pressed_bg);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5_input_icon_box_shadow);color:var(--_ui5_input_icon_pressed_color)}[input-icon]:not([pressed]):not(:active):hover{background:var(--_ui5_input_icon_hover_bg);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon]:hover{border-left:var(--_ui5_select_hover_icon_left_border);box-shadow:var(--_ui5_input_icon_box_shadow)}[input-icon][dir=rtl]:hover{border-left:none;border-right:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]{border-left:none;margin-right:0;margin-left:var(--_ui5_input_icon_margin);border-right:var(--_ui5_input_icon_border)}.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host(:not([hidden])){display:inline-block}:host{width:var(--_ui5_input_width);min-width:var(--_ui5_input_width);height:var(--_ui5_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:\\\"72override\\\",var(--sapFontFamily);font-style:normal;background-color:var(--_ui5-input-background-color);border:var(--_ui5-input-border);border-radius:var(--_ui5-input-border-radius);box-sizing:border-box;line-height:normal;letter-spacing:normal;word-spacing:normal;text-align:start;transition:var(--_ui5-input-transition);background-image:var(--_ui5-input-background-image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host([focused]){border-color:var(--_ui5-input-focused-border-color);background-color:var(--sapField_Focus_Background);outline:var(--_ui5-input-focus-outline);outline-offset:var(--_ui5-input-focus-outline-offset);box-shadow:var(--_ui5-input-focus-box-shadow)}.ui5-input-root:before{content:\\\"\\\";position:absolute;width:calc(100% - 2px);left:1px;bottom:-2px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;height:var(--_ui5-input-bottom-border-height);transition:var(--_ui5-input-transition);background-color:var(--_ui5-input-bottom-border-color)}:host([value-state]:not([value-state=None])[focused]){outline:var(--_ui5-input-value-state-outline);outline-offset:var(--_ui5-input-value-state-outline-offset)}.ui5-input-root{width:100%;height:100%;position:relative;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit;transition:border-color .2s ease-in-out}:host([disabled]){opacity:var(--_ui5_input_disabled_opacity);cursor:default;pointer-events:none;background-color:var(--_ui5-input-disabled-background);border-color:var(--_ui5_input_disabled_border_color)}:host([disabled]) .ui5-input-root:before,:host([readonly]) .ui5-input-root:before{content:none}[inner-input]{background:transparent;color:inherit;border:none;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;padding:var(--_ui5_input_inner_padding);box-sizing:border-box;min-width:inherit;width:100%;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;word-spacing:inherit;text-align:inherit}[inner-input][inner-input-with-icon]{padding:var(--_ui5_input_inner_padding_with_icon)}.ui5-input-readonly-icon{display:var(--_ui5_input_readonly_icon_display);padding:var(--_ui5_input_icon_padding);margin-right:.125rem;align-self:center}.ui5-input-value-state-icon{height:100%;display:var(--_ui5-input-value-state-icon-display);align-items:center}.ui5-input-value-state-icon>svg{margin-right:8px}[inner-input]::selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host([disabled]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-webkit-input-placeholder{visibility:hidden}[inner-input]::-webkit-input-placeholder{font-style:var(--_ui5-input-placeholder-style);color:var(--_ui5-input-placeholder-color);padding-right:.125rem}:host([disabled]) [inner-input]::-moz-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-moz-placeholder{visibility:hidden}[inner-input]::-moz-placeholder{font-style:var(--_ui5-input-placeholder-style);color:var(--sapField_PlaceholderTextColor);padding-right:.125rem}:host([disabled]) [inner-input]:-ms-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]:-ms-input-placeholder{visibility:hidden}[inner-input]:-ms-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor);padding-right:.125rem}:host([value-state=Error]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Error]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Warning]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Warning]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Success]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Success]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Information]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-input-value-success-information-border-botom-color)}:host([value-state=Information]) [inner-input]::-moz-placeholder{color:var(--_ui5-input-value-success-information-border-botom-color)}.ui5-input-content{height:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:flex-end;overflow:hidden;outline:none;background:transparent;color:inherit}:host([readonly]){border-color:var(--_ui5_input_readonly_border_color);background:var(--_ui5-input-readonly-background)}:host(:not([value-state]):not([readonly]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-hover-box-shadow);background-image:var(--_ui5-input-background-image);background-size:100% var(--sapField_BorderWidth);background-repeat:repeat-x;background-position:bottom}:host(:not([value-state]):not([readonly])[focused]:hover),:host([value-state=None]:not([readonly])[focused]:hover){border-color:var(--_ui5-input-focused-border-color);box-shadow:var(--_ui5-input-focus-box-shadow)}:host(:not([value-state]):not([readonly]):hover){border:var(--_ui5-input-hover-border)}:host([focused]) .ui5-input-root:before{content:none}:host([value-state=None]:not([readonly]):hover){background-color:var(--sapField_Hover_Background);border:var(--_ui5-input-hover-border);box-shadow:var(--_ui5-input-hover-box-shadow)}:host([value-state]:not([value-state=None])){border-width:var(--_ui5_input_state_border_width)}:host([value-state=Error]) [inner-input],:host([value-state=Warning]) [inner-input]{font-style:var(--_ui5_input_error_warning_font_style)}:host([value-state=Error]) [inner-input]{font-weight:var(--_ui5_input_error_font_weight)}:host([value-state=Error]:not([readonly])){background-color:var(--sapField_InvalidBackground);border-color:var(--_ui5-input-value-state-error-border-color);background-image:var(--_ui5-input-error-background-image);background-size:100% var(--sapField_InvalidBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Error][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-error-background);border-color:var(--_ui5-input-focused-value-state-error-border-color);box-shadow:var(--_ui5-input-value-state-error-focus-box-shadow)}:host([value-state=Error]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-error-border-botom-color)}:host([value-state=Error]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-error-hover-box-shadow)}:host([value-state=Error]:not([readonly]):not([disabled])),:host([value-state=Information]:not([readonly]):not([disabled])),:host([value-state=Warning]:not([readonly]):not([disabled])){border-style:var(--_ui5_input_error_warning_border_style)}:host([value-state=Warning]:not([readonly])){background-color:var(--sapField_WarningBackground);border-color:var(--_ui5-input-value-state-warning-border-color);background-image:var(--_ui5-input-warning-background-image);background-size:100% var(--sapField_WarningBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Warning][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-warning-background);border-color:var(--_ui5-input-focused-value-state-warning-border-color);box-shadow:var(--_ui5-input-value-state-warning-focus-box-shadow)}:host([value-state=Warning]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-warning-border-botom-color)}:host([value-state=Warning]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-warning-hover-box-shadow)}:host([value-state=Success]:not([readonly])){background-color:var(--sapField_SuccessBackground);border-color:var(--_ui5-input-value-state-success-border-color);border-width:var(--_ui5-input-value-state-success-border-width);background-image:var(--_ui5-input-success-background-image);background-size:100% var(--sapField_SuccessBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Success][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-success-background);border-color:var(--_ui5-input-focused-value-state-success-border-color);box-shadow:var(--_ui5-input-value-state-success-focus-box-shadow)}:host([value-state=Success]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-state-success-border-botom-color)}:host([value-state=Success]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-success-hover-box-shadow)}:host([value-state=Information]:not([readonly])){background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-input-value-state-information-border-color);border-width:var(--_ui5-input-information_border_width);background-image:var(--_ui5-input-information-background-image);background-size:100% var(--sapField_InformationBorderWidth);background-repeat:repeat-x;background-position:bottom}:host([value-state=Information][focused]:not([readonly])){background-color:var(--_ui5-input-focused-value-state-information-background);border-color:var(--_ui5-input-focused-value-state-information-border-color);box-shadow:var(--_ui5-input-focus-box-shadow)}:host([value-state=Information]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-input-value-success-information-border-botom-color)}:host([value-state=Information]:not([readonly]):not([focused]):hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--_ui5-input-value-state-information-hover-box-shadow)}[inner-input]::-ms-clear{height:0;width:0}.ui5-input-icon-root{min-width:var(--_ui5_input_icon_min_width);height:100%;display:flex;justify-content:center;align-items:center}::slotted([ui5-icon][slot=icon]){padding:var(--_ui5_input_icon_padding)}[inner-input]::-webkit-inner-spin-button,[inner-input]::-webkit-outer-spin-button{-webkit-appearance:inherit;margin:inherit}.ui5-select-root{width:100%;height:100%;display:flex;outline:none;cursor:pointer;overflow:hidden}.ui5-select-label-root{flex-shrink:1;flex-grow:1;align-self:center;min-width:1rem;padding-left:.5rem;cursor:pointer;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_ui5_select_label_olor);font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400}.ui5-select-option-icon{padding-left:.5rem;color:var(--sapField_TextColor);align-self:center}:host [dir=rtl].ui5-select-root .ui5-select-label-root{padding-left:0;padding-right:.5rem}:host [dir=rtl] .ui5-select-option-icon{padding-right:.5rem;padding-left:0}:host(:not([disabled])){cursor:pointer}:host([focused][opened]),:host([value-state]:not([value-state=None])[focused][opened]){outline:none}\"}","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theming/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theming\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default {packageName:\"@ui5/webcomponents\",fileName:\"themes\\SelectPopover.css\",content:\".ui5-select-popover:not(.ui5-valuestatemessage-popover) [ui5-li]:first-child::part(native-li):after{border-top-left-radius:var(--_ui5_select_option_focus_border_radius);border-top-right-radius:var(--_ui5_select_option_focus_border_radius)}.ui5-select-popover [ui5-li]:last-child::part(native-li):after{border-bottom-left-radius:var(--_ui5_select_option_focus_border_radius);border-bottom-right-radius:var(--_ui5_select_option_focus_border_radius)}\"}","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n\tisSpace,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisHome,\n\tisEnd,\n\tisShow,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n\tLIST_ITEM_POSITION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Option from \"./Option.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport List from \"./List.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\n\n// Templates\nimport SelectTemplate from \"./generated/templates/SelectTemplate.lit.js\";\nimport SelectPopoverTemplate from \"./generated/templates/SelectPopoverTemplate.lit.js\";\n\n// Styles\nimport selectCss from \"./generated/themes/Select.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SelectPopoverCss from \"./generated/themes/SelectPopover.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-select\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\n\t\t/**\n\t\t * Defines the component options.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> Only one selected option is allowed.\n\t\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.\n\t\t * @type {sap.ui.webcomponents.main.ISelectOption[]}\n\t\t * @slot options\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"options\",\n\t\t\ttype: HTMLElement,\n\t\t\tinvalidateOnChildChange: true,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state message that will be displayed as pop up under the component.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t\t * <br>\n\t\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t\t * @type {HTMLElement[]}\n\t\t * @since 1.0.0-rc.9\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tvalueStateMessage: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t\t * when <code>name</code> property is set.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @private\n\t\t */\n\t\tformSupport: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the component is in disabled state.\n\t\t * <br><br>\n\t\t * <b>Note:</b> A disabled component is noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the component will be submitted in an HTML form.\n\t\t * The value of the component will be the value of the currently selected <code>ui5-option</code>.\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t\t *\n\t\t * <br><br>\n\t\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t\t * will be created inside the <code>ui5-select</code> so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the component.\n\t\t * <br><br>\n\t\t * Available options are:\n\t\t * <ul>\n\t\t * <li><code>None</code></li>\n\t\t * <li><code>Error</code></li>\n\t\t * <li><code>Warning</code></li>\n\t\t * <li><code>Success</code></li>\n\t\t * <li><code>Information</code></li>\n\t\t * </ul>\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component is required.\n\t\t *\n\t\t * @since 1.0.0-rc.9\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the accessible aria name of the component.\n\t\t *\n\t\t * @type {String}\n\t\t * @since 1.0.0-rc.9\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the select.\n\t\t *\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\taccessibleNameRef: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t_text: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_iconPressed: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\topened: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_listWidth: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\t\t/**\n\t\t * Fired when the selected option changes.\n\t\t *\n\t\t * @event\n\t\t * @param {HTMLElement} selectedOption the selected option.\n\t\t * @public\n\t\t */\n\t\tchange: {\n\t\t\tdetail: {\n\t\t\t\tselectedOption: {},\n\t\t\t},\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-select</code> component is used to create a drop-down list.\n * The items inside the <code>ui5-select</code> define the available options by using the <code>ui5-option</code> component.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-select</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>[F4, ALT+UP, ALT+DOWN, SPACE, ENTER] - Opens/closes the drop-down.</li>\n * <li>[UP, DOWN] - If the drop-down is closed - changes selection to the next or the previous option. If the drop-down is opened - moves focus to the next or the previous option.</li>\n * <li>[SPACE, ENTER] - If the drop-down is opened - selects the focused option.</li>\n * <li>[ESC] - Closes the drop-down without changing the selection.</li>\n * <li>[HOME] - Navigates to first option</li>\n * <li>[END] - Navigates to the last option</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Select\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/Option\";</code>\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Select\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-select\n * @appenddocs Option\n * @public\n * @since 0.8.0\n */\nclass Select extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn SelectTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn SelectPopoverTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn selectCss;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn [ResponsivePopoverCommonCss, ValueStateMessageCss, SelectPopoverCss];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._syncedOptions = [];\n\t\tthis._selectedIndex = -1;\n\t\tthis._selectedIndexBeforeOpen = -1;\n\t\tthis._escapePressed = false;\n\t\tthis._lastSelectedOption = null;\n\t\tthis._typedChars = \"\";\n\t\tthis._typingTimeoutID = -1;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._syncSelection();\n\t\tthis._enableFormSupport();\n\t}\n\n\tonAfterRendering() {\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\n\t\tif (this._isPickerOpen) {\n\t\t\tif (!this._listWidth) {\n\t\t\t\tthis._listWidth = this.responsivePopover.offsetWidth;\n\t\t\t}\n\t\t}\n\n\t\tthis._attachRealDomRefs();\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn !!this.responsivePopover && this.responsivePopover.opened;\n\t}\n\n\tasync _respPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"[ui5-responsive-popover]\");\n\t}\n\n\t/**\n\t * Currently selected option.\n\t * @readonly\n\t * @type { sap.ui.webcomponents.main.ISelectOption }\n\t * @public\n\t */\n\tget selectedOption() {\n\t\treturn this._filteredItems.find(option => option.selected);\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.responsivePopover = await this._respPopover();\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.close();\n\t\t} else {\n\t\t\tthis.responsivePopover.showAt(this);\n\t\t}\n\t}\n\n\tasync _attachRealDomRefs() {\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tthis.options.forEach(option => {\n\t\t\toption._getRealDomRef = () => this.responsivePopover.querySelector(`*[data-ui5-stable=${option.stableDomRef}]`);\n\t\t});\n\t}\n\n\t_syncSelection() {\n\t\tlet lastSelectedOptionIndex = -1,\n\t\t\tfirstEnabledOptionIndex = -1;\n\t\tconst options = this._filteredItems;\n\t\tconst syncOpts = options.map((opt, index) => {\n\t\t\tif (opt.selected || opt.textContent === this.value) {\n\t\t\t\t// The second condition in the IF statement is added because of Angular Reactive Forms Support(Two way data binding)\n\t\t\t\tlastSelectedOptionIndex = index;\n\t\t\t}\n\t\t\tif (firstEnabledOptionIndex === -1) {\n\t\t\t\tfirstEnabledOptionIndex = index;\n\t\t\t}\n\n\t\t\topt.selected = false;\n\t\t\topt._focused = false;\n\n\t\t\treturn {\n\t\t\t\tselected: false,\n\t\t\t\t_focused: false,\n\t\t\t\ticon: opt.icon,\n\t\t\t\tvalue: opt.value,\n\t\t\t\ttextContent: opt.textContent,\n\t\t\t\tid: opt._id,\n\t\t\t\tstableDomRef: opt.stableDomRef,\n\t\t\t};\n\t\t});\n\n\t\tif (lastSelectedOptionIndex > -1 && !syncOpts[lastSelectedOptionIndex].disabled) {\n\t\t\tsyncOpts[lastSelectedOptionIndex].selected = true;\n\t\t\tsyncOpts[lastSelectedOptionIndex]._focused = true;\n\t\t\toptions[lastSelectedOptionIndex].selected = true;\n\t\t\toptions[lastSelectedOptionIndex]._focused = true;\n\t\t\tthis._text = syncOpts[lastSelectedOptionIndex].textContent;\n\t\t\tthis._selectedIndex = lastSelectedOptionIndex;\n\t\t} else {\n\t\t\tthis._text = \"\";\n\t\t\tthis._selectedIndex = -1;\n\t\t\tif (syncOpts[firstEnabledOptionIndex]) {\n\t\t\t\tsyncOpts[firstEnabledOptionIndex].selected = true;\n\t\t\t\tsyncOpts[firstEnabledOptionIndex]._focused = true;\n\t\t\t\toptions[firstEnabledOptionIndex].selected = true;\n\t\t\t\toptions[firstEnabledOptionIndex]._focused = true;\n\t\t\t\tthis._selectedIndex = firstEnabledOptionIndex;\n\t\t\t\tthis._text = options[firstEnabledOptionIndex].textContent;\n\t\t\t}\n\t\t}\n\n\t\tthis._syncedOptions = syncOpts;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled;\n\t\t\t\tnativeInput.value = element._currentlySelectedOption ? element._currentlySelectedOption.value : \"\";\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tconst isTab = (isTabNext(event) || isTabPrevious(event));\n\n\t\tif (isTab && this.responsivePopover && this.responsivePopover.opened) {\n\t\t\tthis.responsivePopover.close();\n\t\t}\n\n\t\tif (isShow(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._toggleRespPopover();\n\t\t} else if (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t} else if (isEscape(event) && this._isPickerOpen) {\n\t\t\tthis._escapePressed = true;\n\t\t} else if (isHome(event)) {\n\t\t\tthis._handleHomeKey(event);\n\t\t} else if (isEnd(event)) {\n\t\t\tthis._handleEndKey(event);\n\t\t} else if (isEnter(event)) {\n\t\t\tthis._handleSelectionChange();\n\t\t} else if (isUp(event) || isDown(event)) {\n\t\t\tthis._handleArrowNavigation(event);\n\t\t}\n\t}\n\n\t_handleKeyboardNavigation(event) {\n\t\tif (isEnter(event)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst typedCharacter = event.key.toLowerCase();\n\n\t\tthis._typedChars += typedCharacter;\n\n\t\t// We check if we have more than one characters and they are all duplicate, we set the\n\t\t// text to be the last input character (typedCharacter). If not, we set the text to be\n\t\t// the whole input string.\n\n\t\tconst text = (/^(.)\\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;\n\n\t\tclearTimeout(this._typingTimeoutID);\n\n\t\tthis._typingTimeoutID = setTimeout(() => {\n\t\t\tthis._typedChars = \"\";\n\t\t\tthis._typingTimeoutID = -1;\n\t\t}, 1000);\n\n\t\tthis._selectTypedItem(text);\n\t}\n\n\t_selectTypedItem(text) {\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst itemToSelect = this._searchNextItemByText(text);\n\n\t\tif (itemToSelect) {\n\t\t\tconst nextIndex = this._getSelectedItemIndex(itemToSelect);\n\n\t\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t\tthis.itemSelectionAnnounce();\n\t\t\t}\n\t\t}\n\t}\n\n\t_searchNextItemByText(text) {\n\t\tlet orderedOptions = this._filteredItems.slice(0);\n\t\tconst optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);\n\t\tconst optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);\n\n\t\torderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);\n\n\t\treturn orderedOptions.find(option => option.textContent.toLowerCase().startsWith(text));\n\t}\n\n\t_handleHomeKey(event) {\n\t\tevent.preventDefault();\n\t\tthis._changeSelectedItem(this._selectedIndex, 0);\n\t}\n\n\t_handleEndKey(event) {\n\t\tconst lastIndex = this._filteredItems.length - 1;\n\n\t\tevent.preventDefault();\n\t\tthis._changeSelectedItem(this._selectedIndex, lastIndex);\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tif (this._isPickerOpen) {\n\t\t\t\tthis._handleSelectionChange();\n\t\t\t} else {\n\t\t\t\tthis._toggleRespPopover();\n\t\t\t}\n\t\t}\n\t}\n\n\t_getSelectedItemIndex(item) {\n\t\treturn [].indexOf.call(item.parentElement.children, item);\n\t}\n\n\t_select(index) {\n\t\tthis._filteredItems[this._selectedIndex].selected = false;\n\t\tthis._selectedIndex = index;\n\t\tthis._filteredItems[index].selected = true;\n\t}\n\n\t/**\n\t * The user clicked on an item from the list\n\t * @private\n\t */\n\t_handleItemPress(event) {\n\t\tconst item = event.detail.item;\n\t\tconst selectedItemIndex = this._getSelectedItemIndex(item);\n\n\t\tthis._handleSelectionChange(selectedItemIndex);\n\t}\n\n\t_itemMousedown(event) {\n\t\t// prevent actual focus of items\n\t\tevent.preventDefault();\n\t}\n\n\t_onclick(event) {\n\t\tthis.getFocusDomRef().focus();\n\t\tthis._toggleRespPopover();\n\t}\n\n\t/**\n\t * The user selected an item with Enter or Space\n\t * @private\n\t */\n\t_handleSelectionChange(index = this._selectedIndex) {\n\t\tthis._select(index);\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleArrowNavigation(event) {\n\t\tlet nextIndex = -1;\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst isDownKey = isDown(event);\n\n\t\tevent.preventDefault();\n\t\tif (isDownKey) {\n\t\t\tnextIndex = this._getNextOptionIndex();\n\t\t} else {\n\t\t\tnextIndex = this._getPreviousOptionIndex();\n\t\t}\n\n\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t// Announce new item even if picker is opened.\n\t\t\t// The aria-activedescendents attribute can't be used,\n\t\t\t// because listitem elements are in different shadow dom\n\t\t\tthis.itemSelectionAnnounce();\n\t\t}\n\t}\n\n\t_changeSelectedItem(oldIndex, newIndex) {\n\t\tconst options = this._filteredItems;\n\n\t\toptions[oldIndex].selected = false;\n\t\toptions[oldIndex]._focused = false;\n\n\t\toptions[newIndex].selected = true;\n\t\toptions[newIndex]._focused = true;\n\n\t\tthis._selectedIndex = newIndex;\n\n\t\tif (!this._isPickerOpen) {\n\t\t\t// arrow pressed on closed picker - do selection change\n\t\t\tthis._fireChangeEvent(options[newIndex]);\n\t\t}\n\t}\n\n\t_getNextOptionIndex() {\n\t\treturn this._selectedIndex === (this.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);\n\t}\n\n\t_getPreviousOptionIndex() {\n\t\treturn this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);\n\t}\n\n\t_beforeOpen() {\n\t\tthis._selectedIndexBeforeOpen = this._selectedIndex;\n\t\tthis._lastSelectedOption = this._filteredItems[this._selectedIndex];\n\t}\n\n\t_afterOpen() {\n\t\tthis.opened = true;\n\t}\n\n\t_afterClose() {\n\t\tthis.opened = false;\n\t\tthis._iconPressed = false;\n\t\tthis._listWidth = 0;\n\n\t\tif (this._escapePressed) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t\tthis._escapePressed = false;\n\t\t} else if (this._lastSelectedOption !== this._filteredItems[this._selectedIndex]) {\n\t\t\tthis._fireChangeEvent(this._filteredItems[this._selectedIndex]);\n\t\t\tthis._lastSelectedOption = this._filteredItems[this._selectedIndex];\n\t\t}\n\t}\n\n\t_fireChangeEvent(selectedOption) {\n\t\tthis.fireEvent(\"change\", { selectedOption });\n\n\t\t// Angular two way data binding\n\t\tthis.selectedItem = selectedOption.textContent;\n\t\tthis.fireEvent(\"selected-item-changed\");\n\t}\n\n\tget valueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Success\": Select.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": Select.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": Select.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": Select.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : undefined;\n\t}\n\n\tget isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _currentSelectedItem() {\n\t\treturn this.shadowRoot.querySelector(`#${this._filteredItems[this._selectedIndex]._id}-li`);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this._filteredItems[this._selectedIndex];\n\t}\n\n\tget tabIndex() {\n\t\treturn this.disabled\n\t\t|| (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened\n\t\t&& this.responsivePopover.opened) ? \"-1\" : \"0\";\n\t}\n\n\t /**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t\tpopover: {\n\t\t\t\t\"ui5-valuestatemessage-popover\": this.hasValueState,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tresponsivePopoverHeader: {\n\t\t\t\t\"display\": this._filteredItems.length && this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget hasValueStateText() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\n\t}\n\n\tget shouldOpenValueStateMessagePopover() {\n\t\treturn this.focused && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this._isPickerOpen && !this._isPhone;\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _filteredItems() {\n\t\treturn this.options.filter(option => !option.disabled);\n\t}\n\n\titemSelectionAnnounce() {\n\t\tlet text;\n\t\tconst optionsCount = this._filteredItems.length;\n\t\tconst itemPositionText = Select.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);\n\n\t\tif (this.focused && this._currentlySelectedOption) {\n\t\t\ttext = `${this._currentlySelectedOption.textContent} ${this._isPickerOpen ? itemPositionText : \"\"}`;\n\n\t\t\tannounce(text, \"Polite\");\n\t\t}\n\t}\n\n\tasync openValueStatePopover() {\n\t\tthis.popover = await this._getPopover();\n\t\tif (this.popover) {\n\t\t\tthis.popover.showAt(this);\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.popover && this.popover.close();\n\t}\n\n\ttoggleValueStatePopover(open) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tget selectedOptionIcon() {\n\t\treturn this.selectedOption && this.selectedOption.icon;\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"[ui5-popover]\");\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tOption,\n\t\t\tLabel,\n\t\t\tResponsivePopover,\n\t\t\tPopover,\n\t\t\tList,\n\t\t\tStandardListItem,\n\t\t\tIcon,\n\t\t\tButton,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tSelect.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nSelect.define();\n\nexport default Select;\n","import { registerFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\n\nclass FormSupport {\n\t/**\n\t *\n\t * @param element - the WebComponent that needs form support\n\t * @param nativeInputUpdateCallback - determines how the native input's disabled and value properties are calculated\n\t */\n\tstatic syncNativeHiddenInput(element, nativeInputUpdateCallback) {\n\t\tconst needsNativeInput = !!element.name;\n\t\tlet nativeInput = element.querySelector(\"input[type=hidden][data-ui5-form-support]\");\n\t\tif (needsNativeInput && !nativeInput) {\n\t\t\tnativeInput = document.createElement(\"input\");\n\t\t\tnativeInput.type = \"hidden\";\n\t\t\tnativeInput.setAttribute(\"data-ui5-form-support\", \"\");\n\t\t\tnativeInput.slot = \"formSupport\"; // Needed for IE - otherwise input elements are not part of the real DOM tree and are not detected by forms\n\t\t\telement.appendChild(nativeInput);\n\t\t}\n\t\tif (!needsNativeInput && nativeInput) {\n\t\t\telement.removeChild(nativeInput);\n\t\t}\n\n\t\tif (needsNativeInput) {\n\t\t\tnativeInput.name = element.name;\n\t\t\t(nativeInputUpdateCallback || copyDefaultProperties)(element, nativeInput);\n\t\t}\n\t}\n\n\tstatic syncNativeFileInput(element, nativeInputUpdateCallback, nativeInputChangeCallback) {\n\t\tconst needsNativeInput = !!element.name;\n\t\tlet nativeInput = element.querySelector(`input[type=${element._type || \"hidden\"}][data-ui5-form-support]`);\n\n\t\tif (needsNativeInput && !nativeInput) {\n\t\t\tnativeInput = document.createElement(\"input\");\n\t\t\tnativeInput.type = element._type;\n\t\t\tnativeInput.setAttribute(\"data-ui5-form-support\", \"\");\n\t\t\tnativeInput.slot = \"formSupport\"; // Needed to visualize the input in the light dom\n\t\t\tnativeInput.style.position = \"absolute\";\n\t\t\tnativeInput.style.top = \"0\";\n\t\t\tnativeInput.style.left = \"0\";\n\t\t\tnativeInput.style.width = \"100%\";\n\t\t\tnativeInput.style.height = \"100%\";\n\t\t\tnativeInput.style.opacity = \"0\";\n\n\t\t\tif (element.multiple) {\n\t\t\t\tnativeInput.multiple = true;\n\t\t\t}\n\n\t\t\tnativeInput.addEventListener(\"change\", nativeInputChangeCallback);\n\n\t\t\telement.appendChild(nativeInput);\n\t\t}\n\n\t\tif (!needsNativeInput && nativeInput) {\n\t\t\telement.removeChild(nativeInput);\n\t\t}\n\n\t\tif (needsNativeInput) {\n\t\t\tnativeInput.name = element.name;\n\t\t\t(nativeInputUpdateCallback || copyDefaultProperties)(element, nativeInput);\n\t\t}\n\t}\n\n\tstatic triggerFormSubmit(element) {\n\t\tif (!element.submits) {\n\t\t\treturn;\n\t\t}\n\t\tlet currentElement = element.parentElement;\n\t\twhile (currentElement && currentElement.tagName.toLowerCase() !== \"form\") {\n\t\t\tcurrentElement = currentElement.parentElement;\n\t\t}\n\t\tif (currentElement) {\n\t\t\tcurrentElement.submit();\n\t\t} else {\n\t\t\tconsole.error(`${element} is not within a form. Please add it in a form.`); // eslint-disable-line\n\t\t}\n\t}\n}\n\nconst copyDefaultProperties = (element, nativeInput) => {\n\tnativeInput.disabled = element.disabled;\n\tnativeInput.value = element.value;\n};\n\n// Add form support to the global features registry so that Web Components can find and use it\nregisterFeature(\"FormSupport\", FormSupport);\n\nexport default FormSupport;\n","import { registerLocaleDataLoader } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\n\nconst availableLocales = [\"ar\",\"ar_EG\",\"ar_SA\",\"bg\",\"ca\",\"cs\",\"da\",\"de\",\"de_AT\",\"de_CH\",\"el\",\"el_CY\",\"en\",\"en_AU\",\"en_GB\",\"en_HK\",\"en_IE\",\"en_IN\",\"en_NZ\",\"en_PG\",\"en_SG\",\"en_ZA\",\"es\",\"es_AR\",\"es_BO\",\"es_CL\",\"es_CO\",\"es_MX\",\"es_PE\",\"es_UY\",\"es_VE\",\"et\",\"fa\",\"fi\",\"fr\",\"fr_BE\",\"fr_CA\",\"fr_CH\",\"fr_LU\",\"he\",\"hi\",\"hr\",\"hu\",\"id\",\"it\",\"it_CH\",\"ja\",\"kk\",\"ko\",\"lt\",\"lv\",\"ms\",\"nb\",\"nl\",\"nl_BE\",\"pl\",\"pt\",\"pt_PT\",\"ro\",\"ru\",\"ru_UA\",\"sk\",\"sl\",\"sr\",\"sv\",\"th\",\"tr\",\"uk\",\"vi\",\"zh_CN\",\"zh_HK\",\"zh_SG\",\"zh_TW\"];\n\nconst importCldrJson = async (localeId) => {\n\tswitch (localeId) {\n\t\tcase \"ar\": return (await import(\"../assets/cldr/ar.json\")).default;\n\t\tcase \"ar_EG\": return (await import(\"../assets/cldr/ar_EG.json\")).default;\n\t\tcase \"ar_SA\": return (await import(\"../assets/cldr/ar_SA.json\")).default;\n\t\tcase \"bg\": return (await import(\"../assets/cldr/bg.json\")).default;\n\t\tcase \"ca\": return (await import(\"../assets/cldr/ca.json\")).default;\n\t\tcase \"cs\": return (await import(\"../assets/cldr/cs.json\")).default;\n\t\tcase \"da\": return (await import(\"../assets/cldr/da.json\")).default;\n\t\tcase \"de\": return (await import(\"../assets/cldr/de.json\")).default;\n\t\tcase \"de_AT\": return (await import(\"../assets/cldr/de_AT.json\")).default;\n\t\tcase \"de_CH\": return (await import(\"../assets/cldr/de_CH.json\")).default;\n\t\tcase \"el\": return (await import(\"../assets/cldr/el.json\")).default;\n\t\tcase \"el_CY\": return (await import(\"../assets/cldr/el_CY.json\")).default;\n\t\tcase \"en\": return (await import(\"../assets/cldr/en.json\")).default;\n\t\tcase \"en_AU\": return (await import(\"../assets/cldr/en_AU.json\")).default;\n\t\tcase \"en_GB\": return (await import(\"../assets/cldr/en_GB.json\")).default;\n\t\tcase \"en_HK\": return (await import(\"../assets/cldr/en_HK.json\")).default;\n\t\tcase \"en_IE\": return (await import(\"../assets/cldr/en_IE.json\")).default;\n\t\tcase \"en_IN\": return (await import(\"../assets/cldr/en_IN.json\")).default;\n\t\tcase \"en_NZ\": return (await import(\"../assets/cldr/en_NZ.json\")).default;\n\t\tcase \"en_PG\": return (await import(\"../assets/cldr/en_PG.json\")).default;\n\t\tcase \"en_SG\": return (await import(\"../assets/cldr/en_SG.json\")).default;\n\t\tcase \"en_ZA\": return (await import(\"../assets/cldr/en_ZA.json\")).default;\n\t\tcase \"es\": return (await import(\"../assets/cldr/es.json\")).default;\n\t\tcase \"es_AR\": return (await import(\"../assets/cldr/es_AR.json\")).default;\n\t\tcase \"es_BO\": return (await import(\"../assets/cldr/es_BO.json\")).default;\n\t\tcase \"es_CL\": return (await import(\"../assets/cldr/es_CL.json\")).default;\n\t\tcase \"es_CO\": return (await import(\"../assets/cldr/es_CO.json\")).default;\n\t\tcase \"es_MX\": return (await import(\"../assets/cldr/es_MX.json\")).default;\n\t\tcase \"es_PE\": return (await import(\"../assets/cldr/es_PE.json\")).default;\n\t\tcase \"es_UY\": return (await import(\"../assets/cldr/es_UY.json\")).default;\n\t\tcase \"es_VE\": return (await import(\"../assets/cldr/es_VE.json\")).default;\n\t\tcase \"et\": return (await import(\"../assets/cldr/et.json\")).default;\n\t\tcase \"fa\": return (await import(\"../assets/cldr/fa.json\")).default;\n\t\tcase \"fi\": return (await import(\"../assets/cldr/fi.json\")).default;\n\t\tcase \"fr\": return (await import(\"../assets/cldr/fr.json\")).default;\n\t\tcase \"fr_BE\": return (await import(\"../assets/cldr/fr_BE.json\")).default;\n\t\tcase \"fr_CA\": return (await import(\"../assets/cldr/fr_CA.json\")).default;\n\t\tcase \"fr_CH\": return (await import(\"../assets/cldr/fr_CH.json\")).default;\n\t\tcase \"fr_LU\": return (await import(\"../assets/cldr/fr_LU.json\")).default;\n\t\tcase \"he\": return (await import(\"../assets/cldr/he.json\")).default;\n\t\tcase \"hi\": return (await import(\"../assets/cldr/hi.json\")).default;\n\t\tcase \"hr\": return (await import(\"../assets/cldr/hr.json\")).default;\n\t\tcase \"hu\": return (await import(\"../assets/cldr/hu.json\")).default;\n\t\tcase \"id\": return (await import(\"../assets/cldr/id.json\")).default;\n\t\tcase \"it\": return (await import(\"../assets/cldr/it.json\")).default;\n\t\tcase \"it_CH\": return (await import(\"../assets/cldr/it_CH.json\")).default;\n\t\tcase \"ja\": return (await import(\"../assets/cldr/ja.json\")).default;\n\t\tcase \"kk\": return (await import(\"../assets/cldr/kk.json\")).default;\n\t\tcase \"ko\": return (await import(\"../assets/cldr/ko.json\")).default;\n\t\tcase \"lt\": return (await import(\"../assets/cldr/lt.json\")).default;\n\t\tcase \"lv\": return (await import(\"../assets/cldr/lv.json\")).default;\n\t\tcase \"ms\": return (await import(\"../assets/cldr/ms.json\")).default;\n\t\tcase \"nb\": return (await import(\"../assets/cldr/nb.json\")).default;\n\t\tcase \"nl\": return (await import(\"../assets/cldr/nl.json\")).default;\n\t\tcase \"nl_BE\": return (await import(\"../assets/cldr/nl_BE.json\")).default;\n\t\tcase \"pl\": return (await import(\"../assets/cldr/pl.json\")).default;\n\t\tcase \"pt\": return (await import(\"../assets/cldr/pt.json\")).default;\n\t\tcase \"pt_PT\": return (await import(\"../assets/cldr/pt_PT.json\")).default;\n\t\tcase \"ro\": return (await import(\"../assets/cldr/ro.json\")).default;\n\t\tcase \"ru\": return (await import(\"../assets/cldr/ru.json\")).default;\n\t\tcase \"ru_UA\": return (await import(\"../assets/cldr/ru_UA.json\")).default;\n\t\tcase \"sk\": return (await import(\"../assets/cldr/sk.json\")).default;\n\t\tcase \"sl\": return (await import(\"../assets/cldr/sl.json\")).default;\n\t\tcase \"sr\": return (await import(\"../assets/cldr/sr.json\")).default;\n\t\tcase \"sv\": return (await import(\"../assets/cldr/sv.json\")).default;\n\t\tcase \"th\": return (await import(\"../assets/cldr/th.json\")).default;\n\t\tcase \"tr\": return (await import(\"../assets/cldr/tr.json\")).default;\n\t\tcase \"uk\": return (await import(\"../assets/cldr/uk.json\")).default;\n\t\tcase \"vi\": return (await import(\"../assets/cldr/vi.json\")).default;\n\t\tcase \"zh_CN\": return (await import(\"../assets/cldr/zh_CN.json\")).default;\n\t\tcase \"zh_HK\": return (await import(\"../assets/cldr/zh_HK.json\")).default;\n\t\tcase \"zh_SG\": return (await import(\"../assets/cldr/zh_SG.json\")).default;\n\t\tcase \"zh_TW\": return (await import(\"../assets/cldr/zh_TW.json\")).default;\n\t\tdefault: throw \"unknown locale\"\n\t}\n}\n\nconst importAndCheck = async (localeId) => {\n\tconst data = await importCldrJson(localeId);\n\tif (typeof data === \"string\" && data.endsWith(\".json\")) {\n throw new Error(`[LocaleData] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use 'import \".../Assets-static.js\"'. Check the \"Assets\" documentation for more information.`);\n\t}\n\treturn data;\n}\n\navailableLocales.forEach(localeId => registerLocaleDataLoader(localeId, importAndCheck));\n","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nconst loadThemeProperties = async (themeName) => {\n\tswitch (themeName) {\n\t\tcase \"sap_belize\": return (await import(\"../assets/themes/sap_belize/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_belize_hcb\": return (await import(\"../assets/themes/sap_belize_hcb/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_belize_hcw\": return (await import(\"../assets/themes/sap_belize_hcw/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3\": return (await import(\"../assets/themes/sap_fiori_3/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_dark\": return (await import(\"../assets/themes/sap_fiori_3_dark/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_hcb\": return (await import(\"../assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_hcw\": return (await import(\"../assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_horizon\": return (await import(\"../assets/themes/sap_horizon/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_horizon_exp\": return (await import(\"../assets/themes/sap_horizon_exp/parameters-bundle.css.json\")).default;\n\t\tdefault: throw \"unknown theme\"\n\t}\n}\n\nconst loadAndCheck = async (themeName) => {\n\tconst data = await loadThemeProperties(themeName);\n\tif (typeof data === \"string\" && data.endsWith(\".json\")) {\n\t\tthrow new Error(`[themes] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use 'import \".../Assets-static.js\"'. Check the \"Assets\" documentation for more information.`);\n\t}\n\treturn data;\n}\n\n[\"sap_belize\", \"sap_belize_hcb\", \"sap_belize_hcw\", \"sap_fiori_3\", \"sap_fiori_3_dark\", \"sap_fiori_3_hcb\", \"sap_fiori_3_hcw\", \"sap_horizon\", \"sap_horizon_exp\"]\n .forEach(themeName => registerThemePropertiesLoader(\"@ui5/webcomponents-theming\", themeName, loadAndCheck));\n","import { registerI18nLoader } from \"@ui5/webcomponents-base/dist/asset-registries/i18n.js\";\n\n\tconst importMessageBundle = async (localeId) => {\n\t\tswitch (localeId) {\n\t\t\tcase \"ar\": return (await import(\"../assets/i18n/messagebundle_ar.json\")).default;\n\t\tcase \"bg\": return (await import(\"../assets/i18n/messagebundle_bg.json\")).default;\n\t\tcase \"ca\": return (await import(\"../assets/i18n/messagebundle_ca.json\")).default;\n\t\tcase \"cs\": return (await import(\"../assets/i18n/messagebundle_cs.json\")).default;\n\t\tcase \"cy\": return (await import(\"../assets/i18n/messagebundle_cy.json\")).default;\n\t\tcase \"da\": return (await import(\"../assets/i18n/messagebundle_da.json\")).default;\n\t\tcase \"de\": return (await import(\"../assets/i18n/messagebundle_de.json\")).default;\n\t\tcase \"el\": return (await import(\"../assets/i18n/messagebundle_el.json\")).default;\n\t\tcase \"en\": return (await import(\"../assets/i18n/messagebundle_en.json\")).default;\n\t\tcase \"en_GB\": return (await import(\"../assets/i18n/messagebundle_en_GB.json\")).default;\n\t\tcase \"en_US_sappsd\": return (await import(\"../assets/i18n/messagebundle_en_US_sappsd.json\")).default;\n\t\tcase \"en_US_saprigi\": return (await import(\"../assets/i18n/messagebundle_en_US_saprigi.json\")).default;\n\t\tcase \"en_US_saptrc\": return (await import(\"../assets/i18n/messagebundle_en_US_saptrc.json\")).default;\n\t\tcase \"es\": return (await import(\"../assets/i18n/messagebundle_es.json\")).default;\n\t\tcase \"es_MX\": return (await import(\"../assets/i18n/messagebundle_es_MX.json\")).default;\n\t\tcase \"et\": return (await import(\"../assets/i18n/messagebundle_et.json\")).default;\n\t\tcase \"fi\": return (await import(\"../assets/i18n/messagebundle_fi.json\")).default;\n\t\tcase \"fr\": return (await import(\"../assets/i18n/messagebundle_fr.json\")).default;\n\t\tcase \"fr_CA\": return (await import(\"../assets/i18n/messagebundle_fr_CA.json\")).default;\n\t\tcase \"hi\": return (await import(\"../assets/i18n/messagebundle_hi.json\")).default;\n\t\tcase \"hr\": return (await import(\"../assets/i18n/messagebundle_hr.json\")).default;\n\t\tcase \"hu\": return (await import(\"../assets/i18n/messagebundle_hu.json\")).default;\n\t\tcase \"in\": return (await import(\"../assets/i18n/messagebundle_in.json\")).default;\n\t\tcase \"it\": return (await import(\"../assets/i18n/messagebundle_it.json\")).default;\n\t\tcase \"iw\": return (await import(\"../assets/i18n/messagebundle_iw.json\")).default;\n\t\tcase \"ja\": return (await import(\"../assets/i18n/messagebundle_ja.json\")).default;\n\t\tcase \"kk\": return (await import(\"../assets/i18n/messagebundle_kk.json\")).default;\n\t\tcase \"ko\": return (await import(\"../assets/i18n/messagebundle_ko.json\")).default;\n\t\tcase \"lt\": return (await import(\"../assets/i18n/messagebundle_lt.json\")).default;\n\t\tcase \"lv\": return (await import(\"../assets/i18n/messagebundle_lv.json\")).default;\n\t\tcase \"ms\": return (await import(\"../assets/i18n/messagebundle_ms.json\")).default;\n\t\tcase \"nl\": return (await import(\"../assets/i18n/messagebundle_nl.json\")).default;\n\t\tcase \"no\": return (await import(\"../assets/i18n/messagebundle_no.json\")).default;\n\t\tcase \"pl\": return (await import(\"../assets/i18n/messagebundle_pl.json\")).default;\n\t\tcase \"pt\": return (await import(\"../assets/i18n/messagebundle_pt.json\")).default;\n\t\tcase \"pt_PT\": return (await import(\"../assets/i18n/messagebundle_pt_PT.json\")).default;\n\t\tcase \"ro\": return (await import(\"../assets/i18n/messagebundle_ro.json\")).default;\n\t\tcase \"ru\": return (await import(\"../assets/i18n/messagebundle_ru.json\")).default;\n\t\tcase \"sh\": return (await import(\"../assets/i18n/messagebundle_sh.json\")).default;\n\t\tcase \"sk\": return (await import(\"../assets/i18n/messagebundle_sk.json\")).default;\n\t\tcase \"sl\": return (await import(\"../assets/i18n/messagebundle_sl.json\")).default;\n\t\tcase \"sv\": return (await import(\"../assets/i18n/messagebundle_sv.json\")).default;\n\t\tcase \"th\": return (await import(\"../assets/i18n/messagebundle_th.json\")).default;\n\t\tcase \"tr\": return (await import(\"../assets/i18n/messagebundle_tr.json\")).default;\n\t\tcase \"uk\": return (await import(\"../assets/i18n/messagebundle_uk.json\")).default;\n\t\tcase \"vi\": return (await import(\"../assets/i18n/messagebundle_vi.json\")).default;\n\t\tcase \"zh_CN\": return (await import(\"../assets/i18n/messagebundle_zh_CN.json\")).default;\n\t\tcase \"zh_TW\": return (await import(\"../assets/i18n/messagebundle_zh_TW.json\")).default;\n\t\t\tdefault: throw \"unknown locale\"\n\t\t}\n\t}\n\n\tconst importAndCheck = async (localeId) => {\n\t\tconst data = await importMessageBundle(localeId);\n\t\tif (typeof data === \"string\" && data.endsWith(\".json\")) {\n\t\t\tthrow new Error(`[i18n] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use 'import \".../Assets-static.js\"'. Check the \"Assets\" documentation for more information.`);\n\t\t}\n\t\treturn data;\n\t}\n\n\tconst localeIds = [\"ar\",\n\t\"bg\",\n\t\"ca\",\n\t\"cs\",\n\t\"cy\",\n\t\"da\",\n\t\"de\",\n\t\"el\",\n\t\"en\",\n\t\"en_GB\",\n\t\"en_US_sappsd\",\n\t\"en_US_saprigi\",\n\t\"en_US_saptrc\",\n\t\"es\",\n\t\"es_MX\",\n\t\"et\",\n\t\"fi\",\n\t\"fr\",\n\t\"fr_CA\",\n\t\"hi\",\n\t\"hr\",\n\t\"hu\",\n\t\"in\",\n\t\"it\",\n\t\"iw\",\n\t\"ja\",\n\t\"kk\",\n\t\"ko\",\n\t\"lt\",\n\t\"lv\",\n\t\"ms\",\n\t\"nl\",\n\t\"no\",\n\t\"pl\",\n\t\"pt\",\n\t\"pt_PT\",\n\t\"ro\",\n\t\"ru\",\n\t\"sh\",\n\t\"sk\",\n\t\"sl\",\n\t\"sv\",\n\t\"th\",\n\t\"tr\",\n\t\"uk\",\n\t\"vi\",\n\t\"zh_CN\",\n\t\"zh_TW\",];\n\n\tlocaleIds.forEach(localeId => {\n\t\tregisterI18nLoader(\"@ui5/webcomponents-icons\", localeId, importAndCheck);\n\t});\n\t","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nconst loadThemeProperties = async (themeName) => {\n\tswitch (themeName) {\n\t\tcase \"sap_belize\": return (await import(\"../assets/themes/sap_belize/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_belize_hcb\": return (await import(\"../assets/themes/sap_belize_hcb/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_belize_hcw\": return (await import(\"../assets/themes/sap_belize_hcw/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3\": return (await import(\"../assets/themes/sap_fiori_3/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_dark\": return (await import(\"../assets/themes/sap_fiori_3_dark/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_hcb\": return (await import(\"../assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_fiori_3_hcw\": return (await import(\"../assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_horizon\": return (await import(\"../assets/themes/sap_horizon/parameters-bundle.css.json\")).default;\n\t\tcase \"sap_horizon_exp\": return (await import(\"../assets/themes/sap_horizon_exp/parameters-bundle.css.json\")).default;\n\t\tdefault: throw \"unknown theme\"\n\t}\n}\n\nconst loadAndCheck = async (themeName) => {\n\tconst data = await loadThemeProperties(themeName);\n\tif (typeof data === \"string\" && data.endsWith(\".json\")) {\n\t\tthrow new Error(`[themes] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use 'import \".../Assets-static.js\"'. Check the \"Assets\" documentation for more information.`);\n\t}\n\treturn data;\n}\n\n[\"sap_belize\", \"sap_belize_hcb\", \"sap_belize_hcw\", \"sap_fiori_3\", \"sap_fiori_3_dark\", \"sap_fiori_3_hcb\", \"sap_fiori_3_hcw\", \"sap_horizon\", \"sap_horizon_exp\"]\n .forEach(themeName => registerThemePropertiesLoader(\"@ui5/webcomponents\", themeName, loadAndCheck));\n","import { registerI18nLoader } from \"@ui5/webcomponents-base/dist/asset-registries/i18n.js\";\n\n\tconst importMessageBundle = async (localeId) => {\n\t\tswitch (localeId) {\n\t\t\tcase \"ar\": return (await import(\"../assets/i18n/messagebundle_ar.json\")).default;\n\t\tcase \"bg\": return (await import(\"../assets/i18n/messagebundle_bg.json\")).default;\n\t\tcase \"ca\": return (await import(\"../assets/i18n/messagebundle_ca.json\")).default;\n\t\tcase \"cs\": return (await import(\"../assets/i18n/messagebundle_cs.json\")).default;\n\t\tcase \"cy\": return (await import(\"../assets/i18n/messagebundle_cy.json\")).default;\n\t\tcase \"da\": return (await import(\"../assets/i18n/messagebundle_da.json\")).default;\n\t\tcase \"de\": return (await import(\"../assets/i18n/messagebundle_de.json\")).default;\n\t\tcase \"el\": return (await import(\"../assets/i18n/messagebundle_el.json\")).default;\n\t\tcase \"en\": return (await import(\"../assets/i18n/messagebundle_en.json\")).default;\n\t\tcase \"en_GB\": return (await import(\"../assets/i18n/messagebundle_en_GB.json\")).default;\n\t\tcase \"en_US_sappsd\": return (await import(\"../assets/i18n/messagebundle_en_US_sappsd.json\")).default;\n\t\tcase \"en_US_saprigi\": return (await import(\"../assets/i18n/messagebundle_en_US_saprigi.json\")).default;\n\t\tcase \"en_US_saptrc\": return (await import(\"../assets/i18n/messagebundle_en_US_saptrc.json\")).default;\n\t\tcase \"es\": return (await import(\"../assets/i18n/messagebundle_es.json\")).default;\n\t\tcase \"es_MX\": return (await import(\"../assets/i18n/messagebundle_es_MX.json\")).default;\n\t\tcase \"et\": return (await import(\"../assets/i18n/messagebundle_et.json\")).default;\n\t\tcase \"fi\": return (await import(\"../assets/i18n/messagebundle_fi.json\")).default;\n\t\tcase \"fr\": return (await import(\"../assets/i18n/messagebundle_fr.json\")).default;\n\t\tcase \"fr_CA\": return (await import(\"../assets/i18n/messagebundle_fr_CA.json\")).default;\n\t\tcase \"hi\": return (await import(\"../assets/i18n/messagebundle_hi.json\")).default;\n\t\tcase \"hr\": return (await import(\"../assets/i18n/messagebundle_hr.json\")).default;\n\t\tcase \"hu\": return (await import(\"../assets/i18n/messagebundle_hu.json\")).default;\n\t\tcase \"in\": return (await import(\"../assets/i18n/messagebundle_in.json\")).default;\n\t\tcase \"it\": return (await import(\"../assets/i18n/messagebundle_it.json\")).default;\n\t\tcase \"iw\": return (await import(\"../assets/i18n/messagebundle_iw.json\")).default;\n\t\tcase \"ja\": return (await import(\"../assets/i18n/messagebundle_ja.json\")).default;\n\t\tcase \"kk\": return (await import(\"../assets/i18n/messagebundle_kk.json\")).default;\n\t\tcase \"ko\": return (await import(\"../assets/i18n/messagebundle_ko.json\")).default;\n\t\tcase \"lt\": return (await import(\"../assets/i18n/messagebundle_lt.json\")).default;\n\t\tcase \"lv\": return (await import(\"../assets/i18n/messagebundle_lv.json\")).default;\n\t\tcase \"ms\": return (await import(\"../assets/i18n/messagebundle_ms.json\")).default;\n\t\tcase \"nl\": return (await import(\"../assets/i18n/messagebundle_nl.json\")).default;\n\t\tcase \"no\": return (await import(\"../assets/i18n/messagebundle_no.json\")).default;\n\t\tcase \"pl\": return (await import(\"../assets/i18n/messagebundle_pl.json\")).default;\n\t\tcase \"pt\": return (await import(\"../assets/i18n/messagebundle_pt.json\")).default;\n\t\tcase \"pt_PT\": return (await import(\"../assets/i18n/messagebundle_pt_PT.json\")).default;\n\t\tcase \"ro\": return (await import(\"../assets/i18n/messagebundle_ro.json\")).default;\n\t\tcase \"ru\": return (await import(\"../assets/i18n/messagebundle_ru.json\")).default;\n\t\tcase \"sh\": return (await import(\"../assets/i18n/messagebundle_sh.json\")).default;\n\t\tcase \"sk\": return (await import(\"../assets/i18n/messagebundle_sk.json\")).default;\n\t\tcase \"sl\": return (await import(\"../assets/i18n/messagebundle_sl.json\")).default;\n\t\tcase \"sv\": return (await import(\"../assets/i18n/messagebundle_sv.json\")).default;\n\t\tcase \"th\": return (await import(\"../assets/i18n/messagebundle_th.json\")).default;\n\t\tcase \"tr\": return (await import(\"../assets/i18n/messagebundle_tr.json\")).default;\n\t\tcase \"uk\": return (await import(\"../assets/i18n/messagebundle_uk.json\")).default;\n\t\tcase \"vi\": return (await import(\"../assets/i18n/messagebundle_vi.json\")).default;\n\t\tcase \"zh_CN\": return (await import(\"../assets/i18n/messagebundle_zh_CN.json\")).default;\n\t\tcase \"zh_TW\": return (await import(\"../assets/i18n/messagebundle_zh_TW.json\")).default;\n\t\t\tdefault: throw \"unknown locale\"\n\t\t}\n\t}\n\n\tconst importAndCheck = async (localeId) => {\n\t\tconst data = await importMessageBundle(localeId);\n\t\tif (typeof data === \"string\" && data.endsWith(\".json\")) {\n\t\t\tthrow new Error(`[i18n] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use 'import \".../Assets-static.js\"'. Check the \"Assets\" documentation for more information.`);\n\t\t}\n\t\treturn data;\n\t}\n\n\tconst localeIds = [\"ar\",\n\t\"bg\",\n\t\"ca\",\n\t\"cs\",\n\t\"cy\",\n\t\"da\",\n\t\"de\",\n\t\"el\",\n\t\"en\",\n\t\"en_GB\",\n\t\"en_US_sappsd\",\n\t\"en_US_saprigi\",\n\t\"en_US_saptrc\",\n\t\"es\",\n\t\"es_MX\",\n\t\"et\",\n\t\"fi\",\n\t\"fr\",\n\t\"fr_CA\",\n\t\"hi\",\n\t\"hr\",\n\t\"hu\",\n\t\"in\",\n\t\"it\",\n\t\"iw\",\n\t\"ja\",\n\t\"kk\",\n\t\"ko\",\n\t\"lt\",\n\t\"lv\",\n\t\"ms\",\n\t\"nl\",\n\t\"no\",\n\t\"pl\",\n\t\"pt\",\n\t\"pt_PT\",\n\t\"ro\",\n\t\"ru\",\n\t\"sh\",\n\t\"sk\",\n\t\"sl\",\n\t\"sv\",\n\t\"th\",\n\t\"tr\",\n\t\"uk\",\n\t\"vi\",\n\t\"zh_CN\",\n\t\"zh_TW\",];\n\n\tlocaleIds.forEach(localeId => {\n\t\tregisterI18nLoader(\"@ui5/webcomponents\", localeId, importAndCheck);\n\t});\n\t","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport _Calendars from './_Calendars.js';\nvar Buddhist = UniversalDate.extend('sap.ui.core.date.Buddhist', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Buddhist;\n }\n});\nBuddhist.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nBuddhist.now = function () {\n return Date.now();\n};\nfunction toBuddhist(oGregorian) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year, iYear = oGregorian.year - iEraStartYear + 1;\n if (oGregorian.year < 1941 && oGregorian.month < 3) {\n iYear -= 1;\n }\n if (oGregorian.year === null) {\n iYear = undefined;\n }\n return {\n year: iYear,\n month: oGregorian.month,\n day: oGregorian.day\n };\n}\nfunction toGregorian(oBuddhist) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year, iYear = oBuddhist.year + iEraStartYear - 1;\n if (iYear < 1941 && oBuddhist.month < 3) {\n iYear += 1;\n }\n if (oBuddhist.year === null) {\n iYear = undefined;\n }\n return {\n year: iYear,\n month: oBuddhist.month,\n day: oBuddhist.day\n };\n}\nfunction toGregorianArguments(aArgs) {\n var oBuddhist, oGregorian;\n oBuddhist = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oBuddhist);\n aArgs[0] = oGregorian.year;\n return aArgs;\n}\nBuddhist.prototype._getBuddhist = function () {\n var oGregorian = {\n year: this.oDate.getFullYear(),\n month: this.oDate.getMonth(),\n day: this.oDate.getDate()\n };\n return toBuddhist(oGregorian);\n};\nBuddhist.prototype._setBuddhist = function (oBuddhist) {\n var oGregorian = toGregorian(oBuddhist);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nBuddhist.prototype._getUTCBuddhist = function () {\n var oGregorian = {\n year: this.oDate.getUTCFullYear(),\n month: this.oDate.getUTCMonth(),\n day: this.oDate.getUTCDate()\n };\n return toBuddhist(oGregorian);\n};\nBuddhist.prototype._setUTCBuddhist = function (oBuddhist) {\n var oGregorian = toGregorian(oBuddhist);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nBuddhist.prototype.getYear = function () {\n return this._getBuddhist().year;\n};\nBuddhist.prototype.getFullYear = function () {\n return this._getBuddhist().year;\n};\nBuddhist.prototype.getUTCFullYear = function () {\n return this._getUTCBuddhist().year;\n};\nBuddhist.prototype.setYear = function (iYear) {\n var oBuddhist = this._getBuddhist();\n oBuddhist.year = iYear;\n return this._setBuddhist(oBuddhist);\n};\nBuddhist.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oBuddhist = this._getBuddhist();\n oBuddhist.year = iYear;\n if (iMonth !== undefined) {\n oBuddhist.month = iMonth;\n }\n if (iDay !== undefined) {\n oBuddhist.day = iDay;\n }\n return this._setBuddhist(oBuddhist);\n};\nBuddhist.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oBuddhist = this._getUTCBuddhist();\n oBuddhist.year = iYear;\n if (iMonth !== undefined) {\n oBuddhist.month = iMonth;\n }\n if (iDay !== undefined) {\n oBuddhist.day = iDay;\n }\n return this._setUTCBuddhist(oBuddhist);\n};\nBuddhist.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());\n};\nBuddhist.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\n_Calendars.set(CalendarType.Buddhist, Buddhist);\nexport default Buddhist;","import Core from '../Core.js';\nimport UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport Log from '../../../base/Log.js';\nimport _Calendars from './_Calendars.js';\nvar Islamic = UniversalDate.extend('sap.ui.core.date.Islamic', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Islamic;\n }\n});\nIslamic.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nIslamic.now = function () {\n return Date.now();\n};\nvar BASE_YEAR = 1400, GREGORIAN_EPOCH_DAYS = 1721425.5, ISLAMIC_EPOCH_DAYS = 1948439.5, ISLAMIC_MILLIS = -42521587200000, ONE_DAY = 86400000;\nvar oCustomizationMap = null;\nvar aSupportedIslamicCalendarTypes = [\n 'A',\n 'B'\n];\nfunction toIslamic(oGregorian) {\n var iGregorianYear = oGregorian.year, iGregorianMonth = oGregorian.month, iGregorianDay = oGregorian.day, iIslamicYear, iIslamicMonth, iIslamicDay, iMonths, iDays, iLeapAdj, iJulianDay;\n iLeapAdj = 0;\n if (iGregorianMonth + 1 > 2) {\n iLeapAdj = isGregorianLeapYear(iGregorianYear) ? -1 : -2;\n }\n iJulianDay = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iGregorianYear - 1) + Math.floor((iGregorianYear - 1) / 4) + -Math.floor((iGregorianYear - 1) / 100) + Math.floor((iGregorianYear - 1) / 400) + Math.floor((367 * (iGregorianMonth + 1) - 362) / 12 + iLeapAdj + iGregorianDay);\n iJulianDay = Math.floor(iJulianDay) + 0.5;\n iDays = iJulianDay - ISLAMIC_EPOCH_DAYS;\n iMonths = Math.floor(iDays / 29.530588853);\n if (iMonths < 0) {\n iIslamicYear = Math.floor(iMonths / 12) + 1;\n iIslamicMonth = iMonths % 12;\n if (iIslamicMonth < 0) {\n iIslamicMonth += 12;\n }\n iIslamicDay = iDays - monthStart(iIslamicYear, iIslamicMonth) + 1;\n } else {\n iMonths++;\n while (getCustomMonthStartDays(iMonths) > iDays) {\n iMonths--;\n }\n iIslamicYear = Math.floor(iMonths / 12) + 1;\n iIslamicMonth = iMonths % 12;\n iIslamicDay = iDays - getCustomMonthStartDays(12 * (iIslamicYear - 1) + iIslamicMonth) + 1;\n }\n return {\n day: iIslamicDay,\n month: iIslamicMonth,\n year: iIslamicYear\n };\n}\nfunction toGregorian(oIslamic) {\n var iIslamicYear = oIslamic.year, iIslamicMonth = oIslamic.month, iIslamicDate = oIslamic.day, iMonthStart = iIslamicYear < 1 ? monthStart(iIslamicYear, iIslamicMonth) : getCustomMonthStartDays(12 * (iIslamicYear - 1) + iIslamicMonth), iJulianDay = iIslamicDate + iMonthStart + ISLAMIC_EPOCH_DAYS - 1, iJulianDayNoon = Math.floor(iJulianDay - 0.5) + 0.5, iDaysSinceGregorianEpoch = iJulianDayNoon - GREGORIAN_EPOCH_DAYS, iQuadricent = Math.floor(iDaysSinceGregorianEpoch / 146097), iQuadricentNormalized = mod(iDaysSinceGregorianEpoch, 146097), iCent = Math.floor(iQuadricentNormalized / 36524), iCentNormalized = mod(iQuadricentNormalized, 36524), iQuad = Math.floor(iCentNormalized / 1461), iQuadNormalized = mod(iCentNormalized, 1461), iYearIndex = Math.floor(iQuadNormalized / 365), iYear = iQuadricent * 400 + iCent * 100 + iQuad * 4 + iYearIndex, iMonth, iDay, iGregorianYearStartDays, iDayOfYear, tjd, tjd2, iLeapAdj, iLeapAdj2;\n if (!(iCent == 4 || iYearIndex == 4)) {\n iYear++;\n }\n iGregorianYearStartDays = GREGORIAN_EPOCH_DAYS + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400);\n iDayOfYear = iJulianDayNoon - iGregorianYearStartDays;\n tjd = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(iYear) ? -1 : -2) + 1);\n iLeapAdj = 0;\n if (iJulianDayNoon < tjd) {\n iLeapAdj = 0;\n } else {\n iLeapAdj = isGregorianLeapYear(iYear) ? 1 : 2;\n }\n iMonth = Math.floor(((iDayOfYear + iLeapAdj) * 12 + 373) / 367);\n tjd2 = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400);\n iLeapAdj2 = 0;\n if (iMonth > 2) {\n iLeapAdj2 = isGregorianLeapYear(iYear) ? -1 : -2;\n }\n tjd2 += Math.floor((367 * iMonth - 362) / 12 + iLeapAdj2 + 1);\n iDay = iJulianDayNoon - tjd2 + 1;\n return {\n day: iDay,\n month: iMonth - 1,\n year: iYear\n };\n}\nfunction toGregorianArguments(aArgs) {\n var aGregorianArgs = Array.prototype.slice.call(aArgs), oIslamic, oGregorian;\n oIslamic = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oIslamic);\n aGregorianArgs[0] = oGregorian.year;\n aGregorianArgs[1] = oGregorian.month;\n aGregorianArgs[2] = oGregorian.day;\n return aGregorianArgs;\n}\nfunction initCustomizationMap() {\n var sDateFormat, oCustomizationJSON;\n oCustomizationMap = {};\n sDateFormat = Core.getConfiguration().getFormatSettings().getLegacyDateFormat();\n sDateFormat = _isSupportedIslamicCalendarType(sDateFormat) ? sDateFormat : 'A';\n oCustomizationJSON = Core.getConfiguration().getFormatSettings().getLegacyDateCalendarCustomizing();\n oCustomizationJSON = oCustomizationJSON || [];\n if (!oCustomizationJSON.length) {\n Log.warning('No calendar customizations.');\n return;\n }\n oCustomizationJSON.forEach(function (oEntry) {\n if (oEntry.dateFormat === sDateFormat) {\n var date = parseDate(oEntry.gregDate);\n var iGregorianDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n var iMillis = iGregorianDate.getTime();\n var iIslamicMonthStartDays = (iMillis - ISLAMIC_MILLIS) / ONE_DAY;\n date = parseDate(oEntry.islamicMonthStart);\n var iIslamicMonths = (date.year - 1) * 12 + date.month - 1;\n oCustomizationMap[iIslamicMonths] = iIslamicMonthStartDays;\n }\n });\n Log.info('Working with date format: [' + sDateFormat + '] and customization: ' + JSON.stringify(oCustomizationJSON));\n}\nfunction parseDate(sDate) {\n return {\n year: parseInt(sDate.substr(0, 4)),\n month: parseInt(sDate.substr(4, 2)),\n day: parseInt(sDate.substr(6, 2))\n };\n}\nfunction getCustomMonthStartDays(months) {\n if (!oCustomizationMap) {\n initCustomizationMap();\n }\n var iIslamicMonthStartDays = oCustomizationMap[months];\n if (!iIslamicMonthStartDays) {\n var year = Math.floor(months / 12) + 1;\n var month = months % 12;\n iIslamicMonthStartDays = monthStart(year, month);\n }\n return iIslamicMonthStartDays;\n}\nfunction monthStart(year, month) {\n return Math.ceil(29.5 * month) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30);\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction isGregorianLeapYear(iYear) {\n return !(iYear % 400) || !(iYear % 4) && !!(iYear % 100);\n}\nfunction _isSupportedIslamicCalendarType(sCalendarType) {\n return aSupportedIslamicCalendarTypes.indexOf(sCalendarType) !== -1;\n}\nIslamic.prototype._getIslamic = function () {\n return toIslamic({\n day: this.oDate.getDate(),\n month: this.oDate.getMonth(),\n year: this.oDate.getFullYear()\n });\n};\nIslamic.prototype._setIslamic = function (oIslamic) {\n var oGregorian = toGregorian(oIslamic);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nIslamic.prototype._getUTCIslamic = function () {\n return toIslamic({\n day: this.oDate.getUTCDate(),\n month: this.oDate.getUTCMonth(),\n year: this.oDate.getUTCFullYear()\n });\n};\nIslamic.prototype._setUTCIslamic = function (oIslamic) {\n var oGregorian = toGregorian(oIslamic);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nIslamic.prototype.getDate = function (iDate) {\n return this._getIslamic().day;\n};\nIslamic.prototype.getMonth = function () {\n return this._getIslamic().month;\n};\nIslamic.prototype.getYear = function () {\n return this._getIslamic().year - BASE_YEAR;\n};\nIslamic.prototype.getFullYear = function () {\n return this._getIslamic().year;\n};\nIslamic.prototype.setDate = function (iDate) {\n var oIslamic = this._getIslamic();\n oIslamic.day = iDate;\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setMonth = function (iMonth, iDay) {\n var oIslamic = this._getIslamic();\n oIslamic.month = iMonth;\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setYear = function (iYear) {\n var oIslamic = this._getIslamic();\n oIslamic.year = iYear + BASE_YEAR;\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oIslamic = this._getIslamic();\n oIslamic.year = iYear;\n if (iMonth !== undefined) {\n oIslamic.month = iMonth;\n }\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.getUTCDate = function (iDate) {\n return this._getUTCIslamic().day;\n};\nIslamic.prototype.getUTCMonth = function () {\n return this._getUTCIslamic().month;\n};\nIslamic.prototype.getUTCFullYear = function () {\n return this._getUTCIslamic().year;\n};\nIslamic.prototype.setUTCDate = function (iDate) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.day = iDate;\n return this._setUTCIslamic(oIslamic);\n};\nIslamic.prototype.setUTCMonth = function (iMonth, iDay) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.month = iMonth;\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setUTCIslamic(oIslamic);\n};\nIslamic.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.year = iYear;\n if (iMonth !== undefined) {\n oIslamic.month = iMonth;\n }\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setUTCIslamic(oIslamic);\n};\n_Calendars.set(CalendarType.Islamic, Islamic);\nexport default Islamic;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport _Calendars from './_Calendars.js';\nvar Japanese = UniversalDate.extend('sap.ui.core.date.Japanese', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Japanese;\n }\n});\nJapanese.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nJapanese.now = function () {\n return Date.now();\n};\nfunction toJapanese(oGregorian) {\n var iEra = UniversalDate.getEraByDate(CalendarType.Japanese, oGregorian.year, oGregorian.month, oGregorian.day), iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra).year;\n return {\n era: iEra,\n year: oGregorian.year - iEraStartYear + 1,\n month: oGregorian.month,\n day: oGregorian.day\n };\n}\nfunction toGregorian(oJapanese) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Japanese, oJapanese.era).year;\n return {\n year: iEraStartYear + oJapanese.year - 1,\n month: oJapanese.month,\n day: oJapanese.day\n };\n}\nfunction toGregorianArguments(aArgs) {\n var oJapanese, oGregorian, iEra, vYear = aArgs[0];\n if (typeof vYear == 'number') {\n if (vYear >= 100) {\n return aArgs;\n } else {\n iEra = UniversalDate.getCurrentEra(CalendarType.Japanese);\n vYear = [\n iEra,\n vYear\n ];\n }\n } else if (!Array.isArray(vYear)) {\n vYear = [];\n }\n oJapanese = {\n era: vYear[0],\n year: vYear[1],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oJapanese);\n aArgs[0] = oGregorian.year;\n return aArgs;\n}\nJapanese.prototype._getJapanese = function () {\n var oGregorian = {\n year: this.oDate.getFullYear(),\n month: this.oDate.getMonth(),\n day: this.oDate.getDate()\n };\n return toJapanese(oGregorian);\n};\nJapanese.prototype._setJapanese = function (oJapanese) {\n var oGregorian = toGregorian(oJapanese);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nJapanese.prototype._getUTCJapanese = function () {\n var oGregorian = {\n year: this.oDate.getUTCFullYear(),\n month: this.oDate.getUTCMonth(),\n day: this.oDate.getUTCDate()\n };\n return toJapanese(oGregorian);\n};\nJapanese.prototype._setUTCJapanese = function (oJapanese) {\n var oGregorian = toGregorian(oJapanese);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nJapanese.prototype.getYear = function () {\n return this._getJapanese().year;\n};\nJapanese.prototype.getFullYear = function () {\n return this._getJapanese().year;\n};\nJapanese.prototype.getEra = function () {\n return this._getJapanese().era;\n};\nJapanese.prototype.getUTCFullYear = function () {\n return this._getUTCJapanese().year;\n};\nJapanese.prototype.getUTCEra = function () {\n return this._getUTCJapanese().era;\n};\nJapanese.prototype.setYear = function (iYear) {\n var oJapanese = this._getJapanese();\n oJapanese.year = iYear;\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oJapanese = this._getJapanese();\n oJapanese.year = iYear;\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setEra = function (iEra, iYear, iMonth, iDay) {\n var oEraStartDate = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra), oJapanese = toJapanese(oEraStartDate);\n if (iYear !== undefined) {\n oJapanese.year = iYear;\n }\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oJapanese = this._getUTCJapanese();\n oJapanese.year = iYear;\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setUTCJapanese(oJapanese);\n};\nJapanese.prototype.setUTCEra = function (iEra, iYear, iMonth, iDay) {\n var oEraStartDate = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra), oJapanese = toJapanese(oEraStartDate);\n if (iYear !== undefined) {\n oJapanese.year = iYear;\n }\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setUTCJapanese(oJapanese);\n};\nJapanese.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());\n};\nJapanese.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\n_Calendars.set(CalendarType.Japanese, Japanese);\nexport default Japanese;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport _Calendars from './_Calendars.js';\nvar Persian = UniversalDate.extend('sap.ui.core.date.Persian', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Persian;\n }\n});\nPersian.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nPersian.now = function () {\n return Date.now();\n};\nvar BASE_YEAR = 1300;\nfunction toPersian(oGregorian) {\n var iJulianDayNumber = g2d(oGregorian.year, oGregorian.month + 1, oGregorian.day);\n return d2j(iJulianDayNumber);\n}\nfunction toGregorian(oPersian) {\n var iJulianDayNumber = j2d(oPersian.year, oPersian.month + 1, oPersian.day);\n return d2g(iJulianDayNumber);\n}\nfunction toGregorianArguments(aArgs) {\n var aGregorianArgs = Array.prototype.slice.call(aArgs), oPersian, oGregorian;\n if (typeof aArgs[0] !== 'number' || typeof aArgs[1] !== 'number' || aArgs[2] !== undefined && typeof aArgs[2] != 'number') {\n aGregorianArgs[0] = NaN;\n aGregorianArgs[1] = NaN;\n aGregorianArgs[2] = NaN;\n return aGregorianArgs;\n }\n oPersian = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oPersian);\n aGregorianArgs[0] = oGregorian.year;\n aGregorianArgs[1] = oGregorian.month;\n aGregorianArgs[2] = oGregorian.day;\n return aGregorianArgs;\n}\nfunction jalCal(jy) {\n var breaks = [\n -61,\n 9,\n 38,\n 199,\n 426,\n 686,\n 756,\n 818,\n 1111,\n 1181,\n 1210,\n 1635,\n 2060,\n 2097,\n 2192,\n 2262,\n 2324,\n 2394,\n 2456,\n 3178\n ], bl = breaks.length, gy = jy + 621, leapJ = -14, jp = breaks[0], jm, jump, leap, leapG, march, n, i;\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i];\n jump = jm - jp;\n if (jy < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n n = jy - jp;\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n leapG = div(gy, 4) - div((div(gy, 100) + 1) * 3, 4) - 150;\n march = 20 + leapJ - leapG;\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return {\n leap: leap,\n gy: gy,\n march: march\n };\n}\nfunction j2d(jy, jm, jd) {\n while (jm < 1) {\n jm += 12;\n jy--;\n }\n while (jm > 12) {\n jm -= 12;\n jy++;\n }\n var r = jalCal(jy);\n return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1;\n}\nfunction d2j(jdn) {\n var gy = d2g(jdn).year, jy = gy - 621, r = jalCal(jy), jdn1f = g2d(gy, 3, r.march), jd, jm, k;\n k = jdn - jdn1f;\n if (k >= 0) {\n if (k <= 185) {\n jm = 1 + div(k, 31);\n jd = mod(k, 31) + 1;\n return {\n year: jy,\n month: jm - 1,\n day: jd\n };\n } else {\n k -= 186;\n }\n } else {\n jy -= 1;\n k += 179;\n if (r.leap === 1) {\n k += 1;\n }\n }\n jm = 7 + div(k, 30);\n jd = mod(k, 30) + 1;\n return {\n year: jy,\n month: jm - 1,\n day: jd\n };\n}\nfunction g2d(gy, gm, gd) {\n var d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\nfunction d2g(jdn) {\n var j, i, gd, gm, gy;\n j = 4 * jdn + 139361631;\n j = j + div(div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908;\n i = div(mod(j, 1461), 4) * 5 + 308;\n gd = div(mod(i, 153), 5) + 1;\n gm = mod(div(i, 153), 12) + 1;\n gy = div(j, 1461) - 100100 + div(8 - gm, 6);\n return {\n year: gy,\n month: gm - 1,\n day: gd\n };\n}\nfunction div(a, b) {\n return ~~(a / b);\n}\nfunction mod(a, b) {\n return a - ~~(a / b) * b;\n}\nPersian.prototype._getPersian = function () {\n return toPersian({\n day: this.oDate.getDate(),\n month: this.oDate.getMonth(),\n year: this.oDate.getFullYear()\n });\n};\nPersian.prototype._setPersian = function (oPersian) {\n var oGregorian = toGregorian(oPersian);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nPersian.prototype._getUTCPersian = function () {\n return toPersian({\n day: this.oDate.getUTCDate(),\n month: this.oDate.getUTCMonth(),\n year: this.oDate.getUTCFullYear()\n });\n};\nPersian.prototype._setUTCPersian = function (oPersian) {\n var oGregorian = toGregorian(oPersian);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nPersian.prototype.getDate = function (iDate) {\n return this._getPersian().day;\n};\nPersian.prototype.getMonth = function () {\n return this._getPersian().month;\n};\nPersian.prototype.getYear = function () {\n return this._getPersian().year - BASE_YEAR;\n};\nPersian.prototype.getFullYear = function () {\n return this._getPersian().year;\n};\nPersian.prototype.setDate = function (iDate) {\n var oPersian = this._getPersian();\n oPersian.day = iDate;\n return this._setPersian(oPersian);\n};\nPersian.prototype.setMonth = function (iMonth, iDay) {\n var oPersian = this._getPersian();\n oPersian.month = iMonth;\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setPersian(oPersian);\n};\nPersian.prototype.setYear = function (iYear) {\n var oPersian = this._getPersian();\n oPersian.year = iYear + BASE_YEAR;\n return this._setPersian(oPersian);\n};\nPersian.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oPersian = this._getPersian();\n oPersian.year = iYear;\n if (iMonth !== undefined) {\n oPersian.month = iMonth;\n }\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setPersian(oPersian);\n};\nPersian.prototype.getUTCDate = function (iDate) {\n return this._getUTCPersian().day;\n};\nPersian.prototype.getUTCMonth = function () {\n return this._getUTCPersian().month;\n};\nPersian.prototype.getUTCFullYear = function () {\n return this._getUTCPersian().year;\n};\nPersian.prototype.setUTCDate = function (iDate) {\n var oPersian = this._getUTCPersian();\n oPersian.day = iDate;\n return this._setUTCPersian(oPersian);\n};\nPersian.prototype.setUTCMonth = function (iMonth, iDay) {\n var oPersian = this._getUTCPersian();\n oPersian.month = iMonth;\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setUTCPersian(oPersian);\n};\nPersian.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oPersian = this._getUTCPersian();\n oPersian.year = iYear;\n if (iMonth !== undefined) {\n oPersian.month = iMonth;\n }\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setUTCPersian(oPersian);\n};\n_Calendars.set(CalendarType.Persian, Persian);\nexport default Persian;"],"names":["EventProvider","[object Object]","this","_eventRegistry","Map","eventName","fnFunction","eventRegistry","eventListeners","get","Array","isArray","includes","push","set","indexOfFnToDetach","indexOf","splice","length","delete","data","map","fn","call","Promise","all","fireEvent","setToArray","s","arr","forEach","item","Definitions","Set","Failures","failureTimeout","registerTag","tag","add","displayFailedRegistrations","console","warn","join","clear","rtlAwareSet","registeredElements","eventProvider","invalidatedWebComponents","list","lookup","webComponent","has","filter","shift","callback","stats","timesProcessed","Error","renderTaskPromise","renderTaskPromiseResolve","mutationObserverTimer","queuePromise","renderDeferred","async","scheduleRenderTask","renderImmediately","_render","resolve","window","requestAnimationFrame","process","setTimeout","undefined","isEmpty","_resolveTaskPromise","whenAllCustomElementsAreDefined","definedPromises","customElements","whenDefined","renderFinished","reRenderAllUI5Elements","element","constructor","getMetadata","getTag","rtlAware","klass","languageAware","isLanguageAware","themeAware","isThemeAware","filters","getSingletonElementInstance","parentElement","document","body","el","querySelector","createElement","insertBefore","firstChild","getSharedResource","namespace","initialValue","parts","split","current","head","i","part","lastPart","Object","prototype","hasOwnProperty","attachCustomCSSChange","listener","attachEvent","customCSSFor","skipRerender","css","fireCustomCSSChange","addCustomCSS","features","registerFeature","name","feature","getFeature","class2type","hasOwn","toString","fnToString","ObjectFunctionString","fnIsPlainObject","obj","proto","Ctor","getPrototypeOf","oToken","create","fnMerge","src","copyIsArray","copy","options","clone","target","arguments","deep","skipToken","isPlainObject","args","apply","_merge","assetParameters","default","DEFAULT_THEME","DEFAULT_LANGUAGE","DEFAULT_LOCALE","SUPPORTED_LOCALES","initialized","initialConfig","animationMode","theme","rtl","language","calendarType","noConflict","formatSettings","fetchDefaultLanguage","booleanMapping","applyURLParam","key","value","paramType","lowerCaseValue","toLowerCase","param","normalizeParamValue","initConfiguration","configScript","configJSON","JSON","parse","innerHTML","err","merge","parseConfigurationScript","params","URLSearchParams","location","search","startsWith","parseURLParameters","OpenUI5Support","isLoaded","OpenUI5Config","getConfigurationSettingsObject","applyOpenUI5Configuration","themeStyles","loaders","registeredPackages","registeredThemes","registerThemePropertiesLoader","packageName","themeName","loader","getThemeProperties","style","regThemesStr","values","error","e","message","themeProps","_","getRegisteredPackages","createStyleInHead","cssText","attributes","type","entries","pair","setAttribute","textContent","appendChild","getStyleId","createStyle","content","adoptedStyleSheets","stylesheet","CSSStyleSheet","replaceSync","_ui5StyleId","hasStyle","find","sh","createOrUpdateStyle","updateStyle","getThemeDesignerTheme","metadataString","getComputedStyle","backgroundImage","display","classList","metadata","removeChild","getThemeMetadata","baseThemeName","Path","match","Extends","ex","processThemeMetadata","exec","paramsString","replace","charAt","decodeURIComponent","parseThemeMetadata","BASE_THEME_PACKAGE","loadThemeBase","deleteThemeBase","styleElement","removeStyle","applyTheme","extTheme","cssVariablesLoaded","detectExternalTheme","packagesTheme","isThemeRegistered","loadComponentPackages","fireThemeLoaded","getTheme","isTheme","_theme","currentTheme","getActiveElement","activeElement","shadowRoot","PopupUtilsData","currentZIndex","getFocusedElement","focus","isNodeContainedWithin","parent","child","currentNode","from","children","n","localName","childNodes","assignedNodes","some","isClickInRect","event","rect","x","y","touches","touch","clientX","clientY","left","right","top","bottom","isPointInRect","getClosedPopupParent","getRootNode","host","showAt","isUI5Element","open","documentElement","getNextZIndex","getCurrentZIndex","getCore","sap","ui","listenForThemeChange","core","config","getConfiguration","attachThemeChanged","newTheme","setTheme","init","attachInit","require","LocaleData","Popup","setInitialZIndex","getAnimationMode","getLanguage","getRTL","getCalendarType","firstDayOfWeek","getInstance","getLocale","getFirstDayOfWeek","getLocaleDataObject","_get","attachListeners","link","id","href","fileName","insertMainFontFace","fontFaceCSS","insertOverrideFontFace","overrideFontFaceCSS","booted","boot","addEventListener","insertFontFace","systemCSSVars","fireEventAsync","DataType","attributeValue","propertyValue","value1","value2","types","keys","defineProperty","isDescendantOf","baseKlass","inclusive","kebabToCamelMap","camelToKebabMap","kebabToCamelCase","string","result","toCamelCase","camelToKebabCase","index","toUpperCase","slice","isSlot","HTMLElement","getSlottedElements","flatten","rulesObj","include","exclude","tagsCache","shouldScopeCustomElement","rule","getEffectiveScopingSuffixForTag","UI5ElementMetadata","_initialState","initialState","slotsAreManaged","props","getProperties","propName","propType","propDefaultValue","defaultValue","Boolean","multiple","String","slots","getSlots","slotName","slotData","propertyName","propData","propValue","validateSingleProperty","validateSingleSlot","pureTag","suffix","pureAltTag","altTag","noAttribute","getPropertiesList","hasAttribute","defaultSlot","Node","_slotName","individualSlots","managedSlots","properties","events","invalidateOnChildChange","propertyType","isValid","define","getStylesString","styles","reduce","acc","val","concat","effectiveStyleMap","getEffectiveStyle","ElementClass","forStaticArea","effectiveStyle","staticAreaStyles","customStyle","getCustomCSS","constructableStyleMap","isLegacyBrowser","ShadyDOM","updateShadowRoot","styleStrOrHrefsArr","template","staticAreaItem","renderResult","component","tagsToScope","getUniqueDependencies","dep","getPureTag","getCustomElementsScopingSuffix","executeTemplate","styleContent","getConstructableStyle","render","getEffectiveContentDensity","getPropertyValue","attachLanguageChange","getFetchDefaultLanguage","fetchDefaultLang","m","browserLanguages","navigator","languages","userLanguage","browserLanguage","M_ISO639_OLD_TO_NEW","iw","ji","in","A_RTL_LOCALES","getDesigntimePropertyAsArray","configurationRTL","impliesRTL","detectNavigatorLanguage","getEffectiveDir","doc","dirValues","locallyAppliedDir","dir","StaticAreaItem","super","_rendered","attachShadow","mode","ownerElement","_id","_updateContentDensity","_updateDirection","remove","removeAttribute","observers","WeakMap","observeDOMNode","node","observer","MutationObserver","observe","_createObserver","excludeList","getNoConflict","skipOriginalEvent","nc","shouldFireOriginalEvent","shouldNotFireOriginalEvent","allowList","isValidPropertyName","Element","arraysAreEqual","arr1","arr2","getClassCopy","constructorCallback","autoId","elementTimeouts","uniqueDependenciesCache","_invalidate","changeInfo","_suppressInvalidation","onInvalidation","_changedState","_eventProvider","UI5Element","deferredResolve","_inDOM","_fullyConnected","_childChangeListeners","_slotChangeListeners","_domRefReadyPromise","_deferredResolve","_initializeState","_upgradeAllProperties","_needsShadowDOM","__id","_startObservingDOMChildren","_processChildren","onEnterDOM","_stopObservingDOMChildren","onExitDOM","hasSlots","canSlotText","mutationObserverOptions","childList","subtree","characterData","bind","disconnect","_destroyObserver","unobserveDOMNode","_updateSlots","slotsMap","domChildren","slotsCachedContentMap","propertyNameToSlotMap","_state","_clearSlot","autoIncrementMap","slottedChildrenMap","allChildrenUpgraded","idx","slot","getAttribute","getSlotName","validValues","nextIndex","_individualSlot","whenDefinedPromise","timeoutPromise","race","upgrade","validateSlotValue","attachInvalidate","_getChildChangeListener","_attachSlotChange","sort","a","b","invalidated","reason","detachInvalidate","_detachSlotChange","detachEvent","childChangeInfo","shouldInvalidateOnChildChange","oldValue","newValue","realName","nameInCamelCase","propertyTypeClass","attributeToProperty","attrName","attrValue","propertyToAttribute","prop","_upgradeProperty","getInitialState","_onChildChange","_onSlotChange","_getSlotChangeListener","removeEventListener","hasIndividualSlots","onBeforeRendering","_onComponentStateFinalized","update","_assignIndividualSlotsToChildren","onAfterRendering","_getRealDomRef","domRef","getDomRef","_waitForDomRef","getFocusDomRef","focusDomRef","cancelable","bubbles","eventResult","_fireEvent","camelCaseEventName","noConflictEvent","CustomEvent","detail","composed","noConflictEventResult","dispatchEvent","normalEvent","curr","effectiveDir","observedAttributes","getAttributesList","staticAreaTemplate","_needsStaticArea","createInstance","setOwnerElement","isDifferent","validatePropertyValue","oldState","compareValues","valuesAreEqual","_updateAttribute","dependencies","filtered","deps","whenDependenciesDefined","onDefine","getAltTag","definedLocally","isTagRegistered","definedGlobally","recordTagRegistrationFailure","_generateAccessors","log","_metadata","metadataObjects","unshift","mergedMetadata","t","globalThis","trustedTypes","createPolicy","createHTML","Math","random","o","l","h","createComment","r","d","u","Symbol","iterator","c","v","f","g","$","_$litType$","strings","p","for","T","A","createTreeWalker","C","lastIndex","test","RegExp","P","append","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","ctor","M","k","H","S","tagName","emptyScript","V","_$Cl","_$Cu","_$litDirective$","_$AO","_$AT","_$AS","E","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","N","nextSibling","I","_$AI","_$AH","_$AA","_$AB","_$Cg","isConnected","startNode","endNode","_$AR","createTextNode","_$AC","_$AP","fill","capture","once","passive","handleEvent","L","R","D","j","O","F","B","W","Z","litHtmlPolyfillSupport","litHtmlVersions","_$litStatic$","_$Ct","_$Ci","_$AQ","dt","ct","w","st","et","styleMap","directive","Directive","partInfo","_a","PartType","styleInfo","_previousStyleProperties","removeProperty","setProperty","noChange","it","directiveName","vt","raw","resultType","litRender","templateResult","domNode","html","renderBefore","_$litPart$","scopeTag","tags","unsafeStatic","KeyCodes","isEnter","keyCode","hasModifierKeys","isEnterShift","checkModifierKeys","isSpace","isSpaceShift","isLeft","isRight","isUp","isDown","isUpShift","isDownShift","isLeftShift","isRightShift","isHome","isEnd","isHomeCtrl","isEndCtrl","isEscape","isTabNext","isTabPrevious","isPageUp","isPageDown","isPageUpShift","isPageDownShift","isPageUpShiftCtrl","isPageDownShiftCtrl","isShow","isF4","isShowByArrows","shiftKey","altKey","getCtrlKey","metaKey","ctrlKey","bCtrlKey","bAltKey","bShiftKey","rLocale","Locale","sLocaleId","aResult","sLanguage","sScript","sRegion","sVariant","sExtension","sPrivateUse","sSubtag","getPrivateUseSubtags","cache","getLocaleInstance","lang","convertToLocaleOrNull","getConfigLanguage","localeRegEX","SAPSupportabilityLocales","M_ISO639_NEW_TO_OLD","he","yi","sr","nextFallbackLocale","locale","lastIndexOf","warningShown","reportedErrors","bundleData","bundlePromises","registerI18nLoader","localeId","bundleKey","_setI18nBundleData","_hasLoader","fetchI18nBundle","region","getRegion","script","variants","isPrivate","normalizeLocale","loadMessageBundle","_loadMessageBundleOnce","_showAssetsWarningOnce","allPackages","messageFormatRegEX","I18nBundleInstances","I18nBundle","textObj","defaultText","bundle","getI18nBundleData","messageText","$0","$1","$2","$3","offset","parseInt","getI18nBundle","i18nBundle","getI18nBundleSync","ua","userAgent","maxTouchPoints","ie","chrome","safari","webkit","windows","platform","android","androidPhone","ipad","windowsVersion","webkitVersion","tablet","isWindows8OrAbove","matches","parseFloat","detectTablet","densityFactor","devicePixelRatio","isWebkit537OrAbove","min","screen","width","height","supportsTouch","isIE","isSafari","isTablet","isPhone","isDesktop","ButtonTypes","Default","Positive","Negative","Transparent","Emphasized","Attention","ButtonDesign","generateTypeAccessors","block0","context","disabled","ifDefined","_onfocusout","_onfocusin","_onclick","_onmousedown","_onmouseup","_onkeydown","_onkeyup","_ontouchstart","_ontouchend","tabIndexValue","accInfo","ariaExpanded","ariaControls","ariaHaspopup","accessibleName","title","icon","block1","hasButtonType","block2","showIconTooltip","buttonTypeText","IconCollectionsAlias","SAP-icons-TNT","BusinessSuiteInAppSymbols","horizon","registry","iconCollectionPromises","registerIcon","pathData","ltr","accData","collection","_getDefaultCollection","_parseName","reverse","_normalizeCollection","registryKey","getIconData","nameProp","iconData","collectionName","loadIcons","_loadIconCollectionOnce","iconName","path","_fillRegistry","tabIndex","_dir","effectiveAccessibleRole","effectiveAccessibleName","effectiveAriaHidden","blockSVG1","svg","hasIconTooltip","defaultThemeBase","defaultTheme","interactive","showTooltip","role","ariaHidden","focused","invalid","click","Icon","IconTemplate","iconCss","createGlobalStyle","preventDefault","stopPropagation","isDecorative","data-ui5-icon-global","getIconDataSync","_onClickHandler","getText","removeGlobalStyle","AVATAR_TOOLTIP","BUSY_INDICATOR_TITLE","BUTTON_ARIA_TYPE_ACCEPT","BUTTON_ARIA_TYPE_REJECT","BUTTON_ARIA_TYPE_EMPHASIZED","DATEPICKER_OPEN_ICON_TITLE","DATEPICKER_DATE_DESCRIPTION","DELETE","INPUT_SUGGESTIONS","INPUT_SUGGESTIONS_TITLE","INPUT_SUGGESTIONS_ONE_HIT","INPUT_SUGGESTIONS_MORE_HITS","INPUT_SUGGESTIONS_NO_HIT","LIST_ITEM_POSITION","LIST_ITEM_SELECTED","LIST_ITEM_NOT_SELECTED","ARIA_LABEL_LIST_ITEM_CHECKBOX","ARIA_LABEL_LIST_ITEM_RADIO_BUTTON","ARIA_LABEL_LIST_SELECTABLE","ARIA_LABEL_LIST_MULTISELECTABLE","ARIA_LABEL_LIST_DELETABLE","RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON","LOAD_MORE_TEXT","TEXTAREA_CHARACTERS_LEFT","TEXTAREA_CHARACTERS_EXCEEDED","TIMEPICKER_HOURS_LABEL","TIMEPICKER_MINUTES_LABEL","TIMEPICKER_SECONDS_LABEL","TIMEPICKER_PERIODS_LABEL","TIMEPICKER_SUBMIT_BUTTON","TIMEPICKER_CANCEL_BUTTON","TIMEPICKER_INPUT_DESCRIPTION","VALUE_STATE_ERROR","VALUE_STATE_WARNING","VALUE_STATE_INFORMATION","VALUE_STATE_SUCCESS","CALENDAR_HEADER_NEXT_BUTTON","CALENDAR_HEADER_PREVIOUS_BUTTON","DAY_PICKER_WEEK_NUMBER_TEXT","DAY_PICKER_NON_WORKING_DAY","DAY_PICKER_TODAY","STEPINPUT_DEC_ICON_TITLE","STEPINPUT_INC_ICON_TITLE","isGlobalHandlerAttached","activeButton","design","iconEnd","submits","active","iconOnly","hasIcon","nonInteractive","_iconSettings","_buttonAccInfo","_tabIndex","_isTouch","Button","buttonCss","buttonIECss","ButtonTemplate","_deactivate","FormSupport","isIconOnly","isMarked","triggerFormSubmit","_event","COMMENT_NODE","TEXT_NODE","nodeValue","trim","typeTextMappings","tabindex","ValueStates","None","Success","Warning","Information","ValueState","WrappingTypes","Normal","WrappingType","classMap","classes","textWrapper","required","wrappingType","showColon","Label","LabelTemplate","labelCss","ui5-label-text-wrapper","ui5-label-text-wrapper-safari","elementToFocus","getElementById","main","ariaChecked","ariaReadonly","ariaDisabled","ariaLabelledBy","ariaDescribedBy","isCompletelyChecked","checked","readonly","text","hasValueState","block3","valueStateText","activeCb","indeterminate","valueState","change","formSupport","CheckBox","CheckBoxTemplate","checkboxCss","_enableFormSupport","syncNativeHiddenInput","nativeInput","toggle","canToggle","ui5-checkbox--hoverable","valueStateTextMappings","resizeObserver","observedElements","getResizeObserver","ResizeObserver","entry","ResizeHandler","callbacks","filteredCallbacks","unobserve","Integer","Number","isInteger","getEffectiveAriaLabelText","accessibleNameRef","getAriaLabelledByTexts","ownerDocument","readyIds","ids","owner","ownerTypes","HTMLHtmlElement","HTMLIFrameElement","currentShadowRootFlag","currentCustomElementFlag","findNodeOwner","elementId","ICON_ADD","ICON_DECLINE","InputTypes","Text","Email","Password","Tel","URL","InputType","clamp","max","isNodeHidden","nodeName","offsetWidth","offsetHeight","visibility","rClickable","rFocusable","isNodeClickable","isFocusTrap","getFirstFocusableElement","container","findFocusableElement","forward","focusableDescendant","lastChild","assignedElements","originalChild","getFocusDomRefAsync","previousSibling","root","_ariaModal","_ariaLabel","_ariaLabelledBy","forwardToLast","_scroll","forwardToFirst","_blockLayerHidden","blockLayer","_preventBlockLayerFocus","openedRegistry","addOpenedPopup","instance","parentPopovers","attachGlobalListener","removeOpenedPopup","detachGlobalListener","_keydownListener","close","initialFocus","preventFocusRestore","opened","_disableInitialFocus","before-open","after-open","before-close","escPressed","after-close","scroll","globalStyles","bodyScrollingBlockers","PopupTemplate","PopupBlockLayer","isOpen","unblockBodyScrolling","_removeOpenedPopup","_displayProp","popup","size","pageYOffset","scrollTo","scrollTop","targetRef","_root","relatedTarget","_shouldFocusRoot","contains","firstFocusable","lastFocusable","getLastFocusableElement","applyFocus","fe","isFocusedElementWithinNode","preventInitialFocus","isModal","shouldHideBackdrop","getStaticAreaItemDomRef","blockBodyScrolling","_zIndex","zIndex","_focusedElementBeforeOpen","_show","applyInitialFocus","_addOpenedPopup","preventRegistryUpdate","hide","resetFocus","ui5-popup-root","ui5-popup-content","PopoverPlacementTypes","Left","Right","Top","Bottom","PopoverPlacementType","PopoverVerticalAligns","Center","Stretch","PopoverVerticalAlign","PopoverHorizontalAligns","PopoverHorizontalAlign","updateInterval","repositionPopovers","popover","reposition","clickHandler","openedPopups","isTopPopupPopover","isOpenerClicked","getBoundingClientRect","addOpenedPopover","getParentPopoversIfNested","setInterval","removeOpenedPopover","popoversToClose","indexOfCurrentInstance","indexOfItemToRemove","clearInterval","currentElement","arrow","_displayHeader","_displayFooter","block4","header","headerText","footer","block5","placementType","horizontalAlign","verticalAlign","modal","hideBackdrop","hideArrow","allowTargetOverlap","disableScrolling","arrowTranslateX","arrowTranslateY","actualPlacementType","_maxContentHeight","_maxContentWidth","Popover","_handleResize","handleResize","browserScrollbarCSS","PopupsCommonCss","PopoverCss","PopoverTemplate","VIEWPORT_MARGIN","register","deregister","_opener","composedPath","opener","_openerRect","_open","placement","openerRect","limits","closedPopupParent","overflowsBottom","overflowsTop","contentRect","contentDOM","innerHeight","popoverSize","getPopoverSize","shouldCloseDueToNoOpener","isFocusWithin","_oldPlacement","calcPlacement","stretching","_preventRepositionAndClose","_left","clientWidth","_top","clientHeight","arrowX","arrowY","isVertical","popoverOnLeftBorderOffset","popoverOnRightBorderOffset","round","popoverOnTopBorderOffset","popoverOnBottomBorderOffset","assign","_width","arrowDOM","targetRect","maxHeight","maxWidth","getActualPlacementType","shouldCloseDueToOverflow","_height","arrowOffset","getVerticalLeft","getHorizontalTop","maxContentHeight","headerDomRef","arrowPos","getArrowPosition","abs","arrowXCentered","fallbackPlacement","max-height","max-width","transform","innerInput","inputType","_readonly","_placeholder","maxlength","input","ariaInvalid","ariaHasPopup","ariaRoledescription","ariaAutoComplete","ariaLabel","_handleInput","_handleChange","_click","innerFocusIn","nativeInputAttributes","step","unsafeHTML","_valueStateInputIcon","showSuggestions","ariaDescription","suggestionsText","availableSuggestionsCount","ariaValueStateHiddenText","hasValueStateMessage","block17","suggestionsPopover","_afterOpenPopover","_afterClosePopover","_isPhone","block7","suggestionSeparators","repeat","suggestionsTexts","block12","block16","_headerTitleText","_closeRespPopover","placeholder","popoverValueState","suggestionPopoverHeader","shouldDisplayDefaultValueStateMessage","valueStateMessageText","block6","block8","_isValueStateFocused","_valueStateMessageInputIcon","block9","block10","block11","groupItem","block13","block14","image","additionalText","additionalTextState","fnOnSuggestionItemPress","description","block15","popoverHeader","block18","block19","block20","rgxFloat","valueStateMessage","highlight","_input","_inputAccInfo","_nativeInputAttributes","_inputWidth","_listWidth","_isPopoverOpen","_inputIconFocused","suggestion-item-select","suggestion-item-preview","suggestion-scroll","scrollContainer","Input","InputTemplate","InputPopoverTemplate","ResponsivePopoverCommonCss","ValueStateMessageCss","SuggestionsCss","hasSuggestionItemSelected","valueBeforeItemSelection","valueBeforeItemPreview","suggestionSelectionCanceled","_changeFired","previousValue","firstRendering","highlightValue","lastConfirmedValue","_backspaceKeyDown","EVENT_CHANGE","EVENT_INPUT","EVENT_SUGGESTION_ITEM_SELECT","ACTION_ENTER","ACTION_USER_INPUT","_handleResizeBound","enableSuggestions","Suggestions","defaultSlotProperties","suggestionItems","_getListWidth","shouldDisplayOnlyValueStateMessage","openPopover","closePopover","_handleUp","_handleDown","_handleSpace","_handleTab","_handleEnter","_handleEscape","isBackSpace","_selectedText","getSelection","_clearPopoverFocusAndSelection","_keyDown","isOpened","onUp","onDown","onSpace","onTab","onEnter","fireEventByAction","hasSuggestions","_isItemOnTarget","getInputDOMRef","focusedOutToSuggestions","responsivePopover","focusedOutToValueStateMessage","stopImmediatePropagation","toBeFocused","_deselectItems","_clearItemFocus","blur","inputDomRef","emptyValueFiredOnNumberInput","isTypeNumber","removeFractionalPart","updateSelectedItemPosition","announceSelectedItem","_getPopover","keyboardUsed","group","itemText","fireInput","updateValueOnPreview","_previewItem","itemValue","effectiveTitle","previewItem","getSuggestionByListItem","action","inputValue","getInputValue","isUserInput","cursorPosition","selectionStart","selectionEnd","valueChanged","_getSuggestionPopover","nativeInputWidth","getInputId","_isScrollable","suggestion","selectSuggestion","previewSuggestion","invisibleText","itemSelectionAnnounce","suggestionsTextId","valueStateTextId","ariaHasPopupDefault","ariaAutoCompleteDefault","ui5-suggestions-popover","ui5-suggestions-popover-with-value-state-header","ui5-valuestatemessage-root","ui5-valuestatemessage-header","ui5-valuestatemessage--success","ui5-valuestatemessage--error","ui5-valuestatemessage--warning","ui5-valuestatemessage--information","remSizeIxPx","fontSize","stylesObject","min-width","padding","getSlottedNodes","cloneNode","field","caretPos","selection","createRange","moveStart","selectionDirection","getCaretPosition","pos","createTextRange","range","move","select","setSelectionRange","setCaretPosition","Float","_valuePrecisioned","inputAttributes","_onInputChange","_onInputFocusOut","_onInputFocusIn","decIconTitle","decIconName","_decValue","_onButtonFocusOut","_decSpin","_resetSpin","_resetSpinOut","_decIconClickable","incIconTitle","incIconName","_incValue","_incSpin","_incIconClickable","valuePrecision","_decIconDisabled","_incIconDisabled","_inputFocused","_previousValue","_previousValueState","_waitTimeout","_speed","_btnDown","_spinTimeoutId","_spinStarted","StepInput","StepInputCss","StepInputTemplate","_isFocused","toFixed","ariaRequired","_setButtonState","inputOuter","pow","modifier","fireChangeEvent","_preciseValue","_validate","_fireChangeEvent","isTrusted","_modifyValue","isUpShiftCtrl","isDownShiftCtrl","isUpCtrl","isDownCtrl","_spinValue","increment","resetVariables","_calcWaitTimeout","clearTimeout","CalendarTypes","Gregorian","Islamic","Japanese","Buddhist","Persian","CalendarType","emptyFn","FormatSettings","getFormatLocale","getLegacyDateFormat","getLegacyDateCalendarCustomizing","getCustomLocaleData","Configuration","getSupportedLanguages","getOriginInfo","getFormatSettings","Core","getLibraryResourceBundle","ObjectPath","defaultRootContext","getObjectPathArray","vObjectPath","oRootContext","oObject","aNames","sName","sPropertyName","pop","vValue","iNavigationStart","fnNow","performance","now","timing","navigationStart","Date","Log","Level","NONE","FATAL","ERROR","WARNING","INFO","DEBUG","TRACE","ALL","aLog","mMaxLevel","iLogEntriesLimit","oListener","bLogSupportInfo","pad0","level","sComponent","isNaN","discardLogEntries","iLogLength","iEntriesToKeep","floor","onDiscardLogEntries","getLogEntryListenerInstance","listeners","onLogEntry","oLogEntry","aDiscardedLogEntries","attach","oLog","oLstnr","onAttachToLog","detach","onDetachFromLog","iLevel","sMessage","sDetails","fnSupportInfo","sDefaultComponent","fNow","oNow","iMicroSeconds","time","getHours","getMinutes","getSeconds","getMilliseconds","date","getFullYear","getMonth","getDate","timestamp","details","supportInfo","isDetailsError","logText","info","debug","trace","Logger","fatal","msg","comp","support","warning","setLevel","getLevel","isLoggable","iLogLevel","_bDefault","sLogLevel","sLevel","logSupportInfo","bEnabled","getLogEntries","getLogEntriesLimit","setLogEntriesLimit","iLimit","addLogListener","removeLogListener","getLogger","iDefaultLogLevel","fnAssert","bResult","vMessage","assert","fnUniqueSort","aArray","iLength","Metadata","sClassName","oClassInfo","__version","_sClassName","_oClass","extend","applySettings","afterApplySettings","oPrototype","oStaticInfo","baseType","oParentClass","_oParent","getClass","_bAbstract","_bFinal","_sStereotype","stereotype","_bDeprecated","_aInterfaces","interfaces","_aPublicMethods","publicMethods","_bInterfacesUnique","_aAllPublicMethods","getStereotype","getName","getParent","_dedupInterfaces","uniqueSort","getPublicMethods","getAllPublicMethods","getInterfaces","isInstanceOf","sInterface","_mImplementedTypes","aInterfaces","freeze","writable","configurable","isA","vTypeName","mTypes","isAbstract","isFinal","isDeprecated","addPublicMethods","sMethod","createClass","fnBaseClass","FNMetaImpl","preprocessClassInfo","fnClass","deprecated","oMetadata","sSCName","oSCClassInfo","fnSCMetaImpl","BaseObject","destroy","getInterface","oInterface","_Interface","defineClass","aMethods","_bReturnFacade","fCreateDelegator","sMethodName","tmp","ml","fnExtend","TypeError","getScript","getVariant","getVariantSubtags","getExtension","getExtensionSubtags","getPrivateUse","hasPrivateUseSubtag","toLanguageTag","getModernLanguage","getSAPLogonLanguage","M_LOCALE_TO_ABAP_LANGUAGE","getPseudoLanguageTag","M_ABAP_LANGUAGE_TO_LOCALE","ZH","ZF","SH","6N","1P","1X","3F","1Q","2Q","3Q","inv","sValue","_cldrLocales","_coreI18nLocales","_impliesRTL","vLanguage","oLocale","fromSAPLogonLanguage","sSAPLogonLanguage","localeDataMap","cldrPromises","setLocaleData","fetchCldr","calcLocale","cldrContent","loadCldr","_loadCldrOnce","registerLocaleDataLoader","fetch","json","LoaderExtensions","moduleName","moduleFormat","getLocaleData","mData","getOrLoad","sId","mLocaleDatas","M_SUPPORTED_LOCALES","dataType","failOnError","__fallbackLocale","fallbackObj","fallbackValue","getData","_getDeep","_getMerged","aPropertyNames","oResult","getOrientation","getCurrentLanguageName","sCurrentLanguage","oLanguages","getLanguages","getScripts","getTerritories","getMonths","sWidth","sCalendarType","getCLDRCalendarName","getMonthsStandAlone","getDays","getDaysStandAlone","getQuarters","getQuartersStandAlone","getDayPeriods","getDayPeriodsStandAlone","getDatePattern","sStyle","getTimePattern","getDateTimePattern","getCombinedDateTimePattern","sDateStyle","sTimeStyle","sDateTimePattern","sDatePattern","sTimePattern","getCustomDateTimePattern","sSkeleton","oAvailableFormats","_getFormatPattern","getIntervalPattern","aIdParts","sIntervalId","sDifference","oInterval","sPattern","oIntervalFormats","intervalFormatFallback","getCombinedIntervalPattern","getCustomIntervalPattern","vGreatestDiff","vDiff","vPattern","aPatterns","getPreferredHourSymbol","sKey","_createFormatPattern","oAvailableDateTimeFormats","oSymbol","oGroup","sSinglePattern","sDiffSymbol","sDiffGroup","bSingleDate","aTokens","_parseSkeletonFormat","oBestMatch","_findBestMatch","rMixedSkeleton","mCLDRSymbols","mCLDRSymbolGroups","symbol","pattern","G","DayPeriod","missingTokens","distance","_expandFields","patternTokens","_getMixedFormatPattern","_appendItems","iIndex","sSymbol","diffOnly","aTestTokens","aMissingTokens","oTestToken","iTest","iDistance","bMatch","iFirstDiffPos","oTokenSymbol","oTestTokenSymbol","firstDiffPos","sTestSkeleton","numericCeiling","aPatternTokens","bSinglePattern","iSkeletonLength","iPatternLength","iBestLength","iNewLength","oSkeletonToken","oBestToken","sChar","mGroups","mPatternGroups","sResultPatterm","bQuoted","oAppendItems","sDisplayName","sAppendPattern","sAppendField","getDisplayName","sDateSkeleton","sTimeSkeleton","getNumberSymbol","sType","getLenientNumberSymbols","getDecimalPattern","standard","getCurrencyPattern","sContext","getCurrencySpacing","sPosition","getPercentPattern","getMiscPattern","getMinimalDaysInFirstWeek","getWeekendStart","getWeekendEnd","getCustomCurrencyCodes","mCustomCurrencies","mCustomCurrencyCodes","sCurrencyKey","getCurrencyDigits","sCurrency","digits","iDigits","getCurrencySymbol","oCurrencySymbols","getCurrencySymbols","getCurrencyCodeBySymbol","sCurrencySymbol","sCurrencyCode","sIsoCode","mCustomCurrencySymbols","isoCode","getUnitDisplayName","sUnit","mUnitFormat","getUnitFormat","getRelativePatterns","aScales","oScale","oTimeEntry","iValue","iSign","aPluralCategories","getPluralCategories","sScale","sEntry","substr","scale","sign","getRelativePattern","iDiff","bFuture","getPluralCategory","getRelativeSecond","getRelativeMinute","getRelativeHour","getRelativeDay","getRelativeWeek","getRelativeMonth","getRelativeYear","getDecimalFormat","sNumber","sPlural","sFormat","oFormats","getCurrencyFormat","getListFormat","getResolvedUnitFormat","getUnitFromMapping","getUnitFormats","sMapping","getEras","oEras","aEras","getEraDates","oEraDates","aEraDates","getCalendarWeek","iWeekNumber","firstDayStartsFirstWeek","getPreferredCalendarType","sCalendarName","sCalendarPreference","aCalendars","oPlurals","aCategories","sCategory","_pluralTest","fnTest","_parsePluralRule","sRule","SEP","accept","sToken","consume","fnOr","or_condition","fnAnd","and_condition","fnRelation","fnExpr","fnRangeList","bEq","fnOperand","operand","iDivisor","expr","aRange","iFrom","iTo","aValues","sPart","range_list","relation","sDecimal","sFraction","sFractionNoZeros","iDotPos","Era","Year","Quarter","Month","Week","Day-Of-Week","Day","Hour","Minute","Second","Timezone","Y","Q","q","K","z","X","U","LOCALES","CustomLocaleData","mCustomData","aArguments","mRegistry","_Calendars","CalendarClass","UniversalDate","clDate","createDate","UTC","aArgs","getTime","oDate","oInstance","getJSDate","getEra","getEraByDate","setEra","iEra","getUTCEra","getUTCFullYear","getUTCMonth","getUTCDate","setUTCEra","getWeek","getWeekByDate","setWeek","oWeek","getFirstDateOfWeek","year","week","setFullYear","month","day","getUTCWeek","setUTCWeek","setUTCFullYear","getQuarter","getUTCQuarter","getDayPeriod","getUTCDayPeriod","getUTCHours","getTimezoneShort","getTimezoneLong","getFirstDayOfFirstWeek","iYear","oLocaleData","iMinDays","iFirstDayOfWeek","oFirstDay","iDayCount","getUTCDay","setUTCDate","calculateWeeks","oFromDate","oToDate","valueOf","iMonth","iDay","iWeek","iLastYear","iNextYear","oLastFirstDay","mEras","_start","oEra","_startInfo","parseDateString","_end","_endInfo","sDateString","aParts","iTimestamp","getCurrentEra","getEraStartDate","CalendarDate","oJSDate","_oUDate","setHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","createUniversalUTCDate","checkNumericLike","setUTCMonth","oCalendarDate","checkCalendarDate","oLocalDate","oUTCDate","setUTCHours","getYear","oCalDate","createUTCDate","Infinity","modifyDateBy","amount","unit","minDate","maxDate","newDate","setDate","setMonth","stillSameMonth","monthSkipped","setYear","getTodayUTCTimestamp","primaryCalendarType","fromLocalJSDate","fnEqual","maxDepth","depth","isEqualNode","rMessageFormat","DateFormat","mCldrDatePattern","oDateInfo","oDefaultFormatOptions","relativeScale","relativeStyle","aFallbackFormatOptions","strictParsing","bShortFallbackFormatOptions","bPatternFallbackWithoutDelimiter","getPattern","oRequiredParts","weekYear","aRelativeScales","aRelativeParseScales","aIntervalCompareFields","oDateTimeInfo","iSlashIndex","hour0_23","hour1_24","hour0_11","hour1_12","oTimeInfo","oFormatOptions","getDateInstance","getDateTimeInstance","getTimeInstance","oInfo","oFormat","format","interval","intervalPatterns","sCommonConnectorPattern","createIntervalPatternWithNormalConnector","fallback","oFallbackFormats","sLocale","_createFallbackOptionsWithoutDelimiter","_createFallbackFormat","aFallbackFormats","aMonthsAbbrev","aMonthsWide","aMonthsNarrow","aMonthsAbbrevSt","aMonthsWideSt","aMonthsNarrowSt","aDaysAbbrev","aDaysWide","aDaysNarrow","aDaysShort","aDaysAbbrevSt","aDaysWideSt","aDaysNarrowSt","aDaysShortSt","aQuartersAbbrev","aQuartersWide","aQuartersNarrow","aQuartersAbbrevSt","aQuartersWideSt","aQuartersNarrowSt","aErasNarrow","aErasAbbrev","aErasWide","aDayPeriods","aFormatArray","parseCldrDatePattern","sAllowedCharacters","getAllowedCharacters","bInterval","oOptions","oFallbackFormat","bIsFallback","sBasePattern","oDayReplace","oMonthReplace","oYearReplace","regex","sReplace","oParseHelper","isNumber","iCharCode","findNumbers","iMaxLength","charCodeAt","findEntry","aList","iFoundIndex","iMatchedLength","parseTZ","bColonSeparated","iTZFactor","iTZDiffHour","iTZDiff","tzDiff","checkValid","bPartInvalid","oSymbols","oField","bUTC","oPart","oConfig","bValid","iValueIndex","iPatternIndex","formatArray","valid","aErasVariants","aVariants","oFound","era","sYear","padStart","iCurrentYear","iCurrentCentury","iYearDiff","iWeekYear","sWeekYear","aMonthsVariants","strict","sWeek","iDate","iQuarter","aQuartersVariants","quarter","getDay","aDaysVariants","dayOfWeek","_adaptDayOfWeek","dayNumberOfWeek","iDayPeriod","bPM","sAM","sPM","aMatch","bVariant","pm","iHours","hour","dateValue","iMinutes","minute","iSeconds","second","iMilliseconds","sFractionalseconds","padEnd","millisecond","sTimeZone","iTZOffset","getTimezoneOffset","bPositiveOffset","iHourOffset","iMinuteOffset","oTZ","substring","oParsedTZ","_format","relative","sRes","formatRelative","relativeRange","sResult","aBuffer","originInfo","source","vJSDate","singleIntervalValue","every","_formatInterval","aJSDates","oDiffField","_getGreatestDiffField","mFieldToGroup","FullYear","Hours","Minutes","Seconds","aDates","bDiffFound","mDiff","sField","sFieldGroup","vFromValue","vToValue","deepEqual","_parse","bStrict","sSubValue","oDateValue","oParseConf","_parseInterval","aDateValues","iRepeat","fnCreateDate","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","setMinutes","setSeconds","setMilliseconds","mergeWithoutOverwrite","object1","object2","oMergedObject","cutDateFields","iStartIndex","aFields","oDateCopy","oEndDate","vDate","oJSDate1","oJSDate2","oDateValue1","oDateValue2","parseRelative","oCurrentObject","sState","sNewState","mAppeared","bIntervalStartFound","sNextChar","sPrevChar","sPrevPrevChar","sCurChar","oEntry","computeRelativeDate","iToday","oToday","oDateUTC","iDiffSeconds","_getScale","_mRanges","_getDifference","formatMessage","_mScales","sTestScale","mRelativeDiffs","iFromDay","iToDay","iDayOfWeek","iDayNumberOfWeek","bNumbers","bAll","getCachedLocaleDataInstance","getMaxCalendarDate","tempDate","secondaryCalendarType","formatPattern","DateComponentBase","_primaryCalendarType","localeData","_minDate","getFormat","_getCalendarDateFromString","getMinCalendarDate","_maxDate","_formatPattern","_isPattern","jsDate","calDate","toUTCJSDate","localDate","dateFormat","withPadding","_propagateDialogEvent","_afterDialogOpen","_afterDialogClose","_hideHeader","_hideCloseButton","_closeDialogAriaLabel","resizable","_headerTabIndex","_onDragOrResizeKeyDown","_onDragMouseDown","_onResizeMouseDown","stretch","draggable","onPhone","onDesktop","Dialog","_screenResizeHandler","_center","_dragMouseMoveHandler","_onDragMouseMove","_dragMouseUpHandler","_onDragMouseUp","_resizeMouseMoveHandler","_onResizeMouseMove","_resizeMouseUpHandler","_onResizeMouseUp","DialogTemplate","dialogCSS","ariaLabelledById","_movable","_isRTL","_detachResizeHandlers","_attachResizeHandlers","_resizeHandlersAttached","innerWidth","_revertSize","_isHeader","_x","_y","_attachMouseDragHandlers","calcX","calcY","_detachMouseDragHandlers","_dragWithEvent","_resizeWithEvent","newPos","posDirection","minWidth","minHeight","_initialX","_initialY","_initialWidth","_initialHeight","_initialTop","_initialLeft","_minWidth","_minHeight","_attachMouseResizeHandlers","newWidth","newLeft","newHeight","_detachMouseResizeHandlers","TitleLevels","H1","H2","H3","H4","H5","H6","TitleLevel","h1","h2","h3","h4","h5","h6","Title","TitleTemplate","titleCss","normalizedLevel","contentOnlyOnDesktop","ResponsivePopover","ResponsivePopoverCss","allClasses","ui5-responsive-popover-header","ui5-responsive-popover-header-no-title","ResponsivePopoverTemplate","_dialog","show","CalendarPart","_minTimestamp","_maxTimestamp","_timestamp","_localDate","_calendarDate","fromTimestamp","_safelySetTimestamp","oMonthDomRef","prevButton","onPrevButtonClick","_prevButtonText","isMonthButtonHidden","ariaLabelMonthButton","onMonthButtonClick","onMonthButtonKeyDown","onMonthButtonKeyUp","_monthButtonText","hasSecondaryCalendarType","isYearButtonHidden","onYearButtonClick","onYearButtonKeyDown","onYearButtonKeyUp","_yearButtonText","nextButton","onNextButtonClick","_nextButtonText","_secondMonthButtonText","_secondYearButtonText","buttonTextForSecondaryCalendarType","isNextButtonDisabled","isPrevButtonDisabled","previous-press","next-press","show-month-press","show-year-press","CalendarHeader","CalendarHeaderTemplate","monthButtonText","yearButtonText","ui5-calheader-arrowbtn","ui5-calheader-arrowbtn-disabled","calculateWeekNumber","confFirstDayOfWeek","iWeekNum","iWeekDay","oJanFirst","oCheckDate","oThursday","oFirstDayOfYear","iAddDays","oFirstThursday","CalendarSelectionModes","Single","Multiple","Range","CalendarSelectionMode","wrapper","_onmouseover","_dayNames","_weeks","ultraShortName","focusRef","ariaSelected","_isSecondaryCalendarType","secondDay","isHidden","weekNum","selectedDates","selectionMode","hideWeekNumbers","_hidden","_secondTimestamp","navigate","isBetween","num1","num2","DayPicker","DayPickerTemplate","dayPickerCSS","_buildWeeks","_buildDayNames","_getFirstDayOfWeek","monthsNames","secondaryMonthsNames","nonWorkingDayLabel","todayLabel","_getFirstDay","todayDate","calendarDate","tempSecondDate","_getSecondaryDay","DAYS_IN_WEEK","dayOfTheWeek","isFocused","isSelected","_isDaySelected","isSelectedBetween","_isDayInsideSelectionRange","isOtherMonth","isWeekend","_isWeekend","isDisabled","isToday","isSame","isFirstDayOfWeek","nonWorkingAriaLabel","todayAriaLabel","selected","shouldHideWeekNumbers","aDayNamesWide","aDayNamesAbbreviated","dayName","_autoFocus","isShift","_isDayPressed","_getTimestampFromDom","_updateSecondTimestamp","_multipleSelection","_toggleTimestampInSelection","dates","findIndex","_addTimestampToSelection","_removeTimestampFromSelection","start","end","startDate","endDate","hoveredItem","closest","_selectDate","_modifyTimestampBy","isPageUpAlt","isPageDownAlt","_onHomeOrEnd","_setTimestamp","_selectWeek","homePressed","_safelyModifyTimestampBy","iWeekendStart","iWeekendEnd","targetParent","className","daysFromPreviousMonth","firstDay","justify-content","_selectMonth","_months","MonthPicker","MonthPickerTemplate","_buildMonths","months","itemTimestamp","_isOutOfSelectableRange","quarterIndex","PAGE_SIZE","ROW_SIZE","row","minYear","minMonth","maxYear","maxMonth","_selectYear","_years","YearPicker","YearPickerTemplate","_buildYears","oYearFormat","_calculateFirstYear","_lastYear","_firstYear","intervals","toLocalJSDate","intervalIndex","absoluteMaxYear","currentYear","_isDayPickerHidden","_selectedDatesTimestamps","onSelectedDatesChange","onNavigate","_isMonthPickerHidden","onSelectedMonthChange","_isYearPickerHidden","onSelectedYearChange","secondaryCalendarTypeButtonText","_previousButtonDisabled","_nextButtonDisabled","_isHeaderMonthButtonHidden","_headerMonthButtonText","_headerYearButtonText","onHeaderPreviousPress","onHeaderNextPress","onHeaderShowMonthPress","onHeaderShowYearPress","_currentPicker","selected-dates-change","Calendar","CalendarTemplate","calendarCSS","_getTimeStampFromString","selectedValues","valuesInDOM","dateElement","_currentPickerDOM","_hasPreviousPage","_hasNextPage","yearFormat","rangeStart","rangeEnd","_showPreviousPage","_showNextPage","secondYearFormat","secondMonthInfo","_getDisplayedSecondaryMonthText","monthButtonInfo","_getDisplayedSecondaryMonths","secondaryMonthsNamesWide","startMonth","endMonth","textInfo","firstDate","lastDate","_getDaysInMonth","tempCalendarDate","datesValues","ts","_setSelectedDates","isF4Shift","CalendarDateComponent.default","_onInputInput","_onInputSubmit","openIconName","openIconTitle","togglePicker","_isPickerOpen","_isIE","_shouldHideHeader","onResponsivePopoverAfterClose","showHeader","_calendarTimestamp","_calendarSelectionMode","_calendarCurrentPicker","_calendarSelectedDates","showFooter","closePicker","_respPopoverConfig","DatePicker","DatePickerTemplate","DatePickerPopoverTemplate","datePickerCss","datePickerPopoverCss","_getInput","_displayFormat","liveValue","_checkValueValidity","millisecondsUTC","getRoundedTimestamp","dateValueUTC","_toggleAndFocusInput","_modifyDateValue","modifiedDate","formatValue","_updateValueAndFireEvents","normalizeValue","updateValue","executeEvent","_updateValueState","isInValidRange","phone","dateAriaDescription","_respPopover","_canOpenPicker","openPicker","_handleInputClick","_handleInputChange","_handleInputLiveChange","_handleWheel","_timeSelectionValue","hideHours","hideMinutes","hideSeconds","minutesStep","secondsStep","maxHours","maxMinutes","maxSeconds","onTimeSelectionChange","_onfooterkeydown","submitPickers","submitButtonLabel","cancelButtonLabel","_hasHoursSlider","_hasMinutesSlider","_hasSecondsSlider","_hasPeriodsSlider","hoursSliderTitle","hoursArray","_hoursSliderFocused","_hours","onHoursChange","selectSlider","_isCyclic","minutesSliderTitle","minutesArray","_minutesSliderFocused","_minutes","onMinutesChange","secondsSliderTitle","secondsArray","_secondsSliderFocused","_seconds","onSecondsChange","periodSliderTitle","periodsArray","_periodSliderFocused","_period","onPeriodChange","tasks","AnimationQueue","task","then","elementTasks","run","enqueue","defaultDuration","identity","animationConfig","duration","progress","progressCallback","dx","dy","scrollLeft","beforeStart","animationFrame","stop","animate","stopped","promise","reject","timeElapsed","cancelAnimationFrame","catch","oReason","touchEndEventName","ScrollEnablement","containerComponent","mouseMove","ontouchmove","mouseUp","ontouchend","touchStart","ontouchstart","cachedValue","startX","startY","_container","retryCount","retryInterval","containerPainted","disableAnimation","pageX","pageY","_prevDragX","_prevDragY","_canScroll","_isTouchInside","dragX","dragY","deltaX","changedTouches","deltaY","_dragX","label","_onArrowUp","expanded","_onArrowDown","_itemsToShow","_items","cyclic","expand","collapse","WheelSlider","WheelSliderCss","WheelSliderTemplate","_currentElementIndex","_scroller","_updateScrolling","_handleScrollTouchEnd","_timesMultipliedOnCyclic","_buildItemsToShow","elements","querySelectorAll","_selectElementByIndex","dataset","itemIndex","_getCurrentRepetition","_selectElement","ui5-wheelslider-root","ui5-phone","_itemCellHeight","defaultSize","onlyDigitsValue","cellSizeInPx","scrollWhere","offsetIndex","newIndex","_handleArrayBorderReached","currentIndex","itemsCount","scrollBy","repetitionCount","itemsToShow","arrayLength","timeStamp","_prevWheelTimestamp","_itemUp","_itemDown","nextElementIndex","_selectLimitCell","isMax","intexIncrease","generateTimeItemsArray","array","tempString","_currentSlider","sliderChange","TimeSelection","timeSelectionCss","timeSelectionTemplate","_hoursConfiguration","hourFormat","minHour","maxHour","isTwelveHoursFormat","getHoursConfigByFormat","_neededSliders","hoursConfig","timeControls","getTimeControlsByFormat","hoursValueArray","tempValue","hours","validDateValue","minutes","seconds","period","setValue","hasHours","_setCurrentSlider","slider","_currentSliderDOM","_activeSliders","str","currentTarget","activeSliders","activeSlider","ui5-time-selection-root","TimePickerBase","TimePickerCss","TimePickerPopoverTemplate","TimePickerTemplate","TimePickerPopoverCss","_effectiveValue","inputField","_getInputField","_modifyValueBy","TimePicker","RadioButtonGroup","groupName","groups","checkedRadios","radioBtn","hasGroup","enforceSingleSelection","getGroup","createGroup","updateTabOrder","checkedRadio","getCheckedRadioFromGroup","_radioBtn","removeGroup","groupLength","currentItemPosition","nextItemToSelect","_nextSelectable","updateSelectionInGroup","hasCheckedRadio","previousItemToSelect","_previousSelectable","radioBtnToSelect","_deselectRadio","_selectRadio","_checked","nextRadioToSelect","previousRadioToSelect","_groups","_checkedRadios","ariaLabelText","inner","activeRadio","RadioButton","RadioButtonTemplate","radioButtonCss","syncGroup","oldGroup","_name","currentGroup","oldChecked","currentChecked","removeFromGroup","addToGroup","selectNextItem","selectPreviousItem","selectItem","ui5-radio-inner--hoverable","strokeWidth","growing","_exceededTextProps","calcedMaxLength","_oninput","_onchange","showExceededText","mirror","_mirrorText","exceededText","displayValueStateMessagePopover","valueStateMsgPopover","valueStateMsg","_valueStateMessageIcon","hasCustomValueState","rows","growingMaxLines","exceeding","_maxHeight","TextArea","TextAreaTemplate","TextAreaPopoverTemplate","valueStateMessageStyles","_firstRendering","_openValueStateMsgPopover","_fnOnResize","_onResize","_calcExceededText","_tokenizeText","leftCharactersCount","toggleValueStateMessage","openValueStateMsgPopover","nativeTextArea","getInputDomRef","skipFiring","tokenizedText","_mapTokenizedTextToObject","token","last","maxLength","focusDiv","effectiveAriaLabelText","InvisibleMessageModes","Polite","Assertive","politeSpan","assertiveSpan","_focused","Option","stableDomRef","NavigationMode","ItemNavigationBehavior","ItemNavigation","rootWebComponent","_setRootComponent","_initOptions","_init","getItemsCallback","_getItems","_currentIndex","_rowSize","rowSize","_behavior","behavior","_navigationMode","navigationMode","_affectedPropertiesNames","affectedPropertiesNames","_skipItemsSize","skipItemsSize","currentItemIndex","_applyTabIndex","newRowSize","_canNavigate","horizontalNavigationOn","verticalNavigationOn","_handleLeft","_handleRight","_handleHome","_handleEnd","_handlePageUp","_handlePageDown","_focusCurrentItem","itemsLength","firstItemInThisColumnIndex","lastItemInPreviousColumnIndex","ceil","firstItemInNextColumnIndex","homeEndRange","_handlePageUpFlat","_handlePageDownFlat","items","currentItem","_getCurrentItem","getTabbables","nodes","tabbables","tabbablesNodes","isNodeTabbable","debounceInterval","ListModes","SingleSelect","SingleSelectBegin","SingleSelectEnd","SingleSelectAuto","MultiSelect","Delete","ListMode","GrowingModes","Scroll","GrowingMode","ListGrowingMode","ListSeparatorsTypes","All","Inner","ListSeparators","BusyIndicatorSizes","Small","Medium","Large","BusyIndicatorSize","_isBusy","ariaTitle","labelId","_redirectFocus","delay","BusyIndicator","_keydownHandler","_handleKeydown","_preventEventHandler","_preventEvent","_busyTimeoutId","busyIndicatorCss","BusyIndicatorTemplate","ui5-busy-indicator-root","ui5-busy-indicator-root--ie","focusForward","shouldRenderH1","hasData","ariaLabelModeText","accessibleRole","ariaLabelTxt","showNoDataText","growsWithButton","footerText","busy","headerID","noDataTabIndex","noDataText","_loadMoreActive","_onLoadMoreClick","_onLoadMoreKeydown","_onLoadMoreKeyup","_onLoadMoreMousedown","_onLoadMoreMouseup","_growingButtonText","busyDelay","busyInd","indent","separators","_inViewport","item-click","item-close","item-toggle","item-delete","selection-change","selectedItems","previouslySelectedItems","selectionComponentPressed","load-more","List","ListTemplate","listCss","initItemNavigation","_previouslyFocusedItem","_forwardingFocus","_previouslySelectedItem","resizeListenerAttached","listEndObserved","onItemPress","onItemClose","onItemToggle","onItemFocused","onForwardAfter","onForwardBefore","onSelectionRequested","focusUploadCollectionItem","checkListInViewport","initialIntersection","unobserveListEnd","prepareListItems","growsOnScroll","observeListEnd","grows","attachForResize","modeLabelID","listEndDOM","isDelete","isSingleSelect","isMultiSelect","busyIndPosition","position","_itemNavigation","getEnabledItems","slottedItems","isLastChild","showBottomBorder","_mode","hasBorder","getIntersectionObserver","growingIntersectionObserver","isIntersecting","loadMore","getSelectedItems","selectionChange","_selectionRequested","deselectSelectedItems","handleSingleSelect","_handleTabNext","setPreviouslyFocusedItem","focusAfterElement","isElementInView","lastTabbableEl","getNormalizedTarget","headerToolbar","getHeaderToolbarLastTabbableElement","getFirstItem","focusFirstSelectedItem","getPreviouslyFocusedItem","focusPreviouslyFocusedItem","focusFirstItem","isForwardElement","getForwardingFocus","setForwardingFocus","nodeId","afterElement","getAfterElement","beforeElement","getBeforeElement","setCurrentItem","pressedItem","focusBeforeElement","firstItem","previouslyFocusedItem","firstSelectedItem","forwardingFocus","_afterElement","_beforeElement","getLastTabbableElement","IntersectionObserver","onInteresection","rootMargin","threshold","ListItemTypes","Inactive","Active","Detail","ListItemType","_forward-after","_forward-before","ListItemBase","_handleTabPrevious","shouldForwardTabAfter","shouldForwardTabBefore","eventData","aContent","ui5-li-root","ui5-li--focusable","actionable","detail-click","_press","_selection-requested","ListItem","deactivateByKey","deactivate","itemActive","activate","fireItemPress","modeDelete","onDelete","isInactive","placeSelectionElementBefore","placeSelectionElementAfter","modeSingleSelect","modeMultiSelect","renderDeleteButton","disableDeleteButton","typeDetail","typeActive","ariaSelectedText","deleteText","_accInfo","ariaLevel","ariaLabelRadioButton","_role","_ariaHasPopup","hasImage","accessibleNameText","initials","validInitials","AvatarSizes","XS","XL","AvatarSize","AvatarShapes","Circle","Square","AvatarShape","AvatarColorSchemes","Accent1","Accent2","Accent3","Accent4","Accent5","Accent6","Accent7","Accent8","Accent9","Accent10","Placeholder","AvatarColorScheme","shape","_size","colorScheme","_colorScheme","_hasImage","Avatar","AvatarCss","AvatarTemplate","_effectiveSize","_effectiveBackgroundColor","_getAriaHasPopup","posinset","setsize","displayImage","displayIconBegin","displayIconEnd","listItemAriaLabel","onSingleSelectionComponentPress","onMultiSelectionComponentPress","onDetailClick","hasTitle","StandardListItem","StandardListItemTemplate","selectedOptionIcon","_handleKeyboardNavigation","_text","_iconPressed","shouldOpenValueStateMessagePopover","_afterOpen","_beforeOpen","_afterClose","_itemMousedown","_handleItemPress","_syncedOptions","_toggleRespPopover","hasValueStateText","responsivePopoverHeader","selectedOption","Select","SelectTemplate","SelectPopoverTemplate","selectCss","SelectPopoverCss","_selectedIndex","_selectedIndexBeforeOpen","_escapePressed","_lastSelectedOption","_typedChars","_typingTimeoutID","_syncSelection","toggleValueStatePopover","_attachRealDomRefs","_filteredItems","option","lastSelectedOptionIndex","firstEnabledOptionIndex","syncOpts","opt","_currentlySelectedOption","_handleHomeKey","_handleEndKey","_handleSelectionChange","_handleArrowNavigation","typedCharacter","_selectTypedItem","itemToSelect","_searchNextItemByText","_getSelectedItemIndex","_changeSelectedItem","orderedOptions","optionsAfterSelected","optionsBeforeSelected","selectedItemIndex","_select","isDownKey","_getNextOptionIndex","_getPreviousOptionIndex","oldIndex","selectedItem","_currentSelectedItem","ui5-valuestatemessage-popover","optionsCount","itemPositionText","span","InvisibleMessageMode","announce","openValueStatePopover","closeValueStatePopover","copyDefaultProperties","nativeInputUpdateCallback","needsNativeInput","nativeInputChangeCallback","_type","opacity","submit","importAndCheck","import","importCldrJson","loadAndCheck","loadThemeProperties","importMessageBundle","toGregorianArguments","toBuddhist","oGregorian","iEraStartYear","toGregorian","oBuddhist","_getBuddhist","_setBuddhist","_getUTCBuddhist","_setUTCBuddhist","oCustomizationMap","aSupportedIslamicCalendarTypes","toIslamic","iIslamicYear","iIslamicMonth","iIslamicDay","iMonths","iDays","iLeapAdj","iJulianDay","iGregorianYear","iGregorianMonth","iGregorianDay","isGregorianLeapYear","GREGORIAN_EPOCH_DAYS","monthStart","getCustomMonthStartDays","oIslamic","iDayOfYear","tjd2","iLeapAdj2","iJulianDayNoon","iDaysSinceGregorianEpoch","iQuadricent","iQuadricentNormalized","mod","iCent","iCentNormalized","iQuad","iQuadNormalized","iYearIndex","aGregorianArgs","initCustomizationMap","sDateFormat","oCustomizationJSON","parseDate","gregDate","iIslamicMonthStartDays","iIslamicMonths","islamicMonthStart","stringify","sDate","_getIslamic","_setIslamic","_getUTCIslamic","_setUTCIslamic","toJapanese","oJapanese","vYear","_getJapanese","_setJapanese","_getUTCJapanese","_setUTCJapanese","toPersian","jdn","jd","jm","gy","d2g","jy","jalCal","jdn1f","g2d","march","div","leap","d2j","oPersian","j2d","NaN","jump","breaks","bl","leapJ","jp","gm","gd","_getPersian","_setPersian","_getUTCPersian","_setUTCPersian"],"mappings":"AAAA,MAAMA,EACLC,cACCC,KAAKC,eAAiB,IAAIC,IAG3BH,YAAYI,EAAWC,GACtB,MAAMC,EAAgBL,KAAKC,eACrBK,EAAiBD,EAAcE,IAAIJ,GAEpCK,MAAMC,QAAQH,GAKdA,EAAeI,SAASN,IAC5BE,EAAeK,KAAKP,GALpBC,EAAcO,IAAIT,EAAW,CAACC,IAShCL,YAAYI,EAAWC,GACtB,MAAMC,EAAgBL,KAAKC,eACrBK,EAAiBD,EAAcE,IAAIJ,GAEzC,IAAKG,EACJ,OAED,MAAMO,EAAoBP,EAAeQ,QAAQV,IAEtB,IAAvBS,GACHP,EAAeS,OAAOF,EAAmB,GAGZ,IAA1BP,EAAeU,QAClBX,EAAcY,OAAOd,GAWvBJ,UAAUI,EAAWe,GACpB,MACMZ,EADgBN,KAAKC,eACUM,IAAIJ,GAEzC,OAAKG,EAIEA,EAAea,IAAIC,GAClBA,EAAGC,KAAKrB,KAAMkB,IAJd,GAeTnB,eAAeI,EAAWe,GACzB,OAAOI,QAAQC,IAAIvB,KAAKwB,UAAUrB,EAAWe,IAG9CnB,kBAAkBI,EAAWC,GAC5B,MACME,EADgBN,KAAKC,eACUM,IAAIJ,GAEzC,QAAKG,GAIEA,EAAeI,SAASN,GAGhCL,aAAaI,GACZ,QAASH,KAAKC,eAAeM,IAAIJ,IC/EnC,MAAMsB,EAAaC,IAClB,MAAMC,EAAM,GAIZ,OAHAD,EAAEE,QAAQC,IACTF,EAAIhB,KAAKkB,KAEHF,GCJFG,EAAc,IAAIC,IAClBC,EAAW,IAAID,IACrB,IAAIE,EAEJ,MAAMC,EAAcC,IACnBL,EAAYM,IAAID,IAqBXE,EAA6B,KAClCC,QAAQC,KAAK,2FAA2Fd,EAAWO,GAAUQ,KAAK,SAClIR,EAASS,SC9BJC,EAAc,IAAIX,ICKlBY,EAAqB,IAAIZ,IACzBa,EAAgB,IAAI9C,EAEpB+C,EAA2B,ICNjC,MACC9C,cACCC,KAAK8C,KAAO,GACZ9C,KAAK+C,OAAS,IAAIhB,IAGnBhC,IAAIiD,GACChD,KAAK+C,OAAOE,IAAID,KAIpBhD,KAAK8C,KAAKnC,KAAKqC,GACfhD,KAAK+C,OAAOX,IAAIY,IAGjBjD,OAAOiD,GACDhD,KAAK+C,OAAOE,IAAID,KAIrBhD,KAAK8C,KAAO9C,KAAK8C,KAAKI,OAAOrB,GAAQA,IAASmB,GAC9ChD,KAAK+C,OAAO9B,OAAO+B,IAGpBjD,QACC,MAAMiD,EAAehD,KAAK8C,KAAKK,QAC/B,GAAIH,EAEH,OADAhD,KAAK+C,OAAO9B,OAAO+B,GACZA,EAITjD,UACC,OAA4B,IAArBC,KAAK8C,KAAK9B,OAGlBjB,QAAQiD,GACP,OAAOhD,KAAK+C,OAAOE,IAAID,GASxBjD,QAAQqD,GACP,IAAIJ,EACJ,MAAMK,EAAQ,IAAInD,IAGlB,IADA8C,EAAehD,KAAKmD,QACbH,GAAc,CACpB,MAAMM,EAAiBD,EAAM9C,IAAIyC,IAAiB,EAClD,GAAIM,EAvDmB,GAwDtB,MAAM,IAAIC,MAAM,wEAEjBH,EAASJ,GACTK,EAAMzC,IAAIoC,EAAcM,EAAiB,GACzCN,EAAehD,KAAKmD,WDlDvB,IAAIK,EACHC,EAEGC,EAEAC,EAQJ,MAAMC,EAAiBC,MAAAA,IAEtBhB,EAAyBT,IAAIY,SAGvBc,KAQDC,EAAoBf,IACzBJ,EAAcpB,UAAU,wBAAyBwB,GACjDL,EAAmBP,IAAIY,GACvBA,EAAagB,WAgBRF,EAAqBD,UACrBF,IACJA,EAAe,IAAIrC,QAAQ2C,IAC1BC,OAAOC,sBAAsB,KAI5BtB,EAAyBuB,QAAQL,GAIjCJ,EAAe,KACfM,IAGKP,IACJA,EAAwBW,WAAW,KAClCX,OAAwBY,EACpBzB,EAAyB0B,WAC5BC,KAEC,iBAMDb,GAwBDc,EAAkC,KACvC,MAAMC,EF5FCjD,EAAWK,GE4F6BX,IAAIgB,GAAOwC,eAAeC,YAAYzC,IACrF,OAAOb,QAAQC,IAAImD,IAGdG,EAAiBhB,gBAChBY,UAvBFjB,IAIJA,EAAoB,IAAIlC,QAAQ2C,IAC/BR,EAA2BQ,EAC3BC,OAAOC,sBAAsB,KACxBtB,EAAyB0B,YAC5Bf,OAAoBc,EACpBL,SAKIT,KAaFgB,EAAsB,KACtB3B,EAAyB0B,WAK1Bd,IACHA,IACAA,OAA2Ba,EAC3Bd,OAAoBc,IAoBhBQ,EAAyBjB,MAAAA,IAC9BlB,EAAmBf,QAAQmD,IAC1B,MAAM5C,EAAM4C,EAAQC,YAAYC,cAAcC,SACxCC,GD9IWC,EC8IWL,EAAQC,YD7I9BtC,EAAYO,IAAImC,IADLA,IAAAA,EC+IjB,MAAMC,EAAgBN,EAAQC,YAAYC,cAAcK,kBAClDC,EAAaR,EAAQC,YAAYC,cAAcO,iBAChDC,GAAYA,EAAQtD,MAAQA,GAASsD,EAAQN,UAAYA,GAAcM,EAAQJ,eAAiBA,GAAmBI,EAAQF,YAAcA,IAC7I3B,EAAemB,WAGXF,KE3JDa,EAA8B,CAACvD,EAAKwD,EAAgBC,SAASC,QAClE,IAAIC,EAAKF,SAASG,cAAc5D,GAEhC,OAAI2D,IAIJA,EAAKF,SAASI,cAAc7D,GAErBwD,EAAcM,aAAaH,EAAIH,EAAcO,cCI/CC,EAAoB,CAACC,EAAWC,KACrC,MAAMC,EAAQF,EAAUG,MAAM,KAC9B,IAAIC,EAboCd,EAA4B,uBAAwBE,SAASa,MAerG,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAMtF,OAAQ0F,IAAK,CACtC,MAAMC,EAAOL,EAAMI,GACbE,EAAWF,IAAMJ,EAAMtF,OAAS,EACjC6F,OAAOC,UAAUC,eAAe1F,KAAKmF,EAASG,KAClDH,EAAQG,GAAQC,EAAWP,EAAe,IAE3CG,EAAUA,EAAQG,GAGnB,OAAOH,GCtBF5D,EAAgBuD,EAAkB,4BAA6B,IAAIrG,GAGnEkH,EAAwBC,IAC7BrE,EAAcsE,YAHW,kBAGoBD,IAWxCE,EAAehB,EAAkB,2BAA4B,IAKnE,IAAIiB,EACJJ,EAAsB7E,IAChBiF,GACJtC,EAAuB,CAAE3C,IAAAA,MAI3B,MC7BMS,EAAgB,IAAI9C,ED6BL,EAACqC,EAAKkF,KACrBF,EAAahF,KACjBgF,EAAahF,GAAO,IAErBgF,EAAahF,GAAKxB,KAAK0G,GAEvBD,GAAe,EACf,IAvB2BjF,CAAAA,IACpBS,EAAcpB,UAXI,kBAWyBW,IA0BjDmF,CAAoBnF,WAEpBiF,GAAe,EAGTtC,EAAuB,CAAE3C,IAAAA,KE7CjCoF,CAAa,aAAc;;ACF3B,MAAMC,EAAW,IAAItH,IAEfuH,EAAkB,CAACC,EAAMC,KAC9BH,EAAS5G,IAAI8G,EAAMC,IAGdC,EAAaF,GACXF,EAASjH,IAAImH,GCPrB,IAAIG,EAAa,GACbC,EAASD,EAAWd,eACpBgB,EAAWF,EAAWE,SACtBC,EAAaF,EAAOC,SACpBE,EAAuBD,EAAW3G,KAAKwF,QACvCqB,EAAkB,SAAUC,GAC9B,IAAIC,EAAOC,EACX,SAAKF,GAA8B,oBAAvBJ,EAAS1G,KAAK8G,QAG1BC,EAAQvB,OAAOyB,eAAeH,KAKP,mBADvBE,EAAOP,EAAOzG,KAAK+G,EAAO,gBAAkBA,EAAMpD,cACbgD,EAAW3G,KAAKgH,KAAUJ,ICd7DM,EAAS1B,OAAO2B,OAAO,MACvBC,EAAU,WACV,IAAIC,EAAKC,EAAaC,EAAMlB,EAAMmB,EAASC,EAAOC,EAASC,UAAU,IAAM,GAAItC,EAAI,EAAG1F,EAASgI,UAAUhI,OAAQiI,EAAOD,UAAU,KAAM,EAAOE,EAAYF,UAAU,QAAK1E,EAAYiE,EAItL,IAHsB,iBAAXQ,GAAyC,mBAAXA,IACrCA,EAAS,IAENrC,EAAI1F,EAAQ0F,IACf,GAAgC,OAA3BmC,EAAUG,UAAUtC,IACrB,IAAKgB,KAAQmB,EACTH,EAAMK,EAAOrB,GACbkB,EAAOC,EAAQnB,GACF,cAATA,GAAwBqB,IAAWH,IAGnCK,GAAQL,IAASO,EAAcP,KAAUD,EAAcnI,MAAMC,QAAQmI,MACjED,GACAA,GAAc,EACdG,EAAQJ,GAAOlI,MAAMC,QAAQiI,GAAOA,EAAM,IAE1CI,EAAQJ,GAAOS,EAAcT,GAAOA,EAAM,GAE9CK,EAAOrB,GAAQe,EAAQQ,EAAMD,UAAU,GAAIF,EAAOF,IAC3CA,IAASM,IAChBH,EAAOrB,GAAQkB,IAK/B,OAAOG,GC5BPN,EAAU,WACV,IAAIW,EAAO,EACP,GACA,GAGJ,OADAA,EAAKzI,KAAK0I,MAAMD,EAAMJ,WACfM,EAAOD,MAAM,KAAMD,ICP9B,MAAMG,EAAkiB,CAACC,QAAU,KAAKjI,IAAM,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,QAAQ,UAEpgCkI,EAF4B,CAACD,QAAU,cAAcjI,IAAM,CAAC,cAAc,mBAAmB,aAAa,iBAAiB,iBAAiB,kBAAkB,kBAAkB,cAAc,oBAEvJiI,QACvCE,EAH8N,CAACF,QAAU,KAAKjI,IAAM,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,eAAe,gBAAgB,eAAe,KAAK,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,UAGjeiI,QAC7CG,EAAiBJ,EAAwBC,QACzCI,EAAoBL,EAAwBhI,ICDlD,IAAIsI,GAAc,EAEdC,EAAgB,CACnBC,cAAe,OACfC,MAAOP,EACPQ,IAAK,KACLC,SAAU,KACVC,aAAc,KACdC,YAAY,EACZC,eAAgB,GAChBC,sBAAsB,GASvB,MAwCMC,EAAiB,IAAIrK,IAC3BqK,EAAe3J,IAAI,QAAQ,GAC3B2J,EAAe3J,IAAI,SAAS,GAE5B,MAiDM4J,EAAgB,CAACC,EAAKC,EAAOC,KAClC,MAAMC,EAAiBF,EAAMG,cACvBC,EAAQL,EAAIlE,MAAM,GAAGoE,MAAc,GAErCJ,EAAetH,IAAIyH,KACtBA,EAAQH,EAAehK,IAAIqK,IAG5BF,EAhB2B,EAACI,EAAOJ,IACrB,UAAVI,GAAqBJ,EAAMhK,SAAS,KAChCgK,EAAMnE,MAAM,KAAK,GAGlBmE,EAWCK,CAAoBD,EAAOJ,GAEnCZ,EAAcgB,GAASJ,GAalBM,EAAoB,KACrBnB,IAzE4B,MAChC,MAAMoB,EAAerF,SAASG,cAAc,sBAAwBH,SAASG,cAAc,6BAE3F,IAAImF,EAEJ,GAAID,EAAc,CACjB,IACCC,EAAaC,KAAKC,MAAMH,EAAaI,WACpC,MAAOC,GACRhJ,QAAQC,KAAK,wDAGV2I,IACHpB,EAAgByB,EAAMzB,EAAeoB,MAiEvCM,GA5D0B,MAC1B,MAAMC,EAAS,IAAIC,gBAAgBxH,OAAOyH,SAASC,QAGnDH,EAAO7J,QAAQ,CAAC8I,EAAOD,KACtB,MAAMnE,EAAQmE,EAAIlE,MAAM,QAAQvF,OAClB,IAAVsF,GAAeA,IAAUmE,EAAIlE,MAAM,WAAWvF,QAIlDwJ,EAAcC,EAAKC,EAAO,SAI3Be,EAAO7J,QAAQ,CAAC8I,EAAOD,KACjBA,EAAIoB,WAAW,WAIpBrB,EAAcC,EAAKC,EAAO,aA4C3BoB,GAnBiC,MACjC,MAAMC,EAAiBnE,EAAW,kBAClC,IAAKmE,IAAmBA,EAAeC,WACtC,OAGD,MAAMC,EAAgBF,EAAeG,iCACrCpC,EAAgByB,EAAMzB,EAAemC,IAerCE,GAEAtC,GAAc,ICvJTuC,EAAc,IAAIlM,IAClBmM,EAAU,IAAInM,IACdoM,EAAqB,IAAIvK,IACzBwK,GAAmB,IAAIxK,IAqBvByK,GAAgC,CAACC,EAAaC,EAAWC,KAC9DN,EAAQzL,IAAI,GAAG6L,KAAeC,IAAaC,GAC3CL,EAAmBlK,IAAIqK,GACvBF,GAAiBnK,IAAIsK,IAGhBE,GAAqB/I,MAAO4I,EAAaC,KAC9C,MAAMG,EAAQT,EAAY7L,IAAI,GAAGkM,KAAeC,KAChD,QAAcpI,IAAVuI,EACH,OAAOA,EAGR,IAAKN,GAAiBtJ,IAAIyJ,GAAY,CACrC,MAAMI,EAAe,IAAIP,GAAiBQ,UAAUvK,KAAK,MAEzD,OADAF,QAAQC,KAAK,+DAA+DkH,6BAAyCqD,KAC9GV,EAAY7L,IAAI,GAAGkM,KAAehD,KAG1C,MAAMkD,EAASN,EAAQ9L,IAAI,GAAGkM,KAAeC,KAC7C,IAAKC,EAGJ,YADArK,QAAQ0K,MAAM,UAAUN,kCAA0CD,MAGnE,IAAIvL,EACJ,IACCA,QAAayL,EAAOD,GACnB,MAAOO,GAER,YADA3K,QAAQ0K,MAAMP,EAAaQ,EAAEC,SAG9B,MAAMC,EAAajM,EAAKkM,GAAKlM,EAG7B,OADAkL,EAAYxL,IAAI,GAAG6L,KAAeC,IAAaS,GACxCA,GAGFE,GAAwB,IACtBf,EC1DFgB,GAAoB,CAACC,EAASC,EAAa,MAChD,MAAMX,EAAQjH,SAASI,cAAc,SAOrC,OANA6G,EAAMY,KAAO,WAEb5G,OAAO6G,QAAQF,GAAY5L,QAAQ+L,GAAQd,EAAMe,gBAAgBD,IAEjEd,EAAMgB,YAAcN,EACpB3H,SAASa,KAAKqH,YAAYjB,GACnBA,GCVFkB,GAAa,CAACrG,EAAMgD,IAClBA,EAAQ,GAAGhD,KAAQgD,IAAUhD,EAG/BsG,GAAc,CAAC9M,EAAMwG,EAAMgD,EAAQ,MACxC,MAAMuD,EAA0B,iBAAT/M,EAAoBA,EAAOA,EAAK+M,QAEvD,GAKWrI,SAASsI,mBAAoB,CACvC,MAAMC,EAAa,IAAIC,cACvBD,EAAWE,YAAYJ,GACvBE,EAAWG,YAAcP,GAAWrG,EAAMgD,GAC1C9E,SAASsI,mBAAqB,IAAItI,SAASsI,mBAAoBC,OACzD,CACN,MAAMX,EAAa,GACnBA,EAAW9F,GAAQgD,EACnB4C,GAAkBW,EAAST,KAgBvBe,GAAW,CAAC7G,EAAMgD,EAAQ,KAK3B9E,SAASsI,qBACHtI,SAASsI,mBAAmBM,KAAKC,GAAMA,EAAGH,cAAgBP,GAAWrG,EAAMgD,MAG5E9E,SAASG,cAAc,cAAc2B,MAASgD,OAmBlDgE,GAAsB,CAACxN,EAAMwG,EAAMgD,EAAQ,MAC5C6D,GAAS7G,EAAMgD,GAzCA,EAACxJ,EAAMwG,EAAMgD,EAAQ,MACxC,MAAMuD,EAA0B,iBAAT/M,EAAoBA,EAAOA,EAAK+M,QAI5CrI,SAASsI,mBACnBtI,SAASsI,mBAAmBM,KAAKC,GAAMA,EAAGH,cAAgBP,GAAWrG,EAAMgD,IAAQ2D,YAAYJ,GAAW,IAE1GrI,SAASG,cAAc,cAAc2B,MAASgD,OAAWmD,YAAcI,GAAW,IAkClFU,CAAYzN,EAAMwG,EAAMgD,GAExBsD,GAAY9M,EAAMwG,EAAMgD,ICfpBkE,GAAwB,KAC7B,MAAMC,EA1DkB,MAExB,IAAI/I,EAAKF,SAASG,cAAc,mCAAqCH,SAASG,cAAc,qCAC5F,GAAID,EACH,OAAOgJ,iBAAiBhJ,GAAIiJ,gBAG7BjJ,EAAKF,SAASI,cAAc,QAC5BF,EAAG+G,MAAMmC,QAAU,OACnBlJ,EAAGmJ,UAAU7M,IAAI,iCACjB0D,EAAGmJ,UAAU7M,IAAI,oCACjBwD,SAASC,KAAKiI,YAAYhI,GAC1B,MAAMoJ,EAAWJ,iBAAiBhJ,GAAIiJ,gBAGtC,OAFAnJ,SAASC,KAAKsJ,YAAYrJ,GAEnBoJ,GA2CgBE,GACvB,GAAKP,GAAqC,SAAnBA,EAKvB,MAzB4BK,CAAAA,IAC5B,IAAIxC,EACA2C,EAEJ,IACC3C,EAAYwC,EAASI,KAAKC,MAAM,6BAA6B,GAC7DF,EAAgBH,EAASM,QAAQ,GAChC,MAAOC,GAER,YADAnN,QAAQC,KAAK,kCAAmC2M,GAIjD,MAAO,CACNxC,UAAAA,EACA2C,cAAAA,IAWMK,CA9CmBb,CAAAA,IAC1B,MAAMpD,EAAS,+CAA+CkE,KAAKd,GACnE,GAAIpD,GAAUA,EAAOzK,QAAU,EAAG,CACjC,IAAI4O,EAAenE,EAAO,GAE1B,GADAmE,EAAeA,EAAaC,QAAQ,OAAQ,KACb,MAA3BD,EAAaE,OAAO,IAA+D,MAAjDF,EAAaE,OAAOF,EAAa5O,OAAS,GAC/E,IACC4O,EAAeG,mBAAmBH,GACjC,MAAOH,GAER,YADAnN,QAAQC,KAAK,iEAIf,IACC,OAAO4I,KAAKC,MAAMwE,GACjB,MAAOH,GACRnN,QAAQC,KAAK,4DA6BEyN,CAAmBnB,KCzD/BoB,GAAqB,6BAOrBC,GAAgBrM,MAAAA,IACrB,IAL2BwJ,KACDpK,IAAIgN,IAK7B,OAGD,MAAM1C,QAAgBX,GAAmBqD,GAAoBjG,GAC7D0E,GAAoBnB,EAAS,4BAA6B0C,KAGrDE,GAAkB,KF8BJ,EAACzI,EAAMgD,EAAQ,MAClC,GAKW9E,SAASsI,mBACnBtI,SAASsI,mBAAqBtI,SAASsI,mBAAmBhL,OAAOuL,GAAMA,EAAGH,cAAgBP,GAAWrG,EAAMgD,QACrG,CACN,MAAM0F,EAAexK,SAASG,cAAc,gBAAgB2B,MAASgD,OACjE0F,GACHA,EAAazK,cAAcwJ,YAAYiB,KExCzCC,CAAY,4BAA6BJ,KAkCpCK,GAAazM,MAAAA,IAClB,MAAM0M,EApBqB,MAE3B,MAAMA,EAAW3B,KACjB,GAAI2B,EACH,OAAOA,EAIR,MAAMxE,EAAiBnE,EAAW,kBAClC,GAAImE,EAAgB,CAEnB,GADmBA,EAAeyE,qBAEjC,MAAO,CACN9D,UAAWX,EAAeG,iCAAiClC,SAO7CyG,GAGZF,GAAYvG,IAAUuG,EAAS7D,UAGnCyD,WAFMD,GAAclG,GAMrB,MAAM0G,EJDmB1G,CAAAA,GAClBuC,GAAiBtJ,IAAI+G,GIAN2G,CAAkB3G,GAASA,EAAQuG,GAAYA,EAASlB,mBA1CjDxL,OAAAA,IACFwJ,KACRzL,QAAQiC,MAAAA,IAC1B,GAAI4I,IAAgBwD,GACnB,OAGD,MAAM1C,QAAgBX,GAAmBH,EAAazC,GACtD0E,GAAoBnB,EAAS,4BAA6Bd,MAmCrDmE,CAAsBF,GZxDL1G,CAAAA,IAChBpH,EAAcpB,UAXD,cAWyBwI,IYyD7C6G,CAAgB7G,ICnEjB,IAAIA,GAEJ,MAAM8G,GAAW,UACFxM,IAAV0F,KNiBJgB,IMhBChB,GNiBMF,EAAcE,OMddA,IAqBF+G,GAAUC,IACf,MAAMC,EAAeH,KACrB,OAAOG,IAAiBD,GAAUC,IAAiB,GAAGD,SClCjDE,GAAmB,KACxB,IAAInM,EAAUa,SAASuL,cAEvB,KAAOpM,GAAWA,EAAQqM,YAAcrM,EAAQqM,WAAWD,eAC1DpM,EAAUA,EAAQqM,WAAWD,cAG9B,OAAOpM,GCHFsM,GAAiBlL,EAAkB,iBAAkB,IAC3DkL,GAAeC,cAAgBD,GAAeC,eAAiB,IAE/D,MAAMC,GAAoB,KACzB,MAAMxM,EAAUmM,KAChB,OAAQnM,GAAoC,mBAAlBA,EAAQyM,MAAwBzM,EAAU,MAa/D0M,GAAwB,CAACC,EAAQC,KACtC,IAAIC,EAAcF,EAMlB,GAJIE,EAAYR,aACfQ,EAAcpR,MAAMqR,KAAKD,EAAYR,WAAWU,UAAUtD,KAAKuD,GAAqB,UAAhBA,EAAEC,YAGnEJ,IAAgBD,EACnB,OAAO,EAGR,MAAMM,EAAuC,SAA1BL,EAAYI,UAAuBJ,EAAYM,gBAAkBN,EAAYE,SAEhG,OAAIG,EACIzR,MAAMqR,KAAKI,GAAYE,KAAKJ,GAAKN,GAAsBM,EAAGJ,SADlE,GAUKS,GAAgB,CAACC,EAAOC,KAC7B,IAAIC,EACAC,EAEJ,GAAIH,EAAMI,QAAS,CAClB,MAAMC,EAAQL,EAAMI,QAAQ,GAC5BF,EAAIG,EAAMC,QACVH,EAAIE,EAAME,aAEVL,EAAIF,EAAMM,QACVH,EAAIH,EAAMO,QAGX,MAlBqB,EAACL,EAAGC,EAAGF,IACrBC,GAAKD,EAAKO,MAAQN,GAAKD,EAAKQ,OAC/BN,GAAKF,EAAKS,KAAOP,GAAKF,EAAKU,OAgBxBC,CAAcV,EAAGC,EAAGF,IAGtBY,GAAuBpN,IAC5B,MAAM4L,EAAS5L,EAAGH,eAAkBG,EAAGqN,aAAerN,EAAGqN,cAAcC,KAEvE,OAAI1B,IAAYA,EAAO2B,QAAU3B,EAAO4B,cAAkB5B,EAAO6B,MAAQ7B,EAAO4B,cAAiB5B,IAAW9L,SAAS4N,iBAC7G9B,EAGDwB,GAAqBxB,IAGvB+B,GAAgB,KACrB,MAAM1H,EAAiBnE,EAAW,kBAClC,OAAImE,GAAkBA,EAAeC,WAC7BD,EAAe0H,iBAGvBpC,GAAeC,eAAiB,EACzBD,GAAeC,gBAGjBoC,GAAmB,IACjBrC,GAAeC,cC9EjBqC,GAAU,KACf,MAAMC,EAAM1P,OAAO0P,IAEnB,OADaA,GAAOA,EAAIC,IAAgC,mBAAnBD,EAAIC,GAAGF,SAA0BC,EAAIC,GAAGF,WAwDxEG,GAAuB,KAC5B,MAAMC,EAAOJ,KACPK,EAASD,EAAKE,mBACpBF,EAAKG,mBAAmBrQ,eHnDRA,OAAAA,IACZmG,KAAUmK,IAIdnK,GAAQmK,QAGF7D,GAAWtG,UACXlF,EAAuB,CAAES,YAAY,MG2CpC6O,CAASJ,EAAOlD,eA0DxBrJ,EAAgB,iBAXO,CACtBuE,SAxGgB,MACP2H,KAwGTU,KArGY,KACZ,MAAMN,EAAOJ,KACb,OAAKI,EAIE,IAAIzS,QAAQ2C,IAClB8P,EAAKO,WAAW,KACfpQ,OAAO0P,IAAIC,GAAGU,QAAQ,CAAC,yBAA0B,qBAAsB,CAACC,EAAYC,KACnFA,EAAMC,iBAAiBhB,MACvBzP,UAPK3C,QAAQ2C,WAmGhBiI,+BAtFsC,KACtC,MAAM6H,EAAOJ,KACb,IAAKI,EACJ,OAGD,MAAMC,EAASD,EAAKE,mBACdO,EAAatQ,OAAO0P,IAAIC,GAAGU,QAAQ,0BAEzC,MAAO,CACNxK,cAAeiK,EAAOW,mBACtBzK,SAAU8J,EAAOY,cACjB5K,MAAOgK,EAAOlD,WACd7G,IAAK+J,EAAOa,SACZ1K,aAAc6J,EAAOc,kBACrBzK,eAAgB,CACf0K,eAAgBP,EAAaA,EAAWQ,YAAYhB,EAAOiB,aAAaC,yBAAsB5Q,KAuEhG6Q,oBAlE2B,KAC3B,MAAMpB,EAAOJ,KACb,IAAKI,EACJ,OAGD,MAAMC,EAASD,EAAKE,mBAEpB,OADmB/P,OAAO0P,IAAIC,GAAGU,QAAQ,0BACvBS,YAAYhB,EAAOiB,aAAaG,QA2DlDC,gBAhDuB,KACV1B,MAKbG,MA2CAtD,mBAxC0B,KAE1B,IADamD,KAEZ,OAGD,MAAM2B,EAAO,IAAI1P,SAASa,KAAKqL,UAAUtD,KAAK1I,GAAgB,6BAAVA,EAAGyP,IACvD,OAAKD,IAIIA,EAAKE,KAAKjG,MAAM,iCAJzB,iBAOqB,KAErB,GADaoE,KAMb,OADczP,OAAO0P,IAAIC,GAAGU,QAAQ,qBACvBd,iBAqBbiB,iBAlBwB,KACXf,MAKCzP,OAAO0P,IAAIC,GAAGU,QAAQ,qBAC9BG,iBAAiBhB,SC9GxB,OAAe,CACdjH,YAAa,0BACbgJ,SAAU,eACVxH,QAAS,2sDCHK,CACdxB,YAAa,0BACbgJ,SAAU,uBACVxH,QAAS,kOCcJyH,GAAqB,KACrBnH,GAAS,uBACbP,GAAY2H,GAAa,uBAIrBC,GAAyB,KACzBrH,GAAS,gCACbP,GAAY6H,GAAqB,gCCzBnC,OAAe,CACdpJ,YAAa,0BACbgJ,SAAU,oBACVxH,QAAS,8LCKV,IAAI6H,IAAS,EACb,MAAMlT,GAAgB,IAAI9C,EAWpBiW,GAAOlS,UACZ,GAAIiS,GACH,OAGD,MAAM/J,EAAiBnE,EAAW,kBAC9BmE,SACGA,EAAesI,aC1Bf,IAAI/S,QAAQ2C,IACd2B,SAASC,KACZ5B,IAEA2B,SAASoQ,iBAAiB,mBAAoB,KAC7C/R,cDyBGqM,GAAWQ,MACjB/E,GAAkBA,EAAesJ,kBF3BX,MACtB,MAAMtJ,EAAiBnE,EAAW,kBAG7BmE,GAAmBA,EAAeC,YACtC0J,KAIDE,MEmBAK,GE7BK1H,GAAS,6BACbP,GAAYkI,GAAe,kCF8BtBtT,GAAcuT,eAAe,QACnCL,IAAS,GG3BV,MAAMM,GACLrW,eAAe2K,IAGf3K,2BAA2BsW,GAC1B,OAAOA,EAGRtW,2BAA2BuW,GAC1B,MAAO,GAAGA,IAGXvW,sBAAsBwW,EAAQC,GAC7B,OAAOD,IAAWC,EAGnBzW,6BAA6B0W,GAC5B5P,OAAO6P,KAAKD,GAAO7U,QAAQ6L,IAC1B5G,OAAO8P,eAAe3W,KAAMyN,EAAM,CACjClN,IAAG,IACKkW,EAAMhJ,QC7BlB,MAAMmJ,GAAiB,CAACxR,EAAOyR,EAAWC,GAAY,KACrD,GAAqB,mBAAV1R,GAA6C,mBAAdyR,EACzC,OAAO,EAER,GAAIC,GAAa1R,IAAUyR,EAC1B,OAAO,EAER,IAAInF,EAAStM,EACb,GACCsM,EAAS7K,OAAOyB,eAAeoJ,SACZ,OAAXA,GAAmBA,IAAWmF,GACvC,OAAOnF,IAAWmF,GCXbE,GAAkB,IAAI7W,IACtB8W,GAAkB,IAAI9W,IAEtB+W,GAAmBC,IACxB,IAAKH,GAAgB9T,IAAIiU,GAAS,CACjC,MAAMC,EAASC,GAAYF,EAAO3Q,MAAM,MACxCwQ,GAAgBnW,IAAIsW,EAAQC,GAE7B,OAAOJ,GAAgBxW,IAAI2W,IAGtBG,GAAmBH,IACxB,IAAKF,GAAgB/T,IAAIiU,GAAS,CACjC,MAAMC,EAASD,EAAOrH,QAAQ,kBAAmB,SAAShF,cAC1DmM,GAAgBpW,IAAIsW,EAAQC,GAE7B,OAAOH,GAAgBzW,IAAI2W,IAGtBE,GAAc9Q,GACZA,EAAMnF,IAAI,CAAC+V,EAAQI,IACR,IAAVA,EAAcJ,EAAOrM,cAAgBqM,EAAOpH,OAAO,GAAGyH,cAAgBL,EAAOM,MAAM,GAAG3M,eAC3FrI,KAAK,ICAHiV,GAAS3R,GAAMA,GAAMA,aAAc4R,aAAgC,SAAjB5R,EAAGkM,UAErD2F,GAAqB7R,GACtB2R,GAAO3R,GACHA,EAAGoM,cAAc,CAAE0F,SAAS,IAAQ1U,OAAOrB,GAAQA,aAAgB6V,aAGpE,CAAC5R,GC7BT,IACI+R,GAAW,CACdC,QAAS,CAAC,SACVC,QAAS,IAEV,MAAMC,GAAY,IAAI9X,IAyEhB+X,GAA2B9V,IAChC,IAAK6V,GAAU/U,IAAId,GAAM,CACxB,MAAMgV,EAASU,GAASC,QAAQ3F,KAAK+F,GAAQ/V,EAAIoN,MAAM2I,MAAWL,GAASE,QAAQ5F,KAAK+F,GAAQ/V,EAAIoN,MAAM2I,IAC1GF,GAAUpX,IAAIuB,EAAKgV,GAGpB,OAAOa,GAAUzX,IAAI4B,IAUhBgW,GAAkChW,IACnC8V,GAAyB9V,ICpF9B,MAAMiW,GACLrY,YAAYmP,GACXlP,KAAKkP,SAAWA,EAGjBnP,kBACC,GAAI8G,OAAOC,UAAUC,eAAe1F,KAAKrB,KAAM,iBAC9C,OAAOA,KAAKqY,cAGb,MAAMC,EAAe,GACfC,EAAkBvY,KAAKuY,kBAGvBC,EAAQxY,KAAKyY,gBACnB,IAAK,MAAMC,KAAYF,EAAO,CAC7B,MAAMG,EAAWH,EAAME,GAAUjL,KAC3BmL,EAAmBJ,EAAME,GAAUG,aAErCF,IAAaG,SAChBR,EAAaI,IAAY,OAEApU,IAArBsU,GACHtW,QAAQC,KAAK,8HAEJiW,EAAME,GAAUK,SAC1BT,EAAaI,GAAY,GAEzBJ,EAAaI,GADHC,IAAa9R,OACE,iBAAkB2R,EAAME,GAAYF,EAAME,GAAUG,aAAe,GAClFF,IAAaK,OACE,iBAAkBR,EAAME,GAAYF,EAAME,GAAUG,aAAe,GAEnED,EAK3B,GAAIL,EAAiB,CACpB,MAAMU,EAAQjZ,KAAKkZ,WACnB,IAAK,MAAOC,EAAUC,KAAavS,OAAO6G,QAAQuL,GAAQ,CAEzDX,EADqBc,EAASC,cAAgBF,GACjB,IAK/B,OADAnZ,KAAKqY,cAAgBC,EACdA,EAORvY,6BAA6B2K,EAAO4O,GAEnC,OADmBA,EAASP,SAEpBrO,EAAMvJ,IAAIoY,GAAaC,GAAuBD,EAAWD,IAE1DE,GAAuB9O,EAAO4O,GAOtCvZ,yBAAyB2K,EAAO0O,GAC/B,OAAOK,GAAmB/O,EAAO0O,GAOlCrZ,aACC,OAAOC,KAAKkP,SAAS/M,IAOtBpC,SACC,MAAM2Z,EAAU1Z,KAAKkP,SAAS/M,IACxBwX,EAASxB,GAAgCuB,GAC/C,OAAKC,EAIE,GAAGD,KAAWC,IAHbD,EAUT3Z,YACC,MAAM6Z,EAAa5Z,KAAKkP,SAAS2K,OACjC,IAAKD,EACJ,OAGD,MAAMD,EAASxB,GAAgCyB,GAC/C,OAAKD,EAIE,GAAGC,KAAcD,IAHhBC,EAYT7Z,aAAa2Y,GACZ,MAAMY,EAAWtZ,KAAKyY,gBAAgBC,GACtC,OAAOY,EAAS7L,OAAS5G,SAAWyS,EAASQ,cAAgBR,EAASP,SAQvEhZ,oBACC,OAAO8G,OAAO6P,KAAK1W,KAAKyY,iBAQzB1Y,oBACC,OAAOC,KAAK+Z,oBAAoB7W,OAAOlD,KAAKga,aAAcha,MAAMmB,IAAIkW,IAOrEtX,WACC,OAAOC,KAAKkP,SAAS+J,OAAS,GAO/BlZ,cACC,MAAMka,EAAcja,KAAKkZ,WAAW1P,QACpC,OAAOyQ,GAAeA,EAAYxM,OAASyM,KAO5Cna,WACC,QAAS8G,OAAO6G,QAAQ1N,KAAKkZ,YAAYlY,OAO1CjB,qBACC,OAAOC,KAAKuY,mBAAqB1R,OAAO6G,QAAQ1N,KAAKkZ,YAAY/G,KAAK,EAAEgI,EAAWf,KAAcA,EAASgB,iBAO3Gra,kBACC,QAASC,KAAKkP,SAASmL,aAOxBta,gBACC,OAAOC,KAAKkP,SAASoL,YAAc,GAOpCva,YACC,OAAOC,KAAKkP,SAASqL,QAAU,GAOhCxa,kBACC,QAASC,KAAKkP,SAAS7J,cAOvBtF,eACA,QAASC,KAAKkP,SAAS3J,WAYxBxF,8BAA8BoZ,EAAU1L,EAAM/F,GAC7C,MAAMsM,EAAShU,KAAKkZ,WAAWC,GAAUqB,wBAGzC,QAAelW,IAAX0P,EACH,OAAO,EAIR,GAAsB,kBAAXA,EACV,OAAOA,EAIR,GAAsB,iBAAXA,EAAqB,CAE/B,GAAa,aAATvG,EAAqB,CAExB,QAA0BnJ,IAAtB0P,EAAOsG,WACV,OAAO,EAIR,GAAiC,kBAAtBtG,EAAOsG,WACjB,OAAOtG,EAAOsG,WAIf,GAAI9Z,MAAMC,QAAQuT,EAAOsG,YACxB,OAAOtG,EAAOsG,WAAW5Z,SAASgH,GAGnC,MAAM,IAAInE,MAAM,qFAIjB,GAAa,SAATkK,EAAiB,CAEpB,QAAqBnJ,IAAjB0P,EAAOiF,MACV,OAAO,EAIR,GAA4B,kBAAjBjF,EAAOiF,MACjB,OAAOjF,EAAOiF,MAIf,GAAIzY,MAAMC,QAAQuT,EAAOiF,OACxB,OAAOjF,EAAOiF,MAAMvY,SAASgH,GAG9B,MAAM,IAAInE,MAAM,iFAIlB,MAAM,IAAIA,MAAM,4EAIlB,MAAMiW,GAAyB,CAAC9O,EAAO4O,KACtC,MAAMmB,EAAenB,EAAS7L,KAE9B,OAAIgN,IAAiB3B,QACI,kBAAVpO,GAAsBA,EAEjC+P,IAAiBzB,OACK,iBAAVtO,GAAR,MAAqCA,EAA2CA,EAAQA,EAAM3C,WAElG0S,IAAiB5T,OACI,iBAAV6D,EAAqBA,EAAQ4O,EAAST,aAEjDjC,GAAe6D,EAAcrE,IACzBqE,EAAaC,QAAQhQ,GAASA,EAAQ4O,EAAST,kBADvD,GAKKY,GAAqB,CAAC/O,EAAO0O,KAClC1O,GAASiN,GAAmBjN,GAAO9I,QAAQkE,IAC1C,KAAMA,aAAcsT,EAAS3L,MAC5B,MAAM,IAAIlK,MAAM,GAAGuC,oBAAqBsT,EAAS3L,UAI5C/C,GC3TH/F,eAAepE,IAAI,oBACvBoE,eAAegW,OAAO,kBAAmB,cAAcjD,eCSxD,MCVMkD,GAAkBC,GACnBra,MAAMC,QAAQoa,GACVjD,GAAQiD,EAAO3X,OAAO2J,KAAWA,IAAQ1L,IAAI0L,GAC3B,iBAAVA,EAAqBA,EAAQA,EAAMoB,SAC/CzL,KAAK,KAGgB,iBAAXqY,EAAsBA,EAASA,EAAO5M,QAG/C2J,GAAUjW,GACRA,EAAImZ,OAAO,CAACC,EAAKC,IAAQD,EAAIE,OAAOza,MAAMC,QAAQua,GAAOpD,GAAQoD,GAAOA,GAAM,ICRhFE,GAAoB,IAAIhb,IAE9B8G,EAAsB7E,IACrB+Y,GAAkBja,OAAO,GAAGkB,cAG7B,MAAMgZ,GAAoB,CAACC,EAAcC,GAAgB,KACxD,MAAMlZ,EAAMiZ,EAAanW,cAAcC,SACjCuF,EAAM,GAAGtI,KAAOkZ,EAAgB,SAAW,WAEjD,IAAKH,GAAkBjY,IAAIwH,GAAM,CAChC,IAAI6Q,EAEJ,GAAID,EACHC,EAAiBV,GAAgBQ,EAAaG,sBACxC,CACN,MAAMC,ElC+BYrZ,CAAAA,GACbgF,EAAahF,GAAOgF,EAAahF,GAAKK,KAAK,IAAM,GkChClCiZ,CAAatZ,IAAQ,GAEzCmZ,EAAiB,GADKV,GAAgBQ,EAAaP,WACdW,IAEtCN,GAAkBta,IAAI6J,EAAK6Q,GAG5B,OAAOJ,GAAkB3a,IAAIkK,ICvBxBiR,GAAwB,IAAIxb,IAElC8G,EAAsB7E,IACrBuZ,GAAsBza,OAAO,GAAGkB,cASjC,MCfMwZ,GAAkB,MAAQzX,OAAO0X,SCYjCC,GAAmB,CAAC9W,EAASsW,GAAgB,KAClD,IAAIS,EACJ,MAAMC,EAAWV,EAAgB,qBAAuB,WAClDjK,EAAaiK,EAAgBtW,EAAQiX,eAAe5K,WAAarM,EAAQqM,WACzE6K,ELNiB,EAACF,EAAUG,KAClC,MAAMC,EAAcD,EAAUlX,YAAYoX,wBAAwBjb,IAAIkb,GAAOA,EAAIpX,cAAcqX,cAAcpZ,OAAO+U,IAEpH,OAAO8D,EAASG,EAAWC,OADbI,IKIOC,CAAgBzX,EAAQC,YAAY+W,GAAWhX,GAIzDa,SAASsI,mBACnBkD,EAAWlD,mBFNiB,EAACkN,EAAcC,GAAgB,KAC5D,MACM5Q,EAAM,GADA2Q,EAAanW,cAAcC,YACjBmW,EAAgB,SAAW,WAEjD,IAAKK,GAAsBzY,IAAIwH,GAAM,CACpC,MAAMgS,EAAetB,GAAkBC,EAAcC,GAC/CxO,EAAQ,IAAIuB,cAClBvB,EAAMwB,YAAYoO,GAClBf,GAAsB9a,IAAI6J,EAAK,CAACoC,IAGjC,OAAO6O,GAAsBnb,IAAIkK,IELAiS,CAAsB3X,EAAQC,YAAaqW,GAChEM,OACXG,EAAqBX,GAAkBpW,EAAQC,YAAaqW,IAG7DtW,EAAQC,YAAY2X,OAAOV,EAAc7K,EAAY0K,EAAoB,CAAE1I,KAAMrO,KCxB5E6X,GAA6B9W,GAAMgJ,iBAAiBhJ,GAAI+W,iBAFvB,0BCEjCja,GAAgB,IAAI9C,EAGpBgd,GAAuB7V,IAC5BrE,GAAcsE,YAHK,iBAGoBD,ICCxC,IAAIiD,GACAI,GAMJ,MAAMsK,GAAc,UACFtQ,IAAb4F,KhCmBJc,IgClBCd,GhCmBMJ,EAAcI,UgCjBdA,IAoCF6S,GAA0B,KARAC,IAAAA,EAa/B,YAJ6B1Y,IAAzBgG,KhCXJU,IgCE+BgS,EhCDxBlT,EAAcQ,qBgCErBA,GAAuB0S,GAYhB1S,IC3DR,OAAeI,IACd,MAAMuS,EAAI,qCAAqCtN,KAAKjF,GACpD,OAAOuS,GAAKA,EAAE,GAAKA,EAAE,GAAG1W,MAAM,KAAO,SCAvB,KACd,MAAM2W,EAAmBC,UAAUC,UAQnC,OAFmBF,GAAoBA,EAAiB,IAHhDC,UAAUjT,UAGoEiT,UAAUE,cAAgBF,UAAUG,iBAEtG5T,GCNrB,MAAM6T,GAAsB,CAC3BC,GAAM,KACNC,GAAM,KACNC,GAAM,KACNjP,GAAM,MAGDkP,GAAgBC,GAA6B,gCAAkC,GAQ/E/I,GAAS,KACd,MAAMgJ,GnCQN7S,IACOlB,EAAcG,KmCPrB,OAAyB,OAArB4T,IACMA,EAVQ3T,CAAAA,IAClBA,EAAYA,GAAYqT,GAAoBrT,IAAcA,EAEnDyT,GAAc7c,QAAQoJ,IAAa,GAUnC4T,CAAWlJ,MAAiBmJ,OCvB9BC,GAAkBjZ,IACvB,MAAMkZ,EAAM/Z,OAAO0B,SACbsY,EAAY,CAAC,MAAO,OACpBC,EAAoBrP,iBAAiB/J,GAAS8X,iBAL1B,cAQ1B,OAAIqB,EAAUxd,SAASyd,GACfA,EAEJD,EAAUxd,SAASqE,EAAQqZ,KACvBrZ,EAAQqZ,IAEZF,EAAUxd,SAASud,EAAIzK,gBAAgB4K,KACnCH,EAAIzK,gBAAgB4K,IAExBF,EAAUxd,SAASud,EAAIpY,KAAKuY,KACxBH,EAAIpY,KAAKuY,IAIVvJ,KAAW,WAAQvQ,GCX3B,MAAM+Z,WAAuB3G,YAC5B3X,cACCue,QACAte,KAAKue,WAAY,EACjBve,KAAKwe,aAAa,CAAEC,KAAM,SAO3B1e,gBAAgB2e,GACf1e,KAAK0e,aAAeA,EACpB1e,KAAKiP,UAAU7M,IAAIpC,KAAK0e,aAAaC,KAOtC5e,SACKC,KAAKue,YACRve,KAAK4e,wBACL5e,KAAK6e,mBACLhD,GAAiB7b,KAAK0e,cAAc,IAQtC3e,wBACuD,YAAlD6c,GAA2B5c,KAAK0e,eACnC1e,KAAKiP,UAAU7M,IAAI,oBACnBpC,KAAKiP,UAAU7M,IAAI,iCAEnBpC,KAAKiP,UAAU6P,OAAO,oBACtB9e,KAAKiP,UAAU6P,OAAO,gCAIxB/e,mBACC,MAAMqe,EAAMJ,GAAgBhe,KAAK0e,cAC7BN,EACHpe,KAAK4N,aAAa,MAAOwQ,GAEzBpe,KAAK+e,gBAAgB,OAQvBhf,kBAOC,OANAC,KAAK4e,wBACA5e,KAAKue,YACTve,KAAKue,WAAY,EACjB1C,GAAiB7b,KAAK0e,cAAc,UAE/B7Z,IACC7E,KAAKoR,WAGbrR,gBACC,MAAM2Z,EAAU,uBACVC,EAASxB,GAAgCuB,GAC/C,OAAKC,EAIE,GAAGD,KAAWC,IAHbD,EAMT3Z,wBAKC,OAJK4E,eAAepE,IAAI8d,GAAenZ,WACtCP,eAAegW,OAAO0D,GAAenZ,SAAUmZ,IAGzCzY,SAASI,cAAchG,KAAKkF,WC7FrC,MAAM8Z,GAAY,IAAIC,QA2CtB,MAAMC,GAAiB,CAACC,EAAM/b,EAAUyF,KACvC,MAAMuW,EAvCe,EAACD,EAAM/b,EAAUyF,KACtC,MAAMuW,EAAW,IAAIC,iBAAiBjc,GAEtC,OADAgc,EAASE,QAAQH,EAAMtW,GAChBuW,GAoCUG,CAAgBJ,EAAM/b,EAAUyF,GACjDmW,GAAUpe,IAAIue,EAAMC,IC1CfI,GAAc,CACnB,iBAOD,IAAIpV,GAEJ,MAKMqV,GAAgB,UACFnb,IAAf8F,KvC8BJY,IuC7BCZ,GvC8BMN,EAAcM,YuC3BdA,IAGFsV,GAAoBvf,IACzB,MAAMwf,EAAKF,KAGX,OAvB+Btf,CAAAA,GACxBqf,GAAY9e,SAASP,GAsBxByf,CAAwBzf,MAKjB,IAAPwf,IAtB8Bxf,CAAAA,IAClC,MAAMwf,EAAKF,KACX,QAASE,EAAGpF,QAAUoF,EAAGpF,OAAO7Z,UAAYif,EAAGpF,OAAO7Z,SAASP,KAwBvD0f,CAA2B1f,KCrC9B2f,GAAY,CACjB,WACA,QACA,SACA,OACA,aASKC,GAAsBrY,IAC3B,GAAIoY,GAAUpf,SAASgH,IAASA,EAAKmE,WAAW,QAC/C,OAAO,EAOR,OALgB,CACf6L,YACAsI,QACA9F,MAEe/H,KAAK/M,GAASA,EAAM0B,UAAUC,eAAeW,KCzBxDuY,GAAiB,CAACC,EAAMC,KAC7B,GAAID,EAAKlf,SAAWmf,EAAKnf,OACxB,OAAO,EAGR,IAAK,IAAI0F,EAAI,EAAGA,EAAIwZ,EAAKlf,OAAQ0F,IAChC,GAAIwZ,EAAKxZ,KAAOyZ,EAAKzZ,GACpB,OAAO,EAIT,OAAO,GCXF0Z,GAAe,CAAChb,EAAOib,IACrB,cAAwBjb,EAC9BrF,cACCue,QACA+B,GAAuBA,MCkB1B,IAAIC,GAAS,EAEb,MAAMC,GAAkB,IAAIrgB,IACtBsgB,GAA0B,IAAItgB,IAQpC,SAASugB,GAAYC,GAGhB1gB,KAAK2gB,wBAKT3gB,KAAK4gB,eAAeF,GAEpB1gB,KAAK6gB,cAAclgB,KAAK+f,GACxB9c,EAAe5D,MACfA,KAAK8gB,eAAetf,UAAU,aAAc,IAAKkf,EAAY3X,OAAQ/I,QAatE,MAAM+gB,WAAmBrJ,YACxB3X,cAUC,IAAIihB,EATJ1C,QAEAte,KAAK6gB,cAAgB,GACrB7gB,KAAK2gB,uBAAwB,EAC7B3gB,KAAKihB,QAAS,EACdjhB,KAAKkhB,iBAAkB,EACvBlhB,KAAKmhB,sBAAwB,IAAIjhB,IACjCF,KAAKohB,qBAAuB,IAAIlhB,IAChCF,KAAK8gB,eAAiB,IAAIhhB,EAE1BE,KAAKqhB,oBAAsB,IAAI/f,QAAQ2C,IACtC+c,EAAkB/c,IAEnBjE,KAAKqhB,oBAAoBC,iBAAmBN,EAE5ChhB,KAAKuhB,mBACLvhB,KAAKwhB,wBAEDxhB,KAAKgF,YAAYyc,mBACpBzhB,KAAKwe,aAAa,CAAEC,KAAM,SAU5BE,UAKC,OAJK3e,KAAK0hB,OACT1hB,KAAK0hB,KAAO,WAAWpB,MAGjBtgB,KAAK0hB,KAOb3hB,0BACCC,KAAK4N,aAAa5N,KAAKgF,YAAYC,cAAcqX,aAAc,IAE/D,MAAM/D,EAAkBvY,KAAKgF,YAAYC,cAAcsT,kBAEvDvY,KAAKihB,QAAS,EAEV1I,IAEHvY,KAAK2hB,mCACC3hB,KAAK4hB,oBAGP5hB,KAAKihB,SAIVld,EAAkB/D,MAClBA,KAAKqhB,oBAAoBC,mBACzBthB,KAAKkhB,iBAAkB,EACQ,mBAApBlhB,KAAK6hB,YACf7hB,KAAK6hB,cAQP9hB,uBACC,MAAMwY,EAAkBvY,KAAKgF,YAAYC,cAAcsT,kBvDpFpCvV,IAAAA,EuDsFnBhD,KAAKihB,QAAS,EAEV1I,GACHvY,KAAK8hB,4BAGF9hB,KAAKkhB,kBACsB,mBAAnBlhB,KAAK+hB,WACf/hB,KAAK+hB,YAEN/hB,KAAKkhB,iBAAkB,GAGpBlhB,KAAKgc,gBAAkBhc,KAAKgc,eAAerW,eAC9C3F,KAAKgc,eAAerW,cAAcwJ,YAAYnP,KAAKgc,gBvDpGjChZ,EuDuGNhD,KvDtGd6C,EAAyBic,OAAO9b,GAChCL,EAAmB1B,OAAO+B,GuD2G1BjD,6BAEC,IAD8BC,KAAKgF,YAAYC,cAAc+c,WAE5D,OAGD,MAAMC,EAAcjiB,KAAKgF,YAAYC,cAAcgd,cAC7CC,EAA0B,CAC/BC,WAAW,EACXC,QAASH,EACTI,cAAeJ,GAEhB/C,GAAelf,KAAMA,KAAK4hB,iBAAiBU,KAAKtiB,MAAOkiB,GAMxDniB,4BL3HwBof,CAAAA,IACxB,MAAMC,EAAWJ,GAAUze,IAAI4e,GAC3BC,IAvCkBA,CAAAA,IACtBA,EAASmD,cAuCRC,CAAiBpD,GACjBJ,GAAU/d,OAAOke,KKwHjBsD,CAAiBziB,MAOlBD,yBACkBC,KAAKgF,YAAYC,cAAc+c,kBAEzChiB,KAAK0iB,eAOb3iB,qBACC,MAAM4iB,EAAW3iB,KAAKgF,YAAYC,cAAciU,WAC1C+I,EAAcjiB,KAAKgF,YAAYC,cAAcgd,cAC7CW,EAAcpiB,MAAMqR,KAAKoQ,EAAcjiB,KAAKiS,WAAajS,KAAK8R,UAE9D+Q,EAAwB,IAAI3iB,IAC5B4iB,EAAwB,IAAI5iB,IAGlC,IAAK,MAAOiZ,EAAUC,KAAavS,OAAO6G,QAAQiV,GAAW,CAC5D,MAAMtJ,EAAeD,EAASC,cAAgBF,EAC9C2J,EAAsBliB,IAAIyY,EAAcF,GACxC0J,EAAsBjiB,IAAIyY,EAAc,IAAIrZ,KAAK+iB,OAAO1J,KACxDrZ,KAAKgjB,WAAW7J,EAAUC,GAG3B,MAAM6J,EAAmB,IAAI/iB,IACvBgjB,EAAqB,IAAIhjB,IAEzBijB,EAAsBP,EAAYzhB,IAAI0C,MAAO8N,EAAOyR,KAEzD,MAAMjK,EvBhNWgG,CAAAA,IAEnB,KAAMA,aAAgBzH,aACrB,MAAO,UAIR,MAAM2L,EAAOlE,EAAKmE,aAAa,QAC/B,GAAID,EAAM,CACT,MAAM9T,EAAQ8T,EAAK9T,MAAM,eACzB,OAAOA,EAAQA,EAAM,GAAK8T,EAI3B,MAAO,WuBkMYE,CAAY5R,GACvByH,EAAWuJ,EAASxJ,GAG1B,QAAiB7U,IAAb8U,EAAwB,CAC3B,MAAMoK,EAAc3c,OAAO6P,KAAKiM,GAAUngB,KAAK,MAE/C,YADAF,QAAQC,KAAK,qBAAqB4W,cAAsBxH,EAAO,qBAAqB6R,KAKrF,GAAIpK,EAASgB,gBAAiB,CAC7B,MAAMqJ,GAAaR,EAAiB1iB,IAAI4Y,IAAa,GAAK,EAC1D8J,EAAiBriB,IAAIuY,EAAUsK,GAC/B9R,EAAM+R,gBAAkB,GAAGvK,KAAYsK,IAIxC,GAAI9R,aAAiB+F,YAAa,CACjC,MAAM1F,EAAYL,EAAMK,UAExB,GADwBA,EAAUtR,SAAS,KACtB,CAEpB,IADkBwD,OAAOS,eAAepE,IAAIyR,GAC5B,CACf,MAAM2R,EAAqBzf,OAAOS,eAAeC,YAAYoN,GAC7D,IAAI4R,EAAiBrD,GAAgBhgB,IAAIyR,GACpC4R,IACJA,EAAiB,IAAItiB,QAAQ2C,GAAWI,WAAWJ,EAAS,MAC5Dsc,GAAgB3f,IAAIoR,EAAW4R,UAE1BtiB,QAAQuiB,KAAK,CAACF,EAAoBC,IAEzC1f,OAAOS,eAAemf,QAAQnS,KAIhCA,EAAQ3R,KAAKgF,YAAYC,cAAcD,YAAY+e,kBAAkBpS,EAAOyH,IAGlE9F,cAAgB8F,EAASoB,yBAClC7I,EAAMqS,iBAAiBhkB,KAAKikB,wBAAwB9K,IAIjD1B,GAAO9F,IACV3R,KAAKkkB,kBAAkBvS,EAAOwH,GAG/B,MAAME,EAAeD,EAASC,cAAgBF,EAE1C+J,EAAmBjgB,IAAIoW,GAC1B6J,EAAmB3iB,IAAI8Y,GAAc1Y,KAAK,CAAEgR,MAAAA,EAAOyR,IAAAA,IAEnDF,EAAmBtiB,IAAIyY,EAAc,CAAC,CAAE1H,MAAAA,EAAOyR,IAAAA,aAI3C9hB,QAAQC,IAAI4hB,GAIlBD,EAAmBthB,QAAQ,CAACkQ,EAAUuH,KACrCrZ,KAAK+iB,OAAO1J,GAAgBvH,EAASqS,KAAK,CAACC,EAAGC,IAAMD,EAAEhB,IAAMiB,EAAEjB,KAAKjiB,IAAIiM,GAAKA,EAAEuE,SAI/E,IAAI2S,GAAc,EAClB,IAAK,MAAOnL,EAAUC,KAAavS,OAAO6G,QAAQiV,GAAW,CAC5D,MAAMtJ,EAAeD,EAASC,cAAgBF,EACzC8G,GAAe4C,EAAsBtiB,IAAI8Y,GAAerZ,KAAK+iB,OAAO1J,MACxEoH,GAAYpf,KAAKrB,KAAM,CACtByN,KAAM,OACN/F,KAAMob,EAAsBviB,IAAI8Y,GAChCkL,OAAQ,aAETD,GAAc,GAMXA,GACJ7D,GAAYpf,KAAKrB,KAAM,CACtByN,KAAM,OACN/F,KAAM,UACN6c,OAAQ,gBASXxkB,WAAWoZ,EAAUC,GACpB,MAAMC,EAAeD,EAASC,cAAgBF,EAC7BnZ,KAAK+iB,OAAO1J,GAEpBzX,QAAQ+P,IACZA,GAASA,EAAM2B,cAClB3B,EAAM6S,iBAAiBxkB,KAAKikB,wBAAwB9K,IAGjD1B,GAAO9F,IACV3R,KAAKykB,kBAAkB9S,EAAOwH,KAIhCnZ,KAAK+iB,OAAO1J,GAAgB,GAS7BtZ,iBAAiBqD,GAChBpD,KAAK8gB,eAAe5Z,YAAY,aAAc9D,GAS/CrD,iBAAiBqD,GAChBpD,KAAK8gB,eAAe4D,YAAY,aAActhB,GAU/CrD,eAAeoZ,EAAUwL,GACnB3kB,KAAKgF,YAAYC,cAAc2f,8BAA8BzL,EAAUwL,EAAgBlX,KAAMkX,EAAgBjd,OAMlH+Y,GAAYpf,KAAKrB,KAAM,CACtByN,KAAM,OACN/F,KAAMyR,EACNoL,OAAQ,cACR5S,MAAOgT,EAAgB5b,SAQzBhJ,yBAAyB2H,EAAMmd,EAAUC,GACxC,MAAMxK,EAAata,KAAKgF,YAAYC,cAAcwT,gBAC5CsM,EAAWrd,EAAKmI,QAAQ,QAAS,IACjCmV,EAAkB/N,GAAiB8N,GACzC,GAAIzK,EAAWvT,eAAeie,GAAkB,CAC/C,MAAMC,EAAoB3K,EAAW0K,GAAiBvX,KAClDwX,IAAsBnM,QACzBgM,EAAwB,OAAbA,EACDlO,GAAeqO,EAAmB7O,MAC5C0O,EAAWG,EAAkBC,oBAAoBJ,IAElD9kB,KAAKglB,GAAmBF,GAO1B/kB,iBAAiB2H,EAAMod,GACtB,IAAK9kB,KAAKgF,YAAYC,cAAc+U,aAAatS,GAChD,OAED,MACMud,EADajlB,KAAKgF,YAAYC,cAAcwT,gBACb/Q,GAAM+F,KACrC0X,EAAW9N,GAAiB3P,GAC5B0d,EAAYplB,KAAKsjB,aAAa6B,GAEhCF,IAAsBnM,SACR,IAAbgM,GAAmC,OAAdM,EACxBplB,KAAK4N,aAAauX,EAAU,KACL,IAAbL,GAAoC,OAAdM,GAChCplB,KAAK+e,gBAAgBoG,GAEZvO,GAAeqO,EAAmB7O,IAC5CpW,KAAK4N,aAAauX,EAAUF,EAAkBI,oBAAoBP,IACpC,iBAAbA,GACbM,IAAcN,GACjB9kB,KAAK4N,aAAauX,EAAUL,GAQ/B/kB,iBAAiBulB,GAChB,GAAItlB,KAAK+G,eAAeue,GAAO,CAC9B,MAAM5a,EAAQ1K,KAAKslB,UACZtlB,KAAKslB,GACZtlB,KAAKslB,GAAQ5a,GAOf3K,wBACkBC,KAAKgF,YAAYC,cAAc8U,oBACvCnY,QAAQ5B,KAAKulB,iBAAkBvlB,MAMzCD,mBACCC,KAAK+iB,OAAS,IAAK/iB,KAAKgF,YAAYC,cAAcugB,mBAUnDzlB,wBAAwBoZ,GAIvB,OAHKnZ,KAAKmhB,sBAAsBle,IAAIkW,IACnCnZ,KAAKmhB,sBAAsBvgB,IAAIuY,EAAUnZ,KAAKylB,eAAenD,KAAKtiB,KAAMmZ,IAElEnZ,KAAKmhB,sBAAsB5gB,IAAI4Y,GAUvCpZ,uBAAuBoZ,GAItB,OAHKnZ,KAAKohB,qBAAqBne,IAAIkW,IAClCnZ,KAAKohB,qBAAqBxgB,IAAIuY,EAAUnZ,KAAK0lB,cAAcpD,KAAKtiB,KAAMmZ,IAEhEnZ,KAAKohB,qBAAqB7gB,IAAI4Y,GAMtCpZ,kBAAkB4R,EAAOwH,GACxBxH,EAAMqE,iBAAiB,aAAchW,KAAK2lB,uBAAuBxM,IAMlEpZ,kBAAkB4R,EAAOwH,GACxBxH,EAAMiU,oBAAoB,aAAc5lB,KAAK2lB,uBAAuBxM,IASrEpZ,cAAcoZ,GACbsH,GAAYpf,KAAKrB,KAAM,CACtByN,KAAM,OACN/F,KAAMyR,EACNoL,OAAQ,eA+BVxkB,eAAe2gB,IAMf3gB,UACC,MAAM8lB,EAAqB7lB,KAAKgF,YAAYC,cAAc4gB,qBAG1D7lB,KAAK2gB,uBAAwB,EAES,mBAA3B3gB,KAAK8lB,mBACf9lB,KAAK8lB,oBAIF9lB,KAAK+lB,4BACR/lB,KAAK+lB,6BAIN/lB,KAAK2gB,uBAAwB,EAuB7B3gB,KAAK6gB,cAAgB,GAGjB7gB,KAAKgF,YAAYyc,mBACpB5F,GAAiB7b,MAEdA,KAAKgc,gBACRhc,KAAKgc,eAAegK,SAIjBH,GACH7lB,KAAKimB,mCAI+B,mBAA1BjmB,KAAKkmB,kBACflmB,KAAKkmB,mBAOPnmB,mCACqBS,MAAMqR,KAAK7R,KAAK8R,UAExBlQ,QAAQ+P,IACfA,EAAM+R,iBACT/R,EAAM/D,aAAa,OAAQ+D,EAAM+R,mBAQpC3jB,iBACC,OAAOC,KAAKqhB,oBAUbthB,YAEC,GAAmC,mBAAxBC,KAAKmmB,eACf,OAAOnmB,KAAKmmB,iBAGb,IAAKnmB,KAAKoR,YAAkD,IAApCpR,KAAKoR,WAAWU,SAAS9Q,OAChD,OAGD,MAAM8Q,EAAW,IAAI9R,KAAKoR,WAAWU,UAAU5O,OAAOyO,IAAU,CAAC,OAAQ,SAASjR,SAASiR,EAAMK,YAKjG,OAJwB,IAApBF,EAAS9Q,QACZsB,QAAQC,KAAK,sBAAsBvC,KAAKgF,YAAYC,cAAcC,iGAG5D4M,EAAS,GAQjB/R,iBACC,MAAMqmB,EAASpmB,KAAKqmB,YACpB,GAAID,EAAQ,CAEX,OADiBA,EAAOrgB,cAAc,yBACnBqgB,GASrBrmB,4BAEC,aADMC,KAAKsmB,iBACJtmB,KAAKumB,iBAObxmB,oBACOC,KAAKsmB,iBAEX,MAAME,EAAcxmB,KAAKumB,iBAErBC,GAA4C,mBAAtBA,EAAYhV,OACrCgV,EAAYhV,QAadzR,UAAU2H,EAAMxG,EAAMulB,GAAa,EAAOC,GAAU,GACnD,MAAMC,EAAc3mB,KAAK4mB,WAAWlf,EAAMxG,EAAMulB,EAAYC,GACtDG,EAAqB5P,GAAiBvP,GAE5C,OAAImf,IAAuBnf,EACnBif,GAAe3mB,KAAK4mB,WAAWC,EAAoB3lB,EAAMulB,GAG1DE,EAGR5mB,WAAW2H,EAAMxG,EAAMulB,GAAa,EAAOC,GAAU,GACpD,MAAMI,EAAkB,IAAIC,YAAY,OAAOrf,IAAQ,CACtDsf,OAAQ9lB,EACR+lB,UAAU,EACVP,QAAAA,EACAD,WAAAA,IAIKS,EAAwBlnB,KAAKmnB,cAAcL,GAEjD,GAAIpH,GAAkBhY,GACrB,OAAOwf,EAGR,MAAME,EAAc,IAAIL,YAAYrf,EAAM,CACzCsf,OAAQ9lB,EACR+lB,UAAU,EACVP,QAAAA,EACAD,WAAAA,IAOD,OAH0BzmB,KAAKmnB,cAAcC,IAGjBF,EAQ7BnnB,gBAAgBoZ,GACf,OAA8BnZ,KAAKmZ,GvBlrBtB2B,OADE,CAACC,EAAKsM,IAAStM,EAAIE,OAAOtD,GAAmB0P,IAC/B,IuB4rB9BC,mBxD5tBsBliB,IAAAA,EwD8tBrB,OxD9tBqBA,EwD6tBNpF,KAAKgF,YxD5tBrBtC,EAAYN,IAAIgD,GwD6tBR4Y,GAAgBhe,MAQxBsT,mBACC,OAAO,EAORiU,gCACC,OAAOvnB,KAAKiF,cAAcuiB,oBAM3BznB,yBACC,QAASC,KAAK+b,SAMfhc,0BACC,QAASC,KAAKynB,mBAMf1nB,0BACC,IAAKC,KAAKgF,YAAY0iB,mBACrB,MAAM,IAAInkB,MAAM,+CAWjB,OARKvD,KAAKgc,iBACThc,KAAKgc,eAAiBqC,GAAesJ,iBACrC3nB,KAAKgc,eAAe4L,gBAAgB5nB,OAEhCA,KAAKgc,eAAerW,eACxBD,EAA4B,mBAAmBoI,YAAY9N,KAAKgc,gBAG1Dhc,KAAKgc,eAAeqK,YAM5BtmB,4BACC,MAAMqI,EAAQpI,KAAK8G,UACbyR,EAAkBvY,KAAKiF,cAAcsT,kBAGrC+B,EAAata,KAAKiF,cAAcwT,gBACtC,IAAK,MAAO6M,EAAMhM,KAAazS,OAAO6G,QAAQ4M,GAAa,CAK1D,GAJKyF,GAAoBuF,IACxBhjB,QAAQC,KAAK,IAAI+iB,mFAGdhM,EAAS7L,OAASqL,SAAWQ,EAAST,aACzC,MAAM,IAAItV,MAAM,4CAA4C+hB,0CAG7D,GAAIhM,EAAS7L,OAASjN,MACrB,MAAM,IAAI+C,MAAM,4BAA4B+hB,6IAG7C,GAAIhM,EAAS7L,OAAS5G,QAAUyS,EAAST,aACxC,MAAM,IAAItV,MAAM,4CAA4C+hB,qEAG7D,GAAIhM,EAASP,UAAYO,EAAST,aACjC,MAAM,IAAItV,MAAM,4CAA4C+hB,4DAG7Dze,OAAO8P,eAAevO,EAAOkd,EAAM,CAClCvlB,MACC,QAA0BuE,IAAtBtE,KAAK+iB,OAAOuC,GACf,OAAOtlB,KAAK+iB,OAAOuC,GAGpB,MAAM1M,EAAmBU,EAAST,aAElC,OAAIS,EAAS7L,OAASqL,UAEXQ,EAAS7L,OAASuL,OACrBJ,EACGU,EAASP,SACZ,GAEAH,IAGT7Y,IAAI2K,GACH,IAAImd,EACJnd,EAAQ1K,KAAKgF,YAAYC,cAAcD,YAAY8iB,sBAAsBpd,EAAO4O,GAEhF,MAAMyO,EAAW/nB,KAAK+iB,OAAOuC,GAE5BuC,EADGvO,EAASP,UAAYO,EAAS0O,eAClB/H,GAAe8H,EAAUrd,GAC9BkM,GAAe0C,EAAS7L,KAAM2I,KACzBkD,EAAS7L,KAAKwa,eAAeF,EAAUrd,GAExCqd,IAAard,EAGxBmd,IACH7nB,KAAK+iB,OAAOuC,GAAQ5a,EACpB+V,GAAYpf,KAAKrB,KAAM,CACtByN,KAAM,WACN/F,KAAM4d,EACNR,SAAUpa,EACVma,SAAUkD,IAEX/nB,KAAKkoB,iBAAiB5C,EAAM5a,OAOhC,GAAI6N,EAAiB,CACpB,MAAMU,EAAQjZ,KAAKiF,cAAciU,WACjC,IAAK,MAAOC,EAAUC,KAAavS,OAAO6G,QAAQuL,GAAQ,CACpD8G,GAAoB5G,IACxB7W,QAAQC,KAAK,IAAI4W,mFAGlB,MAAME,EAAeD,EAASC,cAAgBF,EAC9CtS,OAAO8P,eAAevO,EAAOiR,EAAc,CAC1CtZ,MACC,YAAkCuE,IAA9BtE,KAAK+iB,OAAO1J,GACRrZ,KAAK+iB,OAAO1J,GAEb,IAERtZ,MACC,MAAM,IAAIwD,MAAM,8FAWrB2L,sBACC,MAAO,GAOR2L,oBACC,MAAO,GAORU,8BACC,MAAO,GAUR4M,0BACC,MAAO,GAQRpoB,+BACC,IAAKygB,GAAwBvd,IAAIjD,MAAO,CACvC,MAAMooB,EAAWpoB,KAAKmoB,aAAajlB,OAAO,CAACmZ,EAAK/E,EAAO+Q,IAASA,EAAKvnB,QAAQub,KAAS/E,GACtFkJ,GAAwB5f,IAAIZ,KAAMooB,GAGnC,OAAO5H,GAAwBjgB,IAAIP,MAQpCD,iCACC,OAAOuB,QAAQC,IAAIvB,KAAKoc,wBAAwBjb,IAAIkb,GAAOA,EAAI1B,WAShE5a,wBACC,OAAOuB,QAAQ2C,UAQhBlE,4BACOgW,WAEAzU,QAAQC,IAAI,CACjBvB,KAAKsoB,0BACLtoB,KAAKuoB,aAGN,MAAMpmB,EAAMnC,KAAKiF,cAAcC,SACzB2U,EAAS7Z,KAAKiF,cAAcujB,YAE5BC,EzDl8BgBtmB,CAAAA,GAChBL,EAAYmB,IAAId,GyDi8BCumB,CAAgBvmB,GACjCwmB,EAAkBhkB,eAAepE,IAAI4B,GAiB3C,OAfIwmB,IAAoBF,EzD77BWtmB,CAAAA,IACpCH,EAASI,IAAID,GACRF,IACJA,EAAiBoC,WAAW,KAC3BhC,IACAJ,OAAiBqC,GACf,OyDw7BFskB,CAA6BzmB,GAClBwmB,IACX3oB,KAAK6oB,qBACL3mB,EAAYC,GACZ+B,OAAOS,eAAegW,OAAOxY,EAAKnC,MAG9B6Z,IAAWlV,eAAepE,IAAIsZ,KACjC3X,EAAY2X,GACZ3V,OAAOS,eAAegW,OAAOd,EAAQuG,GAAapgB,KAAM,KACvDsC,QAAQwmB,IAAI,OAAOjP,2EAAgF1X,mBAI/FnC,KASRD,qBACC,GAAIC,KAAK+G,eAAe,aACvB,OAAO/G,KAAK+oB,UAGb,MAAMC,EAAkB,CAAChpB,KAAKkP,UAC9B,IAAI9J,EAAQpF,KACZ,KAAOoF,IAAU2b,IAChB3b,EAAQyB,OAAOyB,eAAelD,GAC9B4jB,EAAgBC,QAAQ7jB,EAAM8J,UAE/B,MAAMga,EAAiB3d,EAAM,MAAOyd,GAGpC,OADAhpB,KAAK+oB,UAAY,IAAI3Q,GAAmB8Q,GACjClpB,KAAK+oB;;;;;GCh/Bd,IAAII,GAAE,MAAMziB,GAAE0iB,WAAWC,aAAa3nB,GAAEgF,GAAEA,GAAE4iB,aAAa,WAAW,CAACC,WAAWJ,GAAGA,SAAI,EAAOlc,GAAE,QAAQuc,KAAKC,SAAS,IAAIjS,MAAM,MAAMkS,GAAE,IAAIzc,GAAE8E,GAAE,IAAI2X,MAAKC,GAAE/jB,SAASgkB,GAAE,CAACT,EAAE,KAAKQ,GAAEE,cAAcV,GAAGW,GAAEX,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,mBAAmBA,EAAEY,GAAEvpB,MAAMC,QAAQupB,GAAEb,IAAI,IAAIziB,EAAE,OAAOqjB,GAAEZ,IAAI,mBAAmB,QAAQziB,EAAEyiB,SAAI,IAASziB,OAAE,EAAOA,EAAEujB,OAAOC,YAAYC,GAAE,sDAAsDC,GAAE,OAAOhG,GAAE,KAAKiG,GAAE,oFAAoFjd,GAAE,KAAK6P,GAAE,KAAKqN,GAAE,+BAA+BC,GAAEpB,GAAG,CAACziB,KAAKhF,MAAM8oB,WAAWrB,EAAEsB,QAAQ/jB,EAAEqG,OAAOrL,IAAIgpB,GAAEH,GAAE,GAAG/X,GAAE+X,GAAE,GAAGlG,GAAE4F,OAAOU,IAAI,gBAAgBC,GAAEX,OAAOU,IAAI,eAAepY,GAAE,IAAI0M,QAAyR4L,GAAElB,GAAEmB,iBAAiBnB,GAAE,IAAI,MAAK,GAAIoB,GAAE,CAAC5B,EAAEziB,KAAK,MAAMgjB,EAAEP,EAAEnoB,OAAO,EAAE2oB,EAAE,GAAG,IAAIC,EAAEE,EAAE,IAAIpjB,EAAE,QAAQ,GAAGqjB,EAAEI,GAAE,IAAI,IAAIzjB,EAAE,EAAEA,EAAEgjB,EAAEhjB,IAAI,CAAC,MAAMhF,EAAEynB,EAAEziB,GAAG,IAAIgjB,EAAEM,EAAEO,GAAG,EAAEG,EAAE,EAAE,KAAKA,EAAEhpB,EAAEV,SAAS+oB,EAAEiB,UAAUN,EAAEV,EAAED,EAAEpa,KAAKjO,GAAG,OAAOsoB,IAAIU,EAAEX,EAAEiB,UAAUjB,IAAII,GAAE,QAAQH,EAAE,GAAGD,EAAEK,QAAE,IAASJ,EAAE,GAAGD,EAAE3F,QAAE,IAAS4F,EAAE,IAAIM,GAAEW,KAAKjB,EAAE,MAAMJ,EAAEsB,OAAO,KAAKlB,EAAE,GAAG,MAAMD,EAAEM,SAAG,IAASL,EAAE,KAAKD,EAAEM,IAAGN,IAAIM,GAAE,MAAML,EAAE,IAAID,EAAE,MAAMH,EAAEA,EAAEO,GAAEI,GAAG,QAAG,IAASP,EAAE,GAAGO,GAAG,GAAGA,EAAER,EAAEiB,UAAUhB,EAAE,GAAGhpB,OAAO0oB,EAAEM,EAAE,GAAGD,OAAE,IAASC,EAAE,GAAGK,GAAE,MAAML,EAAE,GAAG/M,GAAE7P,IAAG2c,IAAI9M,IAAG8M,IAAI3c,GAAE2c,EAAEM,GAAEN,IAAIK,IAAGL,IAAI3F,GAAE2F,EAAEI,IAAGJ,EAAEM,GAAET,OAAE,GAAQ,MAAMpX,EAAEuX,IAAIM,IAAGlB,EAAEziB,EAAE,GAAGmF,WAAW,MAAM,IAAI,GAAGie,GAAGC,IAAII,GAAEzoB,EAAEqQ,GAAEwY,GAAG,GAAGZ,EAAEhpB,KAAK+oB,GAAGhoB,EAAE8V,MAAM,EAAE+S,GAAG,QAAQ7oB,EAAE8V,MAAM+S,GAAGtd,GAAEuF,GAAG9Q,EAAEuL,KAAI,IAAIsd,GAAGZ,EAAEhpB,UAAK,GAAQ+F,GAAG8L,GAAG,MAAMwX,EAAEF,GAAGX,EAAEO,IAAI,QAAQ,IAAIhjB,EAAE,SAAS,IAAI,MAAM,MAAC,IAAShF,GAAEA,GAAE6nB,WAAWS,GAAGA,EAAEL,IAAI,MAAMwB,GAAEprB,aAAa0qB,QAAQtB,EAAEqB,WAAW9oB,GAAGqQ,GAAG,IAAI4X,EAAE3pB,KAAKsG,MAAM,GAAG,IAAIwjB,EAAE,EAAEC,EAAE,EAAE,MAAMC,EAAEb,EAAEnoB,OAAO,EAAEmpB,EAAEnqB,KAAKsG,OAAO8jB,EAAEhG,GAAG2G,GAAE5B,EAAEznB,GAAG,GAAG1B,KAAK8F,GAAGqlB,GAAEnlB,cAAcokB,EAAErY,GAAG8Y,GAAEjZ,YAAY5R,KAAK8F,GAAGmI,QAAQ,IAAIvM,EAAE,CAAC,MAAMynB,EAAEnpB,KAAK8F,GAAGmI,QAAQvH,EAAEyiB,EAAEjjB,WAAWQ,EAAEoY,SAASqK,EAAEiC,UAAU1kB,EAAEuL,YAAY,KAAK,QAAQ0X,EAAEkB,GAAEQ,aAAalB,EAAEnpB,OAAOgpB,GAAG,CAAC,GAAG,IAAIL,EAAE2B,SAAS,CAAC,GAAG3B,EAAE4B,gBAAgB,CAAC,MAAMpC,EAAE,GAAG,IAAI,MAAMziB,KAAKijB,EAAE6B,oBAAoB,GAAG9kB,EAAE+kB,SAAS,UAAU/kB,EAAEmF,WAAWoB,IAAG,CAAC,MAAMvL,EAAE0iB,EAAE2F,KAAK,GAAGZ,EAAExoB,KAAK+F,QAAG,IAAShF,EAAE,CAAC,MAAMynB,EAAEQ,EAAErG,aAAa5hB,EAAEmJ,cAAc,SAAStE,MAAM0G,IAAGvG,EAAE,eAAeiJ,KAAKjO,GAAGyoB,EAAExpB,KAAK,CAAC8M,KAAK,EAAE6J,MAAMwS,EAAEpiB,KAAKhB,EAAE,GAAG+jB,QAAQtB,EAAEuC,KAAK,MAAMhlB,EAAE,GAAGilB,GAAE,MAAMjlB,EAAE,GAAGklB,GAAE,MAAMllB,EAAE,GAAGmlB,GAAEC,UAAS3B,EAAExpB,KAAK,CAAC8M,KAAK,EAAE6J,MAAMwS,IAAI,IAAI,MAAMpjB,KAAKyiB,EAAEQ,EAAE5K,gBAAgBrY,GAAG,GAAG4jB,GAAEW,KAAKtB,EAAEoC,SAAS,CAAC,MAAM5C,EAAEQ,EAAE9b,YAAYtH,MAAM0G,IAAGvL,EAAEynB,EAAEnoB,OAAO,EAAE,GAAGU,EAAE,EAAE,CAACioB,EAAE9b,YAAYnH,GAAEA,GAAEslB,YAAY,GAAG,IAAI,IAAItlB,EAAE,EAAEA,EAAEhF,EAAEgF,IAAIijB,EAAEyB,OAAOjC,EAAEziB,GAAGkjB,MAAKiB,GAAEQ,WAAWlB,EAAExpB,KAAK,CAAC8M,KAAK,EAAE6J,QAAQwS,IAAIH,EAAEyB,OAAOjC,EAAEznB,GAAGkoB,aAAY,GAAG,IAAID,EAAE2B,SAAS,GAAG3B,EAAEzoB,OAAOwoB,GAAES,EAAExpB,KAAK,CAAC8M,KAAK,EAAE6J,MAAMwS,QAAQ,CAAC,IAAIX,GAAG,EAAE,MAAM,KAAKA,EAAEQ,EAAEzoB,KAAKJ,QAAQmM,GAAEkc,EAAE,KAAKgB,EAAExpB,KAAK,CAAC8M,KAAK,EAAE6J,MAAMwS,IAAIX,GAAGlc,GAAEjM,OAAO,EAAE8oB,KAAK/pB,qBAAqBopB,EAAEziB,GAAG,MAAMhF,EAAEioB,GAAE3jB,cAAc,YAAY,OAAOtE,EAAE2J,UAAU8d,EAAEznB,GAAG,SAASuqB,GAAE9C,EAAEziB,EAAEhF,EAAEynB,EAAElc,GAAG,IAAIyc,EAAE3X,EAAE4X,EAAEC,EAAE,GAAGljB,IAAI2d,GAAE,OAAO3d,EAAE,IAAIqjB,OAAE,IAAS9c,EAAE,QAAQyc,EAAEhoB,EAAEwqB,YAAO,IAASxC,OAAE,EAAOA,EAAEzc,GAAGvL,EAAEyqB,KAAK,MAAMnC,EAAEF,GAAEpjB,QAAG,EAAOA,EAAE0lB,gBAAgB,OAAO,MAAMrC,OAAE,EAAOA,EAAE/kB,eAAeglB,IAAI,QAAQjY,EAAE,MAAMgY,OAAE,EAAOA,EAAEsC,YAAO,IAASta,GAAGA,EAAE1Q,KAAK0oB,GAAE,QAAI,IAASC,EAAED,OAAE,GAAQA,EAAE,IAAIC,EAAEb,GAAGY,EAAEuC,KAAKnD,EAAEznB,EAAEuL,SAAI,IAASA,GAAG,QAAQ0c,GAAGC,EAAEloB,GAAGwqB,YAAO,IAASvC,EAAEA,EAAEC,EAAEsC,KAAK,IAAIjf,GAAG8c,EAAEroB,EAAEyqB,KAAKpC,QAAG,IAASA,IAAIrjB,EAAEulB,GAAE9C,EAAEY,EAAEwC,KAAKpD,EAAEziB,EAAEqG,QAAQgd,EAAE9c,IAAIvG,EAAE,MAAM8lB,GAAEzsB,YAAYopB,EAAEziB,GAAG1G,KAAKoqB,EAAE,GAAGpqB,KAAKysB,UAAK,EAAOzsB,KAAK0sB,KAAKvD,EAAEnpB,KAAK2sB,KAAKjmB,EAAEkmB,iBAAiB,OAAO5sB,KAAK2sB,KAAKC,WAAWC,WAAW,OAAO7sB,KAAK2sB,KAAKE,KAAK9sB,EAAEopB,GAAG,IAAIziB,EAAE,MAAMZ,IAAImI,QAAQvM,GAAG4E,MAAM2G,GAAGjN,KAAK0sB,KAAKhD,GAAG,QAAQhjB,EAAE,MAAMyiB,OAAE,EAAOA,EAAE2D,qBAAgB,IAASpmB,EAAEA,EAAEijB,IAAGoD,WAAWrrB,GAAE,GAAImpB,GAAEjZ,YAAY8X,EAAE,IAAI3X,EAAE8Y,GAAEQ,WAAWzB,EAAE,EAAEE,EAAE,EAAEC,EAAE9c,EAAE,GAAG,UAAK,IAAS8c,GAAG,CAAC,GAAGH,IAAIG,EAAEzS,MAAM,CAAC,IAAI5Q,EAAE,IAAIqjB,EAAEtc,KAAK/G,EAAE,IAAIsmB,GAAEjb,EAAEA,EAAEkb,YAAYjtB,KAAKmpB,GAAG,IAAIY,EAAEtc,KAAK/G,EAAE,IAAIqjB,EAAE2B,KAAK3Z,EAAEgY,EAAEriB,KAAKqiB,EAAEU,QAAQzqB,KAAKmpB,GAAG,IAAIY,EAAEtc,OAAO/G,EAAE,IAAIwmB,GAAEnb,EAAE/R,KAAKmpB,IAAInpB,KAAKoqB,EAAEzpB,KAAK+F,GAAGqjB,EAAE9c,IAAI6c,GAAGF,KAAK,MAAMG,OAAE,EAAOA,EAAEzS,SAASvF,EAAE8Y,GAAEQ,WAAWzB,KAAK,OAAOF,EAAE3pB,EAAEopB,GAAG,IAAIziB,EAAE,EAAE,IAAI,MAAMhF,KAAK1B,KAAKoqB,OAAE,IAAS1oB,SAAI,IAASA,EAAE+oB,SAAS/oB,EAAEyrB,KAAKhE,EAAEznB,EAAEgF,GAAGA,GAAGhF,EAAE+oB,QAAQzpB,OAAO,GAAGU,EAAEyrB,KAAKhE,EAAEziB,KAAKA,KAAK,MAAMsmB,GAAEjtB,YAAYopB,EAAEziB,EAAEhF,EAAEuL,GAAG,IAAIyc,EAAE1pB,KAAKyN,KAAK,EAAEzN,KAAKotB,KAAKxC,GAAE5qB,KAAKysB,UAAK,EAAOzsB,KAAKqtB,KAAKlE,EAAEnpB,KAAKstB,KAAK5mB,EAAE1G,KAAK2sB,KAAKjrB,EAAE1B,KAAK6I,QAAQoE,EAAEjN,KAAKutB,KAAK,QAAQ7D,EAAE,MAAMzc,OAAE,EAAOA,EAAEugB,mBAAc,IAAS9D,GAAGA,EAAEmD,WAAW,IAAI1D,EAAEziB,EAAE,OAAO,QAAQA,EAAE,QAAQyiB,EAAEnpB,KAAK2sB,YAAO,IAASxD,OAAE,EAAOA,EAAE0D,YAAO,IAASnmB,EAAEA,EAAE1G,KAAKutB,KAAKX,iBAAiB,IAAIzD,EAAEnpB,KAAKqtB,KAAKT,WAAW,MAAMlmB,EAAE1G,KAAK2sB,KAAK,YAAO,IAASjmB,GAAG,KAAKyiB,EAAEmC,WAAWnC,EAAEziB,EAAEkmB,YAAYzD,EAAEsE,gBAAgB,OAAOztB,KAAKqtB,KAAKK,cAAc,OAAO1tB,KAAKstB,KAAKvtB,KAAKopB,EAAEziB,EAAE1G,MAAMmpB,EAAE8C,GAAEjsB,KAAKmpB,EAAEziB,GAAGojB,GAAEX,GAAGA,IAAIyB,IAAG,MAAMzB,GAAG,KAAKA,GAAGnpB,KAAKotB,OAAOxC,IAAG5qB,KAAK2tB,OAAO3tB,KAAKotB,KAAKxC,IAAGzB,IAAInpB,KAAKotB,MAAMjE,IAAI9E,IAAGrkB,KAAKuqB,EAAEpB,QAAG,IAASA,EAAEqB,WAAWxqB,KAAK4qB,EAAEzB,QAAG,IAASA,EAAEmC,SAAStrB,KAAK8rB,EAAE3C,GAAGa,GAAEb,GAAGnpB,KAAK2rB,EAAExC,GAAGnpB,KAAKuqB,EAAEpB,GAAGppB,EAAEopB,EAAEziB,EAAE1G,KAAKstB,MAAM,OAAOttB,KAAKqtB,KAAKT,WAAW3mB,aAAakjB,EAAEziB,GAAG3G,EAAEopB,GAAGnpB,KAAKotB,OAAOjE,IAAInpB,KAAK2tB,OAAO3tB,KAAKotB,KAAKptB,KAAK6qB,EAAE1B,IAAIppB,EAAEopB,GAAGnpB,KAAKotB,OAAOxC,IAAGd,GAAE9pB,KAAKotB,MAAMptB,KAAKqtB,KAAKJ,YAAY/rB,KAAKioB,EAAEnpB,KAAK8rB,EAAEnC,GAAEiE,eAAezE,IAAInpB,KAAKotB,KAAKjE,EAAEppB,EAAEopB,GAAG,IAAIziB,EAAE,MAAMqG,OAAOrL,EAAE8oB,WAAWvd,GAAGkc,EAAEO,EAAE,iBAAiBzc,EAAEjN,KAAK6tB,KAAK1E,SAAI,IAASlc,EAAEnH,KAAKmH,EAAEnH,GAAGqlB,GAAEnlB,cAAciH,EAAE2c,EAAE5pB,KAAK6I,UAAUoE,GAAG,IAAI,QAAQvG,EAAE1G,KAAKotB,YAAO,IAAS1mB,OAAE,EAAOA,EAAEgmB,QAAQhD,EAAE1pB,KAAKotB,KAAKnQ,EAAEvb,OAAO,CAAC,MAAMynB,EAAE,IAAIqD,GAAE9C,EAAE1pB,MAAM0G,EAAEyiB,EAAEuB,EAAE1qB,KAAK6I,SAASsgB,EAAElM,EAAEvb,GAAG1B,KAAK8rB,EAAEplB,GAAG1G,KAAKotB,KAAKjE,GAAGppB,KAAKopB,GAAG,IAAIziB,EAAE6L,GAAEhS,IAAI4oB,EAAEsB,SAAS,YAAO,IAAS/jB,GAAG6L,GAAE3R,IAAIuoB,EAAEsB,QAAQ/jB,EAAE,IAAIykB,GAAEhC,IAAIziB,EAAE3G,EAAEopB,GAAGY,GAAE/pB,KAAKotB,QAAQptB,KAAKotB,KAAK,GAAGptB,KAAK2tB,QAAQ,MAAMjnB,EAAE1G,KAAKotB,KAAK,IAAI1rB,EAAEuL,EAAE,EAAE,IAAI,MAAMyc,KAAKP,EAAElc,IAAIvG,EAAE1F,OAAO0F,EAAE/F,KAAKe,EAAE,IAAIsrB,GAAEhtB,KAAK6qB,EAAEjB,MAAK5pB,KAAK6qB,EAAEjB,MAAK5pB,KAAKA,KAAK6I,UAAUnH,EAAEgF,EAAEuG,GAAGvL,EAAEyrB,KAAKzD,GAAGzc,IAAIA,EAAEvG,EAAE1F,SAAShB,KAAK2tB,KAAKjsB,GAAGA,EAAE4rB,KAAKL,YAAYhgB,GAAGvG,EAAE1F,OAAOiM,GAAGlN,KAAKopB,EAAEnpB,KAAKqtB,KAAKJ,YAAYvmB,GAAG,IAAIhF,EAAE,IAAI,QAAQA,EAAE1B,KAAK8tB,YAAO,IAASpsB,GAAGA,EAAEL,KAAKrB,MAAK,GAAG,EAAG0G,GAAGyiB,GAAGA,IAAInpB,KAAKstB,MAAM,CAAC,MAAM5mB,EAAEyiB,EAAE8D,YAAY9D,EAAErK,SAASqK,EAAEziB,GAAG3G,aAAaopB,GAAG,IAAIziB,OAAE,IAAS1G,KAAK2sB,OAAO3sB,KAAKutB,KAAKpE,EAAE,QAAQziB,EAAE1G,KAAK8tB,YAAO,IAASpnB,GAAGA,EAAErF,KAAKrB,KAAKmpB,KAAK,MAAM2C,GAAE/rB,YAAYopB,EAAEziB,EAAEhF,EAAEuL,EAAEyc,GAAG1pB,KAAKyN,KAAK,EAAEzN,KAAKotB,KAAKxC,GAAE5qB,KAAKysB,UAAK,EAAOzsB,KAAK+E,QAAQokB,EAAEnpB,KAAK0H,KAAKhB,EAAE1G,KAAK2sB,KAAK1f,EAAEjN,KAAK6I,QAAQ6gB,EAAEhoB,EAAEV,OAAO,GAAG,KAAKU,EAAE,IAAI,KAAKA,EAAE,IAAI1B,KAAKotB,KAAK5sB,MAAMkB,EAAEV,OAAO,GAAG+sB,KAAK,IAAI/U,QAAQhZ,KAAKyqB,QAAQ/oB,GAAG1B,KAAKotB,KAAKxC,GAAEmB,cAAc,OAAO/rB,KAAK+E,QAAQgnB,QAAQc,WAAW,OAAO7sB,KAAK2sB,KAAKE,KAAK9sB,KAAKopB,EAAEziB,EAAE1G,KAAK0B,EAAEuL,GAAG,MAAMyc,EAAE1pB,KAAKyqB,QAAQ,IAAI1Y,GAAE,EAAG,QAAG,IAAS2X,EAAEP,EAAE8C,GAAEjsB,KAAKmpB,EAAEziB,EAAE,GAAGqL,GAAG+X,GAAEX,IAAIA,IAAInpB,KAAKotB,MAAMjE,IAAI9E,GAAEtS,IAAI/R,KAAKotB,KAAKjE,OAAO,CAAC,MAAMlc,EAAEkc,EAAE,IAAIQ,EAAEC,EAAE,IAAIT,EAAEO,EAAE,GAAGC,EAAE,EAAEA,EAAED,EAAE1oB,OAAO,EAAE2oB,IAAIC,EAAEqC,GAAEjsB,KAAKiN,EAAEvL,EAAEioB,GAAGjjB,EAAEijB,GAAGC,IAAIvF,KAAIuF,EAAE5pB,KAAKotB,KAAKzD,IAAI5X,IAAIA,GAAG+X,GAAEF,IAAIA,IAAI5pB,KAAKotB,KAAKzD,IAAIC,IAAIgB,GAAEzB,EAAEyB,GAAEzB,IAAIyB,KAAIzB,IAAI,MAAMS,EAAEA,EAAE,IAAIF,EAAEC,EAAE,IAAI3pB,KAAKotB,KAAKzD,GAAGC,EAAE7X,IAAI9E,GAAGjN,KAAK4rB,EAAEzC,GAAGppB,EAAEopB,GAAGA,IAAIyB,GAAE5qB,KAAK+E,QAAQga,gBAAgB/e,KAAK0H,MAAM1H,KAAK+E,QAAQ6I,aAAa5N,KAAK0H,KAAK,MAAMyhB,EAAEA,EAAE,KAAK,MAAMwC,WAAUG,GAAE/rB,cAAcue,SAAStV,WAAWhJ,KAAKyN,KAAK,EAAE1N,EAAEopB,GAAGnpB,KAAK+E,QAAQ/E,KAAK0H,MAAMyhB,IAAIyB,QAAE,EAAOzB,GAAG,MAAMyC,WAAUE,GAAE/rB,cAAcue,SAAStV,WAAWhJ,KAAKyN,KAAK,EAAE1N,EAAEopB,GAAGA,GAAGA,IAAIyB,GAAE5qB,KAAK+E,QAAQ6I,aAAa5N,KAAK0H,KAAK,IAAI1H,KAAK+E,QAAQga,gBAAgB/e,KAAK0H,OAAO,MAAMmkB,WAAUC,GAAE/rB,YAAYopB,EAAEziB,EAAEhF,EAAEuL,EAAEyc,GAAGpL,MAAM6K,EAAEziB,EAAEhF,EAAEuL,EAAEyc,GAAG1pB,KAAKyN,KAAK,EAAE1N,KAAKopB,EAAEziB,EAAE1G,MAAM,IAAI0B,EAAE,IAAIynB,EAAE,QAAQznB,EAAEuqB,GAAEjsB,KAAKmpB,EAAEziB,EAAE,UAAK,IAAShF,EAAEA,EAAEkpB,MAAKvG,GAAE,OAAO,MAAMpX,EAAEjN,KAAKotB,KAAK1D,EAAEP,IAAIyB,IAAG3d,IAAI2d,IAAGzB,EAAE6E,UAAU/gB,EAAE+gB,SAAS7E,EAAE8E,OAAOhhB,EAAEghB,MAAM9E,EAAE+E,UAAUjhB,EAAEihB,QAAQnc,EAAEoX,IAAIyB,KAAI3d,IAAI2d,IAAGlB,GAAGA,GAAG1pB,KAAK+E,QAAQ6gB,oBAAoB5lB,KAAK0H,KAAK1H,KAAKiN,GAAG8E,GAAG/R,KAAK+E,QAAQiR,iBAAiBhW,KAAK0H,KAAK1H,KAAKmpB,GAAGnpB,KAAKotB,KAAKjE,EAAEppB,YAAYopB,GAAG,IAAIziB,EAAEhF,EAAE,mBAAmB1B,KAAKotB,KAAKptB,KAAKotB,KAAK/rB,KAAK,QAAQK,EAAE,QAAQgF,EAAE1G,KAAK6I,eAAU,IAASnC,OAAE,EAAOA,EAAE0M,YAAO,IAAS1R,EAAEA,EAAE1B,KAAK+E,QAAQokB,GAAGnpB,KAAKotB,KAAKe,YAAYhF,IAAI,MAAM+D,GAAEntB,YAAYopB,EAAEziB,EAAEhF,GAAG1B,KAAK+E,QAAQokB,EAAEnpB,KAAKyN,KAAK,EAAEzN,KAAKysB,UAAK,EAAOzsB,KAAK2sB,KAAKjmB,EAAE1G,KAAK6I,QAAQnH,EAAEmrB,WAAW,OAAO7sB,KAAK2sB,KAAKE,KAAK9sB,KAAKopB,GAAG8C,GAAEjsB,KAAKmpB,IAAI,MAAMiF,GAAE,CAACjD,EAAE,QAAQc,EAAEhf,GAAEmhB,EAAE1E,GAAEwD,EAAE,EAAEF,EAAEjC,GAAEsD,EAAE7B,GAAE8B,EAAEtE,GAAEuE,EAAEtC,GAAEJ,EAAEmB,GAAEwB,EAAE1C,GAAE2C,EAAE7C,GAAE8C,EAAE7C,GAAE8C,EAAEhD,GAAEiD,EAAE1B,IAAGmB,GAAEnqB,OAAO2qB,uBAAuB,MAAMR,IAAGA,GAAElD,GAAE6B,KAAI,QAAQ7D,GAAEC,WAAW0F,uBAAkB,IAAS3F,GAAEA,GAAEC,WAAW0F,gBAAgB,IAAInuB,KAAK;;;;;;ACA9jP,MAA2U+F,GAAE,IAAIxG,IAAIkkB,GAAE+E,GAAG,CAAClc,KAAKyc,KAAK,IAAII,EAAE,MAAM1F,EAAEsF,EAAE1oB,OAAO,IAAI2oB,EAAEjoB,EAAE,MAAMqQ,EAAE,GAAGiY,EAAE,GAAG,IAAIG,EAAEI,EAAE,EAAEH,GAAE,EAAG,KAAKG,EAAEnG,GAAG,CAAC,IAAI+F,EAAEld,EAAEsd,GAAGA,EAAEnG,QAAG,KAAU1iB,EAAEgoB,EAAEa,GAAGZ,EAAE,QAAQG,EAAEpoB,SAAI,IAASooB,OAAE,EAAOA,EAAEiF,eAAe5E,GAAGR,EAAE1c,IAAIsd,GAAGH,GAAE,EAAGJ,EAAErpB,KAAKe,GAAGqQ,EAAEpR,KAAKwpB,GAAGI,IAAI,GAAGA,IAAInG,GAAGrS,EAAEpR,KAAKsM,EAAEmX,IAAIgG,EAAE,CAAC,MAAMjB,EAAEpX,EAAEvP,KAAK,gBAAW,KAAUyK,EAAEvG,GAAEnG,IAAI4oB,KAAKziB,GAAE9F,IAAIuoB,EAAElc,EAAE8E,GAAG2X,EAAEM,EAAE,OAAOb,EAAElc,KAAKyc,IAAIC,GAAEvF,GAAE+E,IAAGznB,GAAE0iB,GAAEnX,ICAtqBkc,GAAa,EAAbA,GAAqB,EAAoDlc,GAAEkc,GAAG,IAAIlc,MAAMmf,gBAAgBjD,EAAEpc,OAAOE;;;;;GAAI,MAAMvG,GAAE3G,YAAYopB,IAAI0D,WAAW,OAAO7sB,KAAK2sB,KAAKE,KAAK9sB,KAAKopB,EAAElc,EAAEvG,GAAG1G,KAAKgvB,KAAK7F,EAAEnpB,KAAK2sB,KAAK1f,EAAEjN,KAAKivB,KAAKvoB,EAAE3G,KAAKopB,EAAElc,GAAG,OAAOjN,KAAKgmB,OAAOmD,EAAElc,GAAGlN,OAAOopB,EAAElc,GAAG,OAAOjN,KAAK2c,UAAU1P;;;;;GCArS,MAAM4e,EAAEnlB,IAAGgjB,GAA0Yzc,GAAE,IAAIrH,SAASikB,cAAc,IAAIG,GAAE,CAACN,EAAEP,EAAEpX,KAAK,IAAIqY,EAAE,MAAMT,EAAED,EAAE2D,KAAKT,WAAW7C,OAAE,IAASZ,EAAEO,EAAE4D,KAAKnE,EAAEkE,KAAK,QAAG,IAAStb,EAAE,CAAC,MAAMoX,EAAEQ,EAAE1jB,aAAagH,KAAI8c,GAAGK,EAAET,EAAE1jB,aAAagH,KAAI8c,GAAGhY,EAAE,IAAIrL,GAAEyiB,EAAEiB,EAAEV,EAAEA,EAAE7gB,aAAa,CAAC,MAAMnC,EAAEqL,EAAEub,KAAKL,YAAY9D,EAAEpX,EAAE4a,KAAK7C,EAAEX,IAAIO,EAAE,GAAGI,EAAE,CAAC,IAAIpjB,EAAE,QAAQ0jB,EAAErY,EAAEmd,YAAO,IAAS9E,GAAGA,EAAE/oB,KAAK0Q,EAAE2X,GAAG3X,EAAE4a,KAAKjD,OAAE,IAAS3X,EAAE+b,OAAOpnB,EAAEgjB,EAAEmD,QAAQ1D,EAAE0D,MAAM9a,EAAE+b,KAAKpnB,GAAG,GAAGA,IAAIqjB,GAAGD,EAAE,CAAC,IAAIJ,EAAE3X,EAAEsb,KAAK,KAAK3D,IAAIhjB,GAAG,CAAC,MAAMA,EAAEgjB,EAAEuD,YAAYtD,EAAE1jB,aAAayjB,EAAEK,GAAGL,EAAEhjB,IAAI,OAAOqL,GAAGoY,GAAE,CAACT,EAAEhjB,EAAEyiB,EAAEO,KAAKA,EAAEyD,KAAKzmB,EAAEyiB,GAAGO,GAAGW,GAAE,GAAmCpN,GAAEyM,IAAI,IAAIhjB,EAAE,QAAQA,EAAEgjB,EAAEoE,YAAO,IAASpnB,GAAGA,EAAErF,KAAKqoB,GAAE,GAAG,GAAI,IAAIP,EAAEO,EAAE2D,KAAK,MAAMtb,EAAE2X,EAAE4D,KAAKL,YAAY,KAAK9D,IAAIpX,GAAG,CAAC,MAAM2X,EAAEP,EAAE8D,YAAY9D,EAAErK,SAASqK,EAAEO,ICC/iCM,GAAE,CAAC/c,EAAEvL,EAAEynB,KAAK,MAAMW,EAAE,IAAI5pB,IAAI,IAAI,IAAIypB,EAAEjoB,EAAEioB,GAAGR,EAAEQ,IAAIG,EAAElpB,IAAIqM,EAAE0c,GAAGA,GAAG,OAAOG,GAAGK,GAAEzoB,GAAE,cAAcynB,GAAEppB,YAAYkN,GAAG,GAAGqR,MAAMrR,GAAGA,EAAEQ,OAAOqc,GAAQ,MAAMvmB,MAAM,iDAAiDxD,GAAGkN,EAAEvL,EAAEynB,GAAG,IAAIW,OAAE,IAASX,EAAEA,EAAEznB,OAAE,IAASA,IAAIooB,EAAEpoB,GAAG,MAAMioB,EAAE,GAAGD,EAAE,GAAG,IAAIhjB,EAAE,EAAE,IAAI,MAAMhF,KAAKuL,EAAE0c,EAAEjjB,GAAGojB,EAAEA,EAAEpoB,EAAEgF,GAAGA,EAAEgjB,EAAEhjB,GAAGyiB,EAAEznB,EAAEgF,GAAGA,IAAI,MAAM,CAACqG,OAAO2c,EAAEhT,KAAKiT,GAAG5pB,OAAOkN,EAAEvL,EAAEynB,GAAG,OAAOnpB,KAAKmvB,GAAGliB,EAAEvL,EAAEynB,GAAGpc,OAAOhN,OAAO2B,GAAGynB,EAAEW,EAAEK,IAAI,IAAIJ,EAAE,MAAM3F,EDDifsF,CAAAA,GAAGA,EAAE0D,KCCpfzD,CAAEjoB,IAAIqL,OAAO2d,EAAEhU,KAAK0T,GAAGpqB,KAAKmvB,GAAGhG,EAAEW,EAAEK,GAAG,IAAI3pB,MAAMC,QAAQ2jB,GAAG,OAAOpkB,KAAKovB,GAAGhF,EAAEM,EAAE,MAAMd,EAAE,QAAQG,EAAE/pB,KAAKovB,UAAK,IAASrF,EAAEA,EAAE/pB,KAAKovB,GAAG,GAAGnS,EAAE,GAAG,IAAIzK,EAAED,EAAEgc,EAAE,EAAE3C,EAAExH,EAAEpjB,OAAO,EAAEquB,EAAE,EAAExE,EAAEH,EAAE1pB,OAAO,EAAE,KAAKutB,GAAG3C,GAAGyD,GAAGxE,GAAG,GAAG,OAAOzG,EAAEmK,GAAGA,SAAS,GAAG,OAAOnK,EAAEwH,GAAGA,SAAS,GAAGhC,EAAE2E,KAAKnE,EAAEiF,GAAGpS,EAAEoS,GAAG3F,GAAEtF,EAAEmK,GAAG7D,EAAE2E,IAAId,IAAIc,SAAS,GAAGzF,EAAEgC,KAAKxB,EAAES,GAAG5N,EAAE4N,GAAGnB,GAAEtF,EAAEwH,GAAGlB,EAAEG,IAAIe,IAAIf,SAAS,GAAGjB,EAAE2E,KAAKnE,EAAES,GAAG5N,EAAE4N,GAAGnB,GAAEtF,EAAEmK,GAAG7D,EAAEG,IAAInkB,GAAEhF,EAAEub,EAAE4N,EAAE,GAAGzG,EAAEmK,IAAIA,IAAI1D,SAAS,GAAGjB,EAAEgC,KAAKxB,EAAEiF,GAAGpS,EAAEoS,GAAG3F,GAAEtF,EAAEwH,GAAGlB,EAAE2E,IAAI3oB,GAAEhF,EAAE0iB,EAAEmK,GAAGnK,EAAEwH,IAAIA,IAAIyD,SAAS,QAAG,IAAS7c,IAAIA,EAAEwX,GAAEI,EAAEiF,EAAExE,GAAGtY,EAAEyX,GAAEJ,EAAE2E,EAAE3C,IAAIpZ,EAAEvP,IAAI2mB,EAAE2E,IAAI,GAAG/b,EAAEvP,IAAI2mB,EAAEgC,IAAI,CAAC,MAAM3e,EAAEsF,EAAEhS,IAAI6pB,EAAEiF,IAAIlG,OAAE,IAASlc,EAAEmX,EAAEnX,GAAG,KAAK,GAAG,OAAOkc,EAAE,CAAC,MAAMlc,EAAEvG,GAAEhF,EAAE0iB,EAAEmK,IAAI7E,GAAEzc,EAAEyd,EAAE2E,IAAIpS,EAAEoS,GAAGpiB,OAAOgQ,EAAEoS,GAAG3F,GAAEP,EAAEuB,EAAE2E,IAAI3oB,GAAEhF,EAAE0iB,EAAEmK,GAAGpF,GAAG/E,EAAEnX,GAAG,KAAKoiB,SAAStd,GAAEqS,EAAEwH,IAAIA,SAAS7Z,GAAEqS,EAAEmK,IAAIA,IAAI,KAAKc,GAAGxE,GAAG,CAAC,MAAM5d,EAAEvG,GAAEhF,EAAEub,EAAE4N,EAAE,IAAInB,GAAEzc,EAAEyd,EAAE2E,IAAIpS,EAAEoS,KAAKpiB,EAAE,KAAKshB,GAAG3C,GAAG,CAAC,MAAM3e,EAAEmX,EAAEmK,KAAK,OAAOthB,GAAG8E,GAAE9E,GAAG,OAAOjN,KAAKovB,GAAGhF,EDDzU,EAACV,EAAEhjB,EAAE2jB,MAAIX,EAAE0D,KAAK1mB,GCC2T2jB,CAAE3oB,EAAEub,GAAGhQ,MCD7sCyc,GAAEhjB,GAAE,cAAchF,GAAE3B,YAAYopB,GAAG,IAAIziB,EAAE,GAAG4X,MAAM6K,GAAGA,EAAE1b,OAAOqc,IAAa,UAAUX,EAAEzhB,OAAO,QAAQhB,EAAEyiB,EAAEsB,eAAU,IAAS/jB,OAAE,EAAOA,EAAE1F,QAAQ,EAAE,MAAMuC,MAAM,sGAAsGxD,OAAOopB,GAAG,MAAM,IAAItiB,OAAO6P,KAAKyS,GAAGjmB,OAAQwD,GAAGyiB,EAAEziB,IAAKlE,KAAK,KAAK,IAAIzC,OAAO2G,GAAGhF,IAAI,IAAIooB,EAAEJ,EAAE,QAAG,IAAS1pB,KAAKsvB,GAAG,CAACtvB,KAAKsvB,GAAG,IAAIvtB,SAAI,IAAS2E,EAAE+jB,UAAUzqB,KAAKuvB,GAAG,IAAIxtB,IAAI2E,EAAE+jB,QAAQjoB,KAAK,KAAK+D,MAAM,MAAMrD,OAAQimB,GAAG,KAAKA,KAAM,IAAI,MAAMA,KAAKznB,EAAEA,EAAEynB,MAAM,QAAQW,EAAE9pB,KAAKuvB,UAAK,IAASzF,OAAE,EAAOA,EAAE7mB,IAAIkmB,KAAKnpB,KAAKsvB,GAAGltB,IAAI+mB,GAAG,OAAOnpB,KAAK2c,OAAOjb,GAAG,MAAMuL,EAAEvG,EAAE3B,QAAQkK,UAAUjP,KAAKsvB,GAAG1tB,QAASunB,IAAIA,KAAKznB,IAAIuL,EAAE6R,OAAOqK,GAAGnpB,KAAKsvB,GAAGruB,OAAOkoB,MAAO,IAAI,MAAMA,KAAKznB,EAAE,CAAC,MAAMgF,IAAIhF,EAAEynB,GAAGziB,IAAI1G,KAAKsvB,GAAGrsB,IAAIkmB,KAAK,QAAQO,EAAE1pB,KAAKuvB,UAAK,IAAS7F,OAAE,EAAOA,EAAEzmB,IAAIkmB,MAAMziB,GAAGuG,EAAE7K,IAAI+mB,GAAGnpB,KAAKsvB,GAAGltB,IAAI+mB,KAAKlc,EAAE6R,OAAOqK,GAAGnpB,KAAKsvB,GAAGruB,OAAOkoB,KAAK,OAAOA;;;;;GCkEt1B,MAAMqG,GAAWC;;;;;;AA3DxB,cAAgCC,GAC/B3vB,YAAY4vB,GACX,IAAIC,EAEJ,GADAtR,MAAMqR,GACFA,EAASliB,OAASoiB,IACH,UAAlBF,EAASjoB,OACoB,QAA3BkoB,EAAKD,EAASlF,eAA4B,IAAPmF,OAAgB,EAASA,EAAG5uB,QAAU,EAC3E,MAAM,IAAIuC,MAAM,8GAIlBxD,OAAO+vB,GACN,MAAO,GAER/vB,OAAO4G,GAAOmpB,IACb,MAAMjjB,MAAEA,GAAUlG,EAAK5B,QACvB,QAAsCT,IAAlCtE,KAAK+vB,yBAAwC,CAChD/vB,KAAK+vB,yBAA2B,IAAIhuB,IACpC,IAAK,MAAM2F,KAAQooB,EAClB9vB,KAAK+vB,yBAAyB3tB,IAAIsF,GAOpC1H,KAAK+vB,yBAAyBnuB,QAAS8F,IAEf,MAAnBooB,EAAUpoB,KACb1H,KAAK+vB,yBAAyB9uB,OAAOyG,GACjCA,EAAKhH,SAAS,KACjBmM,EAAMmjB,eAAetoB,GAMrBmF,EAAMnF,GAAQ,MAKjB,IAAK,MAAMA,KAAQooB,EAAW,CAC7B,MAAMplB,EAAQolB,EAAUpoB,GACX,MAATgD,IACH1K,KAAK+vB,yBAAyB3tB,IAAIsF,GAC9BA,EAAKhH,SAAS,KACjBmM,EAAMojB,YAAYvoB,EAAMgD,GAIxBmC,EAAMnF,GAAQgD,GAIjB,OAAOwlB,MC9DAvG,GAAEA,GAAG,MAAMA,EAAEA,EAAER;;;;;;;;;;GCArB,MAAMlc,WAAU6c,GAAE/pB,YAAY2G,GAAG,GAAG4X,MAAM5X,GAAG1G,KAAKmwB,GAAGhH,GAAEziB,EAAE+G,OAAO/L,GAAQ,MAAM6B,MAAMvD,KAAKgF,YAAYorB,cAAc,yCAAyCrwB,OAAO+pB,GAAG,GAAGA,IAAIX,IAAG,MAAMW,EAAE,OAAO9pB,KAAKqwB,QAAG,EAAOrwB,KAAKmwB,GAAGrG,EAAE,GAAGA,IAAIpjB,GAAE,OAAOojB,EAAE,GAAG,iBAAiBA,EAAE,MAAMvmB,MAAMvD,KAAKgF,YAAYorB,cAAc,qCAAqC,GAAGtG,IAAI9pB,KAAKmwB,GAAG,OAAOnwB,KAAKqwB,GAAGrwB,KAAKmwB,GAAGrG,EAAE,MAAMpoB,EAAE,CAACooB,GAAG,OAAOpoB,EAAE4uB,IAAI5uB,EAAE1B,KAAKqwB,GAAG,CAAC7F,WAAWxqB,KAAKgF,YAAYurB,WAAW9F,QAAQ/oB,EAAEqL,OAAO,KAAKE,GAAEmjB,cAAc,aAAanjB,GAAEsjB,WAAW,EAAE,MAAM7G,GAAE3X,GAAE9E,ICE5gBujB,GAAY,CAACC,EAAgBC,EAAS5U,GAAsB1I,KAAAA,GAAS,MACxC,iBAAvB0I,EACV2U,EAAiBE,EAAI,UAAU7U,YAA6B2U,IAClDjwB,MAAMC,QAAQqb,IAAuBA,EAAmB9a,SAClEyvB,EAAiBE,EAAI,GAAG7U,EAAmB3a,IAAIqU,GAAQmb,EAAI,gDAAgDnb,SAAYib,KTNwkB,EAACtH,EAAEziB,EAAEhF,KAAK,IAAIuL,EAAEyc,EAAE,MAAM3X,EAAE,QAAQ9E,EAAE,MAAMvL,OAAE,EAAOA,EAAEkvB,oBAAe,IAAS3jB,EAAEA,EAAEvG,EAAE,IAAIijB,EAAE5X,EAAE8e,WAAW,QAAG,IAASlH,EAAE,CAAC,MAAMR,EAAE,QAAQO,EAAE,MAAMhoB,OAAE,EAAOA,EAAEkvB,oBAAe,IAASlH,EAAEA,EAAE,KAAK3X,EAAE8e,WAAWlH,EAAE,IAAIqD,GAAEtmB,EAAET,aAAa2jB,KAAIT,GAAGA,OAAE,EAAO,MAAMznB,EAAEA,EAAE,IAAWioB,EAAEwD,KAAKhE,ISQz8BxM,CAAO8T,EAAgBC,EAAS,CAAEtd,KAAAA,KAG7B0d,GAAW,CAAC3uB,EAAK4uB,EAAMpX,IRXlBwP,CAAAA,KAAK4F,aAAa5F,IQarB6H,CADWrX,IAAWoX,GAAQ,IAAIrwB,SAASyB,GAAO,GAAGA,KAAOwX,IAAWxX,GCjBzE8uB,GACM,EADNA,GAEA,EAFAA,GAGE,GAHFA,GASG,GATHA,GAUE,GAVFA,GAWI,GAXJA,GAYM,GAZNA,GAaA,GAbAA,GAcC,GAdDA,GAeO,GAfPA,GAgBK,GAhBLA,GAiBQ,GAjBRA,GAkBO,GAlBPA,GAqBG,GArBHA,GAgFD,IAyBCC,GAAU7e,IAAUA,EAAM5H,IAAoB,UAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,MAAoBG,GAAgB/e,GAE9Ggf,GAAehf,IAAUA,EAAM5H,IAAoB,UAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,KAAmBK,GAAkBjf,GAAO,GAAO,GAAO,GAEzIkf,GAAUlf,IAAUA,EAAM5H,IAAqB,aAAd4H,EAAM5H,KAAoC,MAAd4H,EAAM5H,IAAe4H,EAAM8e,UAAYF,MAAoBG,GAAgB/e,GAExImf,GAAenf,IAAUA,EAAM5H,IAAqB,aAAd4H,EAAM5H,KAAoC,MAAd4H,EAAM5H,IAAe4H,EAAM8e,UAAYF,KAAmBK,GAAkBjf,GAAO,GAAO,GAAO,GAEnKof,GAASpf,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,MAAyBG,GAAgB/e,GAEhJqf,GAAUrf,IAAUA,EAAM5H,IAAqB,eAAd4H,EAAM5H,KAAsC,UAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,MAA0BG,GAAgB/e,GAEpJsf,GAAOtf,IAAUA,EAAM5H,IAAqB,YAAd4H,EAAM5H,KAAmC,OAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,MAAuBG,GAAgB/e,GAExIuf,GAASvf,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,MAAyBG,GAAgB/e,GAUhJwf,GAAYxf,IAAUA,EAAM5H,IAAqB,YAAd4H,EAAM5H,KAAmC,OAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,KAAsBK,GAAkBjf,GAAO,GAAO,GAAO,GAEnKyf,GAAczf,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,KAAwBK,GAAkBjf,GAAO,GAAO,GAAO,GAE3K0f,GAAc1f,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,KAAwBK,GAAkBjf,GAAO,GAAO,GAAO,GAE3K2f,GAAe3f,IAAUA,EAAM5H,IAAqB,eAAd4H,EAAM5H,KAAsC,UAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,KAAyBK,GAAkBjf,GAAO,GAAO,GAAO,GAM/K4f,GAAS5f,IAAUA,EAAM5H,IAAoB,SAAd4H,EAAM5H,IAAiB4H,EAAM8e,UAAYF,MAAmBG,GAAgB/e,GAE3G6f,GAAQ7f,IAAUA,EAAM5H,IAAoB,QAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,MAAkBG,GAAgB/e,GAExG8f,GAAa9f,IAAUA,EAAM5H,IAAoB,SAAd4H,EAAM5H,IAAiB4H,EAAM8e,UAAYF,KAAkBK,GAAkBjf,GAAO,GAAM,GAAO,GAEpI+f,GAAY/f,IAAUA,EAAM5H,IAAoB,QAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,KAAiBK,GAAkBjf,GAAO,GAAM,GAAO,GAEjIggB,GAAWhgB,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,KAAkC,QAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,MAAqBG,GAAgB/e,GAExIigB,GAAYjgB,IAAUA,EAAM5H,IAAoB,QAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,MAAkBG,GAAgB/e,GAE5GkgB,GAAgBlgB,IAAUA,EAAM5H,IAAoB,QAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,KAAiBK,GAAkBjf,GAAkB,GAAiB,GAAmB,GAMvKmgB,GAAWngB,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,MAAsBG,GAAgB/e,GAElHogB,GAAapgB,IAAUA,EAAM5H,IAAoB,aAAd4H,EAAM5H,IAAqB4H,EAAM8e,UAAYF,MAAwBG,GAAgB/e,GAExHqgB,GAAgBrgB,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,KAAqBK,GAAkBjf,GAAO,GAAO,GAAO,GAI7IsgB,GAAkBtgB,IAAUA,EAAM5H,IAAoB,aAAd4H,EAAM5H,IAAqB4H,EAAM8e,UAAYF,KAAuBK,GAAkBjf,GAAO,GAAO,GAAO,GAInJugB,GAAoBvgB,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,KAAqBK,GAAkBjf,GAAO,GAAM,GAAO,GAEhJwgB,GAAsBxgB,IAAUA,EAAM5H,IAAoB,aAAd4H,EAAM5H,IAAqB4H,EAAM8e,UAAYF,KAAuBK,GAAkBjf,GAAO,GAAM,GAAO,GAMtJygB,GAASzgB,GACVA,EAAM5H,IACFsoB,GAAK1gB,IAAU2gB,GAAe3gB,GAG9BA,EAAM8e,UAAYF,KAAgBG,GAAgB/e,IAAYA,EAAM8e,UAAYF,IAAuBK,GAAkBjf,GAAkB,GAAiB,GAAkB,GAGjL0gB,GAAO1gB,GACS,OAAdA,EAAM5H,MAAiB2mB,GAAgB/e,GAOzC2gB,GAAiB3gB,IACC,cAAdA,EAAM5H,KAAqC,SAAd4H,EAAM5H,KAAkC,YAAd4H,EAAM5H,KAAmC,OAAd4H,EAAM5H,MAAkB6mB,GAAkBjf,GAAkB,GAAiB,GAAkB,GAGrL+e,GAAkB/e,GAASA,EAAM4gB,UAAY5gB,EAAM6gB,QAAUC,GAAW9gB,GAExE8gB,GAAa9gB,MAAYA,EAAM+gB,UAAW/gB,EAAMghB,SAEhD/B,GAAoB,CAACjf,EAAOihB,EAAUC,EAASC,IAAcnhB,EAAM4gB,WAAaO,GAAanhB,EAAM6gB,SAAWK,GAAWJ,GAAW9gB,KAAWihB,EC3M/IG,GAAU,6MAEhB,MAAMC,GACL3zB,YAAY4zB,GACX,MAAMC,EAAUH,GAAQ9jB,KAAKgkB,EAAU9jB,QAAQ,KAAM,MACrD,GAAgB,OAAZ+jB,EACH,MAAM,IAAIrwB,MAAM,sBAAsBowB,gCAEvC3zB,KAAK2zB,UAAYA,EACjB3zB,KAAK6zB,UAAYD,EAAQ,IAAM,KAC/B5zB,KAAK8zB,QAAUF,EAAQ,IAAM,KAC7B5zB,KAAK+zB,QAAUH,EAAQ,IAAM,KAC7B5zB,KAAKg0B,SAAYJ,EAAQ,IAAMA,EAAQ,GAAGpc,MAAM,IAAO,KACvDxX,KAAKi0B,WAAcL,EAAQ,IAAMA,EAAQ,GAAGpc,MAAM,IAAO,KACzDxX,KAAKk0B,YAAcN,EAAQ,IAAM,KAC7B5zB,KAAK6zB,YACR7zB,KAAK6zB,UAAY7zB,KAAK6zB,UAAUhpB,eAE7B7K,KAAK8zB,UACR9zB,KAAK8zB,QAAU9zB,KAAK8zB,QAAQjpB,cAAcgF,QAAQ,SAAUnO,GACpDA,EAAE6V,gBAGPvX,KAAK+zB,UACR/zB,KAAK+zB,QAAU/zB,KAAK+zB,QAAQxc,eAI9BxX,cACC,OAAOC,KAAK6zB,UAGb9zB,YACC,OAAOC,KAAK8zB,QAGb/zB,YACC,OAAOC,KAAK+zB,QAGbh0B,aACC,OAAOC,KAAKg0B,SAGbj0B,oBACC,OAAOC,KAAKg0B,SAAWh0B,KAAKg0B,SAASztB,MAAM,KAAO,GAGnDxG,eACC,OAAOC,KAAKi0B,WAGbl0B,sBACC,OAAOC,KAAKi0B,WAAaj0B,KAAKi0B,WAAWzc,MAAM,GAAGjR,MAAM,KAAO,GAGhExG,gBACC,OAAOC,KAAKk0B,YAGbn0B,uBACC,OAAOC,KAAKk0B,YAAcl0B,KAAKk0B,YAAY1c,MAAM,GAAGjR,MAAM,KAAO,GAGlExG,oBAAoBo0B,GACnB,OAAOn0B,KAAKo0B,uBAAuBtzB,QAAQqzB,IAAY,EAGxDp0B,WACC,MAAM+pB,EAAI,CAAC9pB,KAAK6zB,WAiBhB,OAfI7zB,KAAK8zB,SACRhK,EAAEnpB,KAAKX,KAAK8zB,SAET9zB,KAAK+zB,SACRjK,EAAEnpB,KAAKX,KAAK+zB,SAET/zB,KAAKg0B,UACRlK,EAAEnpB,KAAKX,KAAKg0B,UAETh0B,KAAKi0B,YACRnK,EAAEnpB,KAAKX,KAAKi0B,YAETj0B,KAAKk0B,aACRpK,EAAEnpB,KAAKX,KAAKk0B,aAENpK,EAAEtnB,KAAK,MClFhB,MAAM6xB,GAAQ,IAAIn0B,IAEZo0B,GAAoBC,IACpBF,GAAMpxB,IAAIsxB,IACdF,GAAMzzB,IAAI2zB,EAAM,IAAIb,GAAOa,IAGrBF,GAAM9zB,IAAIg0B,IAGZC,GAAwBD,IAC7B,IACC,GAAIA,GAAwB,iBAATA,EAClB,OAAOD,GAAkBC,GAEzB,MAAOtnB,MASJgI,GAAYsf,GACbA,EACIC,GAAsBD,GAG1BE,KACIH,GAAkBG,MAGnBD,GAAsBzW,MCnCxB2W,GAAc,6MACdC,GAA2B,iCAG3BC,GAAsB,CAC3BC,GAAM,KACNC,GAAM,KACNvf,GAAM,KACNwf,GAAM,MCFDC,GAAqBC,IAC1B,IAAKA,EACJ,OAAOtrB,EAGR,GAAe,UAAXsrB,EACH,MAAO,QAIR,MAAMvK,EAAIuK,EAAOC,YAAY,KAC7B,OAAIxK,GAAK,EACDuK,EAAOzd,MAAM,EAAGkT,GAIjBuK,IAAWtrB,EAAiBA,EAAiB,IChB/CwrB,GAAe,IAAIpzB,IACnBqzB,GAAiB,IAAIrzB,IAErBszB,GAAa,IAAIn1B,IACjBo1B,GAAiB,IAAIp1B,IACrBmM,GAAU,IAAInM,IAQdq1B,GAAqB,CAAC9oB,EAAa+oB,EAAU7oB,KAElD,MAAM8oB,EAAY,GAAGhpB,KAAe+oB,IACpCnpB,GAAQzL,IAAI60B,EAAW9oB,IAGlB+oB,GAAqB,CAACjpB,EAAavL,KACxCm0B,GAAWz0B,IAAI6L,EAAavL,IAevBy0B,GAAa,CAAClpB,EAAa+oB,KAChC,MAAMC,EAAY,GAAGhpB,KAAe+oB,IACpC,OAAOnpB,GAAQpJ,IAAIwyB,IAgCdG,GAAkB/xB,MAAAA,IACvB,MAAMqG,EAAW+K,KAAYL,cACvBihB,EAAS5gB,KAAY6gB,YAC3B,IAAIN,EF9DmBP,CAAAA,IACvB,IAAIhY,EAEJ,IAAKgY,EACJ,OAAOtrB,EAGR,GAAsB,iBAAXsrB,IAAwBhY,EAAIyX,GAAY/kB,KAAKslB,EAAOplB,QAAQ,KAAM,OAAQ,CACpF,IAAI3F,EAAW+S,EAAE,GAAGpS,cAChBgrB,EAAS5Y,EAAE,GAAKA,EAAE,GAAG1F,mBAAgBjT,EACzC,MAAMyxB,EAAS9Y,EAAE,GAAKA,EAAE,GAAGpS,mBAAgBvG,EACrC0xB,EAAW/Y,EAAE,GAAKA,EAAE,GAAGzF,MAAM,QAAKlT,EAClC2xB,EAAYhZ,EAAE,GAKpB,OAHA/S,EAAW0qB,GAAoB1qB,IAAaA,EAGvC+rB,IAAchZ,EAAI0X,GAAyBhlB,KAAKsmB,KACnDD,IAAa/Y,EAAI0X,GAAyBhlB,KAAKqmB,IACzC,SAAS/Y,EAAE,GAAGpS,iBAIL,OAAbX,GAAsB2rB,IACV,SAAXE,EACHF,EAAS,KACY,SAAXE,IACVF,EAAS,OAIJ3rB,GAAY2rB,EAAS,IAAMA,GAAUG,EAAW,IAAMA,EAASnmB,QAAQ,IAAK,KAAO,IAAM,OE+BlFqmB,CAAgBhsB,GAAY2rB,EAAS,IAAIA,IAAW,KAEnE,KAAOL,IAAa9rB,IAAqBisB,GAAWlpB,EAAa+oB,IAChEA,EAAWR,GAAmBQ,GAI/B,MAAMlrB,EAAuByS,KAC7B,GAAIyY,IAAa9rB,GAAqBY,EAKtC,GAAKqrB,GAAWlpB,EAAa+oB,GAK7B,IACC,MAAMt0B,OAlDuB,EAACuL,EAAa+oB,KAC5C,MAAMC,EAAY,GAAGhpB,KAAe+oB,IAC9BW,EAAoB9pB,GAAQ9L,IAAIk1B,GAMtC,OAJKH,GAAe/0B,IAAIk1B,IACvBH,GAAe10B,IAAI60B,EAAWU,EAAkBX,IAG1CF,GAAe/0B,IAAIk1B,IA0CNW,CAAuB3pB,EAAa+oB,GACvDE,GAAmBjpB,EAAavL,GAC/B,MAAO+L,GACHmoB,GAAenyB,IAAIgK,EAAEC,WACzBkoB,GAAehzB,IAAI6K,EAAEC,SACrB5K,QAAQ0K,MAAMC,EAAEC,cA5CYT,CAAAA,IACzB0oB,GAAalyB,IAAIwJ,KACrBnK,QAAQC,KAAK,IAAIkK,+EACjB,kBAAkBA,+KAClB0oB,GAAa/yB,IAAIqK,KA8BjB4pB,CAAuB5pB,QALvBipB,GAAmBjpB,EAAa,OAqBlCqQ,GAAqB,KACpB,MAAMwZ,EAAc,IAAIjB,GAAW3e,QACnC,OAAOpV,QAAQC,IAAI+0B,EAAYn1B,IAAIy0B,OChHpC,MAAMW,GAAqB,qECGrBC,GAAsB,IAAIt2B,IAQhC,MAAMu2B,GACL12B,YAAY0M,GACXzM,KAAKyM,YAAcA,EAWpB1M,QAAQ22B,KAAYjrB,GAKnB,GAJuB,iBAAZirB,IACVA,EAAU,CAAEjsB,IAAKisB,EAASC,YAAaD,KAGnCA,IAAYA,EAAQjsB,IACxB,MAAO,GAGR,MAAMmsB,EFFkBnqB,CAAAA,GAClB4oB,GAAW90B,IAAIkM,GECNoqB,CAAkB72B,KAAKyM,aAClCmqB,IAAWA,EAAOF,EAAQjsB,MAC7BnI,QAAQC,KAAK,OAAOm0B,EAAQjsB,mEAE7B,MAAMqsB,EAAcF,GAAUA,EAAOF,EAAQjsB,KAAOmsB,EAAOF,EAAQjsB,KAAQisB,EAAQC,aAAeD,EAAQjsB,IAE1G,ODpCDsC,GAD4BA,ECqCOtB,IDpChB,GCoCGqrB,EDlCVjnB,QAAQ0mB,GAAoB,CAACQ,EAAIC,EAAIC,EAAIC,EAAIC,KACxD,GAAIH,EACH,MAAO,IAGR,GAAIC,EACH,OAAOA,EAAGpnB,QAAQ,MAAO,KAG1B,GAAIqnB,EACH,OAAOle,OAAOjM,EAAOqqB,SAASF,KAG/B,MAAM,IAAI3zB,MAAM,uCAAuC4zB,OAhBnC,IAAOpqB,GCyC7B,MA6BMsqB,GAAgBxzB,MAAAA,UAKf+xB,GAAgBnpB,GAlCGA,CAAAA,IACzB,GAAI+pB,GAAoBvzB,IAAIwJ,GAC3B,OAAO+pB,GAAoBj2B,IAAIkM,GAGhC,MAAM6qB,EAAa,IAAIb,GAAWhqB,GAElC,OADA+pB,GAAoB51B,IAAI6L,EAAa6qB,GAC9BA,GA4BAC,CAAkB9qB,IC9EpB+qB,GAAKra,UAAUsa,UACf/kB,GAAQ,iBAAkBxO,QAAUiZ,UAAUua,eAAiB,EAC/DC,GAAK,kBAAkB1M,KAAKuM,IAC5BI,IAAUD,IAAM,iBAAiB1M,KAAKuM,IACtCK,IAAUF,KAAOC,IAAU,0CAA0C3M,KAAKuM,IAC1EM,IAAUH,IAAM,SAAS1M,KAAKuM,IAC9BO,IAAiD,IAAvC5a,UAAU6a,SAASl3B,QAAQ,OACrCm3B,IAAWF,IAAW,UAAU9M,KAAKuM,IACrCU,GAAeD,IAAW,2BAA2BhN,KAAKuM,IAC1DW,GAAO,QAAQlN,KAAKuM,IAE1B,IAAIY,GACAC,GACAC,GAEJ,MAAMC,GAAoB,KACzB,IAAKR,GACJ,OAAO,EAGR,QAAuBzzB,IAAnB8zB,GAA8B,CACjC,MAAMI,EAAUhB,GAAGjoB,MAAM,yBACzB6oB,GAAiBI,EAAUC,WAAWD,EAAQ,IAAM,EAGrD,OAAOJ,IAAkB,GAgBpBM,GAAe,KACpB,QAAep0B,IAAXg0B,GAIJ,GAAIH,GACHG,IAAS,MADV,CAKA,GAAI5lB,GAAO,CACV,GAAI6lB,KAEH,YADAD,IAAS,GAIV,GAAIV,IAAUK,GAEb,YADAK,IAAU,yBAAyBrN,KAAKuM,KAIzC,IAAImB,EAAgBz0B,OAAO00B,iBAAmB10B,OAAO00B,iBAAmB,EAMxE,OALIX,IAnCqB,MAC1B,IAAKH,GACJ,OAAO,EAGR,QAAsBxzB,IAAlB+zB,GAA6B,CAChC,MAAMG,EAAUhB,GAAGjoB,MAAM,wBACzB8oB,GAAgBG,EAAUC,WAAWD,EAAQ,IAAM,EAGpD,OAAOH,IAAiB,OAyBRQ,KACdF,EAAgB,QAGjBL,GAAU9O,KAAKsP,IAAI50B,OAAO60B,OAAOC,MAAQL,EAAez0B,OAAO60B,OAAOE,OAASN,IAAkB,KAIlGL,GAAUX,KAA+B,IAAzBH,GAAG12B,QAAQ,UAAqBm3B,KAAYC,KAGvDgB,GAAgB,IAAMxmB,GACtBymB,GAAO,IAAMxB,GACbyB,GAAW,IAAMvB,GAGjBwB,GAAW,KAChBX,MACQhmB,IAAS6lB,OAAwBD,IAGpCgB,GAAU,KACfZ,KACOhmB,KAAU4lB,IAGZiB,GAAY,KACRF,OAAeC,MAAcf,KCpFjCiB,GAAc,CAMnBC,QAAS,UAOTC,SAAU,WAOVC,SAAU,WAOVC,YAAa,cAObC,WAAY,aAOZC,UAAW,aAYZ,MAAMC,WAAqB3jB,GAC1BrW,eAAe2K,GACd,QAAS8uB,GAAY9uB,IAIvBqvB,GAAaC,sBAAsBR,IC9DnC,MAAMS,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,4DAA4DuJ,EAAQC,sCAAsCC,GAAUF,EAAQ5S,4BAA4B4S,EAAQG,wBAAwBH,EAAQI,qBAAqBJ,EAAQK,uBAAuBL,EAAQM,yBAAyBN,EAAQO,uBAAuBP,EAAQQ,qBAAqBR,EAAQS,yBAAyBT,EAAQU,6BAA6BV,EAAQW,yBAAyBT,GAAUF,EAAQY,iCAAiCV,GAAUF,EAAQa,QAAQC,iCAAiCZ,GAAUF,EAAQa,QAAQE,iCAAiCb,GAAUF,EAAQa,QAAQG,8BAA8Bd,GAAUF,EAAQiB,2BAA2Bf,GAAUF,EAAQa,QAAQK,yBAA0BlB,EAAQmB,KAAOC,GAAOpB,EAASnJ,EAAMpX,QAAUrV,cAAuB81B,GAAUF,EAAQvb,wEAAyEub,EAAQqB,cAAgBC,GAAOtB,QAAyB51B,cAC3/Bg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,oCAAyCygB,GAAUF,EAAQmB,oCAAoCnB,EAAQuB,qBAAqB3K,GAAS,WAAYC,EAAMpX,MAC9N6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,iCAAiCyJ,GAAUF,EAAQwB,yBCM3FC,GAAuB,CAC5BC,gBAAiB,MACjBC,0BAA6B,iBAC7BC,QAAW,gBCVNzvB,GAAU,IAAInM,IACd67B,GAAW51B,EAAkB,oBAAqB,IAAIjG,KACtD87B,GAAyB71B,EAAkB,oBAAqB,IAAIjG,KA0CpE+7B,GAAe,CAACv0B,GAAQw0B,SAAAA,EAAUC,IAAAA,EAAKC,QAAAA,EAASC,WAAAA,EAAY5vB,YAAAA,GAAgB,MAC5E4vB,IACJA,EAAaC,MAGd,MAAM7xB,EAAM,GAAG4xB,KAAc30B,IAC7Bq0B,GAASn7B,IAAI6J,EAAK,CACjByxB,SAAAA,EACAC,IAAAA,EACAC,QAAAA,EACA3vB,YAAAA,KAII8vB,GAAa70B,IAMlB,IAAI20B,EAaJ,OAjBI30B,EAAKmE,WAAW,iBACnBnE,EAAOA,EAAKmI,QAAQ,cAAe,MAInCnI,EAAM20B,GAAc30B,EAAKnB,MAAM,KAAKi2B,UACrCH,EAAaA,GAAcC,KAO3BD,EAAaI,GAAqBJ,GAI3B,CAAE30B,KAHTA,EAAOA,EAAKmI,QAAQ,QAAS,IAGdwsB,WAAAA,EAAYK,YADP,GAAGL,KAAc30B,MAShCi1B,GAAc94B,MAAAA,IACnB,MAAMw4B,WAAEA,EAAUK,YAAEA,GAAgBH,GAAWK,GAE/C,IAAIC,EApFkB,iBAqFtB,IACCA,OAzE8Bh5B,OAAAA,IAC/B,IAAKm4B,GAAuB/4B,IAAI65B,GAAiB,CAChD,IAAKzwB,GAAQpJ,IAAI65B,GAChB,MAAM,IAAIv5B,MAAM,gCAAgCu5B,0GAEjD,MAAMC,EAAY1wB,GAAQ9L,IAAIu8B,GAC9Bd,GAAuBp7B,IAAIk8B,EAAgBC,EAAUD,IAGtD,OAAOd,GAAuBz7B,IAAIu8B,IAgEhBE,CAAwBX,GACxC,MAAOpvB,GACR3K,QAAQ0K,MAAMC,EAAEC,SAGjB,MA3FsB,mBA2FlB2vB,EACIA,GAGHd,GAAS94B,IAAIy5B,IAtEGrH,CAAAA,IACrBxuB,OAAO6P,KAAK2e,EAAWn0B,MAAMU,QAAQq7B,IACpC,MAAMJ,EAAWxH,EAAWn0B,KAAK+7B,GAEjChB,GAAagB,EAAU,CACtBf,SAAUW,EAASK,KACnBf,IAAKU,EAASV,IACdC,QAASS,EAAS9hB,IAClBshB,WAAYhH,EAAWgH,WACvB5vB,YAAa4oB,EAAW5oB,iBA+DzB0wB,CAAcN,GAERd,GAASx7B,IAAIm8B,KAYfJ,GAAwB,IACtBvrB,GAAQ,eAAiB,eAAiB,YAG5C0rB,GAAuBK,GACxBnB,GAAqBmB,GACjBnB,GAAqBmB,GAGtBA,EC7HF7C,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQkD,mBAAmBhD,GAAUF,EAAQmD,sCAAsCjD,GAAUF,EAAQoD,+FAA+FlD,GAAUF,EAAQqD,yCAAyCnD,GAAUF,EAAQsD,oEAAoEtD,EAAQI,wBAAwBJ,EAAQG,wBAAwBH,EAAQQ,qBAAqBR,EAAQS,mBAAmBT,EAAQK,YAAYkD,GAAUvD,WAGrkBuD,GAAY,CAACvD,EAASnJ,EAAMpX,IAAW+jB,EAAG,GAAIxD,EAAQyD,eAF7C,EAACzD,EAASnJ,EAAMpX,IAAW+jB,EAAG,cAActD,GAAUF,EAAQvb,iBAAiByb,GAAUF,EAAQqD,mCAEnCjC,CAAOpB,QAAyB51B,oCAA6C81B,GAAUF,EAAQgC,mBCN5K,OAAe,CAACzvB,YAAY,6BAA6BgJ,SAAS,yCAA2CxH,QAAQ,+nnBCAtG,CAACxB,YAAY,qBAAqBgJ,SAAS,yCAA2CxH,QAAQ,2zyDCK/E,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,iBAAkBxH,QAAQ,khBCKpF,MAMMiB,GAAW,CAChB/M,IAAK,WACLkD,eAAe,EACfE,YAAY,EACZ+U,WAAmE,CAQlEwjB,YAAa,CACZrwB,KAAMqL,SA2BPpR,KAAM,CACL+F,KAAMuL,QAcPmiB,eAAgB,CACf1tB,KAAMuL,QAUP+kB,YAAa,CACZtwB,KAAMqL,SASPklB,KAAM,CACLvwB,KAAMuL,QASPilB,WAAY,CACXxwB,KAAMuL,QAMPkjB,SAAU,CACTzuB,KAAMuL,OACNc,aAAa,GAMdsiB,QAAS,CACR3uB,KAAM5G,OACNiT,aAAa,GAMdokB,QAAS,CACRzwB,KAAMqL,SAMPqlB,QAAS,CACR1wB,KAAMqL,SAMPykB,wBAAyB,CACxB9vB,KAAMuL,OACNH,kBAAcvU,EACdwV,aAAa,IAGfS,OAA+D,CAM9D6jB,MAAO,KA+CT,MAAMC,WAAatd,GAClB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOuiB,GAGRzjB,oBACC,OAAO0jB,GAGRx+B,wBACCC,KAAKw+B,oBAGNz+B,WAAWsS,GACNrS,KAAK89B,cACR99B,KAAKk+B,SAAU,GAIjBn+B,YAAYsS,GACXrS,KAAKk+B,SAAU,EAGhBn+B,WAAWsS,GACLrS,KAAK89B,cAIN5M,GAAQ7e,IACXrS,KAAKwB,UAAU,SAGZ+vB,GAAQlf,IACXA,EAAMosB,kBAIR1+B,SAASsS,GACJrS,KAAK89B,aAAevM,GAAQlf,IAC/BrS,KAAKwB,UAAU,SAIjBzB,gBAAgBsS,GAEfA,EAAMqsB,kBACN1+B,KAAKwB,UAAU,SAGhB67B,WACC,GAAKr9B,KAAKsnB,aAIV,OAAItnB,KAAKm8B,IACD,MAGDn8B,KAAKsnB,aAGbkW,0BACC,MAAwB,KAApBx9B,KAAKi+B,aACJj+B,KAAK2+B,mBAIT,EAGM3+B,KAAKi+B,WAGbb,eACC,OAAOp9B,KAAK89B,YAAc,IAAM,KAGjCa,mBACC,MAjRwB,iBAiRjB3+B,KAAKs9B,wBAGbA,8BACC,OAAIt9B,KAAKg+B,KACDh+B,KAAKg+B,KAGTh+B,KAAK89B,YACD,SAGD99B,KAAKu9B,wBAA0B,MA7Rd,eAgSzBx9B,2BACC,GAAI4b,KAAmB,CACD/V,SAASa,KAAKV,cAAc,gCAEhDuH,GAAkB,yCAA0C,CAAEsxB,uBAAwB,MAKzF7+B,2BACC,GAAI4b,KAAmB,CACtB,MAAMvL,EAAexK,SAASa,KAAKV,cAAc,+BAC7CqK,GACHxK,SAASa,KAAK0I,YAAYiB,IAK7BrQ,0BACC,MAAM2H,EAAO1H,KAAK0H,KAClB,IAAKA,EAEJ,OAAOpF,QAAQC,KAAK,iCAAkCvC,MAEvD,IAAI68B,ELjPkBD,CAAAA,IACvB,MAAMF,YAAEA,GAAgBH,GAAWK,GACnC,OAAOb,GAASx7B,IAAIm8B,IK+OJmC,CAAgBn3B,GAK/B,GAJKm1B,IACJA,QAAiBF,GAAYj1B,IA3TT,mBA8TjBm1B,EAGH,OAFA78B,KAAKm+B,SAAU,EAER77B,QAAQC,KAAK,sIAAsImF,EAAKmI,QAAQ,cAAe,+FAGvL,IAAKgtB,EAGJ,OAFA78B,KAAKm+B,SAAU,EAER77B,QAAQC,KAAK,uDAAuDvC,KAAK0H,QAYjF,GARA1H,KAAKm+B,SAAU,EACfn+B,KAAKk8B,SAAWW,EAASX,SACzBl8B,KAAKo8B,QAAUS,EAAST,QACxBp8B,KAAKm8B,IAAMU,EAASV,IACpBn8B,KAAKyM,YAAcowB,EAASpwB,YAE5BzM,KAAKu6B,SAAWv6B,KAAK89B,YAAc99B,KAAK8+B,gBAAgBxc,KAAKtiB,WAAQsE,EAEjEtE,KAAKm7B,eACRn7B,KAAKu9B,wBAA0Bv9B,KAAKm7B,oBAC9B,GAAIn7B,KAAKo8B,QAAS,CACxB,MAAM9E,QAAmBD,GAAcr3B,KAAKyM,aAC5CzM,KAAKu9B,wBAA0BjG,EAAWyH,QAAQ/+B,KAAKo8B,eAAY93B,GAIrEq5B,qBACC,OAAO39B,KAAK+9B,aAAe/9B,KAAKu9B,wBAGjCx9B,mBACCsE,WAAW,KACVrE,KAAKgF,YAAYg6B,qBACf,IAILX,GAAK1jB,SClXqb,MAAMskB,GAAiB,CAACx0B,IAAK,iBAAkBksB,YAAa,UAAo9BuI,GAAuB,CAACz0B,IAAK,uBAAwBksB,YAAa,eAAqBwI,GAA0B,CAAC10B,IAAK,0BAA2BksB,YAAa,mBAAyByI,GAA0B,CAAC30B,IAAK,0BAA2BksB,YAAa,mBAAyB0I,GAA8B,CAAC50B,IAAK,8BAA+BksB,YAAa,cAA4lC2I,GAA6B,CAAC70B,IAAK,6BAA8BksB,YAAa,eAAqB4I,GAA8B,CAAC90B,IAAK,8BAA+BksB,YAAa,cAA6M6I,GAAS,CAAC/0B,IAAK,SAAUksB,YAAa,UAAkV8I,GAAoB,CAACh1B,IAAK,oBAAqBksB,YAAa,yBAA+B+I,GAA0B,CAACj1B,IAAK,0BAA2BksB,YAAa,UAAgBgJ,GAA4B,CAACl1B,IAAK,4BAA6BksB,YAAa,sBAA4BiJ,GAA8B,CAACn1B,IAAK,8BAA+BksB,YAAa,6BAAmCkJ,GAA2B,CAACp1B,IAAK,2BAA4BksB,YAAa,cAAgKmJ,GAAqB,CAACr1B,IAAK,qBAAsBksB,YAAa,wBAA8BoJ,GAAqB,CAACt1B,IAAK,qBAAsBksB,YAAa,YAAkBqJ,GAAyB,CAACv1B,IAAK,yBAA0BksB,YAAa,gBAAsBsJ,GAAgC,CAACx1B,IAAK,gCAAiCksB,YAAa,2BAAiCuJ,GAAoC,CAACz1B,IAAK,oCAAqCksB,YAAa,mBAAyBwJ,GAA6B,CAAC11B,IAAK,6BAA8BksB,YAAa,6BAAmCyJ,GAAkC,CAAC31B,IAAK,kCAAmCksB,YAAa,mCAAyC0J,GAA4B,CAAC51B,IAAK,4BAA6BksB,YAAa,4BAAsqC2J,GAAyC,CAAC71B,IAAK,yCAA0CksB,YAAa,WAAmmB4J,GAAiB,CAAC91B,IAAK,iBAAkBksB,YAAa,QAA0zB6J,GAA2B,CAAC/1B,IAAK,2BAA4BksB,YAAa,4BAAkC8J,GAA+B,CAACh2B,IAAK,+BAAgCksB,YAAa,6BAAmC+J,GAAyB,CAACj2B,IAAK,yBAA0BksB,YAAa,SAAegK,GAA2B,CAACl2B,IAAK,2BAA4BksB,YAAa,WAAiBiK,GAA2B,CAACn2B,IAAK,2BAA4BksB,YAAa,WAAiBkK,GAA2B,CAACp2B,IAAK,2BAA4BksB,YAAa,SAAemK,GAA2B,CAACr2B,IAAK,2BAA4BksB,YAAa,MAAYoK,GAA2B,CAACt2B,IAAK,2BAA4BksB,YAAa,UAAgBqK,GAA+B,CAACv2B,IAAK,+BAAgCksB,YAAa,cAAiqCsK,GAAoB,CAACx2B,IAAK,oBAAqBksB,YAAa,iBAAuBuK,GAAsB,CAACz2B,IAAK,sBAAuBksB,YAAa,kBAAwBwK,GAA0B,CAAC12B,IAAK,0BAA2BksB,YAAa,qBAA2ByK,GAAsB,CAAC32B,IAAK,sBAAuBksB,YAAa,gCAAsC0K,GAA8B,CAAC52B,IAAK,8BAA+BksB,YAAa,QAAc2K,GAAkC,CAAC72B,IAAK,kCAAmCksB,YAAa,YAAkB4K,GAA8B,CAAC92B,IAAK,8BAA+BksB,YAAa,eAAqB6K,GAA6B,CAAC/2B,IAAK,6BAA8BksB,YAAa,mBAAyB8K,GAAmB,CAACh3B,IAAK,mBAAoBksB,YAAa,SAAe+K,GAA2B,CAACj3B,IAAK,2BAA4BksB,YAAa,YAAkBgL,GAA2B,CAACl3B,IAAK,2BAA4BksB,YAAa,YCK7uVnqB,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,mBAAoBxH,QAAQ,ooQCFxD,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,wqCCU3F,IAAI2zB,IAA0B,EAC1BC,GAAe,KAKnB,MAAM3yB,GAAW,CAChB/M,IAAK,aACLkD,eAAe,EACfiV,WAAqE,CAqBpEwnB,OAAQ,CACPr0B,KAAMssB,GACNlhB,aAAckhB,GAAaN,SAY5BU,SAAU,CACT1sB,KAAMqL,SAePuiB,KAAM,CACL5tB,KAAMuL,QAUP+oB,QAAS,CACRt0B,KAAMqL,SAcPkpB,QAAS,CACRv0B,KAAMqL,SAYPsiB,MAAO,CACN3tB,KAAMuL,QAOPipB,OAAQ,CACPx0B,KAAMqL,SAOPopB,SAAU,CACTz0B,KAAMqL,SAOPolB,QAAS,CACRzwB,KAAMqL,SAOPqpB,QAAS,CACR10B,KAAMqL,SAWPqiB,eAAgB,CACf1tB,KAAMuL,OACNH,kBAAcvU,GASf02B,aAAc,CACbvtB,KAAMuL,QAOPopB,eAAgB,CACf30B,KAAMqL,SAGPupB,cAAe,CACd50B,KAAM5G,QAGPy7B,eAAgB,CACf70B,KAAM5G,QAOP07B,UAAW,CACV90B,KAAMuL,OACNH,aAAc,IACdiB,aAAa,GAOd0oB,SAAU,CACT/0B,KAAMqL,UAGRuB,cAAc,EACdpB,MAAgE,CAU/DzP,QAAW,CACViE,KAAMyM,OAGRK,OAAiE,CAahE6jB,MAAO,KAgDT,MAAMqE,WAAe1hB,GACpB7R,sBACC,OAAOA,GAGR2L,oBACC,MAAO,CAAC6nB,GAAW/mB,MAAqBgnB,IAGzChmB,oBACC,OAAO6T,GAGRzU,sBACC,OAAO6mB,GAGRza,0BACC,MAAO,CAACkW,IAGTt+B,cACCue,QAEAte,KAAK6iC,YAAc,KACdhB,KACHA,GAAaI,QAAS,IAInBL,KACJh8B,SAASoQ,iBAAiB,UAAWhW,KAAK6iC,aAE1CjB,IAA0B,GAI5B7hC,aACCC,KAAKwiC,UAAYlJ,MAAaD,SbrOxBA,MAAcE,MawOrBx5B,oBACC,MAAM+iC,EAAcl7B,EAAW,eAC3B5H,KAAKgiC,UAAYc,GACpBxgC,QAAQC,KAAK,+IAGdvC,KAAKkiC,SAAWliC,KAAK+iC,WACrB/iC,KAAKmiC,UAAYniC,KAAKq7B,KAGvBt7B,SAASsS,GACR,GAAIrS,KAAKoiC,eACR,OAED/vB,EAAM2wB,SAAW,SACjB,MAAMF,EAAcl7B,EAAW,eAC3Bk7B,GACHA,EAAYG,kBAAkBjjC,MAIhCD,aAAasS,GACRrS,KAAKoiC,gBAAkBpiC,KAAKwiC,WAIhCnwB,EAAM2wB,SAAW,SACjBhjC,KAAKiiC,QAAS,EACdJ,GAAe7hC,MAGhBD,cAAcsS,GACbA,EAAM2wB,SAAW,SACbhjC,KAAKoiC,iBAITpiC,KAAKiiC,QAAS,GAGfliC,YAAYsS,GACXrS,KAAKiiC,QAAS,EAEVJ,KACHA,GAAaI,QAAS,GAIxBliC,WAAWsS,GACVA,EAAM2wB,SAAW,SAGlBjjC,WAAWsS,GACVA,EAAM2wB,SAAW,UAEbzR,GAAQlf,IAAU6e,GAAQ7e,MAC7BrS,KAAKiiC,QAAS,GAIhBliC,SAASsS,IACJkf,GAAQlf,IAAU6e,GAAQ7e,MAC7BrS,KAAKiiC,QAAS,GAIhBliC,YAAYmjC,GACPljC,KAAKoiC,iBAGTpiC,KAAKiiC,QAAS,EACdjiC,KAAKk+B,SAAU,GAGhBn+B,WAAWsS,GACNrS,KAAKoiC,iBAIT/vB,EAAM2wB,SAAW,SACjBhjC,KAAKk+B,SAAU,GAGhB3C,oBACC,OAAOv7B,KAAK8hC,SAAW/H,GAAaN,SAAWz5B,KAAK8hC,SAAW/H,GAAaH,YAG7EmJ,iBACC,OAAQviC,MAAMqR,KAAK7R,KAAKiS,YAAY/O,OAAOic,GACnCA,EAAKmM,WAAapR,KAAKipB,eAC1BhkB,EAAKmM,WAAapR,KAAKkpB,WAA8C,IAAjCjkB,EAAKkkB,UAAUC,OAAOtiC,SAC5DA,OAGJ+5B,cACC,MAAO,CACNC,aAAgBh7B,KAAKg7B,cAAiBh7B,KAAKsiC,gBAAkBtiC,KAAKsiC,eAAetH,aACjFC,aAAgBj7B,KAAKsiC,gBAAkBtiC,KAAKsiC,eAAerH,aAC3DC,aAAgBl7B,KAAKsiC,gBAAkBtiC,KAAKsiC,eAAepH,aAC3DE,MAASp7B,KAAKo7B,OAAUp7B,KAAKsiC,gBAAkBtiC,KAAKsiC,eAAelH,OAIrEr7B,0BACC,MAAO,CACN25B,SAAYyF,GACZxF,SAAYyF,GACZvF,WAAcwF,IAIhB3D,qBACC,OAAO+G,GAAOnL,WAAWyH,QAAQ0D,GAAOc,mBAAmBvjC,KAAK8hC,SAGjEhH,oBACC,MAAM0I,EAAWxjC,KAAKsjB,aAAa,YAEnC,OAAIkgB,IAIGxjC,KAAKoiC,eAAiB,KAAOpiC,KAAKuiC,WAG1C9G,sBACC,OAAOz7B,KAAKkiC,WAAaliC,KAAKo7B,MAG/Br7B,wBACC0iC,GAAOnL,iBAAmBD,GAAc,uBAI1CoL,GAAO9nB,SCvcP,MAAM8oB,GAAc,CACnBC,KAAM,OACNC,QAAS,UACTC,QAAS,UACTrgC,MAAO,QACPsgC,YAAa,eAGd,MAAMC,WAAmB1tB,GACxBrW,eAAe2K,GACd,QAAS+4B,GAAY/4B,IAIvBo5B,GAAW9J,sBAAsByJ,ICjBjC,MACMvH,GAAW,gNAKjBD,GANa,SAMM,CAAEC,SAAAA,GAAUC,KAJnB,EAIwBE,WAHjB,eAG6B5vB,YAF5B,6BAIpB,OAAe,CAAEyvB,SAAAA,ICRjB,MACMA,GAAW,8IAKjBD,GANa,SAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCInBgzB,GAAgB,CAMrBL,KAAM,OAONM,OAAQ,UAYT,MAAMC,WAAqB7tB,GAC1BrW,eAAe2K,GACd,QAASq5B,GAAcr5B,IAIzBu5B,GAAajK,sBAAsB+J,ICnCnC,MAAM9J,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,sCAAsCyJ,GAAUF,EAAQ5S,yBAAyB4S,EAAQK,iBAAiBH,GAAUF,EAAQvP,sBAAsBuZ,GAAShK,EAAQiK,QAAQC,0BAA0BhK,GAAUF,EAAQvb,6FCErQnS,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,kBAAmBxH,QAAQ,4pDCOrF,MAAMiB,GAAW,CAChB/M,IAAK,YACLmY,WAAqE,CAWpE+pB,SAAU,CACT52B,KAAMqL,SAeNwrB,aAAc,CACd72B,KAAMw2B,GACNprB,aAAcorB,GAAaP,MAY5Ba,UAAW,CACV92B,KAAMqL,SAYP6R,IAAO,CACNld,KAAMuL,SAGRC,MAA+D,CAS9DzP,QAAW,CACViE,KAAMyM,QA+BT,MAAMsqB,WAAczjB,GACnB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAO0oB,GAGR5pB,oBACC,OAAO6pB,GAGRP,cACC,MAAO,CACNC,YAAa,CACZO,0BAA0B,EAC1BC,gCAAiCxL,OAKpCr5B,WACC,MAAM8kC,EAAiBj/B,SAASk/B,eAAe9kC,KAAK2qB,KAChDka,GACHA,EAAerzB,SAKlBgzB,GAAM7pB,SClJN,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,iCAAiCuT,GAAShK,EAAQiK,QAAQY,wCAAwC3K,GAAUF,EAAQ8K,gCAAgC5K,GAAUF,EAAQ+K,iCAAiC7K,GAAUF,EAAQgL,mCAAmC9K,GAAUF,EAAQiL,sCAAsC/K,GAAUF,EAAQkL,+BAA+BhL,GAAUF,EAAQkD,0BAA0BlD,EAAQM,2BAA2BN,EAAQO,yBAAyBP,EAAQQ,uBAAuBR,EAAQS,qBAAqBT,EAAQK,wBAAwBL,EAAQG,qBAAqBD,GAAUF,EAAQ5S,2BAA2B8S,GAAUF,EAAQvb,yCAA0Cub,EAAQmL,oBAAsB/J,GAAOpB,EAASnJ,EAAMpX,QAAUrV,eAAwB81B,GAAUF,EAAQvb,sCAAsCub,EAAQoL,uBAAuBpL,EAAQqL,wBAAwBrL,EAAQC,0EAA2ED,EAAQsL,KAAOhK,GAAOtB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQuL,cAAgBC,GAAOxL,QAAyB51B,0CACpnCg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,mEAAwEmX,GAAS,WAAYC,EAAMpX,MAC1K6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,yDAAyDyb,GAAUF,EAAQoK,kBAAkBlK,GAAUF,EAAQsL,UAAU1U,GAAS,YAAaC,EAAMpX,MAC9P+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,uCAAuCyb,GAAUF,EAAQyL,yBCDtIn5B,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,qBAAsBxH,QAAQ,iwPCgBxF,IAAI2zB,IAA0B,EAC1BgE,GAAW,KAKf,MAAM12B,GAAW,CAChB/M,IAAK,eACLkD,eAAe,EACfiV,WAAuE,CAWtE6f,SAAU,CACT1sB,KAAMqL,SAaPysB,SAAU,CACT93B,KAAMqL,SAoBP+sB,cAAe,CACdp4B,KAAMqL,SAcPwsB,QAAS,CACR73B,KAAMqL,SAUP0sB,KAAM,CACL/3B,KAAMuL,QAqBP8sB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAgBzBY,aAAc,CACd72B,KAAMw2B,GACNprB,aAAcorB,GAAaP,MAmB5Bh8B,KAAM,CACL+F,KAAMuL,QAOPipB,OAAQ,CACPx0B,KAAMqL,UAGRyB,OAAmE,CAQlEwrB,OAAQ,IAET9sB,MAAkE,CAQjE+sB,YAAa,CACZv4B,KAAMiK,eAmDT,MAAMuuB,WAAiBllB,GACtB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOmqB,GAGRrrB,oBACC,OAAOsrB,GAGRpmC,cACCue,QAEAte,KAAK6iC,YAAc,KACd+C,KACHA,GAAS3D,QAAS,IAIfL,KACJh8B,SAASoQ,iBAAiB,UAAWhW,KAAK6iC,aAC1CjB,IAA0B,GAI5B7hC,oBACCC,KAAKomC,qBAGNrmC,qBACC,MAAM+iC,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,KAAM,CAAC+E,EAASuhC,KACjDA,EAAYnM,SAAWp1B,EAAQo1B,WAAap1B,EAAQugC,QACpDgB,EAAY57B,MAAQ3F,EAAQugC,QAAU,KAAO,KAEpCtlC,KAAK0H,MACfpF,QAAQC,KAAK,4IAIfxC,WACCC,KAAKumC,SAGNxmC,eACKC,KAAKulC,UAAYvlC,KAAKm6B,WAI1Bn6B,KAAKiiC,QAAS,EACd2D,GAAW5lC,MAGZD,aACCC,KAAKiiC,QAAS,EAGfliC,cACCC,KAAKiiC,QAAS,EAGfliC,WAAWsS,GACNkf,GAAQlf,KACXA,EAAMosB,iBACNz+B,KAAKiiC,QAAS,GAGX/Q,GAAQ7e,KACXrS,KAAKumC,SACLvmC,KAAKiiC,QAAS,GAIhBliC,SAASsS,GACJkf,GAAQlf,IACXrS,KAAKumC,SAGNvmC,KAAKiiC,QAAS,EAGfliC,SAaC,OAZIC,KAAKwmC,cACJxmC,KAAK6lC,eACR7lC,KAAK6lC,eAAgB,EACrB7lC,KAAKslC,SAAU,GAEftlC,KAAKslC,SAAWtlC,KAAKslC,QAGtBtlC,KAAKwB,UAAU,UAEfxB,KAAKwB,UAAU,kBAETxB,KAGRD,YACC,QAASC,KAAKm6B,UAAYn6B,KAAKulC,UAGhCxlC,yBACC,MAAO,CACNwD,MAAS0iC,GAAS3O,WAAWyH,QAAQkC,IACrC2C,QAAWqC,GAAS3O,WAAWyH,QAAQmC,IACvCyC,QAAWsC,GAAS3O,WAAWyH,QAAQqC,KAIzC+C,cACC,MAAO,CACNY,KAAM,CACL0B,2BAA4BzmC,KAAKm6B,WAAan6B,KAAKulC,UAAYhM,OAKlE0L,mBACC,OAAOjlC,KAAKulC,SAAW,YAASjhC,EAGjC4gC,mBACC,OAAOllC,KAAKm6B,SAAW,YAAS71B,EAGjC0gC,kBACC,OAAOhlC,KAAK6lC,eAAiB7lC,KAAKslC,QAAU,QAAUtlC,KAAKslC,QAG5DH,qBACC,OAAOnlC,KAAKwlC,KAAO,GAAGxlC,KAAK2e,iBAAcra,EAG1C8gC,sBACC,OAAOplC,KAAKylC,cAAgB,GAAGzlC,KAAK2e,iBAAcra,EAGnDmhC,oBACC,OAAOzlC,KAAK8lC,aAAehC,GAAWJ,KAGvCiC,qBACC,OAAO3lC,KAAK0mC,yBAAyB1mC,KAAK8lC,YAG3C1I,eACC,MAAMoG,EAAWxjC,KAAKsjB,aAAa,YACnC,OAAOtjB,KAAKm6B,cAAW71B,EAAYk/B,GAAY,IAGhD6B,0BACC,OAAOrlC,KAAKslC,UAAYtlC,KAAK6lC,cAG9B1d,0BACC,MAAO,CACNqc,GACAnG,IAIFt+B,wBACCkmC,GAAS3O,iBAAmBD,GAAc,uBCja5C,IAAIsP,GDqaJV,GAAStrB,SCpaT,MAAMisB,GAAmB,IAAI1mC,IAEvB2mC,GAAoB,KACpBF,KACJA,GAAiB,IAAIziC,OAAO4iC,eAAep5B,IAC1CA,EAAQ9L,QAAQmlC,IACGH,GAAiBrmC,IAAIwmC,EAAMh+B,QACnCnH,QAAQwB,GAAYA,UAI1BujC,IAoCR,MAAMK,GAOLjnC,gBAAgBgF,EAAS3B,GACpB2B,EAAQuO,eACXvO,EAAUA,EAAQshB,aAGfthB,aAAmB2S,YA7CX,EAAC3S,EAAS3B,KACvB,MAAM6jC,EAAYL,GAAiBrmC,IAAIwE,IAAY,GAG9CkiC,EAAUjmC,QACd6lC,KAAoBvnB,QAAQva,GAI7B6hC,GAAiBhmC,IAAImE,EAAS,IAAIkiC,EAAW7jC,KAqC3Ckc,CAAQva,EAAS3B,GAEjBd,QAAQC,KAAK,4CAA6CwC,GAU5DhF,kBAAkBgF,EAAS3B,GACtB2B,EAAQuO,eACXvO,EAAUA,EAAQshB,aAGfthB,aAAmB2S,YAnDT,EAAC3S,EAAS3B,KACzB,MAAM6jC,EAAYL,GAAiBrmC,IAAIwE,IAAY,GACnD,GAAyB,IAArBkiC,EAAUjmC,OACb,OAGD,MAAMkmC,EAAoBD,EAAU/jC,OAAO9B,GAAMA,IAAOgC,GACvB,IAA7B8jC,EAAkBlmC,QACrB6lC,KAAoBM,UAAUpiC,GAC9B6hC,GAAiB3lC,OAAO8D,IAExB6hC,GAAiBhmC,IAAImE,EAASmiC,IAyC7BC,CAAUpiC,EAAS3B,GAEnBd,QAAQC,KAAK,8CAA+CwC,IC/E/D,MAAMqiC,WAAgBhxB,GACrBrW,eAAe2K,GACd,OAAO28B,OAAOC,UAAU58B,GAGzB3K,2BAA2BsW,GAC1B,OAAO+gB,SAAS/gB,ICRlB,MCEMkxB,GAA4BzhC,GAC5BA,EAAG0hC,kBAQDC,GAAuB3hC,GAPzBA,EAAGq1B,eACCr1B,EAAGq1B,oBAGX,EAYIsM,GAAyB,CAAC3hC,EAAI4hC,EAAeC,EAAW,MAC7D,MAAMC,EAAOD,GAAYA,EAASphC,MAAM,MAAST,EAAG0hC,kBAAkBjhC,MAAM,KACtEshC,EAAQH,GDtBOvoB,CAAAA,IACrB,KAAMA,aAAgBzH,aACrB,MAAM,IAAInU,MAAM,+CAGjB,MAAMukC,EAAa,CAACC,gBAAiBC,mBACrC,IAAIC,GAAwB,EACxBC,GAA2B,EAE/B,KAAO/oB,GAAM,CACZ,GAAwB,wBAApBA,EAAKpX,YAMR,GAHIkgC,IACHA,GAAwB,IAEpBC,IAA6BD,EACjC,OAAO9oB,OAEF,GAAIA,EAAK4M,SAAW5M,EAAK4M,QAAQjrB,QAAQ,MAAQ,EAAG,CAC1D,IAAIonC,EAGH,OAAO/oB,EAFP+oB,GAA2B,OAItB,GAAIJ,EAAWhnC,QAAQqe,EAAKna,cAAgB,EAElD,OAAOma,EAGRA,EAAOA,EAAKyN,YAAczN,EAAK/L,OCRD+0B,CAAcriC,GAC7C,IAAIqR,EAAS,GAWb,OATAywB,EAAIhmC,QAAQ,CAACwmC,EAAW9wB,KACvB,MAAMvS,EAAU8iC,EAAM9hC,cAAc,QAAQqiC,OAC5CjxB,GAAU,GAAGpS,EAAUA,EAAQ8I,YAAc,KAEzCyJ,EAAQswB,EAAI5mC,OAAS,IACxBmW,GAAU,OAILA,GClCwJkxB,GAAW,CAAC59B,IAAK,WAAYksB,YAAa,OAAwhB2R,GAAe,CAAC79B,IAAK,eAAgBksB,YAAa,WCI9wBuF,GAAW,4TAEXE,GAAUkM,GAIhBrM,GAPa,UAOM,UAAEC,QALT,EAKwBE,QAAAA,cAHjB,2BACC,6BAIpB,OAAe,UAAEF,GAAUE,QAAAA,ICT3B,MACMF,GAAW,2NAEXE,GAAUkM,GAIhBrM,GAPa,UAOM,UAAEC,QALT,UAKwBE,cAHjB,wBACC,6BAIpB,OAAe,UAAEF,WAAUE,ICTVrrB,GAAQ,qBCAnBmrB,GAAW,gcAKjBD,GANa,eAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICFjBD,GANa,eAMM,UALF,QACL,aACO,wBACC,6BAIpB,OAAe,UAPE,ICAAlrB,GAAQ,qBCGnBw3B,GAAa,CAMlBC,KAAM,OAONC,MAAO,QAOPpB,OAAQ,SAORqB,SAAU,WAOVC,IAAK,MAOLC,IAAK,OAYN,MAAMC,WAAkBzyB,GACvBrW,eAAe2K,GACd,QAAS69B,GAAW79B,IAItBm+B,GAAU7O,sBAAsBuO,IC1DhC,MAAMO,GAAQ,CAAC9tB,EAAK8d,EAAKiQ,IACjBvf,KAAKsP,IAAItP,KAAKuf,IAAI/tB,EAAK8d,GAAMiQ,GCR/BC,GAAe7pB,GACE,SAAlBA,EAAK8pB,WAID9pB,EAAK+pB,aAAe,GAAK/pB,EAAKgqB,cAAgB,GAAgC,WAA1BhqB,EAAKtS,MAAMu8B,YCLlEC,GAAa,gBACbC,GAAa,sCAEbC,GAAkBpqB,IACvB,GAAIA,EAAKgb,SACR,OAAO,EAGR,MAAMiD,EAAWje,EAAKmE,aAAa,YACnC,OAAI8Z,MAAAA,EACIhG,SAASgG,IAAa,EAGvBkM,GAAWre,KAAK9L,EAAK8pB,WACvBI,GAAWpe,KAAK9L,EAAK8pB,WACtB9pB,EAAK3J,MCZJg0B,GAAc1jC,GACZA,EAAGkU,aAAa,uBAGlByvB,GAA2B5lC,MAAAA,IAC3B6lC,GAAaV,GAAaU,GACvB,KAGDC,GAAqBD,GAAW,GAelCC,GAAuB9lC,MAAO6lC,EAAWE,KAC9C,IAAIj4B,EAWAk4B,EATJ,GAAIH,EAAUt4B,WACbO,EAAQi4B,EAAUF,EAAUt4B,WAAWlL,WAAawjC,EAAUt4B,WAAW04B,eACnE,GAAIJ,EAAUx3B,eAAiBw3B,EAAUx3B,gBAAiB,CAChE,MAAM63B,EAAmBL,EAAUx3B,gBACnCP,EAAQi4B,EAAUG,EAAiB,GAAKA,EAAiBA,EAAiB/oC,OAAS,QAEnF2Q,EAAQi4B,EAAUF,EAAUxjC,WAAawjC,EAAUI,UAOpD,KAAOn4B,GAAO,CACb,MAAMq4B,EAAgBr4B,EAMtB,GAJIA,EAAM2B,eACT3B,QAAcA,EAAMs4B,wBAGhBt4B,EACJ,OAAO,KAGR,GAAuB,IAAnBA,EAAM2Z,YA/BYxlB,EA+BsB6L,GA9BnCqI,aAAa,6BAA+BgvB,GAAaljC,MA8BX0jC,GAAY73B,GAAQ,CAC1E,GAAI43B,GAAgB53B,GACnB,OAAQA,GAAgC,mBAAhBA,EAAMH,MAAwBG,EAAQ,KAI/D,GADAk4B,QAA4BF,GAAqBh4B,EAAOi4B,GACpDC,EACH,OAAQA,GAA4D,mBAA9BA,EAAoBr4B,MAAwBq4B,EAAsB,KAI1Gl4B,EAAQi4B,EAAUI,EAAc/c,YAAc+c,EAAcE,gBA1CtCpkC,IAAAA,EA+CvB,OAAO,MCnEFm0B,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,mBAAmBnB,GAAS0K,EAAQrf,OAAOsvB,iBAAiBjG,GAAShK,EAAQiK,QAAQgG,oCAAoC/P,GAAUF,EAAQkQ,4BAA4BhQ,GAAUF,EAAQmQ,iCAAiCjQ,GAAUF,EAAQoQ,0BAA0BlQ,GAAUF,EAAQ5S,2BAA2B4S,EAAQQ,wBAAwBR,EAAQG,wBAAwBH,EAAQO,yBAAyBP,EAAQM,iFAAiFN,EAAQqQ,oCAAoC/a,GAAS0K,EAAQrf,OAAO5M,oBAAoBi2B,GAAShK,EAAQiK,QAAQl2B,uBAAuBisB,EAAQsQ,+FAA+FtQ,EAAQuQ,oCCA5wBxQ,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCuJ,EAAQwQ,yCAAyClb,GAAS0K,EAAQrf,OAAO8vB,0BAA0BzQ,EAAQ0Q,wCAAwC1Q,EAAQ0Q,kCCDjP,IAAIC,GAAiB,GAErB,MAAMC,GAAiB,CAACC,EAAUC,EAAiB,MAC7CH,GAAenqC,SAASqqC,IAC5BF,GAAelqC,KAAK,CACnBoqC,SAAAA,EACAC,eAAAA,IAI4B,IAA1BH,GAAe7pC,QAClBiqC,MAIIC,GAAoBH,IACzBF,GAAiBA,GAAe3nC,OAAO4C,GAC/BA,EAAGilC,WAAaA,GAGnBF,GAAe7pC,QACnBmqC,MAQIC,GAAmB/4B,IACnBw4B,GAAe7pC,QAIhBqxB,GAAShgB,IACZw4B,GAAeA,GAAe7pC,OAAS,GAAG+pC,SAASM,OAAM,IAIrDJ,GAAuB,KAC5BrlC,SAASoQ,iBAAiB,UAAWo1B,KAGhCD,GAAuB,KAC5BvlC,SAASggB,oBAAoB,UAAWwlB,KCzCzC5+B,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,kBAAmBxH,QAAQ,uDCFvD,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,kCAAmCxH,QAAQ,iQCFvE,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,oFCa3F,MAAMiB,GAAW,CAChBmL,cAAc,EACdpB,MAAgE,CAQ/DzP,QAAW,CACViE,KAAMiK,YACN2B,aAAc,YAGhBiB,WAAqE,CAQpEgxB,aAAc,CACb79B,KAAMuL,QAWPuyB,oBAAqB,CACpB99B,KAAMqL,SASP0yB,OAAQ,CACP/9B,KAAMqL,SAWPqiB,eAAgB,CACf1tB,KAAMuL,OACNH,kBAAcvU,GAMfmnC,qBAAsB,CACrBh+B,KAAMqL,SAGP4xB,kBAAmB,CAClBj9B,KAAMqL,UAGRyB,OAAiE,CAShEmxB,cAAe,GAQfC,aAAc,GAUdC,eAAgB,CACf5kB,OAAQ,CACP6kB,WAAY,CAAEp+B,KAAMqL,WAUtBgzB,cAAe,GAQfC,OAAU,KAKNx9B,GAAS,kCACbP,GAAYg+B,GAAc,iCAM5B,MAAMC,GAAwB,IAAIlqC,IAmClC,MAAM0S,WAAcsM,GACnB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAOA,GAGRkB,sBACC,OAAOmwB,GAGRzkB,gCACC,OAAO0kB,GAGR5wB,8BACC,OAAOA,GAGRxb,aACMC,KAAKosC,WACTpsC,KAAK0qC,mBAAoB,GAI3B3qC,YACKC,KAAKosC,WACR33B,GAAM43B,qBAAqBrsC,MAC3BA,KAAKssC,sBAIPC,mBACC,MAAO,QAMRxsC,wBAAwBsS,GACvBA,EAAMosB,iBAOP1+B,0BAA0BysC,GACzBP,GAAsB7pC,IAAIoqC,GAES,IAA/BP,GAAsBQ,OAItBvoC,OAAOwoC,YAAc,IACxB9mC,SAASC,KAAKgH,MAAMkG,IAAM,IAAI7O,OAAOwoC,iBAEtC9mC,SAASC,KAAKoJ,UAAU7M,IAAI,6BAO7BrC,4BAA4BysC,GAC3BP,GAAsBhrC,OAAOurC,GAEM,IAA/BP,GAAsBQ,OAI1B7mC,SAASC,KAAKoJ,UAAU6P,OAAO,4BAC/B5a,OAAOyoC,SAAS,GAAIlU,WAAW7yB,SAASC,KAAKgH,MAAMkG,MACnDnN,SAASC,KAAKgH,MAAMkG,IAAM,IAG3BhT,QAAQkN,GACPjN,KAAKwB,UAAU,SAAU,CACxBorC,UAAW3/B,EAAElE,OAAO6jC,UACpBC,UAAW5/B,EAAElE,SAIfhJ,WAAWkN,GACNA,EAAElE,SAAW/I,KAAK8sC,OAASva,GAActlB,IAC5CA,EAAEwxB,iBAIJ1+B,YAAYkN,GAGNA,EAAE8/B,gBACN/sC,KAAKgtC,kBAAmB,GAI1BjtC,aAAakN,GACZjN,KAAK8sC,MAAM/tB,gBAAgB,YAEvB/e,KAAKoR,WAAW67B,SAAShgC,EAAElE,QAC9B/I,KAAKgtC,kBAAmB,EAExBhtC,KAAKgtC,kBAAmB,EAI1BjtC,aACCC,KAAK8sC,MAAM1P,UAAY,EACnBp9B,KAAKgtC,mB/CjOYpV,I+CmOnB53B,KAAK8sC,MAAMt7B,QAEZxR,KAAKgtC,kBAAmB,GAQ1BjtC,uBACC,MAAMmtC,QAAuBzD,GAAyBzpC,MAElDktC,EACHA,EAAe17B,QAEfxR,KAAK8sC,MAAMt7B,QAQbzR,sBACC,MAAMotC,OP1TwBtpC,OAAAA,IAC1B6lC,GAAaV,GAAaU,GACvB,KAGDC,GAAqBD,GAAW,GOqTV0D,CAAwBptC,MAEhDmtC,EACHA,EAAc37B,QAEdxR,KAAK8sC,MAAMt7B,QAQbzR,gCACOC,KAAKqtC,aAUZttC,yBACOC,KAAKsmB,iBAEX,MAAMvhB,EAAU/E,KAAKmT,cAAc2xB,eAAe9kC,KAAKsrC,eACnD1lC,SAASk/B,eAAe9kC,KAAKsrC,qBACvB7B,GAAyBzpC,OAC/BA,KAAK8sC,MAEL/nC,IACCA,IAAY/E,KAAK8sC,QACpB/nC,EAAQq4B,UAAY,GAErBr4B,EAAQyM,SASVzR,SACC,OAAOC,KAAKwrC,OAGbzrC,gBACC,MrG/WiCof,CAAAA,IAClC,MAAMmuB,EAAK/7B,KAEX,QAAI+7B,GACI77B,GAAsB0N,EAAMmuB,IqG2W5BC,CAA2BvtC,KAAKoR,WAAWrL,cAAc,oBAOjEhG,YAAYytC,IACQxtC,KAAKwB,UAAU,cAAe,IAAI,GAAM,KAKvDxB,KAAKytC,UAAYztC,KAAK0tC,qBAEzB1tC,KAAK2tC,0BACL3tC,KAAK0qC,mBAAoB,EACzBj2B,GAAMm5B,mBAAmB5tC,OAG1BA,KAAK6tC,QAAUp6B,KACfzT,KAAK6M,MAAMihC,OAAS9tC,KAAK6tC,QACzB7tC,KAAK+tC,0BAA4Bx8B,KAEjCvR,KAAKguC,QAEAhuC,KAAKyrC,sBAAyB+B,GAClCxtC,KAAKiuC,oBAGNjuC,KAAKkuC,kBAELluC,KAAKwrC,QAAS,QAER3mC,IACN7E,KAAKwB,UAAU,aAAc,IAAI,GAAO,IAOzCzB,kBACC+qC,GAAe9qC,MAOhBD,MAAM8rC,GAAa,EAAOsC,GAAwB,EAAO5C,GAAsB,GAC9E,IAAKvrC,KAAKwrC,OACT,QAGkBxrC,KAAKwB,UAAU,eAAgB,CAAEqqC,WAAAA,IAAc,GAAM,KAKpE7rC,KAAKytC,UACRztC,KAAK0qC,mBAAoB,EACzBj2B,GAAM43B,qBAAqBrsC,OAG5BA,KAAKouC,OACLpuC,KAAKwrC,QAAS,EAET2C,GACJnuC,KAAKssC,qBAGDtsC,KAAKurC,qBAAwBA,GACjCvrC,KAAKquC,aAGNruC,KAAKwB,UAAU,cAAe,IAAI,GAAO,IAO1CzB,qBACCmrC,GAAkBlrC,MAOnBD,aACMC,KAAK+tC,4BAIV/tC,KAAK+tC,0BAA0Bv8B,QAC/BxR,KAAK+tC,0BAA4B,MAOlChuC,QACCC,KAAK6M,MAAMmC,QAAUhP,KAAKusC,aAO3BxsC,OACCC,KAAK6M,MAAMmC,QAAU,OAUtBy+B,eASAC,0BASApD,uBASAF,kBAOAC,iBACC,OAAOrqC,KAAKm7B,qBAAkB72B,EAG/BwoC,YACC,OAAO9sC,KAAKoR,WAAWrL,cAAc,mBAGtC8U,aACC,MAAO,CACNsvB,KAAM,GACNl8B,QAAS,GACT08B,WAAY,CACXmD,OAAW9tC,KAAK6tC,QAAU,IAK7B1J,cACC,MAAO,CACNgG,KAAM,CACLmE,kBAAkB,GAEnBrgC,QAAS,CACRsgC,qBAAqB,KC1iBzB,MAAMC,GAAwB,CAM7BC,KAAM,OAONC,MAAO,QAOPC,IAAK,MAOLC,OAAQ,UAYT,MAAMC,WAA6Bz4B,GAClCrW,eAAe2K,GACd,QAAS8jC,GAAsB9jC,IAIjCmkC,GAAqB7U,sBAAsBwU,IC7C3C,MAAMM,GAAwB,CAM7BC,OAAQ,SAORJ,IAAK,MAOLC,OAAQ,SAORI,QAAS,WAYV,MAAMC,WAA6B74B,GAClCrW,eAAe2K,GACd,QAASokC,GAAsBpkC,IAIjCukC,GAAqBjV,sBAAsB8U,IC7C3C,MAAMI,GAA0B,CAM/BH,OAAQ,SAORN,KAAM,OAONC,MAAO,QAOPM,QAAS,WAYV,MAAMG,WAA+B/4B,GACpCrW,eAAe2K,GACd,QAASwkC,GAAwBxkC,IAInCykC,GAAuBnV,sBAAsBkV,IChD7C,IAAIE,GAAiB,KACrB,MACMvE,GAAiB,GAEjBwE,GAAqBh9B,IAC1Bw4B,GAAejpC,QAAQ0tC,IACtBA,EAAQvE,SAASwE,gBA8BbC,GAAen9B,IACpB,MAAMo9B,ERZC,IAAI5E,IQaL6E,EAAoBD,EAAaA,EAAazuC,OAAS,GAAG+pC,SAAS13B,OAEzE,GAA4B,IAAxBo8B,EAAazuC,QAAiB0uC,EAKlC,IAAK,IAAIhpC,EAAK+oC,EAAazuC,OAAS,GAAW,IAAP0F,EAAUA,IAAK,CACtD,MAAM8lC,EAAQiD,EAAa/oC,GAAGqkC,SAG9B,GAAIyB,EAAMiB,SAAWjB,EAAMmD,gBAAgBt9B,GAC1C,OAGD,GAAID,GAAcC,EAAOm6B,EAAMoD,yBAC9B,MAGDpD,EAAMnB,UAYFwE,GAAmB9E,IACxB,MAAMC,EAAiB8E,GAA0B/E,GATtBuE,IAAAA,EAW3BxE,GAAeC,EAAUC,GACzBH,GAAelqC,KAAK,CACnBoqC,SAAAA,EACAC,eAAAA,KAd0BsE,EAiBPvE,IAhBTuE,EAAQl+B,WAAW4E,iBAAiB,SAAUq5B,IAAoB,GAkB/C,IAA1BxE,GAAe7pC,SArEnB4E,SAASC,KAAKmQ,iBAAiB,SAAUq5B,IAAoB,GAkB7DzpC,SAASoQ,iBAAiB,YAAaw5B,IAVvCJ,GAAiBW,YAAY,KAC5BV,MAnBsB,OAsFlBW,GAAsBjF,IAC3B,MAAMkF,EAAkB,CAAClF,GAEzB,IAAK,IAAIrkC,EAAI,EAAGA,EAAImkC,GAAe7pC,OAAQ0F,IAAK,CAC/C,MAAMwpC,EAAyBrF,GAAenkC,GAAGskC,eAAelqC,QAAQiqC,GACpEF,GAAenkC,GAAGskC,eAAehqC,OAAS,GAAKkvC,GAA0B,GAC5ED,EAAgBtvC,KAAKkqC,GAAenkC,GAAGqkC,UAIzC,IAAK,IAAIrkC,EAAIupC,EAAgBjvC,OAAS,EAAG0F,GAAK,EAAGA,IAChD,IAAK,IAAI6nB,EAAI,EAAGA,EAAIsc,GAAe7pC,OAAQutB,IAAK,CAC/C,IAAI4hB,EAKJ,GAJIF,EAAgBvpC,KAAOmkC,GAAetc,GAAGwc,WAC5CoF,EAAsB5hB,GAGnB4hB,GAAuB,EAAG,CAC7BjF,GAAkBL,GAAesF,GAAqBpF,WAxC9BuE,EAyCJzE,GAAesF,GAAqBpF,WAxChDuE,EAAQl+B,WAAWwU,oBAAoB,SAAUypB,IAyCrCxE,GAAe9pC,OAAOovC,EAAqB,GACnD,GAAGpF,SAASM,OAAM,GAAO,IA3CbiE,IAAAA,EAgDtBzE,GAAe7pC,SAlGpB4E,SAASC,KAAK+f,oBAAoB,SAAUypB,IAAoB,GAkBhEzpC,SAASggB,oBAAoB,YAAa4pB,IAR1CY,cAAchB,MAmGTU,GAA4B/E,IACjC,IAAIsF,EAAiBtF,EAASne,WAC9B,MAAMoe,EAAiB,GAEvB,KAAOqF,EAAezjB,YAAY,CACjC,IAAK,IAAIlmB,EAAI,EAAGA,EAAImkC,GAAe7pC,OAAQ0F,IACtC2pC,GAAkBA,IAAmBxF,GAAenkC,GAAGqkC,UAC1DC,EAAerqC,KAAK0vC,GAItBA,EAAiBA,EAAezjB,WAGjC,OAAOoe,GC1IF/Q,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,mBAAmBnB,GAAS0K,EAAQrf,OAAOsvB,iBAAiBjG,GAAShK,EAAQiK,QAAQgG,oCAAoC/P,GAAUF,EAAQkQ,4BAA4BhQ,GAAUF,EAAQmQ,iCAAiCjQ,GAAUF,EAAQoQ,0BAA0BlQ,GAAUF,EAAQ5S,2BAA2B4S,EAAQQ,wBAAwBR,EAAQG,wBAAwBH,EAAQO,yBAAyBP,EAAQM,iFAAiFN,EAAQqQ,+DAA+D/a,GAAS0K,EAAQrf,OAAOy1B,kBAAmBpW,EAAQqW,eAAiBjV,GAAOpB,QAAyB51B,gBAAyBkrB,GAAS0K,EAAQrf,OAAO5M,oBAAoBi2B,GAAShK,EAAQiK,QAAQl2B,uBAAuBisB,EAAQsQ,+BAAgCtQ,EAAQsW,eAAiBC,GAAOvW,QAAyB51B,oEAA6E41B,EAAQuQ,oCAC3+BnP,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,+DAAgEuJ,EAAQwW,OAAO1vC,OAASw6B,KAAgCkK,GAAOxL,cACvKsB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,8BACxC+U,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,qCAAqCyJ,GAAUF,EAAQyW,mBAC/FF,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQ0W,OAAO5vC,OAAS6vC,UAAgCvsC,IACpGusC,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,6ECH9CnkB,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,6BAA8BxH,QAAQ,ybCFlE,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,yBAA0BxH,QAAQ,6qDCF9D,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,oBAAqBxH,QAAQ,u8DCUvF,MAKMiB,GAAW,CAChB/M,IAAK,cACLmY,WAAsE,CAUrEq2B,WAAY,CACXljC,KAAMuL,QAkBP83B,cAAe,CACdrjC,KAAMohC,GACNh2B,aAAcg2B,GAAqBH,OAkBpCqC,gBAAiB,CAChBtjC,KAAM0hC,GACNt2B,aAAcs2B,GAAuBJ,QAkBtCiC,cAAe,CACdvjC,KAAMwhC,GACNp2B,aAAco2B,GAAqBF,QAYpCkC,MAAO,CACNxjC,KAAMqL,SAUPo4B,aAAc,CACbzjC,KAAMqL,SAWPq4B,UAAW,CACV1jC,KAAMqL,SAWPs4B,mBAAoB,CACnB3jC,KAAMqL,SAUPu4B,iBAAkB,CACjB5jC,KAAMqL,SAQPw4B,gBAAiB,CAChB7jC,KAAM25B,GACNvuB,aAAc,EACdiB,aAAa,GAQdy3B,gBAAiB,CAChB9jC,KAAM25B,GACNvuB,aAAc,EACdiB,aAAa,GAQd03B,oBAAqB,CACpB/jC,KAAMohC,GACNh2B,aAAcg2B,GAAqBH,OAGpC+C,kBAAmB,CAClBhkC,KAAM25B,GACNttB,aAAa,GAEd43B,iBAAkB,CACjBjkC,KAAM25B,GACNttB,aAAa,IAGfO,cAAc,EACdpB,MAAiE,CAQhEy3B,OAAQ,CACPjjC,KAAMiK,aAUPk5B,OAAQ,CACPnjC,KAAMiK,cAGR6C,OAAkE,IAwCnE,MAAMo3B,WAAgBl9B,GACrB1U,cACCue,QAEAte,KAAK4xC,cAAgB5xC,KAAK6xC,aAAavvB,KAAKtiB,MAG7CkP,sBACC,OAAOA,GAGR2L,oBACC,MAAO,CAACi3B,GAAqBC,GAAiBC,IAG/Cj2B,sBACC,OAAOk2B,GAGRC,6BACC,OAAO,GAGRnyC,aACCinC,GAAcmL,SAASnyC,KAAMA,KAAK4xC,eAGnC7xC,YACCinC,GAAcoL,WAAWpyC,KAAMA,KAAK4xC,eAGrC7xC,gBAAgBsS,GACf,MAAMtJ,EAASsJ,EAAMtJ,OACrB,OAAOA,IAAW/I,KAAKqyC,SAAYtpC,EAAOwd,gBAAkBxd,EAAOwd,mBAAqBvmB,KAAKqyC,SAAYhgC,EAAMigC,eAAexxC,QAAQd,KAAKqyC,UAAY,EAWxJtyC,aAAawyC,EAAQ/E,GAAsB,GACrC+E,IAAUvyC,KAAKwrC,SAIpBxrC,KAAKqyC,QAAUE,EACfvyC,KAAKwyC,YAAcD,EAAO3C,8BAEpBtxB,MAAMm0B,MAAMjF,IAOnBztC,kBACC8vC,GAAiB7vC,MAOlBD,qBACCiwC,GAAoBhwC,MAGrBD,yBAAyB2yC,EAAWC,GACnC,MACMC,EAAS,CACdlE,MAASiE,EAAW7/B,MACpB27B,KAAQkE,EAAW9/B,KACnB87B,IAAOgE,EAAW5/B,IAClB67B,OAAU+D,EAAW3/B,QAGhB6/B,EAAoB3/B,GAAqBlT,KAAKqyC,SACpD,IAAIS,GAAkB,EAClBC,GAAe,EAEnB,GAAIF,EAAkBx/B,OAAQ,CAC7B,MAAM2/B,EAAcH,EAAkBI,WAAWrD,wBACjDkD,EAAkBH,EAAW5/B,IAAOigC,EAAYjgC,IAAMigC,EAAY/Z,OAClE8Z,EAAgBJ,EAAW5/B,IAAM4/B,EAAW1Z,OAAU+Z,EAAYjgC,IAGnE,OAAQ6/B,EAAOF,GAAa,GAAME,EAAOF,GAlBvB,GAkBgDG,EAAkBK,aAAiBJ,GAAmBC,EAGzHhzC,yBAAyB4yC,GACxB,OAA0B,IAAnBA,EAAW5/B,KACQ,IAAtB4/B,EAAW3/B,QACS,IAApB2/B,EAAW9/B,MACU,IAArB8/B,EAAW7/B,MAGhB/S,eACKC,KAAKwrC,QACRxrC,KAAKuvC,aAIPxvC,aACCC,KAAKguC,QAGNjuC,QACC,IAAI2yC,EACJ,MAAMS,EAAcnzC,KAAKozC,iBAEzB,GAA0B,IAAtBD,EAAYna,OAAsC,IAAvBma,EAAYla,OAE1C,OAGGj5B,KAAKosC,WAERpsC,KAAKwyC,YAAcxyC,KAAKqyC,QAAQzC,yBAMhC8C,EAHG1yC,KAAKqzC,yBAAyBrzC,KAAKwyC,cAAgBxyC,KAAKszC,gBAG/CtzC,KAAKuzC,cAELvzC,KAAKwzC,cAAcxzC,KAAKwyC,YAAaW,GAGlD,MAAMM,EAAazzC,KAAK+wC,kBAAoB5B,GAAuBH,QAEnE,GAAIhvC,KAAK0zC,2BACR,OAAO1zC,KAAKqrC,QAGbrrC,KAAKuzC,cAAgBb,EACrB1yC,KAAKwxC,oBAAsBkB,EAAU5B,cAErC,IAAIj+B,EAAOi2B,GACV9oC,KAAK2zC,MACLhC,GAAQO,gBACRtsC,SAAS4N,gBAAgBogC,YAAcT,EAAYna,MAAQ2Y,GAAQO,iBAGhElyC,KAAKwxC,sBAAwB3C,GAAqBH,QACrD77B,EAAO2W,KAAKuf,IAAIl2B,EAAM7S,KAAK2zC,QAG5B,IAAI5gC,EAAM+1B,GACT9oC,KAAK6zC,KACLlC,GAAQO,gBACRtsC,SAAS4N,gBAAgBsgC,aAAeX,EAAYla,OAAS0Y,GAAQO,iBAGlElyC,KAAKwxC,sBAAwB3C,GAAqBD,SACrD77B,EAAMyW,KAAKuf,IAAIh2B,EAAK/S,KAAK6zC,OAG1B,IAAIE,OAAEA,EAAMC,OAAEA,GAAWtB,EACzB,MAAMuB,EAAaj0C,KAAKwxC,sBAAwB3C,GAAqBF,KACjE3uC,KAAKwxC,sBAAwB3C,GAAqBD,OAEtD,GAAIqF,EAAY,CACf,MAAMC,EAA4BvC,GAAQO,gBAAkBlyC,KAAK2zC,MAC3DQ,EAA6Bn0C,KAAK2zC,MAAQR,EAAYna,MAAQ2Y,GAAQO,gBAAkBtsC,SAAS4N,gBAAgBogC,YACnHM,EAA4B,EAC/BH,GAAUG,EACAC,EAA6B,IACvCJ,GAAUI,GAKZ,GAFAn0C,KAAKsxC,gBAAkB9nB,KAAK4qB,MAAML,IAE7BE,EAAY,CAChB,MAAMI,EAA2B1C,GAAQO,gBAAkBlyC,KAAK6zC,KAC1DS,EAA8Bt0C,KAAK6zC,KAAOV,EAAYla,OAAS0Y,GAAQO,gBAAkBtsC,SAAS4N,gBAAgBsgC,aACpHO,EAA2B,EAC9BL,GAAUK,EACAC,EAA8B,IACxCN,GAAUM,GAGZt0C,KAAKuxC,gBAAkB/nB,KAAK4qB,MAAMJ,GAElCntC,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBkG,IAAK,GAAGA,MACRF,KAAM,GAAGA,QAEVyL,MAAM0vB,QAEFyF,GAAczzC,KAAKw0C,SACtBx0C,KAAK6M,MAAMmsB,MAAQh5B,KAAKw0C,QAI1Bz0C,iBACMC,KAAKwrC,QACT3kC,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBmC,QAAS,QACT+D,IAAK,WACLF,KAAM,aAIR,MAAMP,EAAOtS,KAAK4vC,wBAIlB,MAAO,CAAE5W,MAHA1mB,EAAK0mB,MAGEC,OAFN3mB,EAAK2mB,QAKhBga,iBACC,OAAOjzC,KAAKoR,WAAWrL,cAAc,sBAGtC0uC,eACC,OAAOz0C,KAAKoR,WAAWrL,cAAc,sBAGtChG,cAAc20C,EAAYvB,GACzB,IAAItgC,EAAO,EACPE,EAAM,EACV,MAAMq+B,EAAqBpxC,KAAKoxC,mBAE1BwC,EAAchuC,SAAS4N,gBAAgBogC,YACvCE,EAAeluC,SAAS4N,gBAAgBsgC,aAE9C,IAAIa,EAAYb,EACZc,EAAWhB,EAEX5a,EAAQ,GACRC,EAAS,GAEb,MAAM6X,EAAgB9wC,KAAK60C,uBAAuBH,EAAYvB,GAE9DnzC,KAAK0zC,2BAA6B1zC,KAAKqzC,yBAAyBqB,IAAe10C,KAAK80C,yBAAyBhE,EAAe4D,GAE5H,MAAMT,EAAanD,IAAkBjC,GAAqBF,KACtDmC,IAAkBjC,GAAqBD,OAEvC5uC,KAAK+wC,kBAAoB5B,GAAuBH,SAAWiF,GAC9Dd,EAAYna,MAAQ0b,EAAW1b,MAC/BA,EAAQ,GAAG0b,EAAW1b,WACZh5B,KAAKgxC,gBAAkB/B,GAAqBD,SAAYiF,IAClEd,EAAYla,OAASyb,EAAWzb,OAChCA,EAAS,GAAGyb,EAAWzb,YAGxBj5B,KAAKw0C,OAASxb,EACdh5B,KAAK+0C,QAAU9b,EAEf,MAAM+b,EAAch1C,KAAKmxC,UAAY,EAnfrB,EAsfhB,OAAQL,GACR,KAAKjC,GAAqBF,IACzB97B,EAAO7S,KAAKi1C,gBAAgBP,EAAYvB,GACxCpgC,EAAMyW,KAAKuf,IAAI2L,EAAW3hC,IAAMogC,EAAYla,OAAS+b,EAAa,GAE7D5D,IACJuD,EAAYD,EAAW3hC,IAAMiiC,GAE9B,MACD,KAAKnG,GAAqBD,OACzB/7B,EAAO7S,KAAKi1C,gBAAgBP,EAAYvB,GAEpC/B,EACHr+B,EAAMyW,KAAKuf,IAAIvf,KAAKsP,IAAI4b,EAAW1hC,OAASgiC,EAAalB,EAAeX,EAAYla,QAAS,IAE7FlmB,EAAM2hC,EAAW1hC,OAASgiC,EAC1BL,EAAYb,EAAeY,EAAW1hC,OAASgiC,GAEhD,MACD,KAAKnG,GAAqBJ,KACzB57B,EAAO2W,KAAKuf,IAAI2L,EAAW7hC,KAAOsgC,EAAYna,MAAQgc,EAAa,GACnEjiC,EAAM/S,KAAKk1C,iBAAiBR,EAAYvB,GAEnC/B,IACJwD,EAAWF,EAAW7hC,KAAOmiC,GAE9B,MACD,KAAKnG,GAAqBH,MACrB0C,EACHv+B,EAAO2W,KAAKuf,IAAIvf,KAAKsP,IAAI4b,EAAW7hC,KAAO6hC,EAAW1b,MAAQgc,EAAapB,EAAcT,EAAYna,OAAQ,IAE7GnmB,EAAO6hC,EAAW7hC,KAAO6hC,EAAW1b,MAAQgc,EAC5CJ,EAAWhB,EAAcc,EAAW5hC,MAAQkiC,GAG7CjiC,EAAM/S,KAAKk1C,iBAAiBR,EAAYvB,GAKrCc,EACCd,EAAYna,MAAQ4a,GAAe/gC,EAAO,EAC7CA,EAAO,EACGA,EAAOsgC,EAAYna,MAAQ4a,IACrC/gC,GAAQA,EAAOsgC,EAAYna,MAAQ4a,GAGhCT,EAAYla,OAAS6a,GAAgB/gC,EAAM,EAC9CA,EAAM,EACIA,EAAMogC,EAAYla,OAAS6a,IACrC/gC,GAAOA,EAAMogC,EAAYla,OAAS6a,GAIpC,IAAIqB,EAAmBR,EAEvB,GAAI30C,KAAKuwC,eAAgB,CACxB,MAAM6E,EAAep1C,KAAKoR,WAAWrL,cAAc,2BAC/C/F,KAAKoR,WAAWrL,cAAc,0BAE9BqvC,IACHD,EAAmBR,EAAYS,EAAajM,cAI9CnpC,KAAKyxC,kBAAoBjoB,KAAK4qB,MAAMe,EAAmBxD,GAAQO,iBAC/DlyC,KAAK0xC,iBAAmBloB,KAAK4qB,MAAMQ,EAAWjD,GAAQO,iBAEtD,MAAMmD,EAAWr1C,KAAKs1C,iBAAiBZ,EAAYvB,EAAatgC,EAAME,EAAKkhC,GAU3E,YARmB3vC,IAAftE,KAAK2zC,OAAuBnqB,KAAK+rB,IAAIv1C,KAAK2zC,MAAQ9gC,GAAQ,OAC7D7S,KAAK2zC,MAAQnqB,KAAK4qB,MAAMvhC,UAGPvO,IAAdtE,KAAK6zC,MAAsBrqB,KAAK+rB,IAAIv1C,KAAK6zC,KAAO9gC,GAAO,OAC1D/S,KAAK6zC,KAAOrqB,KAAK4qB,MAAMrhC,IAGjB,CACNghC,OAAQsB,EAAS9iC,EACjByhC,OAAQqB,EAAS7iC,EACjBO,IAAK/S,KAAK6zC,KACVhhC,KAAM7S,KAAK2zC,MACX7C,cAAAA,GAcF/wC,iBAAiB20C,EAAYvB,EAAatgC,EAAME,EAAKkhC,GACpD,IAAIuB,EAAiBx1C,KAAK+wC,kBAAoB5B,GAAuBJ,QAAU/uC,KAAK+wC,kBAAoB5B,GAAuBH,QAE3HhvC,KAAK+wC,kBAAoB5B,GAAuBT,OAAS77B,GAAQ6hC,EAAW7hC,OAC/E2iC,GAAiB,GAGdx1C,KAAK+wC,kBAAoB5B,GAAuBV,MAAQ57B,EAAOsgC,EAAYna,OAAS0b,EAAW7hC,KAAO6hC,EAAW1b,QACpHwc,GAAiB,GAGlB,IAAIlE,EAAkB,EAClB2C,GAAcuB,IACjBlE,EAAkBoD,EAAW7hC,KAAO6hC,EAAW1b,MAAQ,EAAInmB,EAAOsgC,EAAYna,MAAQ,GAGvF,IAAIuY,EAAkB,EAKtB,OAJK0C,IACJ1C,EAAkBmD,EAAW3hC,IAAM2hC,EAAWzb,OAAS,EAAIlmB,EAAMogC,EAAYla,OAAS,GAGhF,CACN1mB,EAAGiX,KAAK4qB,MAAM9C,GACd9+B,EAAGgX,KAAK4qB,MAAM7C,IAQhBxxC,kBAAkB6zC,EAAaE,EAAcY,EAAYvB,GACxD,OAAIuB,EAAW7hC,KAAOsgC,EAAYna,MAC1B6V,GAAqBJ,KAGzBmF,EAAcc,EAAW5hC,MAAQ4hC,EAAW7hC,KACxCg8B,GAAqBH,MAGzBoF,EAAeY,EAAW1hC,OAASmgC,EAAYla,OAC3C4V,GAAqBD,OAGzBkF,EAAeY,EAAW1hC,OAAS0hC,EAAW3hC,IAC1C87B,GAAqBF,SAD7B,EAKD5uC,uBAAuB20C,EAAYvB,GAClC,MAAMrC,EAAgB9wC,KAAK8wC,cAC3B,IAAIU,EAAsBV,EAE1B,MAAM8C,EAAchuC,SAAS4N,gBAAgBogC,YACvCE,EAAeluC,SAAS4N,gBAAgBsgC,aAE9C,OAAQhD,GACR,KAAKjC,GAAqBF,IACrB+F,EAAW3hC,IAAMogC,EAAYla,QAC7Byb,EAAW3hC,IAAM+gC,EAAeY,EAAW1hC,SAC9Cw+B,EAAsB3C,GAAqBD,QAE5C,MACD,KAAKC,GAAqBD,OACrBkF,EAAeY,EAAW1hC,OAASmgC,EAAYla,QAC/C6a,EAAeY,EAAW1hC,OAAS0hC,EAAW3hC,MACjDy+B,EAAsB3C,GAAqBF,KAE5C,MACD,KAAKE,GAAqBJ,KACrBiG,EAAW7hC,KAAOsgC,EAAYna,QACjCwY,EAAsBxxC,KAAKy1C,kBAAkB7B,EAAaE,EAAcY,EAAYvB,IAAgBrC,GAErG,MACD,KAAKjC,GAAqBH,MACrBkF,EAAcc,EAAW5hC,MAAQqgC,EAAYna,QAChDwY,EAAsBxxC,KAAKy1C,kBAAkB7B,EAAaE,EAAcY,EAAYvB,IAAgBrC,GAKtG,OAAOU,EAGRzxC,gBAAgB20C,EAAYvB,GAC3B,IAAItgC,EAEJ,OAAQ7S,KAAK+wC,iBACb,KAAK5B,GAAuBJ,OAC5B,KAAKI,GAAuBH,QAE3Bn8B,EAAO6hC,EAAW7hC,MAAQsgC,EAAYna,MAAQ0b,EAAW1b,OAAS,EAClE,MACD,KAAKmW,GAAuBV,KAC3B57B,EAAO6hC,EAAW7hC,KAClB,MACD,KAAKs8B,GAAuBT,MAC3B77B,EAAO6hC,EAAW5hC,MAAQqgC,EAAYna,MAIvC,OAAOnmB,EAGR9S,iBAAiB20C,EAAYvB,GAC5B,IAAIpgC,EAEJ,OAAQ/S,KAAKgxC,eACb,KAAK/B,GAAqBF,OAC1B,KAAKE,GAAqBD,QACzBj8B,EAAM2hC,EAAW3hC,KAAOogC,EAAYla,OAASyb,EAAWzb,QAAU,EAClE,MACD,KAAKgW,GAAqBN,IACzB57B,EAAM2hC,EAAW3hC,IACjB,MACD,KAAKk8B,GAAqBL,OACzB77B,EAAM2hC,EAAW1hC,OAASmgC,EAAYla,OAIvC,OAAOlmB,EAGR06B,cACC,OAAOztC,KAAKixC,MAGbvD,yBACC,OAAO1tC,KAAKkxC,aAGb5G,sBACC,OAAOtqC,KAAKm7B,oBAAiB72B,EAAY,mBAG1C8lC,iBACC,OAAO,EAGRvvB,aACC,MAAO,IACHyD,MAAMzD,OACT5M,QAAS,CACRynC,aAAc,GAAG11C,KAAKyxC,sBACtBkE,YAAa,GAAG31C,KAAK0xC,sBAEtBpB,MAAO,CACNsF,UAAW,aAAa51C,KAAKsxC,sBAAsBtxC,KAAKuxC,uBAQ3DhB,qBACC,OAAOvwC,KAAK0wC,OAAO1vC,QAAUhB,KAAK2wC,WAMnCH,qBACC,OAAO,GAITmB,GAAQh3B,SC5wBR,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,yCAAyCuJ,EAAQI,0BAA0BJ,EAAQG,0DAA0DD,GAAUF,EAAQvb,8CAA8C6Q,GAAS0K,EAAQrf,OAAOg7B,sBAAsBzb,GAAUF,EAAQ4b,mDAAmD5b,EAAQmB,KAAKr6B,sBAAsBk5B,EAAQC,wBAAwBD,EAAQ6b,sBAAsB3b,GAAUF,EAAQxvB,wBAAwB0vB,GAAUF,EAAQ8b,6BAA6B5b,GAAUF,EAAQ+b,qBAAqB7b,GAAUF,EAAQa,QAAQmb,MAAMlY,yBAAyB5D,GAAUF,EAAQa,QAAQmb,MAAMjb,iCAAiCf,EAAQa,QAAQmb,MAAMC,+BAA+B/b,GAAUF,EAAQa,QAAQmb,MAAME,oCAAoChc,GAAUF,EAAQa,QAAQmb,MAAM9Q,2CAA2ChL,GAAUF,EAAQa,QAAQmb,MAAMG,4CAA4Cjc,GAAUF,EAAQa,QAAQmb,MAAMI,qCAAqClc,GAAUF,EAAQa,QAAQmb,MAAMlb,8BAA8BZ,GAAUF,EAAQa,QAAQmb,MAAMK,8BAA8Bnc,GAAUF,EAAQmK,sBAAsBnK,EAAQsc,0BAA0Btc,EAAQuc,4BAA4Bvc,EAAQQ,uBAAuBR,EAAQS,oBAAoBT,EAAQwc,mBAAmBxc,EAAQyc,yCAAyCvc,GAAUF,EAAQ0c,sBAAsBC,eAAezc,GAAUF,EAAQ0c,sBAAsB9d,cAAcsB,GAAUF,EAAQ0c,sBAAsB7N,WAAY7O,EAAQqL,SAAWjK,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQmB,KAAKr6B,OAASw6B,UAAgCl3B,4CAAqDwyC,GAAW5c,EAAQ6c,8BAA+B7c,EAAQ8c,gBAAkBtR,GAAOxL,QAAyB51B,IAAc41B,EAAQa,QAAQmb,MAAMe,gBAAkBxG,GAAOvW,QAAyB51B,IAAc41B,EAAQuL,cAAgBoL,GAAO3W,QAAyB51B,gDAC99Dg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,4DAAiEmX,GAAS,WAAYC,EAAMpX,MACnK6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,mEACxC+U,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,iDAAiDyb,GAAUF,EAAQgd,oCAAoC9c,GAAUF,EAAQvb,iGAAiGyb,GAAUF,EAAQvb,qEAAqEyb,GAAUF,EAAQid,oCAC1Y1G,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,uCAAuCyb,GAAUF,EAAQa,QAAQmb,MAAMe,0BAC9IpG,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQkd,mCCLzInd,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQ8c,gBAAkB1b,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQmd,qBAAuBC,GAAQpd,EAASnJ,EAAMpX,QAAUrV,KACpLg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,yBAA0BC,EAAMpX,aAAkBuqB,GAAShK,EAAQiK,QAAQmL,sGAAsG9f,GAAS0K,EAAQrf,OAAO08B,yCAAyCnd,GAAUF,EAAQsd,yCAAyCpd,GAAUF,EAAQud,qCAAqCrd,GAAUF,EAAQsQ,aAActQ,EAAQwd,SAAWlc,GAAOtB,EAASnJ,EAAMpX,QAAUrV,IAAe41B,EAAQwd,cAA2CpzC,EAAhCqzC,GAAOzd,EAASnJ,EAAMpX,MAAwBmX,GAAS,WAAYC,EAAMpX,kBAAuBygB,GAAUF,EAAQ0d,0BAA2BC,GAAO3d,EAAQ4d,iBAAkB,CAACj2C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUygC,GAAQl2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,QAAcmX,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQwd,SAAWM,GAAQ9d,EAASnJ,EAAMpX,QAAUrV,MAAewsB,GAAS,yBAA0BC,EAAMpX,MACt7B6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,mFAAmFyJ,GAAUF,EAAQ+d,4BAA4BnnB,GAAS,aAAcC,EAAMpX,2FAAgGugB,EAAQge,wBAAwBpnB,GAAS,aAAcC,EAAMpX,sGAA2GygB,GAAUF,EAAQ4b,uBAAuB1b,GAAUF,EAAQxvB,oCAAoC0vB,GAAUF,EAAQie,yBAAyBje,EAAQsc,0BAA0Btc,EAAQuc,gCAAiCvc,EAAQmd,qBAAuB3R,GAAOxL,QAAyB51B,UACluBohC,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,mBAAmBuT,GAAShK,EAAQiK,QAAQiU,8BAA8B5oB,GAAS0K,EAAQrf,OAAOw9B,6BAA8Bne,EAAQoe,sCAAwC7H,GAAOvW,GAAyB2W,GAAO3W,WAC/PuW,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC7DkL,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkhC,GAAO32C,MAC9I22C,GAAS,CAAC32C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KAClE81C,GAAS,CAACzd,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQmd,qBAAuBoB,GAAOve,EAASnJ,EAAMpX,QAAUrV,IAC3Gm0C,GAAS,CAACve,EAASnJ,EAAMpX,IAAWgX,EAAI,+BAA+BuJ,EAAQwe,6DAA6DxU,GAAShK,EAAQiK,QAAQiU,6BAA6B5oB,GAAS0K,EAAQrf,OAAOw9B,6BAA6BvnB,GAAS,WAAYC,EAAMpX,uDAA4DygB,GAAUF,EAAQye,mCAAmC7nB,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQoe,sCAAwCM,GAAO1e,GAAyB2e,GAAQ3e,WAClgB0e,GAAS,CAAC1e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC7DkT,GAAU,CAAC3e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUwhC,GAAQj3C,MAChJi3C,GAAU,CAACj3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KACnEk2C,GAAU,CAACl2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAI9uB,EAAKk3C,UAAYC,GAAQn3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,GAAUs/B,GAAQp3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,KAC7Jq/B,GAAU,CAACn3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,qBAAsBC,EAAMpX,oBAAyBygB,GAAUv4B,EAAK4I,SAASqsC,GAAWj1C,EAAK2jC,UAAU1U,GAAS,qBAAsBC,EAAMpX,MAC/Ms/B,GAAU,CAACp3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,yBAA0BC,EAAMpX,aAAkBygB,GAAUv4B,EAAKq3C,iBAAiB9e,GAAUv4B,EAAKw5B,2BAA2BjB,GAAUv4B,EAAKs3C,0BAA0B/e,GAAUv4B,EAAK4L,iCAAiC2sB,GAAUv4B,EAAKu3C,2CAA2Chf,GAAUv4B,EAAKw3C,2CAA2Cjf,GAAUv4B,EAAK4I,SAASqsC,GAAWj1C,EAAK2jC,QAAS3jC,EAAKy3C,YAAcC,GAAQ13C,QAAsCyC,MAAewsB,GAAS,yBAA0BC,EAAMpX,MACtjB4/B,GAAU,CAAC13C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,gCAAgCmmB,GAAWj1C,EAAKy3C,sBACtGtB,GAAU,CAAC9d,EAASnJ,EAAMpX,IAAWgX,EAAI,6DAA6DG,GAAS,aAAcC,EAAMpX,mCAAwCugB,EAAQge,0BAA0BpnB,GAAS,aAAcC,EAAMpX,YAC1O29B,GAAU,CAACpd,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,cAAeC,EAAMpX,8MAAmNuqB,GAAShK,EAAQiK,QAAQiU,8BAA8B5oB,GAAS0K,EAAQrf,OAAO2+B,oBAAoB1oB,GAAS,WAAYC,EAAMpX,uDAA4DygB,GAAUF,EAAQye,mCAAmC7nB,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQoe,sCAAwCmB,GAAQvf,GAAyBwf,GAAQxf,aAAkCpJ,GAAS,cAAeC,EAAMpX,MAC7sB8/B,GAAU,CAACvf,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC9D+T,GAAU,CAACxf,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUqiC,GAAQ93C,MAChJ83C,GAAU,CAAC93C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KClBzE2K,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,kBAAmBxH,QAAQ,o8UCFvD,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,oCAAqCxH,QAAQ,4hLCFzE,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,8BAA+BxH,QAAQ,2sDCFnE,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,qhCCsCrF2rC,GAAW,IAAI1uB,OAAO,uBAKtBhc,GAAW,CAChB/M,IAAK,YACLkD,eAAe,EACfgV,cAAc,EACdpB,MAA+D,CAS9DoiB,KAAM,CACL5tB,KAAMiK,aAqCPlO,QAAW,CACV6P,aAAc,kBACd5L,KAAMiK,aASPsuB,YAAa,CACZv4B,KAAMiK,aAmBPmiC,kBAAmB,CAClBpsC,KAAMiK,cAGR4C,WAAsE,CAWrE6f,SAAU,CACT1sB,KAAMqL,SAcPghC,UAAW,CACVrsC,KAAMqL,SAUPq/B,YAAa,CACZ1qC,KAAMuL,QAaPusB,SAAU,CACT93B,KAAMqL,SAWPurB,SAAU,CACT52B,KAAMqL,SAoBPrL,KAAM,CACLA,KAAMo7B,GACNhwB,aAAcgwB,GAAUL,MAYzB99B,MAAO,CACN+C,KAAMuL,QAmBP8sB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAmB1Bh8B,KAAM,CACL+F,KAAMuL,QAYPg+B,gBAAiB,CAChBvpC,KAAMqL,SAUPm9B,UAAW,CACVxoC,KAAM25B,IAUPjM,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,OACNH,aAAc,IAMfqlB,QAAS,CACRzwB,KAAMqL,SAOP4/B,qBAAsB,CACrBjrC,KAAMqL,SAGPvF,KAAM,CACL9F,KAAMqL,SAGPihC,OAAQ,CACPtsC,KAAM5G,QAGPmzC,cAAe,CACdvsC,KAAM5G,QAGPozC,uBAAwB,CACvBxsC,KAAM5G,QAGPqzC,YAAa,CACZzsC,KAAM25B,IAGP+S,WAAY,CACX1sC,KAAM25B,IAGPgT,eAAgB,CACf3sC,KAAMqL,QACNgB,aAAa,GAGdugC,kBAAmB,CAClB5sC,KAAMqL,QACNgB,aAAa,IAGfS,OAAiE,CAOhEwrB,OAAQ,GASRmQ,MAAO,GASPoE,yBAA0B,CACzBtzB,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,eAchB6iC,0BAA2B,CAC1BvzB,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,aACdm1B,UAAW,CAAEp/B,KAAMiK,eAarB8iC,oBAAqB,CACpBxzB,OAAQ,CACP4lB,UAAW,CAAEn/B,KAAM25B,IACnBqT,gBAAiB,CAAEhtC,KAAMiK,iBAyC7B,MAAMgjC,WAAc35B,GACnB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAO4+B,GAGRlzB,gCACC,OAAOmzB,GAGR//B,oBACC,OAAOA,GAGRU,8BACC,MAAO,CAACs/B,GAA4BC,GAAsBC,IAG3Dh7C,cACCue,QAEAte,KAAKg7C,2BAA4B,EAMjCh7C,KAAKi7C,yBAA2B,GAKhCj7C,KAAKk7C,uBAAyB,GAG9Bl7C,KAAKm7C,6BAA8B,EAGnCn7C,KAAKo7C,cAAe,EAGpBp7C,KAAKq7C,mBAAgB/2C,EAGrBtE,KAAKs7C,gBAAiB,EAGtBt7C,KAAKu7C,eAAiB,GAGtBv7C,KAAKw7C,mBAAqB,GAG1Bx7C,KAAKy7C,mBAAoB,EAGzBz7C,KAAK07C,aAAe,SACpB17C,KAAK27C,YAAc,QACnB37C,KAAK47C,6BAA+B,yBAGpC57C,KAAK67C,aAAe,QACpB77C,KAAK87C,kBAAoB,QAGzB97C,KAAK83C,iBAAmB,GAExB93C,KAAK+7C,mBAAqB/7C,KAAK4xC,cAActvB,KAAKtiB,MAGnDD,aACCinC,GAAcmL,SAASnyC,KAAMA,KAAK+7C,oBAGnCh8C,YACCinC,GAAcoL,WAAWpyC,KAAMA,KAAK+7C,oBAGrCh8C,oBACKC,KAAKg3C,kBACRh3C,KAAKg8C,oBACLh8C,KAAK83C,iBAAmB93C,KAAKi8C,YAAYC,sBAAsBl8C,KAAKu7C,iBAGrEv7C,KAAKuT,KAAOvT,KAAKuT,SAAWvT,KAAKm8C,gBAAgBn7C,QAAUhB,KAAK03C,UAEhE,MAAM5U,EAAcl7B,EAAW,eAE3Bk7B,EACHA,EAAYuD,sBAAsBrmC,MACxBA,KAAK0H,MACfpF,QAAQC,KAAK,4IAIfxC,yBACKC,KAAKi8C,cACRj8C,KAAKi8C,YAAY1V,OAAOvmC,KAAKuT,KAAM,CAClCg4B,qBAAqB,IAGtBvrC,KAAKm6C,iBAAmBn6C,KAAKi8C,YAAYG,iBAGtCp8C,KAAKq8C,mCACRr8C,KAAKs8C,cAELt8C,KAAKu8C,eAIPx8C,WAAWsS,GACV,OAAIsf,GAAKtf,GACDrS,KAAKw8C,UAAUnqC,GAGnBuf,GAAOvf,GACHrS,KAAKy8C,YAAYpqC,GAGrBkf,GAAQlf,GACJrS,KAAK08C,aAAarqC,GAGtBigB,GAAUjgB,GACNrS,KAAK28C,WAAWtqC,GAGpB6e,GAAQ7e,GACJrS,KAAK48C,aAAavqC,GAGtBggB,GAAShgB,GACLrS,KAAK68C,cAAcxqC,IvE9cTA,CAAAA,IAAUA,EAAM5H,IAAoB,cAAd4H,EAAM5H,IAAsB4H,EAAM8e,UAAYF,MAAwBG,GAAgB/e,GuEid1HyqC,CAAYzqC,KACfrS,KAAKy7C,mBAAoB,EACzBz7C,KAAK+8C,cAAgB74C,OAAO84C,eAAej1C,YAGxC/H,KAAKg3C,iBACRh3C,KAAKi9C,sCAGNj9C,KAAKk9C,UAAW,IAGjBn9C,SAASsS,GACRrS,KAAKk9C,UAAW,EAChBl9C,KAAKy7C,mBAAoB,EAI1B17C,UAAUsS,GACLrS,KAAKi8C,aAAej8C,KAAKi8C,YAAYkB,YACxCn9C,KAAKi8C,YAAYmB,KAAK/qC,GAIxBtS,YAAYsS,GACPrS,KAAKi8C,aAAej8C,KAAKi8C,YAAYkB,YACxCn9C,KAAKi8C,YAAYoB,OAAOhrC,GAI1BtS,aAAasS,GACRrS,KAAKi8C,aACRj8C,KAAKi8C,YAAYqB,QAAQjrC,GAI3BtS,WAAWsS,GACNrS,KAAKi8C,aAAgBj8C,KAAKq7C,gBAAkBr7C,KAAK0K,OACpD1K,KAAKi8C,YAAYsB,MAAMlrC,GAIzBtS,aAAasS,GAGZ,OAFuBrS,KAAKi8C,cAAej8C,KAAKi8C,YAAYuB,QAAQnrC,IAKnE,OAFArS,KAAKy9C,kBAAkBz9C,KAAK67C,mBAC5B77C,KAAKw7C,mBAAqBx7C,KAAK0K,OAIhC1K,KAAKk+B,SAAU,EAGhBn+B,gBACC,MAAM29C,EAAiB19C,KAAKg3C,mBAAqBh3C,KAAKi8C,YAChD7P,EAASsR,GAAkB19C,KAAKuT,KAEjC64B,GAKDsR,GAAkBtR,GAAUpsC,KAAKi8C,YAAY0B,oBAEhD39C,KAAK0K,MAAQ1K,KAAKk7C,uBAIlBl7C,KAAKm7C,6BAA8B,EACnCn7C,KAAKk+B,SAAU,GAGZl+B,KAAK04C,uBACR14C,KAAK04C,sBAAuB,EAC5B14C,KAAKk+B,SAAU,GAGhBl+B,KAAKuT,MAAO,GAnBXvT,KAAK0K,MAAQ1K,KAAKw7C,mBAAqBx7C,KAAKw7C,mBAAqBx7C,KAAKq7C,cAsBxEt7C,iBAAiBsS,SACVrS,KAAK49C,iBAEX59C,KAAKk+B,SAAU,EACfl+B,KAAKq7C,cAAgBr7C,KAAK0K,MAC1B1K,KAAKk7C,uBAAyBl7C,KAAK0K,MAEnC1K,KAAKq6C,kBAAoBhoC,EAAMtJ,QAAUsJ,EAAMtJ,SAAW/I,KAAK+F,cAAc,cAG9EhG,YAAYsS,GACX,MAAMwrC,EAA0B79C,KAAKi8C,aAAe5pC,EAAM06B,eAAiB16B,EAAM06B,cAAc37B,YAAciB,EAAM06B,cAAc37B,WAAW67B,SAASjtC,KAAKi8C,YAAY6B,mBAChKC,EAAgC1rC,EAAM06B,eAAiB16B,EAAM06B,cAAc37B,YAAciB,EAAM06B,cAAc37B,WAAWrL,cAAc,+BAI5I,GAAI83C,GAA2BE,EAE9B,YADA1rC,EAAM2rC,2BAIP,MAAMC,EAAc5rC,EAAM06B,cAEtBkR,GAAeA,EAAYhvC,UAAUg+B,SAASjtC,KAAK2e,OAIvD3e,KAAKu8C,eACLv8C,KAAKi9C,iCAELj9C,KAAKq7C,cAAgB,GACrBr7C,KAAKw7C,mBAAqB,GAC1Bx7C,KAAKk+B,SAAU,EACfl+B,KAAKuT,MAAO,GAGbxT,iCACMC,KAAKg3C,iBAAoBh3C,KAAKi8C,cAInCj8C,KAAK04C,sBAAuB,EAC5B14C,KAAKg7C,2BAA4B,EAEjCh7C,KAAKi8C,YAAYiC,iBACjBl+C,KAAKi8C,YAAYkC,mBAGlBp+C,OAAOsS,GACFinB,OAAct5B,KAAKulC,UAAYvlC,KAAKi8C,cACvCj8C,KAAKo+C,OACLp+C,KAAKuT,MAAO,GAIdxT,cAAcsS,GACRrS,KAAKo7C,cACTp7C,KAAKwB,UAAUxB,KAAK07C,cAIrB17C,KAAKo7C,cAAe,EAGrBr7C,QAAQsS,GACP,MAAM2U,EAAS3U,EAAM2U,OACrBhnB,KAAKwB,UAAU,oBAAqB,CACnCorC,UAAW5lB,EAAO4lB,UAClB6N,gBAAiBzzB,EAAO6lB,YAI1B9sC,mBAAmBsS,GAClB,MAAMgsC,QAAoBr+C,KAAK49C,iBACzBU,EAA+Bt+C,KAAK0K,OAAS1K,KAAKu+C,eAAiBF,EAAY3zC,MAIrF,GAFA1K,KAAKm7C,6BAA8B,GAE/BmD,GAAiCt+C,KAAKy7C,kBAA1C,CAMA,GAAI6C,GAAgCt+C,KAAKy7C,mBAapC7B,GAAS3uB,KAAKjrB,KAAK0K,QAAU1K,KAAK+8C,gBAAkB/8C,KAAK0K,MAAO,CACnE,MAAMoa,EAAW9kB,KAAKw+C,qBAAqBx+C,KAAK0K,OAUhD,OAPA1K,KAAK0K,MAAQoa,EACb9kB,KAAKu7C,eAAiBz2B,EACtB9kB,KAAKk7C,uBAAyBp2B,EAG9B9kB,KAAKwB,UAAUxB,KAAK27C,kBACpB37C,KAAKwB,UAAU,iBAKb6Q,EAAMtJ,SAAWs1C,IACpBr+C,KAAKk+B,SAAU,EAGf7rB,EAAM2rC,8BAOaK,EAAY3zC,QAAU1K,KAAK0K,OAAUyuB,OAAWn5B,KAAKk9C,YAAcl9C,KAAKm4C,cAE7En4C,KAAKy9C,kBAAkBz9C,KAAK87C,mBAE3C97C,KAAKg7C,2BAA4B,EACjCh7C,KAAK04C,sBAAuB,EAExB14C,KAAKi8C,cACRj8C,KAAKi8C,YAAYwC,2BAA2B,MAEvCz+C,KAAK03C,WACT13C,KAAKuT,OAAS8qC,EAAY3zC,SAK7B3K,gBACCC,KAAKk6C,YAAcl6C,KAAKkpC,YAGzBnpC,kBAAkBwrC,GACjBvrC,KAAKi8C,YAAY5Q,MAAME,GAGxBxrC,0BAEKu5B,aACIt5B,KAAK49C,kBAAkBpsC,QAIhCzR,qBACCC,KAAK0+C,uBAGDplB,OACHt5B,KAAKo+C,OACLp+C,KAAKk+B,SAAU,GAQjBn+B,qBACC,QAASC,KAAKo6C,eAGfr6C,oBACC,MAAMuvC,QAAgBtvC,KAAK2+C,cAEvBrP,IACHtvC,KAAKo6C,gBAAiB,EACtB9K,EAAQj8B,OAAOrT,OAIjBD,qBACC,MAAMuvC,QAAgBtvC,KAAK2+C,cAE3BrP,GAAWA,EAAQjE,QAGpBtrC,oBACC,MAAMic,QAAuBhc,KAAK2tC,0BAClC,OAAO3xB,GAAkBA,EAAejW,cAAc,iBAGvDhG,oBACC,GAAIC,KAAKi8C,YACR,OAGD,MAAMA,EAAcr0C,EAAW,oBAE/B,IAAIq0C,EAGH,MAAM,IAAI14C,MAAM,iHAFhBvD,KAAKi8C,YAAc,IAAIA,EAAYj8C,KAAM,mBAAmB,GAM9DD,iBAAiB8B,EAAM+8C,GACtB,GAAI/8C,EAAKg9C,MACR,OAGD,MAAMC,EAAWj9C,EAAK2jC,MAAQ3jC,EAAKgM,YAC7BkxC,EAAYH,EACf5+C,KAAKi7C,2BAA6B6D,EAAW9+C,KAAK0K,QAAUo0C,EAE/D9+C,KAAKg7C,2BAA4B,EAE7B+D,IACH/+C,KAAK0K,MAAQo0C,EACb9+C,KAAKi7C,yBAA2B6D,EAChC9+C,KAAKw7C,mBAAqBsD,EAC1B9+C,KAAKwB,UAAUxB,KAAK27C,aACpB37C,KAAKwB,UAAUxB,KAAK07C,cAGpB17C,KAAKo7C,cAAe,GAGrBp7C,KAAKk7C,uBAAyB,GAC9Bl7C,KAAKm7C,6BAA8B,EAEnCn7C,KAAKwB,UAAUxB,KAAK47C,6BAA8B,CAAE/5C,KAAAA,IAGrD9B,kBAAkB8B,GACjB7B,KAAKi7C,yBAA2Bj7C,KAAK0K,MACrC1K,KAAKg/C,qBAAqBn9C,GAC1B7B,KAAK0+C,uBACL1+C,KAAKi/C,aAAep9C,EAOrB9B,qBAAqB8B,GACpB,MACMq9C,EAD0B,aAAdr9C,EAAK4L,MAAuB5L,EAAKg9C,MACrB7+C,KAAKk7C,uBAA0Br5C,EAAKs9C,gBAAkBt9C,EAAKgM,YACzF7N,KAAK0K,MAAQw0C,EASdE,kBACC,OAAKp/C,KAAKi/C,aAIHj/C,KAAKq/C,wBAAwBr/C,KAAKi/C,cAHjC,KAMTl/C,wBAAwBu/C,GAGvB,SAFMt/C,KAAK49C,iBAEP59C,KAAKm6B,UAAYn6B,KAAKulC,SACzB,OAGD,MAAMga,QAAmBv/C,KAAKw/C,gBACxBC,EAAcH,IAAWt/C,KAAK87C,kBAE9B5F,QAAcl2C,KAAK49C,iBACnB8B,EAAiBxJ,EAAMyJ,eAc7B,GAZA3/C,KAAK0K,MAAQ60C,EACbv/C,KAAKu7C,eAAiBgE,EACtBv/C,KAAKk7C,uBAAyBqE,EAE1BnmB,MAEH/0B,WAAW,KACV6xC,EAAMyJ,eAAiBD,EACvBxJ,EAAM0J,aAAeF,GACnB,GAGAD,EAIH,OAHAz/C,KAAKwB,UAAUxB,KAAK27C,kBAEpB37C,KAAKwB,UAAU,iBAKhB,MAAMq+C,OAAuCv7C,IAAvBtE,KAAKq7C,eAAiCr7C,KAAKq7C,gBAAkBr7C,KAAK0K,MACpFyuB,MAAUmmB,IAAWt/C,KAAK67C,cAAgBgE,GAC7C7/C,KAAKwB,UAAUxB,KAAK07C,cAItB37C,sBAGC,OAFeC,KAAKqmB,mBAGLrmB,KAAK49C,kBAAkBlzC,MAE/B,GAGR3K,uBACC,OAAIu5B,MAAat5B,KAAKi8C,mBACfj8C,KAAKi8C,YAAY6D,wBAChB9/C,KAAKi8C,aAAej8C,KAAKi8C,YAAY6B,kBAAkB/3C,cAAc,2BAGtE/F,KAAKsmC,YAObA,kBACC,OAAOtmC,KAAKqmB,aAAermB,KAAKqmB,YAAYtgB,cAAc,SAG3Dg6C,uBACC,OAAO//C,KAAKsmC,aAAetmC,KAAKsmC,YAAY4C,YAG7CnpC,wBACC,OAAOC,KAAKggD,aAGbjgD,wBAAwB8B,GACvB,MAAM4I,EAAM2sB,SAASv1B,EAAKyhB,aAAa,iBACvC,OAAOtjB,KAAKm8C,gBAAgB1xC,GAS7B1K,0BACC,OAAKC,KAAKi8C,YAIHj8C,KAAKi8C,YAAYgE,gBAHhB3+C,QAAQ2C,SAAQ,GAMzBlE,aACC,MAAO,GAAGC,KAAK2e,YAIhB5e,iBAEAA,gBAAgBsS,GACf,MAAMxQ,EAAOwQ,EAAMtJ,OACbm3C,EAAalgD,KAAKq/C,wBAAwBx9C,GAChDq+C,GAAcA,EAAW1+C,UAAU,YAAa,CAC/CK,KAAMq+C,EACNrT,UAAWhrC,IAIb9B,eAAesS,GACd,MAAMxQ,EAAOwQ,EAAMtJ,OACbm3C,EAAalgD,KAAKq/C,wBAAwBx9C,GAChDq+C,GAAcA,EAAW1+C,UAAU,WAAY,CAC9CK,KAAMq+C,EACNrT,UAAWhrC,IAIb9B,eAAe8B,EAAM+8C,GACpB5+C,KAAKmgD,iBAAiBt+C,EAAM+8C,GAG7B7+C,gBAAgB8B,GACf7B,KAAKogD,kBAAkBv+C,GACvB7B,KAAKwB,UAAU,0BAA2B,CACzCK,KAAM7B,KAAKq/C,wBAAwBx9C,GACnCgrC,UAAWhrC,IAIb9B,UAEAA,WAEAA,yBACC,MAAO,CACN4jC,QAAW+W,GAAMpjB,WAAWyH,QAAQqC,IACpCyC,YAAe6W,GAAMpjB,WAAWyH,QAAQoC,IACxC59B,MAASm3C,GAAMpjB,WAAWyH,QAAQkC,IAClC2C,QAAW8W,GAAMpjB,WAAWyH,QAAQmC,KAItCnhC,uBACC,MAAMsgD,EAAgBrgD,KAAKoR,WAAWrL,cAAc,IAAI/F,KAAK2e,qBAEzD3e,KAAKi8C,aAAej8C,KAAKi8C,YAAY0B,kBACxC0C,EAAcxyC,YAAc7N,KAAKsgD,sBAEjCD,EAAcxyC,YAAc,GAI9BkoC,gBACC,OAAO/1C,KAAKulC,WAAavlC,KAAKm6B,SAG/B8d,uBACC,OAAOyC,GAAMpjB,WAAWyH,QAAQW,IAGjCoW,gBACC,OAAO91C,KAAKyN,KAAK5C,cAGlB0zC,mBACC,OAAOv+C,KAAKyN,OAASo7B,GAAUxB,OAGhCkZ,wBACC,OAAOvgD,KAAKg3C,gBAAkB,GAAGh3C,KAAK2e,sBAAwB,GAG/D6hC,uBACC,OAAOxgD,KAAKylC,cAAgB,GAAGzlC,KAAK2e,qBAAuB,GAG5Doc,cACC,MAAM0lB,EAAsBzgD,KAAKg3C,gBAAkB,YAAS1yC,EACtDo8C,EAA0B1gD,KAAKg3C,gBAAkB,YAAS1yC,EAC1D8gC,EAAkBplC,KAAKg6C,cAAc5U,gBAAkB,GAAGplC,KAAKugD,qBAAqBvgD,KAAKwgD,oBAAoBxgD,KAAKg6C,cAAc5U,kBAAkB9B,OAAS,GAAGtjC,KAAKugD,qBAAqBvgD,KAAKwgD,mBAAmBld,OAEtN,MAAO,CACN4S,MAAS,CACRG,oBAAuBr2C,KAAKg6C,gBAAkBh6C,KAAKg6C,cAAc3D,0BAAuB/xC,GACxF8gC,gBAAmBA,QAAmB9gC,EACtC6xC,YAAen2C,KAAK8lC,aAAehC,GAAWvgC,MAAQ,YAASe,EAC/D8xC,aAAgBp2C,KAAKg6C,cAAc5D,aAAep2C,KAAKg6C,cAAc5D,aAAeqK,EACpFnK,iBAAoBt2C,KAAKg6C,cAAc1D,iBAAmBt2C,KAAKg6C,cAAc1D,iBAAmBoK,EAChG1iB,KAAQh+B,KAAKg6C,eAAiBh6C,KAAKg6C,cAAchc,KACjD/C,aAAgBj7B,KAAKg6C,eAAiBh6C,KAAKg6C,cAAc/e,aACzDD,aAAgBh7B,KAAKg6C,eAAiBh6C,KAAKg6C,cAAchf,aACzDic,gBAAmBj3C,KAAKg6C,eAAiBh6C,KAAKg6C,cAAc/C,gBAC5DV,UAAcv2C,KAAKg6C,eAAiBh6C,KAAKg6C,cAAczD,WAAchP,GAA0BvnC,QAKlG42C,4BACC,MAAO,CACN9d,IAAO94B,KAAKu+C,aAAev+C,KAAKi6C,uBAAuBnhB,SAAMx0B,EAC7DykC,IAAO/oC,KAAKu+C,aAAev+C,KAAKi6C,uBAAuBlR,SAAMzkC,EAC7DuyC,KAAQ72C,KAAKu+C,aAAgBv+C,KAAKi6C,uBAAuBpD,MAAQ,WAASvyC,GAI5E8yC,+BACC,GAAKp3C,KAAKq3C,qBAIV,OAAIr3C,KAAKs4C,sCACDt4C,KAAK2lC,eAGN3lC,KAAKu4C,sBAAsBp3C,IAAI2E,GAAMA,EAAG+H,aAAarL,KAAK,KAGlE89C,4BACC,OAAOtgD,KAAKi8C,YAAcj8C,KAAKi8C,YAAYqE,2BAAwBh8C,EAGpE6/B,cACC,MAAO,CACNmL,QAAS,CACRqR,2BAA4B3gD,KAAKs5B,SAAWt5B,KAAKg3C,gBACjD4J,mDAAoD5gD,KAAKs5B,SAAWt5B,KAAKg3C,iBAAmBh3C,KAAKq3C,sBAElGe,kBAAmB,CAClByI,8BAA8B,EAC9BC,gCAAgC,EAChCC,iCAAkC/gD,KAAK8lC,aAAehC,GAAWH,QACjEqd,+BAAgChhD,KAAK8lC,aAAehC,GAAWvgC,MAC/D09C,iCAAkCjhD,KAAK8lC,aAAehC,GAAWF,QACjEsd,qCAAsClhD,KAAK8lC,aAAehC,GAAWD,cAKxEhpB,aACC,MAAMsmC,EAAc/pB,SAAStoB,iBAAiBlJ,SAAS4N,iBAAiB4tC,UAElEC,EAAe,CACpB7H,cAAe,CACd7D,YAAa,GAAG31C,KAAKk6C,iBAEtB7B,wBAAyB,CACxBrpC,QAA+B,IAApBhP,KAAKm6C,WAAmB,OAAS,eAC5CnhB,MAAS,GAAGh5B,KAAKm6C,gBAElB5C,mBAAoB,CACnB+J,YAAa,GAAGthD,KAAKk6C,gBACrBvE,YAAc31C,KAAKk6C,YAAciH,EAAe,GAAK,GAAGnhD,KAAKk6C,gBAAkB,SAEhFrE,WAAY,IAOb,OAJI71C,KAAK+/C,iBAAmB,KAC3BsB,EAAaxL,WAAW0L,QAAU,KAG5BF,EAGRzJ,2BACC,MAAO,OAGRW,4BACC,OAAOv4C,KAAKwhD,gBAAgB,qBAAqBrgD,IAAI2E,GAAMA,EAAG27C,WAAU,IAGzEpF,yCACC,OAAOr8C,KAAKq3C,uBAAyBr3C,KAAKuT,MAAQvT,KAAKk+B,QAGxDoa,4CACC,OAAQt4C,KAAK65C,kBAAkB74C,QAAUhB,KAAKq3C,qBAG/C5R,oBACC,OAAOzlC,KAAK8lC,aAAehC,GAAWJ,KAGvC2T,2BACC,OAAOr3C,KAAKylC,eAAiBzlC,KAAK8lC,aAAehC,GAAWH,WACtD3jC,KAAKq6C,mBACNr6C,KAAK03C,UAAY13C,KAAKi8C,aAG5BtW,qBACC,OAAO3lC,KAAK0mC,yBAAyB1mC,KAAK8lC,YAG3CoR,sBACC,OAAOwD,GAAMpjB,WAAWyH,QAAQU,IAGjC0X,gCACC,GAAIn3C,KAAKg3C,kBAAoBh3C,KAAK0K,OAAS1K,KAAKi8C,YAAYkB,YAC3D,OAAQn9C,KAAK83C,iBAAiB92C,QAC9B,KAAK,EACJ,OAAO05C,GAAMpjB,WAAWyH,QAAQc,IAEjC,KAAK,EACJ,OAAO6a,GAAMpjB,WAAWyH,QAAQY,IAEjC,QACC,OAAO+a,GAAMpjB,WAAWyH,QAAQa,GAA6B5/B,KAAK83C,iBAAiB92C,SAOtF61C,WACC,OAAO72C,KAAKu+C,aAAe,WAAQj6C,EAGpCozC,eACC,OAAOpe,KAOR0c,mBACC,OAAOh2C,KAAKm4C,YAMbpB,2BACC,MAOM5/B,EAAS,gHAPW,CACzB5T,MAAO,utBACPqgC,QAAS,kpBACTD,QAAS,ohBACTE,YAAa,0eAKO7jC,KAAK8lC,iCAI1B,OAAO9lC,KAAK8lC,aAAehC,GAAWJ,KAAOvsB,EAAS,GAMvDwhC,kCAQC,OAAO34C,KAAK8lC,aAAehC,GAAWJ,KAPZ,CACzBngC,MAAO,QACPqgC,QAAS,QACTD,QAAS,cACTE,YAAa,eAGiD7jC,KAAK8lC,YAAc,GAOnF/lC,mBACC,MCnzCuB2hD,CAAAA,IAExB,IAAIC,EAAW,EAGf,GAAI/7C,SAASg8C,UAAW,CAEvBF,EAAMlwC,QAGN,MAAMowC,EAAYh8C,SAASg8C,UAAUC,cAGrCD,EAAUE,UAAU,aAAcJ,EAAMh3C,MAAM1J,QAG9C2gD,EAAWC,EAAUpc,KAAKxkC,YAChB0gD,EAAM/B,gBAA2C,MAAzB+B,EAAM/B,kBACxCgC,EAAwC,aAA7BD,EAAMK,mBAAoCL,EAAM/B,eAAiB+B,EAAM9B,cAGnF,OAAO+B,GD8xCCK,CAAiBhiD,KAAKsmC,aAQ9BvmC,iBAAiBkiD,GCnyCO,EAACP,EAAOC,KAChC,GAAID,EAAMQ,gBAAiB,CAC1B,MAAMC,EAAQT,EAAMQ,kBACpBC,EAAMC,KAAK,YAAaT,GACxBQ,EAAME,cACIX,EAAM/B,gBAChB+B,EAAMlwC,QACNkwC,EAAMY,kBAAkBX,EAAUA,IAElCD,EAAMlwC,SD2xCN+wC,CAAiBviD,KAAKsmC,YAAa2b,GAOpCliD,qBAAqB2K,GACpB,OAAIA,EAAMhK,SAAS,KACXgK,EAAM8M,MAAM,EAAG9M,EAAM5J,QAAQ,MAEjC4J,EAAMhK,SAAS,KACXgK,EAAM8M,MAAM,EAAG9M,EAAM5J,QAAQ,MAG9B4J,EAGRyd,0BACC,MAAM8zB,EAAcr0C,EAAW,oBAE/B,MAAO,CAAC+pC,IAAS12B,OAAOghC,EAAcA,EAAY9zB,aAAe,IAGlEpoB,wBACC,MAAMk8C,EAAcr0C,EAAW,qBAE9B8yC,GAAMpjB,kBAAoBh2B,QAAQC,IAAI,CACtC81B,GAAc,sBACd4kB,EAAcA,EAAY5nC,OAAS/S,QAAQ2C,aAK9Cy2C,GAAM//B,SEh2CN,MAAM6nC,WAAcpsC,GACnBrW,eAAe2K,GAEd,OAAO28B,OAAO38B,KAAWA,EAG1B3K,2BAA2BsW,GAC1B,OAAOoiB,WAAWpiB,ICNpB,MAAM4jB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,+CAA+Cub,EAAQQ,yBAAyBR,EAAQI,0BAA0BJ,EAAQG,uCAAyCH,EAAQqL,cAA2CjhC,EAAhCg3B,GAAOpB,EAASnJ,EAAMpX,oBAAsCmX,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,yDAAyDyb,GAAUF,EAAQie,uBAAuB/d,GAAUF,EAAQzsB,iBAAiB2sB,GAAUF,EAAQuoB,kCAAkCvoB,EAAQC,wBAAwBD,EAAQmK,wBAAwBnK,EAAQqL,0BAA0BnL,GAAUF,EAAQ4L,oDAAoD1L,GAAUF,EAAQa,sCAAsCX,GAAUF,EAAQwoB,kCAAkCtoB,GAAUF,EAAQyoB,+BAA+BzoB,EAAQ0oB,+BAA+B1oB,EAAQ2oB,oBAAqB3oB,EAAQ2f,kBAAkB74C,OAASw6B,UAAgCl3B,MAAewsB,GAAS,YAAaC,EAAMpX,6BAAoCugB,EAAQqL,cAA2CjhC,EAAhCohC,GAAOxL,EAASnJ,EAAMpX,2CAClnC2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,kDAAkDyJ,GAAUF,EAAQ4oB,mBAAmBhyB,GAAS,WAAYC,EAAMpX,UAAeygB,GAAUF,EAAQvb,mBAAmByb,GAAUF,EAAQ6oB,gDAAgD3oB,GAAUF,EAAQ4oB,0BAA0B5oB,EAAQ8oB,yBAAyB9oB,EAAQ+oB,kCAAkC/oB,EAAQgpB,uBAAuBhpB,EAAQipB,0BAA0BjpB,EAAQkpB,sDAAsDlpB,EAAQmpB,wBAAwBvyB,GAAS,WAAYC,EAAMpX,YACjkB6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,kEACxC+U,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,kDAAkDyJ,GAAUF,EAAQopB,mBAAmBxyB,GAAS,WAAYC,EAAMpX,UAAeygB,GAAUF,EAAQvb,mBAAmByb,GAAUF,EAAQqpB,gDAAgDnpB,GAAUF,EAAQopB,0BAA0BppB,EAAQspB,yBAAyBtpB,EAAQ+oB,kCAAkC/oB,EAAQupB,uBAAuBvpB,EAAQipB,0BAA0BjpB,EAAQkpB,sDAAsDlpB,EAAQwpB,wBAAwB5yB,GAAS,WAAYC,EAAMpX,YCHjkBuiB,GAAW,wFAKjBD,GANa,OAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,qFAKjBD,GANa,OAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCCnBmrB,GAAW,iKAEXE,GAAUiM,GAIhBpM,GAPa,MAOM,UAAEC,QALT,UAKwBE,cAHjB,2BACC,6BAIpB,OAAe,UAAEF,WAAUE,ICT3B,MACMF,GAAW,8KAEXE,GAAUiM,GAIhBpM,GAPa,MAOM,UAAEC,QALT,UAKwBE,cAHjB,wBACC,6BAIpB,OAAe,UAAEF,WAAUE,ICTVrrB,GAAQ,eCEzBvE,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,sBAAuBxH,QAAQ,2kRC8BzF,MAAMiB,GAAW,CAChB/M,IAAK,iBACLkY,cAAc,EACdC,WAAwE,CAQvE5P,MAAO,CACN+C,KAAM+0C,GACN3pC,aAAc,GASfigB,IAAK,CACJrrB,KAAM+0C,IASPzZ,IAAK,CACJt7B,KAAM+0C,IAUP3L,KAAM,CACLppC,KAAM+0C,GACN3pC,aAAc,GAmBfitB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAU1BW,SAAU,CACT52B,KAAMqL,SAUPqhB,SAAU,CACT1sB,KAAMqL,SAUPysB,SAAU,CACT93B,KAAMqL,SAePq/B,YAAa,CACZ1qC,KAAMuL,OACNH,kBAAcvU,GAmBfoD,KAAM,CACL+F,KAAMuL,QAUP2qC,eAAgB,CACfl2C,KAAM25B,GACNvuB,aAAc,GAUfsiB,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,OACNH,aAAc,IAGf+qC,iBAAkB,CACjBn2C,KAAMqL,QACNgB,aAAa,GAGd+pC,iBAAkB,CACjBp2C,KAAMqL,QACNgB,aAAa,GAOdokB,QAAS,CACRzwB,KAAMqL,SAGPgrC,cAAe,CACdr2C,KAAMqL,QACNgB,aAAa,GAGdiqC,eAAgB,CACft2C,KAAM+0C,GACN1oC,aAAa,GAGdkqC,oBAAqB,CACpBv2C,KAAMuL,OACNc,aAAa,EACbjB,aAAc,IAGforC,aAAc,CACbx2C,KAAM+0C,GACN1oC,aAAa,GAGdoqC,OAAQ,CACPz2C,KAAM+0C,GACN1oC,aAAa,GAGdqqC,SAAU,CACT12C,KAAMqL,QACNgB,aAAa,GAGdsqC,eAAgB,CACf32C,KAAM25B,GACNttB,aAAa,GAGduqC,aAAc,CACb52C,KAAMqL,QACNgB,aAAa,IAGfb,MAAmE,CAalE4gC,kBAAmB,CAClBpsC,KAAMiK,aAUPsuB,YAAa,CACZv4B,KAAMiK,cAGR6C,OAAoE,CAOnEwrB,OAAQ,KAyDV,MAAMue,WAAkBvjC,GACvBhhB,cACCue,QAGDpP,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAO0pC,GAGRxoC,sBACC,OAAOyoC,GAGRr8B,0BACC,MAAO,CACNkW,GACAqc,IAIF36C,wBACCukD,GAAUhtB,iBAAmBD,GAAc,sBAG5C5pB,WACC,OAAOo7B,GAAUxB,OAKlByb,mBACC,OAAOwB,GAAUhtB,WAAWyH,QAAQ2C,IAGrCqhB,kBACC,MAAO,OAGRO,mBACC,OAAOgB,GAAUhtB,WAAWyH,QAAQ4C,IAGrC4hB,kBACC,MAAO,MAGRF,wBACC,OAAQrjD,KAAK4jD,mBAAqB5jD,KAAKulC,WAAavlC,KAAKm6B,SAG1DupB,wBACC,OAAQ1jD,KAAK6jD,mBAAqB7jD,KAAKulC,WAAavlC,KAAKm6B,SAG1DsqB,iBACC,OAAOzkD,KAAKk+B,QAGbukB,wBACC,OAAOziD,KAAK0K,MAAMg6C,QAAQ1kD,KAAK2jD,gBAGhC5oB,cACC,MAAO,CACN4pB,aAAgB3kD,KAAKqkC,SACrBkS,UAAahP,GAA0BvnC,OAIzC0iD,sBACC,MAAO,CACN5pB,SAAkBx0B,IAAbtE,KAAK84B,SAAoBx0B,EAAYtE,KAAK84B,IAC/CiQ,SAAkBzkC,IAAbtE,KAAK+oC,SAAoBzkC,EAAYtE,KAAK+oC,IAC/C8N,KAAM72C,KAAK62C,MAIb92C,oBACCC,KAAK4kD,uBACuBtgD,IAAxBtE,KAAK+jD,iBACR/jD,KAAK+jD,eAAiB/jD,KAAK0K,OAG5B,MAAMo4B,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,MACxBA,KAAK0H,MACfpF,QAAQC,KAAK,4IAIf2zC,YACC,OAAOl2C,KAAKoR,WAAWrL,cAAc,eAGtC8+C,iBACC,OAAO7kD,KAAKoR,WAAWrL,cAAc,yBAGtChG,oBACCsE,WAAW,KACLrE,KAAK8jD,eACT9jD,KAAK6kD,WAAW9lC,gBAAgB,YAE/B,GAGJhf,kBACCC,KAAK8jD,eAAgB,EAGtB/jD,mBACCC,KAAK8jD,eAAgB,EACrB9jD,KAAK2iD,iBAGN5iD,kBACCC,KAAK4jD,sBAAgCt/C,IAAbtE,KAAK84B,KAAqB94B,KAAK0K,OAAS1K,KAAK84B,IACrE94B,KAAK6jD,sBAAgCv/C,IAAbtE,KAAK+oC,KAAqB/oC,KAAK0K,OAAS1K,KAAK+oC,IAGtEhpC,YACkC,KAA7BC,KAAKgkD,sBACRhkD,KAAKgkD,oBAA0C,KAApBhkD,KAAK8lC,WAAoB9lC,KAAK8lC,WAAahC,GAAWJ,MAElF1jC,KAAK8lC,gBAA4BxhC,IAAbtE,KAAK84B,KAAqB94B,KAAK0K,MAAQ1K,KAAK84B,UAC9Cx0B,IAAbtE,KAAK+oC,KAAqB/oC,KAAK0K,MAAQ1K,KAAK+oC,IAC9CjF,GAAWvgC,MAAQvD,KAAKgkD,oBAG5BjkD,cAAc2K,GACb,MAAMo6C,EAAM,IAAM9kD,KAAK2jD,eACvB,OAAOn6B,KAAK4qB,MAAM1pC,EAAQo6C,GAAOA,EAGlC/kD,mBACKC,KAAK+jD,iBAAmB/jD,KAAK0K,QAChC1K,KAAK+jD,eAAiB/jD,KAAK0K,MAC3B1K,KAAKwB,UAAU,SAAU,CAAEkJ,MAAO1K,KAAK0K,SAWzC3K,aAAaglD,EAAUC,GACtB,IAAIt6C,EACJ1K,KAAK0K,MAAQ1K,KAAKilD,cAAcxsB,WAAWz4B,KAAKk2C,MAAMxrC,QACtDA,EAAQ1K,KAAK0K,MAAQq6C,OACJzgD,IAAbtE,KAAK84B,KAAqBpuB,EAAQ1K,KAAK84B,MAC1CpuB,EAAQ1K,KAAK84B,UAEGx0B,IAAbtE,KAAK+oC,KAAqBr+B,EAAQ1K,KAAK+oC,MAC1Cr+B,EAAQ1K,KAAK+oC,KAEdr+B,EAAQ1K,KAAKilD,cAAcv6C,GACvBA,IAAU1K,KAAK0K,QAClB1K,KAAK0K,MAAQA,EACb1K,KAAKklD,YACLllD,KAAK4kD,kBACL5kD,KAAKk+B,SAAU,EACfl+B,KAAK6kD,WAAWj3C,aAAa,UAAW,IACpCo3C,EACHhlD,KAAKmlD,mBAELnlD,KAAKk2C,MAAM1kC,SAKdzR,UAAUsS,GACLrS,KAAK0jD,mBAAqBrxC,EAAM+yC,YAAcplD,KAAKm6B,WAAan6B,KAAKulC,WACxEvlC,KAAKqlD,aAAarlD,KAAK62C,MAAM,GAC7B72C,KAAK+jD,eAAiB/jD,KAAK0K,OAI7B3K,UAAUsS,GACLrS,KAAKqjD,mBAAqBhxC,EAAM+yC,YAAcplD,KAAKm6B,WAAan6B,KAAKulC,WACxEvlC,KAAKqlD,cAAcrlD,KAAK62C,MAAM,GAC9B72C,KAAK+jD,eAAiB/jD,KAAK0K,OAI7B3K,eAAesS,GACW,KAArBrS,KAAKk2C,MAAMxrC,QACd1K,KAAKk2C,MAAMxrC,MAAQ1K,KAAK84B,KAAO,GAEhC,MAAMymB,EAAav/C,KAAKilD,cAAcxsB,WAAWz4B,KAAKk2C,MAAMxrC,QACxD1K,KAAK0K,QAAU1K,KAAK+jD,gBAAkB/jD,KAAK0K,QAAU60C,IACxDv/C,KAAK0K,MAAQ60C,EACbv/C,KAAKklD,YACLllD,KAAK4kD,kBACL5kD,KAAKmlD,oBAIPplD,aACCC,KAAKk+B,SAAU,EAGhBn+B,cACCC,KAAKk+B,SAAU,EAGhBn+B,WAAWsS,GACV,IAAIosB,GAAiB,EACjBz+B,KAAKm6B,UAAYn6B,KAAKulC,WAItBrU,GAAQ7e,GACXrS,KAAK2iD,kBAIFhxB,GAAKtf,GAERrS,KAAKqlD,aAAarlD,KAAK62C,MACbjlB,GAAOvf,GAEjBrS,KAAKqlD,cAAcrlD,KAAK62C,MACdxkB,GAAShgB,IAEnBrS,KAAK0K,MAAQ1K,KAAK+jD,eAClB/jD,KAAKk2C,MAAMxrC,MAAQ1K,KAAK0K,MAAMg6C,QAAQ1kD,KAAK2jD,sBACpBr/C,IAAbtE,KAAK+oC,MAAsBrW,GAAcrgB,IlFhdhCA,CAAAA,IAAUA,EAAM5H,IAAqB,YAAd4H,EAAM5H,KAAmC,OAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,KAAsBK,GAAkBjf,GAAO,GAAM,GAAO,GkFgd5GizC,CAAcjzC,IAE3ErS,KAAKqlD,aAAarlD,KAAK+oC,IAAM/oC,KAAK0K,YACXpG,IAAbtE,KAAK84B,MAAsBnG,GAAgBtgB,IlFjdhCA,CAAAA,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,KAAwBK,GAAkBjf,GAAO,GAAM,GAAO,GkFidlHkzC,CAAgBlzC,IAE/ErS,KAAKqlD,aAAarlD,KAAK84B,IAAM94B,KAAK0K,OlFjepB2H,CAAAA,IAAUA,EAAM5H,IAAqB,YAAd4H,EAAM5H,KAAmC,OAAd4H,EAAM5H,IAAgB4H,EAAM8e,UAAYF,KAAsBK,GAAkBjf,GAAO,GAAM,GAAO,GkFkezJmzC,CAASnzC,IlFheJA,CAAAA,IAAUA,EAAM5H,IAAqB,cAAd4H,EAAM5H,KAAqC,SAAd4H,EAAM5H,IAAkB4H,EAAM8e,UAAYF,KAAwBK,GAAkBjf,GAAO,GAAM,GAAO,GkFge7IozC,CAAWpzC,IAAWwf,GAAUxf,IAAWyf,GAAYzf,KACtFosB,GAAiB,GAEdA,GACHpsB,EAAMosB,mBAIR1+B,WACMC,KAAK4jD,kBACT5jD,KAAK0lD,YAAW,GAAO,GAIzB3lD,WACMC,KAAK6jD,kBACT7jD,KAAK0lD,YAAW,GAAM,GAOxB3lD,mBAGC,OAFAC,KAAKkkD,QA/Tc,GAgUnBlkD,KAAKikD,aAAiBjkD,KAAKikD,aAAejkD,KAAKkkD,OA/TxB,GAAA,GA+TyElkD,KAAKikD,aAAejkD,KAAKkkD,OAClHlkD,KAAKikD,aAQblkD,WAAW4lD,EAAWC,GACjBA,IACH5lD,KAAKikD,aA5UqB,IA6U1BjkD,KAAKkkD,OA1Uc,IA2UnBlkD,KAAKmkD,UAAW,GAEjBnkD,KAAKokD,eAAiB//C,WAAW,KAC5BrE,KAAKmkD,WACRnkD,KAAKqkD,cAAe,EACpBrkD,KAAKqlD,aAAaM,EAAY3lD,KAAK62C,MAAQ72C,KAAK62C,MAChD72C,KAAK4kD,mBACC5kD,KAAK6jD,kBAAoB8B,IAAgB3lD,KAAK4jD,mBAAqB+B,EACxE3lD,KAAK0lD,WAAWC,IAEhB3lD,KAAKmjD,aACLnjD,KAAKmlD,sBAGLnlD,KAAK6lD,oBAMT9lD,aACC+lD,aAAa9lD,KAAKokD,gBAClBpkD,KAAKmkD,UAAW,EAChBnkD,KAAKqkD,cAAe,EAMrBtkD,gBACKC,KAAKmkD,WACRnkD,KAAKmjD,aACLnjD,KAAKmlD,qBAIRb,GAAU3pC,SCpqBV,MAAMorC,GAAgB,CACrBC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,SAAU,WACVC,QAAS,WAGV,MAAMC,WAAqBjwC,GAC1BrW,eAAe2K,GACd,QAASq7C,GAAcr7C,ICZzB,IAAIP,GDgBJk8C,GAAarsB,sBAAsB+rB,ICdnC,MAAMjxC,GAAkB,UACFxQ,IAAjB6F,K1IgDJa,I0I/CCb,G1IgDML,EAAcK,c0I7CjBk8C,GAAa3rC,QAAQvQ,IACjBA,GAGDk8C,GAAaL,WCTfM,GAAU,OAKVC,GAAiB,CACtBC,gBAAiBvxC,GACjBwxC,oBAAqBH,GACrBI,iCAAkCJ,GAClCK,oBAAqBL,IAMhBM,GAAgB,aACrBhyC,mBACAE,GACA+xC,sBAAuB,IAAMjpC,GAA6B,6IAC1DkpC,cAAeR,GACfS,kBAAmB,IAAMR,IAMpBS,GAAO,CACZ/yC,iBAAkB,IAAM2yC,GACxBK,8BAA0BX,EAC1BS,kBAAmB,IAAMR,IClC1B,IAAIW,GAAa,GACbC,GAAqBjjD,OACzB,SAASkjD,GAAmBC,GAC1B,OAAO7mD,MAAMC,QAAQ4mD,GAAeA,EAAY7vC,QAAU6vC,EAAY9gD,MAAM,KAE9E2gD,GAAW1+C,OAAS,SAAU6+C,EAAaC,GAGzC,IAFA,IAAIC,EAAUD,GAAgBH,GAC1BK,EAASJ,GAAmBC,GACvB3gD,EAAI,EAAGA,EAAI8gD,EAAOxmD,OAAQ0F,IAAK,CACtC,IAAI+gD,EAAQD,EAAO9gD,GACnB,GAAuB,OAAnB6gD,EAAQE,SAAsCnjD,IAAnBijD,EAAQE,IAAmD,iBAAnBF,EAAQE,IAAiD,mBAAnBF,EAAQE,GACnH,MAAM,IAAIlkD,MAAM,kCAAoCikD,EAAOhlD,KAAK,KAAO,oBAAsBilD,EAAQ,qBAEvGF,EAAQE,GAASF,EAAQE,OACzBF,EAAUA,EAAQE,GAEpB,OAAOF,GAETL,GAAW3mD,IAAM,SAAU8mD,EAAaC,GAItC,IAHA,IAAIC,EAAUD,GAAgBH,GAC1BK,EAASJ,GAAmBC,GAC5BK,EAAgBF,EAAOG,MAClBjhD,EAAI,EAAGA,EAAI8gD,EAAOxmD,QAAUumD,EAAS7gD,IAC5C6gD,EAAUA,EAAQC,EAAO9gD,IAE3B,OAAO6gD,EAAUA,EAAQG,QAAiBpjD,GAE5C4iD,GAAWtmD,IAAM,SAAUymD,EAAaO,EAAQN,GAC9CA,EAAeA,GAAgBH,GAC/B,IAAIK,EAASJ,GAAmBC,GAC5BK,EAAgBF,EAAOG,MACbT,GAAW1+C,OAAOg/C,EAAQF,GAChCI,GAAiBE,GChC3B,IACMC,GADFC,GAA2B,oBAAV5jD,QAAyBA,OAAO6jD,aAAeA,YAAYC,KAAOD,YAAYE,QAC7FJ,GAAmBE,YAAYE,OAAOC,gBACnC,WACL,OAAOL,GAAmBE,YAAYC,QAHmEG,KAAKH,ICC9GI,GAAM,CACVC,MAAY,CACRC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,QAAS,EACTC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,IAAK,IAEcC,GAAO,GAAIC,GAAY,CAAE,GAAIX,GAAIC,MAAMG,OAASQ,GAAmB,IAAMC,GAAY,KAAMC,IAAkB,EACpI,SAASC,GAAKziD,EAAG2oB,GACb,OAAQ,MAAQrW,OAAOtS,IAAI8Q,OAAO6X,GAEtC,SAAS+5B,GAAMC,GACX,OAAQA,GAAcC,MAAMP,GAAUM,IAAeN,GAAU,IAAMA,GAAUM,GAEnF,SAASE,KACL,IAAIC,EAAaV,GAAK9nD,OACtB,GAAIwoD,EAAY,CACZ,IAAIC,EAAiBjgC,KAAKsP,IAAI0wB,EAAYhgC,KAAKkgC,MAAyB,GAAnBV,KACjDC,IACAA,GAAUU,oBAAoBb,GAAKtxC,MAAM,EAAGgyC,EAAaC,IAGzDX,GADAW,EACOX,GAAKtxC,OAAOiyC,EAAgBD,GAE5B,IAInB,SAASI,KAuCL,OAtCKX,KACDA,GAAY,CACRY,UAAW,GACXC,WAAY,SAAUC,GAClB,IAAK,IAAIrjD,EAAI,EAAGA,EAAIuiD,GAAUY,UAAU7oD,OAAQ0F,IACxCuiD,GAAUY,UAAUnjD,GAAGojD,YACvBb,GAAUY,UAAUnjD,GAAGojD,WAAWC,IAI9CJ,oBAAqB,SAAUK,GAC3B,IAAK,IAAItjD,EAAI,EAAGA,EAAIuiD,GAAUY,UAAU7oD,OAAQ0F,IACxCuiD,GAAUY,UAAUnjD,GAAGijD,qBACvBV,GAAUY,UAAUnjD,GAAGijD,oBAAoBK,IAIvDC,OAAQ,SAAUC,EAAMC,GAChBA,IACAlB,GAAUY,UAAUlpD,KAAKwpD,GACrBA,EAAOC,eACPD,EAAOC,cAAcF,KAIjCG,OAAQ,SAAUH,EAAMC,GACpB,IAAK,IAAIzjD,EAAI,EAAGA,EAAIuiD,GAAUY,UAAU7oD,OAAQ0F,IAC5C,GAAIuiD,GAAUY,UAAUnjD,KAAOyjD,EAK3B,OAJIA,EAAOG,iBACPH,EAAOG,gBAAgBJ,QAE3BjB,GAAUY,UAAU9oD,OAAO2F,EAAG,MAO3CuiD,GA0CX,SAASngC,GAAIyhC,EAAQC,EAAUC,EAAUpB,EAAYqB,GAUjD,GATKA,GAAkBrB,GAAkC,mBAAboB,IACxCC,EAAgBD,EAChBA,EAAW,IAEVC,GAAuC,mBAAfrB,IACzBqB,EAAgBrB,EAChBA,EAAa,IAGbkB,GAAUnB,GADdC,EAAaA,QA/GbsB,GAgHiC,CAC7B,IAAIC,EAAO5C,KAAO6C,EAAO,IAAI1C,KAAKyC,GAAOE,EAAgBthC,KAAKkgC,MAAkC,KAA3BkB,EAAOphC,KAAKkgC,MAAMkB,KAAgBb,EAAY,CAC3GgB,KAAM5B,GAAK0B,EAAKG,WAAY,GAAK,IAAM7B,GAAK0B,EAAKI,aAAc,GAAK,IAAM9B,GAAK0B,EAAKK,aAAc,GAAK,IAAM/B,GAAK0B,EAAKM,kBAAmB,GAAKhC,GAAK2B,EAAe,GACnKM,KAAMjC,GAAK0B,EAAKQ,cAAe,GAAK,IAAMlC,GAAK0B,EAAKS,WAAa,EAAG,GAAK,IAAMnC,GAAK0B,EAAKU,UAAW,GACpGC,UAAWZ,EACXxB,MAAOmB,EACPr9C,QAAS8L,OAAOwxC,GAAY,IAC5BiB,QAASzyC,OAAOyxC,GAAY,IAC5BvuC,UAAWlD,OAAOqwC,GAAc,KAcxC,GAZIH,IAA4C,mBAAlBwB,IAC1BX,EAAU2B,YAAchB,KAExB1B,KACIF,GAAK9nD,QAAUgoD,IACfO,KAEJT,GAAKnoD,KAAKopD,IAEVd,IACAA,GAAUa,WAAWC,GAErBznD,QAAS,CACT,IAAIqpD,EAAiBlB,aAAoBlnD,MAAOqoD,EAAU7B,EAAUqB,KAAO,IAAMrB,EAAUgB,KAAO,IAAMhB,EAAU78C,QAAU,MAAQ68C,EAAU0B,QAAU,IAAM1B,EAAU7tC,UACxK,OAAQquC,GACR,KAAKnC,GAAIC,MAAME,MACf,KAAKH,GAAIC,MAAMG,MACXmD,EAAiBrpD,QAAQ0K,MAAM4+C,EAAS,KAAMnB,GAAYnoD,QAAQ0K,MAAM4+C,GACxE,MACJ,KAAKxD,GAAIC,MAAMI,QACXkD,EAAiBrpD,QAAQC,KAAKqpD,EAAS,KAAMnB,GAAYnoD,QAAQC,KAAKqpD,GACtE,MACJ,KAAKxD,GAAIC,MAAMK,KACPpmD,QAAQupD,KACRF,EAAiBrpD,QAAQupD,KAAKD,EAAS,KAAMnB,GAAYnoD,QAAQupD,KAAKD,GAEtED,EAAiBrpD,QAAQwmB,IAAI8iC,EAAS,KAAMnB,GAAYnoD,QAAQwmB,IAAI8iC,GAExE,MACJ,KAAKxD,GAAIC,MAAMM,MACXgD,EAAiBrpD,QAAQwpD,MAAMF,EAAS,KAAMnB,GAAYnoD,QAAQwpD,MAAMF,GACxE,MACJ,KAAKxD,GAAIC,MAAMO,MACX+C,EAAiBrpD,QAAQypD,MAAMH,EAAS,KAAMnB,GAAYnoD,QAAQypD,MAAMH,GAGxEtpD,QAAQupD,MAAQ9B,EAAU2B,aAC1BppD,QAAQupD,KAAK9B,EAAU2B,aAG/B,OAAO3B,GAwBf,SAASiC,GAAO3C,GACZrpD,KAAKisD,MAAQ,SAAUC,EAAKllC,EAAQmlC,EAAMC,GAEtC,OADAhE,GAAI6D,MAAMC,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACpCpsD,MAEXA,KAAKgN,MAAQ,SAAUk/C,EAAKllC,EAAQmlC,EAAMC,GAEtC,OADAhE,GAAIp7C,MAAMk/C,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACpCpsD,MAEXA,KAAKqsD,QAAU,SAAUH,EAAKllC,EAAQmlC,EAAMC,GAExC,OADAhE,GAAIiE,QAAQH,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACtCpsD,MAEXA,KAAK6rD,KAAO,SAAUK,EAAKllC,EAAQmlC,EAAMC,GAErC,OADAhE,GAAIyD,KAAKK,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACnCpsD,MAEXA,KAAK8rD,MAAQ,SAAUI,EAAKllC,EAAQmlC,EAAMC,GAEtC,OADAhE,GAAI0D,MAAMI,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACpCpsD,MAEXA,KAAK+rD,MAAQ,SAAUG,EAAKllC,EAAQmlC,EAAMC,GAEtC,OADAhE,GAAI2D,MAAMG,EAAKllC,EAAQmlC,GAAQ9C,EAAY+C,GACpCpsD,MAEXA,KAAKssD,SAAW,SAAUlD,EAAO+C,GAE7B,OADA/D,GAAIkE,SAASlD,EAAO+C,GAAQ9C,GACrBrpD,MAEXA,KAAKusD,SAAW,SAAUJ,GACtB,OAAO/D,GAAImE,SAASJ,GAAQ9C,IAEhCrpD,KAAKwsD,WAAa,SAAUpD,EAAO+C,GAC/B,OAAO/D,GAAIoE,WAAWpD,EAAO+C,GAAQ9C,IA7J7CjB,GAAI6D,MAAQ,SAAUzB,EAAUC,EAAUpB,EAAYqB,GAClD5hC,GAAIs/B,GAAIC,MAAME,MAAOiC,EAAUC,EAAUpB,EAAYqB,IAEzDtC,GAAIp7C,MAAQ,SAAUw9C,EAAUC,EAAUpB,EAAYqB,GAClD5hC,GAAIs/B,GAAIC,MAAMG,MAAOgC,EAAUC,EAAUpB,EAAYqB,IAEzDtC,GAAIiE,QAAU,SAAU7B,EAAUC,EAAUpB,EAAYqB,GACpD5hC,GAAIs/B,GAAIC,MAAMI,QAAS+B,EAAUC,EAAUpB,EAAYqB,IAE3DtC,GAAIyD,KAAO,SAAUrB,EAAUC,EAAUpB,EAAYqB,GACjD5hC,GAAIs/B,GAAIC,MAAMK,KAAM8B,EAAUC,EAAUpB,EAAYqB,IAExDtC,GAAI0D,MAAQ,SAAUtB,EAAUC,EAAUpB,EAAYqB,GAClD5hC,GAAIs/B,GAAIC,MAAMM,MAAO6B,EAAUC,EAAUpB,EAAYqB,IAEzDtC,GAAI2D,MAAQ,SAAUvB,EAAUC,EAAUpB,EAAYqB,GAClD5hC,GAAIs/B,GAAIC,MAAMO,MAAO4B,EAAUC,EAAUpB,EAAYqB,IAEzDtC,GAAIkE,SAAW,SAAUG,EAAWpD,EAAYqD,GAIxC,IAAIC,GAHRtD,EAAaA,GAAmC,GAC3CqD,GAAsC,MAAzB3D,GAAUM,MACxBN,GAAUM,GAAcoD,EAExB5lD,OAAO6P,KAAK0xC,GAAIC,OAAOzmD,SAAQ,SAAUgrD,GACjCxE,GAAIC,MAAMuE,KAAYH,IACtBE,EAAYC,MAGpB9jC,GAAIs/B,GAAIC,MAAMK,KAAM,uBAAyBW,EAAa,QAAWA,EAAa,KAAQ,IAAM,MAAQsD,EAAW,GAAI,kBAG/HvE,GAAImE,SAAW,SAAUlD,GACrB,OAAOD,GAAMC,QA9FbsB,IAgGJvC,GAAIoE,WAAa,SAAUjC,EAAQlB,GAC/B,OAAkB,MAAVkB,EAAiBnC,GAAIC,MAAMM,MAAQ4B,IAAWnB,GAAMC,QAjG5DsB,IAmGJvC,GAAIyE,eAAiB,SAAUC,GAC3B5D,GAAkB4D,GAiEtB1E,GAAI2E,cAAgB,WAChB,OAAOjE,GAAKtxC,SAEhB4wC,GAAI4E,mBAAqB,WACrB,OAAOhE,IAEXZ,GAAI6E,mBAAqB,SAAUC,GAC/B,GAAIA,EAAS,EACT,MAAM,IAAI3pD,MAAM,iEAEpBylD,GAAmBkE,EACfpE,GAAK9nD,QAAUgoD,IACfO,MAGRnB,GAAI+E,eAAiB,SAAUlE,GAC3BW,KAA8BK,OAAOjqD,KAAMipD,IAE/Cb,GAAIgF,kBAAoB,SAAUnE,GAC9BW,KAA8BS,OAAOrqD,KAAMipD,IAsC/Cb,GAAIiF,UAAY,SAAUhE,EAAYiE,GAIlC,OAHKhE,MAAMgE,IAA8C,MAAzBvE,GAAUM,KACtCN,GAAUM,GAAciE,GAErB,IAAItB,GAAO3C,IC7OtB,IAAIkE,GAAW,SAAUC,EAASC,GAC9B,IAAKD,EAAS,CACV,IAAIhD,EAA+B,mBAAbiD,EAA0BA,IAAaA,EAC7DnrD,QAAQorD,OAAOF,EAAShD,KCH5BmD,GAAe,SAAUC,GACzBF,GAAOltD,MAAMC,QAAQmtD,GAAS,gDAC9B,IAAIC,EAAUD,EAAO5sD,OACrB,GAAI6sD,EAAU,EAAG,CACbD,EAAOzpC,OAEP,IADA,IAAIoK,EAAI,EACC7nB,EAAI,EAAGA,EAAImnD,EAASnnD,IACrBknD,EAAO9sD,QAAQ8sD,EAAOlnD,MAAQA,IAC9BknD,IAASr/B,GAAKq/B,EAAOlnD,MAGvB6nB,EAAIs/B,GACND,EAAO7sD,OAAOwtB,EAAGs/B,EAAUt/B,GAGnC,OAAOq/B,GCZPE,GAAW,SAAUC,EAAYC,GAWjC,GAVAN,GAA6B,iBAAfK,GAA2BA,EAAY,mDACrDL,GAA6B,iBAAfM,EAAyB,mDAClCA,GAA6C,iBAAxBA,EAAW9+C,YACjC8+C,EAAa,CACT9+C,SAAU8+C,GAAc,GACxBhpD,YAAakiD,GAAW3mD,IAAIwtD,KAErB7+C,SAAS++C,UAAY,GAEpCD,EAAW9+C,SAAS++C,UAAYD,EAAW9+C,SAAS++C,WAAa,EAC3B,mBAA3BD,EAAWhpD,YAClB,MAAMzB,MAAM,yBAA2BwqD,EAAa,4DAExD/tD,KAAKkuD,YAAcH,EACnB/tD,KAAKmuD,QAAUH,EAAWhpD,YAC1BhF,KAAKouD,OAAOJ,IAEhBF,GAAShnD,UAAUsnD,OAAS,SAAUJ,GAClChuD,KAAKquD,cAAcL,GACnBhuD,KAAKsuD,sBAETR,GAAShnD,UAAUunD,cAAgB,SAAUL,GACzC,IAAoDO,EAAnCC,EAAcR,EAAW9+C,SAC1C,GAAIs/C,EAAYC,SAAU,CACtB,IAAIC,EAAexH,GAAW3mD,IAAIiuD,EAAYC,UAClB,mBAAjBC,GACPtG,GAAI6D,MAAM,eAAkBuC,EAAYC,SAAW,oBAEnDC,EAAazpD,aACbjF,KAAK2uD,SAAWD,EAAazpD,cAC7ByoD,GAAOgB,IAAiBA,EAAazpD,cAAc2pD,WAAY,uEAE/D5uD,KAAK2uD,SAAW,IAAIb,GAASU,EAAYC,SAAU,SAGvDzuD,KAAK2uD,cAAWrqD,EAUpB,IAAK,IAAIyN,KART/R,KAAK6uD,aAAeL,EAAsB,SAC1CxuD,KAAK8uD,UAAYN,EAAmB,MACpCxuD,KAAK+uD,aAAeP,EAAYQ,aAAehvD,KAAK2uD,SAAW3uD,KAAK2uD,SAASI,aAAe,UAC5F/uD,KAAKivD,eAAiBT,EAAwB,WAC9CxuD,KAAKkvD,aAAeV,EAAYW,YAAc,GAC9CnvD,KAAKovD,gBAAkBZ,EAAYa,eAAiB,GACpDrvD,KAAKsvD,oBAAqB,EAC1Bf,EAAavuD,KAAKmuD,QAAQrnD,UACZknD,EACA,aAANj8C,GAA0B,gBAANA,IACpBw8C,EAAWx8C,GAAKi8C,EAAWj8C,GACtBA,EAAExC,MAAM,yBA1BVvP,KA2BMovD,gBAAgBzuD,KAAKoR,KAK1C+7C,GAAShnD,UAAUwnD,mBAAqB,WAChCtuD,KAAK2uD,UACL3uD,KAAKuvD,mBAAqBvvD,KAAK2uD,SAASY,mBAAmBt0C,OAAOjb,KAAKovD,iBACvEpvD,KAAKsvD,oBAAqB,GAE1BtvD,KAAKuvD,mBAAqBvvD,KAAKovD,iBAGvCtB,GAAShnD,UAAU0oD,cAAgB,WAC/B,OAAOxvD,KAAK+uD,cAEhBjB,GAAShnD,UAAU2oD,QAAU,WACzB,OAAOzvD,KAAKkuD,aAEhBJ,GAAShnD,UAAU8nD,SAAW,WAC1B,OAAO5uD,KAAKmuD,SAEhBL,GAAShnD,UAAU4oD,UAAY,WAC3B,OAAO1vD,KAAK2uD,UAEhBb,GAAShnD,UAAU6oD,iBAAmB,WAC7B3vD,KAAKsvD,qBACNM,GAAW5vD,KAAKkvD,cAChBU,GAAW5vD,KAAKovD,iBAChBQ,GAAW5vD,KAAKuvD,oBAChBvvD,KAAKsvD,oBAAqB,IAGlCxB,GAAShnD,UAAU+oD,iBAAmB,WAElC,OADA7vD,KAAK2vD,mBACE3vD,KAAKovD,iBAEhBtB,GAAShnD,UAAUgpD,oBAAsB,WAErC,OADA9vD,KAAK2vD,mBACE3vD,KAAKuvD,oBAEhBzB,GAAShnD,UAAUipD,cAAgB,WAE/B,OADA/vD,KAAK2vD,mBACE3vD,KAAKkvD,cAEhBpB,GAAShnD,UAAUkpD,aAAe,SAAUC,GACxC,GAAIjwD,KAAK2uD,UACD3uD,KAAK2uD,SAASqB,aAAaC,GAC3B,OAAO,EAIf,IADA,IAAI7rC,EAAIpkB,KAAKkvD,aACJxoD,EAAI,EAAGijB,EAAIvF,EAAEpjB,OAAQ0F,EAAIijB,EAAGjjB,IACjC,GAAI0d,EAAE1d,KAAOupD,EACT,OAAO,EAGf,OAAO,GAEXppD,OAAO8P,eAAem3C,GAAShnD,UAAW,qBAAsB,CAC5DvG,IAAK,WACD,GAAIP,OAAS8tD,GAAShnD,UAClB,MAAM,IAAIvD,MAAM,iGAEpB,IAAI4T,EAAStQ,OAAO2B,OAAOxI,KAAK2uD,SAAW3uD,KAAK2uD,SAASuB,mBAAqB,MAC9E/4C,EAAOnX,KAAKkuD,cAAe,EAE3B,IADA,IAAIiC,EAAcnwD,KAAKkvD,aAAcxoD,EAAIypD,EAAYnvD,OAC9C0F,KAAM,GACJyQ,EAAOg5C,EAAYzpD,MACpByQ,EAAOg5C,EAAYzpD,KAAM,GAQjC,OALAG,OAAO8P,eAAe3W,KAAM,qBAAsB,CAC9C0K,MAAO7D,OAAOupD,OAAOj5C,GACrBk5C,UAAU,EACVC,cAAc,IAEXn5C,GAEXm5C,cAAc,IAElBxC,GAAShnD,UAAUypD,IAAM,SAAUC,GAC/B,IAAIC,EAASzwD,KAAKkwD,mBAClB,GAAI1vD,MAAMC,QAAQ+vD,GAAY,CAC1B,IAAK,IAAI9pD,EAAI,EAAGA,EAAI8pD,EAAUxvD,OAAQ0F,IAClC,GAAI8pD,EAAU9pD,KAAM+pD,EAChB,OAAO,EAGf,OAAO,EAEX,OAAOD,KAAaC,GAExB3C,GAAShnD,UAAU4pD,WAAa,WAC5B,OAAO1wD,KAAK6uD,YAEhBf,GAAShnD,UAAU6pD,QAAU,WACzB,OAAO3wD,KAAK8uD,SAEhBhB,GAAShnD,UAAU8pD,aAAe,WAC9B,OAAO5wD,KAAKivD,cAEhBnB,GAAShnD,UAAU+pD,iBAAmB,SAAUC,GAC5C,IAAItJ,EAASsJ,aAAmBtwD,MAAQswD,EAAU9nD,UAClDxI,MAAMsG,UAAUnG,KAAK0I,MAAMrJ,KAAKovD,gBAAiB5H,GACjDhnD,MAAMsG,UAAUnG,KAAK0I,MAAMrJ,KAAKuvD,mBAAoB/H,GACpDxnD,KAAKsvD,oBAAqB,GAE9BxB,GAASiD,YAAc,SAAUC,EAAajD,EAAYC,EAAYiD,GACvC,iBAAhBD,IACPC,EAAajD,EACbA,EAAaD,EACbA,EAAaiD,EACbA,EAAc,MAElBtD,IAAQsD,GAAsC,mBAAhBA,GAC9BtD,GAA6B,iBAAfK,KAA6BA,GAC3CL,IAAQM,GAAoC,iBAAfA,GAC7BN,IAAQuD,GAAoC,mBAAfA,GAEiB,mBAD9CA,EAAaA,GAAcnD,IACLoD,sBAClBlD,EAAaiD,EAAWC,oBAAoBlD,KAEhDA,EAAaA,GAAc,IAChB9+C,SAAW8+C,EAAW9+C,UAAY,GACxC8+C,EAAWjnD,eAAe,iBAC3BinD,EAAWhpD,iBAAcV,GAE7B,IAAI6sD,EAAUnD,EAAWhpD,YACzB0oD,IAAQyD,GAA8B,mBAAZA,GACtBH,GACKG,IAEGA,EADAnD,EAAW9+C,SAASkiD,WACV,WACNhJ,GAAIiE,QAAQ,8BAAgC0B,GAC5CiD,EAAY3nD,MAAMrJ,KAAMgJ,YAGlB,WACNgoD,EAAY3nD,MAAMrJ,KAAMgJ,aAIpCmoD,EAAQrqD,UAAYD,OAAO2B,OAAOwoD,EAAYlqD,WAC9CqqD,EAAQrqD,UAAU9B,YAAcmsD,EAChCnD,EAAW9+C,SAASu/C,SAAWuC,EAAY/rD,cAAcwqD,YAEzD0B,EAAUA,GAAW,oBAEdnD,EAAW9+C,SAASu/C,UAE/BT,EAAWhpD,YAAcmsD,EACzBjK,GAAWtmD,IAAImtD,EAAYoD,GAC3B,IAAIE,EAAY,IAAIJ,EAAWlD,EAAYC,GAS3C,OARAmD,EAAQlsD,YAAcksD,EAAQrqD,UAAU7B,YAAc,WAClD,OAAOosD,GAENF,EAAQlsD,cAAc0rD,YACvBQ,EAAQ/C,OAAS,SAAUkD,EAASC,EAAcC,GAC9C,OAAO1D,GAASiD,YAAYI,EAASG,EAASC,EAAcC,GAAgBP,KAG7EE,GCtNX,IAAIM,GAAa3D,GAASiD,YAAY,qBAAsB,CACxD/rD,YAAa,WACT,KAAMhF,gBAAgByxD,IAClB,MAAMluD,MAAM,mDAIxBkuD,GAAW3qD,UAAU4qD,QAAU,aAE/BD,GAAW3qD,UAAU6qD,aAAe,WAChC,IAAIC,EAAa,IAAIH,GAAWI,WAAW7xD,KAAMA,KAAKiF,cAAc6qD,uBAIpE,OAHA9vD,KAAK2xD,aAAe,WAChB,OAAOC,GAEJA,GAEXH,GAAWK,YAAc,SAAU/D,EAAYS,EAAayC,GACxD,IAAII,EAAY,IAAKJ,GAAcnD,IAAUC,EAAYS,GACrD2C,EAAUE,EAAUzC,WAUxB,OATAuC,EAAQlsD,YAAcksD,EAAQrqD,UAAU7B,YAAc,WAClD,OAAOosD,GAENA,EAAUV,YACXQ,EAAQ/C,OAAS,SAAUkD,EAASC,EAAcC,GAC9C,OAAO1D,GAASiD,YAAYI,EAASG,EAASC,EAAcC,GAAgBP,KAGpF7I,GAAI0D,MAAM,kBAAqBiC,EAAa,KAAQsD,EAAU3B,YAAc,mBAAqB2B,EAAU3B,YAAYD,UAAY,KAC5H4B,GAEXI,GAAW3qD,UAAUypD,IAAM,SAAUC,GACjC,OAAOxwD,KAAKiF,cAAcsrD,IAAIC,IAElCiB,GAAWlB,IAAM,SAAUhJ,EAASiJ,GAChC,OAAOjJ,aAAmBkK,IAAclK,EAAQgJ,IAAIC,IAExDiB,GAAWI,WAAa,SAAUtK,EAASwK,EAAUC,GACjD,IAAKzK,EACD,OAAOA,EAEX,SAAS0K,EAAiB1K,EAAS2K,GAC/B,OAAO,WACH,IAAIC,EAAM5K,EAAQ2K,GAAa7oD,MAAMk+C,EAASv+C,WAC9C,OAAIgpD,EACOhyD,KAEAmyD,aAAeV,GAAaU,EAAIR,eAAiBQ,GAIpE,IAAKJ,EACD,MAAO,GAGX,IADA,IAAIG,EACKxrD,EAAI,EAAG0rD,EAAKL,EAAS/wD,OAAQ0F,EAAI0rD,EAAI1rD,IAErC6gD,EADL2K,EAAcH,EAASrrD,KACsC,mBAAzB6gD,EAAQ2K,KACxClyD,KAAKkyD,GAAeD,EAAiB1K,EAAS2K,KC3D1D,IAAIrqD,GAAa,GACbC,GAASD,GAAWd,eACpBgB,GAAWF,GAAWE,SACtBC,GAAaF,GAAOC,SACpBE,GAAuBD,GAAW3G,KAAKwF,QACvCqB,GAAkB,SAAUC,GAC9B,IAAIC,EAAOC,EACX,SAAKF,GAA8B,oBAAvBJ,GAAS1G,KAAK8G,QAG1BC,EAAQvB,OAAOyB,eAAeH,KAKP,mBADvBE,EAAOP,GAAOzG,KAAK+G,EAAO,gBAAkBA,EAAMpD,cACbgD,GAAW3G,KAAKgH,KAAUJ,KCd7DM,GAAS1B,OAAO2B,OAAO,MACvBC,GAAU,WACV,IAAIC,EAAKC,EAAaC,EAAMlB,EAAMmB,EAASC,EAAOC,EAASC,UAAU,IAAM,GAAItC,EAAI,EAAG1F,EAASgI,UAAUhI,OAAQiI,EAAOD,UAAU,KAAM,EAAOE,EAAYF,UAAU,QAAK1E,EAAYiE,GAItL,IAHsB,iBAAXQ,GAAyC,mBAAXA,IACrCA,EAAS,IAENrC,EAAI1F,EAAQ0F,IACf,GAAgC,OAA3BmC,EAAUG,UAAUtC,IACrB,IAAKgB,KAAQmB,EACTH,EAAMK,EAAOrB,GACbkB,EAAOC,EAAQnB,GACF,cAATA,GAAwBqB,IAAWH,IAGnCK,GAAQL,IAASO,GAAcP,KAAUD,EAAcnI,MAAMC,QAAQmI,MACjED,GACAA,GAAc,EACdG,EAAQJ,GAAOlI,MAAMC,QAAQiI,GAAOA,EAAM,IAE1CI,EAAQJ,GAAOS,GAAcT,GAAOA,EAAM,GAE9CK,EAAOrB,GAAQe,GAAQQ,EAAMD,UAAU,GAAIF,EAAOF,IAC3CA,IAASM,IAChBH,EAAOrB,GAAQkB,IAK/B,OAAOG,GC5BPspD,GAAW,WACX,IAAIjpD,EAAO,EACP,GACA,GAGJ,OADAA,EAAKzI,KAAK0I,MAAMD,EAAMJ,WACfM,GAAOD,MAAM,KAAMD,ICP1Bi9C,GAAe,CACjBL,UAAW,YACXC,QAAS,UACTC,SAAU,WACVE,QAAS,UACTD,SAAU,YCHR1yB,GAAU,6MACVC,GAAS+9B,GAAWrD,OAAO,qBAAsB,CACjDppD,YAAa,SAAU2uB,GACnB89B,GAAWpoD,MAAMrJ,MACjB,IAAI4zB,EAAUH,GAAQ9jB,KAAKgkB,EAAU9jB,QAAQ,KAAM,MACnD,GAAgB,OAAZ+jB,EACA,MAAM,IAAI0+B,UAAU,uBAA0B3+B,EAAY,gCAE9D3zB,KAAK2zB,UAAYA,EACjB3zB,KAAK6zB,UAAYD,EAAQ,IAAM,KAC/B5zB,KAAK8zB,QAAUF,EAAQ,IAAM,KAC7B5zB,KAAK+zB,QAAUH,EAAQ,IAAM,KAC7B5zB,KAAKg0B,SAAWJ,EAAQ,IAAMA,EAAQ,GAAGpc,MAAM,IAAM,KACrDxX,KAAKi0B,WAAaL,EAAQ,IAAMA,EAAQ,GAAGpc,MAAM,IAAM,KACvDxX,KAAKk0B,YAAcN,EAAQ,IAAM,KAC7B5zB,KAAK6zB,YACL7zB,KAAK6zB,UAAY7zB,KAAK6zB,UAAUhpB,eAEhC7K,KAAK8zB,UACL9zB,KAAK8zB,QAAU9zB,KAAK8zB,QAAQjpB,cAAcgF,QAAQ,UAAU,SAAU0a,GAClE,OAAOA,EAAEhT,kBAGbvX,KAAK+zB,UACL/zB,KAAK+zB,QAAU/zB,KAAK+zB,QAAQxc,gBAGpC3C,YAAa,WACT,OAAO5U,KAAK6zB,WAEhB0+B,UAAW,WACP,OAAOvyD,KAAK8zB,SAEhBgC,UAAW,WACP,OAAO91B,KAAK+zB,SAEhBy+B,WAAY,WACR,OAAOxyD,KAAKg0B,UAEhBy+B,kBAAmB,WACf,OAAOzyD,KAAKg0B,SAAWh0B,KAAKg0B,SAASztB,MAAM,KAAO,IAEtDmsD,aAAc,WACV,OAAO1yD,KAAKi0B,YAEhB0+B,oBAAqB,WACjB,OAAO3yD,KAAKi0B,WAAaj0B,KAAKi0B,WAAWzc,MAAM,GAAGjR,MAAM,KAAO,IAEnEqsD,cAAe,WACX,OAAO5yD,KAAKk0B,aAEhBE,qBAAsB,WAClB,OAAOp0B,KAAKk0B,YAAcl0B,KAAKk0B,YAAY1c,MAAM,GAAGjR,MAAM,KAAO,IAErEssD,oBAAqB,SAAU1+B,GAE3B,OADAu5B,GAAOv5B,GAAWA,EAAQ5kB,MAAM,oBAAqB,gDAC9CvP,KAAKo0B,uBAAuBtzB,QAAQqzB,IAAY,GAE3DpsB,SAAU,WACN,OAAOvF,GAAKxC,KAAK6zB,UAAW7zB,KAAK8zB,QAAS9zB,KAAK+zB,QAAS/zB,KAAKg0B,SAAUh0B,KAAKi0B,WAAYj0B,KAAKk0B,cAEjG4+B,cAAe,WACX,IAAIj/B,EAAY7zB,KAAK+yD,oBACjBj/B,EAAU9zB,KAAK8zB,QAKnB,MAJkB,OAAdD,GAAkC,SAAZC,IACtBD,EAAY,KACZC,EAAU,MAEPtxB,GAAKqxB,EAAWC,EAAS9zB,KAAK+zB,QAAS/zB,KAAKg0B,SAAUh0B,KAAKi0B,WAAYj0B,KAAKk0B,cAEvF6+B,kBAAmB,WACf,OAAOx1C,GAAoBvd,KAAK6zB,YAAc7zB,KAAK6zB,WAEvDm/B,oBAAqB,WACjB,IAAIn/B,EAAY7zB,KAAK6zB,WAAa,GAKlC,OAJIA,EAAU/yB,QAAQ,MAAQ,IAC1B+yB,EAAYA,EAAUrc,MAAM,EAAGqc,EAAU/yB,QAAQ,OAGnC,QADlB+yB,EAAYtW,GAAoBsW,IAAcA,IACnB7zB,KAAK8zB,SAA4B,OAAjB9zB,KAAK+zB,QAGzCk/B,GAA0BzwD,GAAKqxB,EAAW7zB,KAAK8zB,WAAam/B,GAA0BzwD,GAAKqxB,EAAW7zB,KAAK+zB,WAAak/B,GAGvI,SAA8B/+B,GAC1B,GAAIA,EAAa,CACb,IAAIjX,EAAI,mCAAmCtN,KAAKukB,GAChD,OAAOjX,GAAK,WAAaA,EAAE,GAAGpS,eAN2HqoD,CAAqBlzD,KAAKk0B,eAAiBL,EAAUtc,cAFnM,QAWnB,IA8CiBpP,GA9CboV,GAAsB,CACtBC,GAAM,KACNC,GAAM,MAEN01C,GAA4B,CAC5BC,GAAM,UACNC,GAAM,UACNC,GAAM,UACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,iBACNC,KAAM,iBACNC,KAAM,mBAENZ,IA8Ba9qD,GA9BuBgrD,GA+B7BtsD,OAAO6P,KAAKvO,IAAK2S,QAAO,SAAUg5C,EAAKrpD,GAE1C,OADAqpD,EAAI3rD,GAAIsC,IAAQA,EACTqpD,IACR,KAjCP,SAASl2C,GAA6Bm2C,GAClC,IAAI92C,EAAI,qCAAqCtN,KAAKokD,GAClD,OAAO92C,GAAKA,EAAE,GAAKA,EAAE,GAAG1W,MAAM,KAAO,KAEzC,IAAIoX,GAAgBC,GAA6B,gCAAkC,GAsBnF,SAASpb,KACL,OAAOhC,MAAMsG,UAAU5D,OAAO7B,KAAK2H,UAAW8P,SAAStW,KAAK,KAtBhEkxB,GAAOsgC,aAAep2C,GAA6B,8VACnD8V,GAAOugC,iBAAmBr2C,GAA6B,+JACvD8V,GAAOwgC,YAAc,SAAUC,GAC3B,IAAIC,EAAUD,aAAqBzgC,GAASygC,EAAY,IAAIzgC,GAAOygC,GAC/DtgC,EAAYugC,EAAQx/C,eAAiB,GACzCif,EAAYA,GAAatW,GAAoBsW,IAAcA,EAC3D,IAAIE,EAAUqgC,EAAQt+B,aAAe,GACrC,SAAI/B,GAAWpW,GAAc7c,QAAQ+yB,EAAY,IAAME,IAAY,IAG5DpW,GAAc7c,QAAQ+yB,IAAc,GAE/CH,GAAO2gC,qBAAuB,SAAUC,GACpC,GAAIA,GAAkD,iBAAtBA,EAAgC,CAC5DA,EAAoBnB,GAA0BmB,EAAkB/8C,gBAAkB+8C,EAClF,IACI,OAAO,IAAI5gC,GAAO4gC,GACpB,MAAOrnD,OC/HjB,MAAMsnD,GAAgB,IAAIr0D,IACpBmM,GAAU,IAAInM,IACds0D,GAAe,IAAIt0D,IACnBk1B,GAAiB,IAAIrzB,IAC3B,IAAIozB,IAAe,EAEnB,MAAM5X,GAAsB,CAC3BC,GAAM,KACNC,GAAM,KACNC,GAAM,KACNjP,GAAM,MAKD4nB,GAAyBb,IAC1BL,KAKH7yB,QAAQC,KAAK,kCAAkCizB,kGAKhDL,IAAe,IAkDVs/B,GAAgB,CAACj/B,EAAUvnB,KAChCsmD,GAAc3zD,IAAI40B,EAAUvnB,IA8BvBymD,GAAY7wD,MAAOqG,EAAU2rB,EAAQE,KAC1C,MAAMP,EA/EY,EAACtrB,EAAU2rB,EAAQE,KAIpB,QAFjB7rB,EAAYA,GAAYqT,GAAoBrT,IAAcA,KAGzDA,EAAW,MAGK,OAAbA,GAAsB2rB,IACV,SAAXE,EACHF,EAAS,KACY,SAAXE,IACVF,EAAS,OAKX,IAAIL,EAAW,GAAGtrB,KAAY2rB,IAC9B,OAAIjsB,EAAkBlJ,SAAS80B,GAC1BnpB,GAAQpJ,IAAIuyB,GAERA,GAIRa,GAAuBb,GAChB7rB,IAIR6rB,EAAWtrB,EACPN,EAAkBlJ,SAAS80B,GAC1BnpB,GAAQpJ,IAAIuyB,GAERA,GAIRa,GAAuBb,GAChB7rB,GAIDA,IAoCUgrD,CAAWzqD,EAAU2rB,EAAQE,GAGxChqB,EAAiBnE,EAAW,kBAClC,GAAImE,EAAgB,CACnB,MAAM6oD,EAAc7oD,EAAeoJ,sBACnC,GAAIy/C,EAGH,YADAH,GAAcj/B,EAAUo/B,GAM1B,IACC,MAAMA,OA3Bcp/B,CAAAA,IACrB,MAAMq/B,EAAWxoD,GAAQ9L,IAAIi1B,GAM7B,OAJKg/B,GAAaj0D,IAAIi1B,IACrBg/B,GAAa5zD,IAAI40B,EAAUq/B,EAASr/B,IAG9Bg/B,GAAaj0D,IAAIi1B,IAoBGs/B,CAAct/B,GACxCi/B,GAAcj/B,EAAUo/B,GACvB,MAAO3nD,GACHmoB,GAAenyB,IAAIgK,EAAEC,WACzBkoB,GAAehzB,IAAI6K,EAAEC,SACrB5K,QAAQ0K,MAAMC,EAAEC,YAKb6nD,GAA2B,CAACv/B,EAAU7oB,KAC3CN,GAAQzL,IAAI40B,EAAU7oB,IAIvBooD,GAAyB,KAAMlxD,MAAAA,UAChBmxD,MAAM,kEAAkEC,QAKvFn4C,GAAqB,KACpB,MAAMmY,EAAShgB,KACf,OAAOy/C,GAAUz/B,EAAOrgB,cAAeqgB,EAAOa,YAAab,EAAOs9B,eCrJnE,MAUM2C,GAVeC,IACpB,MAAMC,EAAeD,EAAW5lD,MAAM,oCACtC,IAAK6lD,EACJ,MAAM,IAAI7xD,MAAM,mBAAmB4xD,MAIpC,MD6EqB3/B,CAAAA,IAEhBnpB,GAAQpJ,IAAIuyB,KAChBA,EAAW7rB,GAGZ,MAAMsE,EAAUsmD,GAAch0D,IAAIi1B,GAClC,IAAKvnB,EACJ,MAAM,IAAI1K,MAAM,wBAAwBiyB,oBAGzC,OAAOvnB,GCxFAonD,CADUD,EAAa,KCD/B,IAAI5gD,GAAai9C,GAAWrD,OAAO,yBAA0B,CACzDppD,YAAa,SAAUovD,GACnBp0D,KAAKo0D,QAAUA,EACf3C,GAAWpoD,MAAMrJ,MACjBA,KAAKs1D,MAgoCb,SAAiBlB,GACb,IAAuHkB,EAAnHzhC,EAAYugC,EAAQx/C,eAAiB,GAAIkf,EAAUsgC,EAAQ7B,aAAe,GAAIx+B,EAAUqgC,EAAQt+B,aAAe,GAoBnH,SAASy/B,EAAUC,GACf,KAAKC,GAAaD,IAAUE,KAAoD,IAA7BA,GAAoBF,IAAgB,CACnF,IAAIt0D,EAAOu0D,GAAaD,GAAON,GAA8B,oBAAsBM,EAAM,QAAS,CAC9FG,SAAU,OACVC,aAAa,IAEb10D,GAAQA,EAAK20D,oBAzBzB,SAAStqD,EAAMpD,EAAK2tD,GAChB,IAAIpuD,EAAMgD,EAAOqrD,EACjB,GAAKD,EAGL,IAAKpuD,KAAQouD,EACLA,EAAY/uD,eAAeW,KAC3BgD,EAAQvC,EAAIT,GACZquD,EAAgBD,EAAYpuD,QACdpD,IAAVoG,EACAvC,EAAIT,GAAQquD,EACK,OAAVrrD,SACAvC,EAAIT,GACa,iBAAVgD,GAA+C,iBAAlBqrD,GAC3CxqD,EAAMb,EAAOqrD,IAYjBxqD,CAAMrK,EAAMq0D,EAAUr0D,EAAK20D,0BACpB30D,EAAK20D,kBAGpB,OAAOJ,GAAaD,GAGN,QADlB3hC,EAAYA,GAAatW,GAAoBsW,IAAcA,KAEvDA,EAAY,MAEE,OAAdA,GAAuBE,IACP,SAAZD,EACAC,EAAU,KACS,SAAZD,IACPC,EAAU,QAGA,OAAdF,GAAoC,OAAdA,GAAkC,SAAZC,KAC5CD,EAAY,WAEhB,IAAI2hC,EAAM3hC,EAAY,IAAME,EACxBF,GAAaE,IACbuhC,EAAQC,EAAUC,KAEjBF,GAASzhC,IACVyhC,EAAQC,EAAU1hC,IAGtB,OADA4hC,GAAaD,GAAOF,GAASC,EAAU,MAChCE,GAAaD,GAxrCHQ,CAAQ5B,IAEzBh/C,KAAM,WACF,OAAOpV,KAAKi2D,SAASj2D,KAAKs1D,MAAOtsD,YAErCktD,WAAY,WACR,OAAOl2D,KAAKoV,KAAK/L,MAAMrJ,KAAMgJ,YAEjCitD,SAAU,SAAU1O,EAAS4O,GAEzB,IADA,IAAIC,EAAU7O,EACL7gD,EAAI,EAAGA,EAAIyvD,EAAen1D,aAEfsD,KADhB8xD,EAAUA,EAAQD,EAAezvD,KADMA,KAM3C,OAAO0vD,GAEXC,eAAgB,WACZ,OAAOr2D,KAAKoV,KAAK,gBAErBkhD,uBAAwB,WACpB,IACIC,EADAC,EAAax2D,KAAKy2D,eAElB5iC,EAAY7zB,KAAKo0D,QAAQrB,oBACzBj/B,EAAU9zB,KAAKo0D,QAAQ7B,YAc3B,MAbkB,OAAd1+B,GAAkC,SAAZC,IACtBD,EAAY,KACZC,EAAU,MAEV9zB,KAAKo0D,QAAQt+B,cACbygC,EAAmBC,EAAW3iC,EAAY,IAAM7zB,KAAKo0D,QAAQt+B,eAE5DygC,GAAoBziC,IACrByiC,EAAmBC,EAAW3iC,EAAY,IAAMC,IAE/CyiC,IACDA,EAAmBC,EAAW3iC,IAE3B0iC,GAEXE,aAAc,WACV,OAAOz2D,KAAKoV,KAAK,cAErBshD,WAAY,WACR,OAAO12D,KAAKoV,KAAK,YAErBuhD,eAAgB,WACZ,OAAO32D,KAAKoV,KAAK,gBAErBwhD,UAAW,SAAUC,EAAQC,GAEzB,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,SAAU,SAAUD,IAE7EG,oBAAqB,SAAUH,EAAQC,GAEnC,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,SAAU,cAAeD,IAElFI,QAAS,SAAUJ,EAAQC,GAEvB,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,GAA8B,SAAVA,EAAmB,oDACxF72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,OAAQ,SAAUD,IAE3EK,kBAAmB,SAAUL,EAAQC,GAEjC,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,GAA8B,SAAVA,EAAmB,qDACxF72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,OAAQ,cAAeD,IAEhFM,YAAa,SAAUN,EAAQC,GAE3B,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,WAAY,SAAUD,IAE/EO,sBAAuB,SAAUP,EAAQC,GAErC,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,WAAY,cAAeD,IAEpFQ,cAAe,SAAUR,EAAQC,GAE7B,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,aAAc,SAAUD,IAEjFS,wBAAyB,SAAUT,EAAQC,GAEvC,OADApJ,GAAiB,UAAVmJ,GAAgC,eAAVA,GAAqC,QAAVA,EAAkB,8CACnE72D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,aAAc,cAAeD,IAEtFU,eAAgB,SAAUC,EAAQV,GAE9B,OADApJ,GAAiB,SAAV8J,GAA+B,UAAVA,GAAgC,QAAVA,GAA8B,QAAVA,EAAkB,8CACjFx3D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,cAAeU,IAExEC,eAAgB,SAAUD,EAAQV,GAE9B,OADApJ,GAAiB,SAAV8J,GAA+B,UAAVA,GAAgC,QAAVA,GAA8B,QAAVA,EAAkB,8CACjFx3D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,cAAeU,IAExEE,mBAAoB,SAAUF,EAAQV,GAElC,OADApJ,GAAiB,SAAV8J,GAA+B,UAAVA,GAAgC,QAAVA,GAA8B,QAAVA,EAAkB,8CACjFx3D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmBU,IAE5EG,2BAA4B,SAAUC,EAAYC,EAAYf,GAC1DpJ,GAAqB,SAAdkK,GAAuC,UAAdA,GAAwC,QAAdA,GAAsC,QAAdA,EAAsB,8CACxGlK,GAAqB,SAAdmK,GAAuC,UAAdA,GAAwC,QAAdA,GAAsC,QAAdA,EAAsB,8CACxG,IAAIC,EAAmB93D,KAAK03D,mBAAmBE,EAAYd,GAAgBiB,EAAe/3D,KAAKu3D,eAAeK,EAAYd,GAAgBkB,EAAeh4D,KAAKy3D,eAAeI,EAAYf,GACzL,OAAOgB,EAAiBjoD,QAAQ,MAAOmoD,GAAcnoD,QAAQ,MAAOkoD,IAExEE,yBAA0B,SAAUC,EAAWpB,GAC3C,IAAIqB,EAAoBn4D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,oBACzF,OAAO92D,KAAKo4D,kBAAkBF,EAAWC,EAAmBrB,IAEhEuB,mBAAoB,SAAU7C,EAAKsB,GAC/B,IAA4GwB,EAAUC,EAAaC,EAAaC,EAAWC,EAAvJC,EAAmB34D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,mBACxF,OAAItB,IAEA+C,GADAD,EAAW9C,EAAIjvD,MAAM,MACE,GACvBiyD,EAAcF,EAAS,IACvBG,EAAYE,EAAiBJ,MAEzBG,EAAWD,EAAUD,KAEVE,EAIZC,EAAiBC,wBAE5BC,2BAA4B,SAAUH,EAAU5B,GAE5C,OADuB92D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,mBAAwD8B,uBACxH/oD,QAAQ,aAAc6oD,IAElDI,yBAA0B,SAAUZ,EAAWa,EAAejC,GAC1D,IAAIqB,EAAoBn4D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,mBACzF,OAAO92D,KAAKo4D,kBAAkBF,EAAWC,EAAmBrB,EAAeiC,IAE/EX,kBAAmB,SAAUF,EAAWC,EAAmBrB,EAAekC,GACtE,IAAIC,EAAUC,EAAWP,EAUzB,GATKK,EAEuB,iBAAVA,IACD,KAATA,GAAyB,KAATA,IAChBA,EAAQh5D,KAAKm5D,0BAEjBR,EAAmBR,EAAkBD,GACrCe,EAAWN,GAAoBA,EAAiBK,IANhDC,EAAWd,EAAkBD,GAQ7Be,EAAU,CACV,GAAwB,iBAAbA,EAKP,OAAOA,EAJPC,EAAYryD,OAAO6P,KAAKuiD,GAAU93D,KAAI,SAAUi4D,GAC5C,OAAOH,EAASG,MAS5B,OAHKF,IACDA,EAAYl5D,KAAKq5D,qBAAqBnB,EAAWC,EAAmBrB,EAAekC,IAEnFE,GAAkC,IAArBA,EAAUl4D,OAChBk4D,EAAU,GAEdA,GAEXG,qBAAsB,SAAUnB,EAAWC,EAAmBrB,EAAekC,GACzE,IAAoDE,EAAoF3wD,EAAQ+wD,EAA2BC,EAASC,EAAQd,EAAUe,EAAgBC,EAAaC,EAA0EC,EAAalzD,EAAtTmzD,EAAU75D,KAAK85D,qBAAqB5B,GAAuB6B,EAAa/5D,KAAKg6D,eAAeH,EAAS3B,EAAWC,GAA2H8B,EAAiB,4CAChQ,GAAIjB,EAAO,CACP,GAAqB,iBAAVA,GACPW,EAAaO,GAAalB,GAASkB,GAAalB,GAAOna,MAAQ,MAE3D+a,EAAcO,GAAkBR,GAAYriD,MAAQuiD,EAAQA,EAAQ74D,OAAS,GAAGsW,OAEpFoiD,EAAcV,MACX,CAcH,IAbAY,GAAc,EACY,MAAtBC,EAAQ,GAAGO,QAAkBL,GAAcA,EAAWM,QAAQC,IAC9Df,EAAUW,GAAgB,EAC1BV,EAASW,GAAkBZ,EAAQ1a,OACnCgb,EAAQ94D,OAAO,EAAG,EAAG,CACjBq5D,OAAQ,IACRvb,MAAO0a,EAAQ1a,MACftvC,MAAOgqD,EAAQhqD,MACf+H,MAAOkiD,EAAOliD,MACdoqC,MAAO8X,EAAO9X,MACd1gD,OAAQ,KAGX0F,EAAImzD,EAAQ74D,OAAS,EAAG0F,GAAK,EAAGA,IAEjC,GAAIsyD,GADJzwD,EAASsxD,EAAQnzD,IACAm4C,OAAQ,CACrB+a,GAAc,EACd,MAGR,IAAKlzD,EAAI,EAAGA,EAAImzD,EAAQ74D,OAAQ0F,IAE5B,GAAIsyD,GADJzwD,EAASsxD,EAAQnzD,IACAm4C,OAAQ,CACrB6a,EAAcnxD,EAAO6xD,OACrB,MAGY,KAAfV,GAAqC,KAAfA,IAAuBV,EAAMuB,YACpDb,EAAc,KAGtB,GAAIE,EACA,MAAO,CAAC55D,KAAKi4D,yBAAyBC,EAAWpB,IAEjDiD,GAAkD,IAApCA,EAAWS,cAAcx5D,SACvC03D,EAAWqB,EAAWM,QAAQX,KACdK,EAAWU,SAAW,IAClC/B,EAAW14D,KAAK06D,cAAchC,EAAUqB,EAAWY,cAAed,IAGrEnB,IACDY,EAA4Bt5D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,oBACzFmD,EAAehvC,KAAKitC,IAAc,YAAYp3D,QAAQ44D,IAAgB,EACtEhB,EAAW14D,KAAK46D,uBAAuB1C,EAAWoB,EAA2BxC,EAAekC,IAE5FS,EAAiBz5D,KAAKo4D,kBAAkBF,EAAWoB,EAA2BxC,GAC9E4B,EAAW14D,KAAK64D,2BAA2BY,EAAgB3C,KAGnEoC,EAAY,CAACR,QACV,GAAKqB,EAGL,CACH,GAAkC,iBAAvBA,EAAWM,QAClBnB,EAAY,CAACa,EAAWM,cACrB,GAAkC,iBAAvBN,EAAWM,QAEzB,IAAK,IAAIjB,KADTF,EAAY,GACKa,EAAWM,QACxB3B,EAAWqB,EAAWM,QAAQjB,GAC9BF,EAAUv4D,KAAK+3D,GAGnBqB,EAAWU,SAAW,IAClBV,EAAWS,cAAcx5D,OAAS,EAC9Bi5D,EAAehvC,KAAKitC,GACpBgB,EAAY,CAACl5D,KAAK46D,uBAAuB1C,EAAWC,EAAmBrB,KAEvEoC,EAAYl5D,KAAK06D,cAAcxB,EAAWa,EAAWY,cAAed,GACpEX,EAAYl5D,KAAK66D,aAAa3B,EAAWa,EAAWS,cAAe1D,IAGvEoC,EAAYl5D,KAAK06D,cAAcxB,EAAWa,EAAWY,cAAed,SApB5EX,EAAY,CADZR,EAAWR,GA8Bf,OALIA,EAAUp3D,QAAQ,MAAQ,GAC1Bo4D,EAAUt3D,SAAQ,SAAU82D,EAAUoC,GAClC5B,EAAU4B,GAAUpC,EAAS7oD,QAAQ,oCAAqC,OAG3EqpD,GAEXY,qBAAsB,SAAU5B,GAE5B,IADA,IAA0C6C,EAASxB,EAASC,EAAxDK,EAAU,GAAItxD,EAAS,CAAE+O,OAAQ,GAC5B5Q,EAAI,EAAGA,EAAIwxD,EAAUl3D,OAAQ0F,IAKlC,GAHe,MADfq0D,EAAU7C,EAAUpoD,OAAOpJ,KACM,KAAXq0D,IAClBA,EAAU/6D,KAAKm5D,0BAEf4B,GAAWxyD,EAAO6xD,OAAtB,CAMA,GAFAb,EAAUW,GAAaa,GACvBvB,EAASW,GAAkBZ,EAAQ1a,OACd,SAAjB0a,EAAQ1a,OAAoB2a,EAAOwB,SACnC,MAAM,IAAIz3D,MAAM,WAAcw3D,EAAU,wCAA4C7C,EAAY,KAEpG,GAAIsB,EAAOliD,OAAS/O,EAAO+O,MACvB,MAAM,IAAI/T,MAAM,WAAcw3D,EAAU,wDAA4D7C,EAAY,KAEpH3vD,EAAS,CACL6xD,OAAQW,EACRlc,MAAO0a,EAAQ1a,MACftvC,MAAOgqD,EAAQhqD,MACf+H,MAAOkiD,EAAOliD,MACdoqC,MAAO8X,EAAO9X,MACd1gD,OAAQ,GAEZ64D,EAAQl5D,KAAK4H,QAnBTA,EAAOvH,SAqBf,OAAO64D,GAEXG,eAAgB,SAAUH,EAAS3B,EAAWC,GAC1C,IAAI8C,EAAaC,EAAgB3yD,EAAQ4yD,EAAYC,EAAOC,EAAWC,EAAQC,EAAeC,EAAcC,EAAkB1B,EAAa,CACnIU,SAAU,IACViB,cAAe,GAEvB,IAAK,IAAIC,KAAiBxD,EACtB,KAAsB,2BAAlBwD,GAA8CA,EAAc76D,QAAQ,MAAQ,IAGhFm6D,EAAcj7D,KAAK85D,qBAAqB6B,GACxCN,EAAY,EACZH,EAAiB,GACjBI,GAAS,EACLzB,EAAQ74D,OAASi6D,EAAYj6D,SAAjC,CAGAo6D,EAAQ,EACRG,EAAgB1B,EAAQ74D,OACxB,IAAK,IAAI0F,EAAI,EAAGA,EAAImzD,EAAQ74D,OAAQ0F,IAAK,CAMrC,GALA6B,EAASsxD,EAAQnzD,GACjBy0D,EAAaF,EAAYG,GACrBG,IAAkB1B,EAAQ74D,SAC1Bu6D,EAAgB70D,GAEhBy0D,EAAY,CAGZ,GAFAK,EAAetB,GAAa3xD,EAAO6xD,QACnCqB,EAAmBvB,GAAaiB,EAAWf,QACvC7xD,EAAO6xD,SAAWe,EAAWf,OAAQ,CACjC7xD,EAAOvH,SAAWm6D,EAAWn6D,OACzBu6D,IAAkB70D,IAClB60D,EAAgB1B,EAAQ74D,SAGxBuH,EAAOvH,OAASw6D,EAAaI,eAAiBT,EAAWn6D,OAASy6D,EAAiBG,eAAiBT,EAAWn6D,QAAUy6D,EAAiBG,gBAC1IP,GAAa7xC,KAAK+rB,IAAIhtC,EAAOvH,OAASm6D,EAAWn6D,QAEjDq6D,GAAa,EAGrBD,IACA,SAEA,GAAI7yD,EAAOgH,OAAS4rD,EAAW5rD,MAAO,CAClC8rD,GAAa7xC,KAAK+rB,IAAIhtC,EAAOvH,OAASm6D,EAAWn6D,QAAU,GAC3Do6D,IACA,UAIZF,EAAev6D,KAAK4H,GACpB8yD,GAAa,GAAK30D,EAElB00D,EAAQH,EAAYj6D,SACpBs6D,GAAS,GAETA,IAAWD,EAAYtB,EAAWU,UAAYY,IAActB,EAAWU,UAAYc,EAAgBxB,EAAW2B,gBAC9G3B,EAAWU,SAAWY,EACtBtB,EAAW2B,aAAeH,EAC1BxB,EAAWS,cAAgBU,EAC3BnB,EAAWM,QAAUlC,EAAkBwD,GACvC5B,EAAWY,cAAgBM,GAGnC,GAAIlB,EAAWM,QACX,OAAON,GAGfW,cAAe,SAAUzB,EAAU4C,EAAgBhC,GAC/C,IAAIiC,EAAqC,iBAAb7C,EAOxBrlC,GALAkoC,EACY,CAAC7C,GAEDA,GAEQ93D,KAAI,SAAUu3D,GAClC,IAAoFqD,EAAiBC,EAAgBC,EAAaC,EAAYC,EAAgBC,EAAY7C,EAAS8C,EAA/KC,EAAU,GAAIC,EAAiB,GAAIC,EAAiB,GAAIC,GAAU,EAAO/1D,EAAI,EAOjF,IANAmzD,EAAQj4D,SAAQ,SAAU2G,GACtB+zD,EAAQ/zD,EAAOs2C,OAASt2C,KAE5BszD,EAAej6D,SAAQ,SAAU2G,GAC7Bg0D,EAAeh0D,EAAOs2C,OAASt2C,KAE5B7B,EAAIgyD,EAAS13D,QAAQ,CAExB,GADAq7D,EAAQ3D,EAAS5oD,OAAOpJ,GACpB+1D,EACAD,GAAkBH,EACL,KAATA,IACAI,GAAU,QAId,IADAlD,EAAUW,GAAamC,KACRC,EAAQ/C,EAAQ1a,QAAU0d,EAAehD,EAAQ1a,OAAQ,CAMpE,IALAsd,EAAiBG,EAAQ/C,EAAQ1a,OACjCud,EAAaG,EAAehD,EAAQ1a,OACpCkd,EAAkBI,EAAen7D,OACjCi7D,EAAcG,EAAWp7D,OACzBg7D,EAAiB,EACVtD,EAAS5oD,OAAOpJ,EAAI,IAAM21D,GAC7B31D,IACAs1D,IAGAE,EADAH,IAAoBE,IAAgBF,EAAkBxC,EAAQqC,eAAiBI,GAAkBzC,EAAQqC,eAAiBI,EAAiBzC,EAAQqC,gBACtII,EAEAxyC,KAAKuf,IAAIizB,EAAgBD,GAE1C,IAAK,IAAIxtC,EAAI,EAAGA,EAAI2tC,EAAY3tC,IAC5BiuC,GAAkBH,OAGtBG,GAAkBH,EACL,KAATA,IACAI,GAAU,GAItB/1D,IAEJ,OAAO81D,KAEX,OAAOV,EAAiBloC,EAAQ,GAAKA,GAEzCinC,aAAc,SAAU3B,EAAWgC,EAAgBpE,GAC/C,IAAI4F,EAAe18D,KAAKoV,KAAK2hD,GAAoBD,GAAgB,kBAAmB,eAapF,OAZAoC,EAAUt3D,QAAQ,SAAU82D,EAAUoC,GAClC,IAAI6B,EAAcC,EAAgBC,EAClC3B,EAAet5D,QAAQ,SAAU2G,GAC7Bq0D,EAAiBF,EAAan0D,EAAOs2C,OACrC8d,EAAe,IAAO38D,KAAK88D,eAAev0D,EAAOm5C,OAAS,IAC1Dmb,EAAe,GACf,IAAK,IAAIn2D,EAAI,EAAGA,EAAI6B,EAAOvH,OAAQ0F,IAC/Bm2D,GAAgBt0D,EAAO6xD,OAE3BlB,EAAU4B,GAAU8B,EAAe/sD,QAAQ,QAAS6oD,GAAU7oD,QAAQ,QAASgtD,GAAchtD,QAAQ,QAAS8sD,IAChHr6C,KAAKtiB,QACTsiB,KAAKtiB,OACAk5D,GAEX0B,uBAAwB,SAAU1C,EAAWC,EAAmBrB,EAAekC,GAC3E,IAA0I5C,EAAS2G,EAAeC,EAAexF,EAAQO,EAAcC,EAmBvM,OAjBA+E,GADA3G,EADqB,4CACIzmD,KAAKuoD,IACN,GACxB8E,EAAgB5G,EAAQ,GACxB2B,EAAe/3D,KAAKo4D,kBAAkB2E,EAAe5E,EAAmBrB,GAEpEkB,EADAgB,EACeh5D,KAAK84D,yBAAyBkE,EAAehE,EAAOlC,GAEpD92D,KAAKo4D,kBAAkB4E,EAAe7E,EAAmBrB,GAGxEU,EAX2E,YAUhEvsC,KAAK8xC,GAV6G,QAW3G9xC,KAAK8xC,GAAiB,OAAS,OAXsD,UAYnF9xC,KAAK8xC,GAChB,SAEA,QAEM/8D,KAAK03D,mBAAmBF,EAAQV,GACjBjnD,QAAQ,QAASkoD,GAAcloD,QAAQ,QAASmoD,IAGtFiF,gBAAiB,SAAUC,GAEvB,OADAxP,GAAgB,WAATwP,GAA+B,SAATA,GAA6B,YAATA,GAAgC,aAATA,GAAiC,eAATA,EAAwB,oEACjHl9D,KAAKoV,KAAK,gBAAkB8nD,IAEvCC,wBAAyB,SAAUD,GAE/B,OADAxP,GAAgB,YAATwP,GAAgC,aAATA,EAAsB,uCAC7Cl9D,KAAKoV,KAAK,wBAAwB8nD,IAE7CE,kBAAmB,WACf,OAAOp9D,KAAKoV,KAAK,iBAAiBioD,UAEtCC,mBAAoB,SAAUC,GAC1B,OAAOv9D,KAAKoV,KAAK,kBAAkBmoD,IAAav9D,KAAKoV,KAAK,kBAAkBioD,UAEhFG,mBAAoB,SAAUC,GAC1B,OAAOz9D,KAAKoV,KAAK,iBAAkB,kBAAiC,UAAdqoD,EAAwB,gBAAkB,mBAEpGC,kBAAmB,WACf,OAAO19D,KAAKoV,KAAK,iBAAiBioD,UAEtCM,eAAgB,SAAUlW,GAEtB,OADAiG,GAAgB,iBAATjG,GAAqC,WAATA,GAA+B,UAATA,GAA8B,SAATA,EAAkB,yDACzFznD,KAAKoV,KAAK,eAAeqyC,IAEpCmW,0BAA2B,WACvB,OAAO59D,KAAKoV,KAAK,qBAErBF,kBAAmB,WACf,OAAOlV,KAAKoV,KAAK,sBAErByoD,gBAAiB,WACb,OAAO79D,KAAKoV,KAAK,0BAErB0oD,cAAe,WACX,OAAO99D,KAAKoV,KAAK,wBAErB2oD,uBAAwB,WACpB,IAAIC,EAAoBh+D,KAAKoV,KAAK,aAAe,GAAI6oD,EAAuB,GAI5E,OAHAp3D,OAAO6P,KAAKsnD,GAAmBp8D,SAAQ,SAAUs8D,GAC7CD,EAAqBC,GAAgBA,KAElCD,GAEXE,kBAAmB,SAAUC,GACzB,IAAIJ,EAAoBh+D,KAAKoV,KAAK,YAClC,GAAI4oD,EAAmB,CACnB,GAAIA,EAAkBI,IAAcJ,EAAkBI,GAAWr3D,eAAe,UAC5E,OAAOi3D,EAAkBI,GAAWC,OACjC,GAAIL,EAA2B,SAAKA,EAA2B,QAAEj3D,eAAe,UACnF,OAAOi3D,EAA2B,QAAEK,OAG5C,IAAIC,EAAUt+D,KAAKoV,KAAK,iBAAkBgpD,GAO1C,OANe,MAAXE,GAEe,OADfA,EAAUt+D,KAAKoV,KAAK,iBAAkB,cAElCkpD,EAAU,GAGXA,GAEXC,kBAAmB,SAAUH,GACzB,IAAII,EAAmBx+D,KAAKy+D,qBAC5B,OAAOD,GAAoBA,EAAiBJ,IAAcA,GAE9DM,wBAAyB,SAAUC,GAC/B,IAAqDC,EAAjDJ,EAAmBx+D,KAAKoV,KAAK,mBACjC,IAAKwpD,KAAiBJ,EAClB,GAAIA,EAAiBI,KAAmBD,EACpC,OAAOC,EAGf,OAAOD,GAEXF,mBAAoB,WAChB,IAA4EI,EAAxEb,EAAoBh+D,KAAKoV,KAAK,YAAa0pD,EAAyB,GACxE,IAAK,IAAIZ,KAAgBF,EACrBa,EAAWb,EAAkBE,GAAca,QACvCf,EAAkBE,GAAc9D,OAChC0E,EAAuBZ,GAAgBF,EAAkBE,GAAc9D,OAChEyE,IACPC,EAAuBZ,GAAgBl+D,KAAKoV,KAAK,mBAAmBypD,IAG5E,OAAOh4D,OAAO0tC,OAAO,GAAIv0C,KAAKoV,KAAK,mBAAoB0pD,IAE3DE,mBAAoB,SAAUC,GAC1B,IAAIC,EAAcl/D,KAAKm/D,cAAcF,GACrC,OAAOC,GAAeA,EAAyB,aAAK,IAExDE,oBAAqB,SAAUC,EAAS7H,QACrBlzD,IAAXkzD,IACAA,EAAS,QAEb9J,GAAkB,SAAX8J,GAAgC,UAAXA,GAAiC,WAAXA,EAAqB,qEACvE,IAAoE8H,EAAQC,EAAYC,EAAQC,EAA5FvG,EAAY,GAAIwG,EAAoB1/D,KAAK2/D,sBAmC7C,OAlCKN,IACDA,EAAU,CACN,OACA,QACA,OACA,MACA,OACA,SACA,WAGRA,EAAQz9D,QAAQ,SAAUg+D,GAEtB,IAAK,IAAIC,KADTP,EAASt/D,KAAKoV,KAAK,aAAcwqD,EAAS,IAAMpI,GAEH,IAArCqI,EAAO/+D,QAAQ,mBACf0+D,EAASpoC,SAASyoC,EAAOC,OAAO,KAChC5G,EAAUv4D,KAAK,CACXo/D,MAAOH,EACPl1D,MAAO80D,EACPnF,QAASiF,EAAOO,MAE2B,GAAxCA,EAAO/+D,QAAQ,wBACtBy+D,EAAaD,EAAOO,GACpBJ,EAA8B,SAAtBI,EAAOC,OAAO,KAAkB,EAAI,EAC5CJ,EAAkB99D,SAAQ,SAAUw3D,GAChCF,EAAUv4D,KAAK,CACXo/D,MAAOH,EACPI,KAAMP,EACNpF,QAASkF,EAAW,6BAA+BnG,UAKrE92C,KAAKtiB,OACAk5D,GAEX+G,mBAAoB,SAAUL,EAAQM,EAAOC,EAAS3I,GAClD,IAAIkB,EAAkBU,EAqBtB,MApBuB,iBAAZ+G,IACP3I,EAAS2I,EACTA,OAAU77D,QAEEA,IAAZ67D,IACAA,EAAUD,EAAQ,QAEP57D,IAAXkzD,IACAA,EAAS,QAEb9J,GAAkB,SAAX8J,GAAgC,UAAXA,GAAiC,WAAXA,EAAqB,qEACvE4B,EAAOwG,EAAS,IAAMpI,EACR,IAAV0I,IAA0B,IAAXA,GAA0B,IAAVA,IAC/BxH,EAAW14D,KAAKoV,KAAK,aAAcgkD,EAAM,iBAAmB8G,IAE3DxH,IAGDA,EAFS14D,KAAKoV,KAAK,aAAcgkD,EAAM,sBAAwB+G,EAAU,SAAW,SAElE,6BADAngE,KAAKogE,kBAAkB52C,KAAK+rB,IAAI2qB,GAAOn4D,cAGtD2wD,GAEX2H,kBAAmB,SAAUH,EAAO1I,GAChC,OAAOx3D,KAAKigE,mBAAmB,SAAUC,EAAO1I,IAEpD8I,kBAAmB,SAAUJ,EAAO1I,GAChC,OAAa,GAAT0I,EACO,KAEJlgE,KAAKigE,mBAAmB,SAAUC,EAAO1I,IAEpD+I,gBAAiB,SAAUL,EAAO1I,GAC9B,OAAa,GAAT0I,EACO,KAEJlgE,KAAKigE,mBAAmB,OAAQC,EAAO1I,IAElDgJ,eAAgB,SAAUN,EAAO1I,GAC7B,OAAOx3D,KAAKigE,mBAAmB,MAAOC,EAAO1I,IAEjDiJ,gBAAiB,SAAUP,EAAO1I,GAC9B,OAAOx3D,KAAKigE,mBAAmB,OAAQC,EAAO1I,IAElDkJ,iBAAkB,SAAUR,EAAO1I,GAC/B,OAAOx3D,KAAKigE,mBAAmB,QAASC,EAAO1I,IAEnDsF,eAAgB,SAAUI,EAAO1F,GAC7B9J,GAAgB,UAATwP,GAA8B,UAATA,GAA8B,QAATA,GAA4B,QAATA,GAA4B,OAATA,GAA2B,WAATA,GAA+B,QAATA,GAA4B,SAATA,GAA6B,WAATA,GAA+B,QAATA,GAA4B,OAATA,EAAgB,gGAChN54D,IAAXkzD,IACAA,EAAS,QAEb9J,GAAkB,SAAX8J,GAAgC,UAAXA,GAAiC,WAAXA,EAAqB,qEACvE,IAIO4B,GAA6C,IAJ5B,CAChB,MACA,UACA,QACwBt4D,QAAQo8D,GAAgBA,EAAQ,IAAM1F,EAAS0F,EAC/E,OAAOl9D,KAAKoV,KAAK,aAAcgkD,EAAM,gBAEzCuH,gBAAiB,SAAUT,EAAO1I,GAC9B,OAAOx3D,KAAKigE,mBAAmB,OAAQC,EAAO1I,IAElDoJ,iBAAkB,SAAUpJ,EAAQqJ,EAASC,GACzC,IAAIC,EACAC,EACJ,OAAQxJ,GACR,IAAK,OACDwJ,EAAWhhE,KAAKoV,KAAK,sBACrB,MACJ,QACI4rD,EAAWhhE,KAAKoV,KAAK,uBAGzB,GAAI4rD,EAAU,CACV,IAAIvZ,EAAQoZ,EAAU,IAAMC,GAC5BC,EAAUC,EAASvZ,MAGfsZ,EAAUC,EADVvZ,EAAQoZ,EAAU,WAI1B,OAAOE,GAEXE,kBAAmB,SAAUzJ,EAAQqJ,EAASC,GAC1C,IAAIC,EACAC,EAAWhhE,KAAKoV,KAAK,kBAAoBoiD,GAC7C,IAAKwJ,EAAU,CACX,GAAe,cAAXxJ,EACA,MAAM,IAAIj0D,MAAM,mEAEpBy9D,EAAWhhE,KAAKoV,KAAK,wBAEzB,GAAI4rD,EAAU,CACV,IAAIvZ,EAAQoZ,EAAU,IAAMC,GAC5BC,EAAUC,EAASvZ,MAGfsZ,EAAUC,EADVvZ,EAAQoZ,EAAU,WAI1B,OAAOE,GAEXG,cAAe,SAAUhE,EAAO1F,GAC5B,IAAIwJ,EAAWhhE,KAAKoV,KAAK,gBAAkB8nD,GAAS,YAAc,KAAO1F,GAAU,SACnF,OAAIwJ,GAGG,IAEXG,sBAAuB,SAAUlC,GAE7B,OADAA,EAAQj/D,KAAKohE,mBAAmBnC,IAAUA,EACnCj/D,KAAKm/D,cAAcF,IAE9BE,cAAe,SAAUF,GACrB,OAAOj/D,KAAKoV,KAAK,QAAS,QAAS6pD,IAEvCoC,eAAgB,WACZ,OAAOrhE,KAAKk2D,WAAW,QAAS,UAEpCkL,mBAAoB,SAAUE,GAC1B,OAAOthE,KAAKoV,KAAK,eAAgBksD,IAErCC,QAAS,SAAU1K,EAAQC,GACvBpJ,GAAiB,QAAVmJ,GAA8B,eAAVA,GAAqC,UAAVA,EAAoB,6CAC1E,IAAI2K,EAAQxhE,KAAKoV,KAAK2hD,GAAoBD,GAAgB,OAASD,GAAS4K,EAAQ,GACpF,IAAK,IAAI/6D,KAAK86D,EACVC,EAAMrqC,SAAS1wB,IAAM86D,EAAM96D,GAE/B,OAAO+6D,GAEXC,YAAa,SAAU5K,GACnB,IAAI6K,EAAY3hE,KAAKoV,KAAK,QAAU0hD,EAAcjsD,eAAgB+2D,EAAY,GAC9E,IAAK,IAAIl7D,KAAKi7D,EACVC,EAAUxqC,SAAS1wB,IAAMi7D,EAAUj7D,GAEvC,OAAOk7D,GAEXC,gBAAiB,SAAUrK,EAAQsK,GAC/BpU,GAAiB,QAAV8J,GAA8B,UAAVA,EAAoB,iCAC/C,IAA4F4B,EAAO,0BAA4B5B,EAC/H,OADqBxQ,GAAKC,yBAAyB,cAAejnD,KAAKo0D,QAAQrsD,YACzDg3B,QAAQq6B,EAAM0I,IAExCC,wBAAyB,WACrB,MAA2C,8BAApC/hE,KAAKoV,KAAK,uBAErB4sD,yBAA0B,WACtB,IAAmIC,EAAe/E,EAAOx2D,EAArJw7D,EAAsBliE,KAAKoV,KAAK,sBAAuB+sD,EAAaD,EAAsBA,EAAoB37D,MAAM,KAAO,GAC/H,IAAKG,EAAI,EAAGA,EAAIy7D,EAAWnhE,OAAQ0F,IAE/B,IAAKw2D,KADL+E,EAAgBE,EAAWz7D,GAAGH,MAAM,KAAK,GAC3B8/C,GACV,GAAI4b,IAAkB/E,EAAMryD,cACxB,OAAOqyD,EAInB,OAAO7W,GAAaL,WAExBmT,uBAAwB,WACpB,OAAOn5D,KAAKoV,KAAK,WAAY,eAEjCuqD,oBAAqB,WACjB,IAAIyC,EAAWpiE,KAAKoV,KAAK,WAAYitD,EAAcx7D,OAAO6P,KAAK0rD,GAE/D,OADAC,EAAY1hE,KAAK,SACV0hE,GAEXjC,kBAAmB,SAAUS,GACzB,IAAIuB,EAAWpiE,KAAKoV,KAAK,WAOzB,IAAK,IAAIktD,IANc,iBAAZzB,IACPA,EAAUA,EAAQ94D,YAEjB/H,KAAKuiE,cACNviE,KAAKuiE,YAAc,IAEDH,EAAU,CAC5B,IAAII,EAASxiE,KAAKuiE,YAAYD,GAK9B,GAJKE,IACDA,EAASxiE,KAAKyiE,iBAAiBL,EAASE,IACxCtiE,KAAKuiE,YAAYD,GAAaE,GAE9BA,EAAO3B,GACP,OAAOyB,EAGf,MAAO,SAEXG,iBAAkB,SAAUC,GACxB,IACW7I,EAD6J8I,EAAM,IAC1Kj8D,EAAI,EAER,SAASk8D,EAAOC,GACZ,OAAIhJ,EAAQnzD,KAAOm8D,IACfn8D,KACO,GAIf,SAASo8D,IACL,IAAID,EAAShJ,EAAQnzD,GAErB,OADAA,IACOm8D,EAXXhJ,EAAU6I,EAAMn8D,MAAM,KAkHtB,IAAIw8D,EArGJ,SAASC,IACL,IAAIC,EAAOF,EAEX,OADAE,EASJ,SAASC,IACL,IAAIC,EAAYF,EAEhB,GADAE,EASJ,WACI,IAAIC,EAAQC,EAAaC,EAEzB,GADAF,EAmBJ,WACI,IAAIG,EAEJ,GADAA,EASJ,WACI,GAAIX,EAtE4E,KAuE5E,OAAO,SAAUl5C,GACb,OAAOA,EAAE3X,GAEV,GAAI6wD,EA1EkF,KA2EzF,OAAO,SAAUl5C,GACb,OAAOA,EAAEhjB,GAEV,GAAIk8D,EA9E+F,KA+EtG,OAAO,SAAUl5C,GACb,OAAOA,EAAEW,GAEV,GAAIu4C,EAlF4G,KAmFnH,OAAO,SAAUl5C,GACb,OAAOA,EAAEP,GAEV,GAAIy5C,EAtFyH,KAuFhI,OAAO,SAAUl5C,GACb,OAAOA,EAAEU,GAEV,GAAIw4C,EA1FsI,KA2F7I,OAAO,SAAUl5C,GACb,OAAOA,EAAE2F,GAGb,MAAM,IAAI9rB,MAAM,oBAAsBu/D,KAnC9BU,GACRZ,EA7DmC,KA6DnB,CAChB,IAAIa,EAAWrsC,SAAS0rC,KACxB,OAAO,SAAUp5C,GACb,OAAO65C,EAAU75C,GAAK+5C,GAG9B,OAAOF,EA5BEG,GACLd,EAxCgD,KAyChDU,GAAM,MACH,CAAA,IAAIV,EA1CuD,MA6C9D,MAAM,IAAIr/D,MAAM,wBAFhB+/D,GAAM,EAKV,OADAD,EAmDJ,WACI,IAA0EM,EAAQC,EAAOC,EAArFC,EAAU,GAad,OAb+BhB,IAA+Bv8D,MAAMo8D,GAC7D/gE,SAAQ,SAAUmiE,GAErB,GAAsB,KADtBJ,EAASI,EAAMx9D,MArG2I,OAsG/IvF,OACP8iE,EAAQnjE,KAAKy2B,SAAS2sC,QACnB,CACHH,EAAQxsC,SAASusC,EAAO,IACxBE,EAAMzsC,SAASusC,EAAO,IACtB,IAAK,IAAIj9D,EAAIk9D,EAAOl9D,GAAKm9D,EAAKn9D,IAC1Bo9D,EAAQnjE,KAAK+F,OAIlB,SAAUgjB,GACb,OAAOo6C,GAlEGE,GACVV,EACO,SAAU55C,GACb,OAAO25C,EAAY35C,GAAG5oB,QAAQsiE,EAAO15C,KAAO,GAGzC,SAAUA,GACb,OAA8C,IAAvC25C,EAAY35C,GAAG5oB,QAAQsiE,EAAO15C,KA1BhCu6C,GACTrB,EA7BmB,OA+BnB,OADAK,EAAQC,IACD,SAAUx5C,GACb,OAAOy5C,EAAWz5C,IAAMu5C,EAAMv5C,IAGtC,OAAOy5C,EAlBCD,GACJN,EAlBI,OAmBJG,EAAOC,IACA,SAAUt5C,GACb,OAAOu5C,EAAMv5C,IAAMq5C,EAAKr5C,KAGzBu5C,EA4FAD,GACX,GAAIt8D,GAAKmzD,EAAQ74D,OACb,MAAM,IAAIuC,MAAM,yBAEpB,OAAO,SAAUwwD,GACb,IAAmCmQ,EAAUC,EAAWC,EAAkB16C,EAAtE26C,EAAUtQ,EAAOjzD,QAAQ,KAkB7B,OAjBiB,IAAbujE,GACAH,EAAWnQ,EACXoQ,EAAY,GACZC,EAAmB,KAEnBF,EAAWnQ,EAAO+L,OAAO,EAAGuE,GAE5BD,GADAD,EAAYpQ,EAAO+L,OAAOuE,EAAU,IACPx0D,QAAQ,MAAO,KAEhD6Z,EAAI,CACA3X,EAAG0mB,WAAWs7B,GACdrtD,EAAG0wB,SAAS8sC,GACZ95C,EAAG+5C,EAAUnjE,OACbquB,EAAG+0C,EAAiBpjE,OACpBqpB,EAAG+M,SAAS+sC,GACZh7C,EAAGiO,SAASgtC,IAETrB,EAAKr5C,OAIpBywC,GAAoB,CACpBmK,IAAO,CACH5iB,MAAO,MACPpqC,MAAO,GAEXitD,KAAQ,CACJ7iB,MAAO,OACPpqC,MAAO,GAEXktD,QAAW,CACP9iB,MAAO,UACPpqC,MAAO,GAEXmtD,MAAS,CACL/iB,MAAO,QACPpqC,MAAO,GAEXotD,KAAQ,CACJhjB,MAAO,OACPpqC,MAAO,GAEXqtD,cAAe,CACXjjB,MAAO,UACPpqC,MAAO,GAEXstD,IAAO,CACHljB,MAAO,MACPpqC,MAAO,GAEXijD,UAAa,CACT7Y,MAAO,OACPpqC,MAAO,EACP0jD,UAAU,GAEd6J,KAAQ,CACJnjB,MAAO,OACPpqC,MAAO,GAEXwtD,OAAU,CACNpjB,MAAO,SACPpqC,MAAO,GAEXytD,OAAU,CACNrjB,MAAO,SACPpqC,MAAO,IAEX0tD,SAAY,CACRtjB,MAAO,OACPpqC,MAAO,KAGX4iD,GAAe,CACfI,EAAK,CACDzb,MAAO,MACPtvC,MAAO,MACPqsD,eAAgB,GAEpBppD,EAAK,CACDqsC,MAAO,OACPtvC,MAAO,OACPqsD,eAAgB,KAEpBqJ,EAAK,CACDpmB,MAAO,OACPtvC,MAAO,OACPqsD,eAAgB,KAEpBsJ,EAAK,CACDrmB,MAAO,UACPtvC,MAAO,UACPqsD,eAAgB,GAEpBuJ,EAAK,CACDtmB,MAAO,UACPtvC,MAAO,UACPqsD,eAAgB,GAEpBjwC,EAAK,CACDkzB,MAAO,QACPtvC,MAAO,QACPqsD,eAAgB,GAEpBxtC,EAAK,CACDywB,MAAO,QACPtvC,MAAO,QACPqsD,eAAgB,GAEpBvsC,EAAK,CACDwvB,MAAO,OACPtvC,MAAO,OACPqsD,eAAgB,KAEpBjtC,EAAK,CACDkwB,MAAO,OACPtvC,MAAO,OACPqsD,eAAgB,KAEpB7xC,EAAK,CACD80B,MAAO,MACPtvC,MAAO,MACPqsD,eAAgB,KAEpBttC,EAAK,CACDuwB,MAAO,MACPtvC,MAAO,MACPqsD,eAAgB,KAEpBpvC,EAAK,CACDqyB,MAAO,cACPtvC,MAAO,cACPqsD,eAAgB,GAEpB3uD,EAAK,CACD4xC,MAAO,cACPtvC,MAAO,cACPqsD,eAAgB,GAEpBzxC,EAAK,CACD00B,MAAO,cACPtvC,MAAO,cACPqsD,eAAgB,GAEpBhyC,EAAK,CACDi1B,MAAO,OACPtvC,MAAO,SACPqsD,eAAgB,KAEpB/vC,EAAK,CACDgzB,MAAO,OACPtvC,MAAO,SACPqsD,eAAgB,KAEpBhwC,EAAK,CACDizB,MAAO,OACPtvC,MAAO,SACPqsD,eAAgB,KAEpBwJ,EAAK,CACDvmB,MAAO,OACPtvC,MAAO,SACPqsD,eAAgB,KAEpB3+C,EAAK,CACD4hC,MAAO,SACPtvC,MAAO,SACPqsD,eAAgB,KAEpBl6D,EAAK,CACDm9C,MAAO,SACPtvC,MAAO,SACPqsD,eAAgB,KAEpByJ,EAAK,CACDxmB,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpBhtC,EAAK,CACDiwB,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpBptC,EAAK,CACDqwB,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpBxxC,EAAK,CACDy0B,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpB3vC,EAAK,CACD4yB,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpB0J,EAAK,CACDzmB,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpBrpD,EAAK,CACDssC,MAAO,WACPtvC,MAAO,WACPqsD,eAAgB,GAEpB9vC,EAAK,CACD+yB,MAAO,QACP+c,eAAgB,KAEpB5xC,EAAK,CACD60B,MAAO,QACP+c,eAAgB,KAEpB2J,EAAK,CACD1mB,MAAO,QACP+c,eAAgB,GAEpB9xC,EAAK,CACD+0B,MAAO,QACP+c,eAAgB,KAEpBntC,EAAK,CACDowB,MAAO,QACP+c,eAAgB,KAEpBtxC,EAAK,CACDu0B,MAAO,QACP+c,eAAgB,KAEpBx3C,EAAK,CACDy6B,MAAO,YACP+c,eAAgB,GAEpBv3C,EAAK,CACDw6B,MAAO,QACP+c,eAAgB,GAEpBltC,EAAK,CACDmwB,MAAO,QACP+c,eAAgB,GAEpB/wC,EAAK,CACDg0B,MAAO,QACP+c,eAAgB,MAGpBr+C,GAAsB,CACtBC,GAAM,KACNC,GAAM,MAENi4C,GAAsB,WACtB,IAAgDhvD,EAA5C8+D,EAAU9xC,GAAOsgC,aAAc78C,EAAS,GAC5C,GAAIquD,EACA,IAAK9+D,EAAI,EAAGA,EAAI8+D,EAAQxkE,OAAQ0F,IAC5ByQ,EAAOquD,EAAQ9+D,KAAM,EAG7B,OAAOyQ,EAPe,GAStBs+C,GAAe,GACnB,SAASsB,GAAoBD,GAIzB,OAHKA,IACDA,EAAgB9P,GAAK/yC,mBAAmBa,mBAErC,MAAQgiD,EAAcjsD,cA4DjC,IAAI46D,GAAmBjxD,GAAW45C,OAAO,+BAAgC,CACrEppD,YAAa,SAAUovD,GACnB5/C,GAAWnL,MAAMrJ,KAAMgJ,WACvBhJ,KAAK0lE,YAAc1e,GAAK/yC,mBAAmB8yC,oBAAoBJ,uBAEnEvxC,KAAM,WACF,IAAmEgkD,EAA/DuM,EAAanlE,MAAMsG,UAAU0Q,MAAMnW,KAAK2H,WACR,GAAhC28D,EAAW,GAAG7kE,QAAQ,QACV6kE,EAAW,IACN5O,OACb4O,EAAaA,EAAWnuD,MAAM,IAGtC4hD,EAAOuM,EAAWnjE,KAAK,KACvB,IAAIolD,EAAS5nD,KAAK0lE,YAAYtM,GAO9B,OANc,MAAVxR,GAEc,OADdA,EAAS5nD,KAAKi2D,SAASj2D,KAAK0lE,YAAa18D,cAErC4+C,EAAS5nD,KAAKi2D,SAASj2D,KAAKs1D,MAAOtsD,YAGpC4+C,GAEXsO,WAAY,WACR,IAAIZ,EAAQt1D,KAAKi2D,SAASj2D,KAAKs1D,MAAOtsD,WAClC08D,EAAc1lE,KAAKi2D,SAASj2D,KAAK0lE,YAAa18D,WAClD,OAAOolD,GAAO,GAAIkH,EAAOoQ,MAGjClxD,GAAWQ,YAAc,SAAUo/C,GAC/B,OAAOA,EAAQvB,oBAAoB,WAAa,IAAI4S,GAAiBrR,GAAW,IAAI5/C,GAAW4/C,ICnuCnG,IAAIwR,GAAY,IAAI1lE,IAChB2lE,GACG,SAAU/O,GACb,IAAK8O,GAAU3iE,IAAI6zD,GACjB,MAAM,IAAIvzD,MAAM,2BAA6BuzD,EAAgB,gBAE/D,OAAO8O,GAAUrlE,IAAIu2D,IALrB+O,GAOG,SAAU/O,EAAegP,GAC5BF,GAAUhlE,IAAIk2D,EAAegP,ICL7BC,GAAgBtU,GAAWrD,OAAO,iCAAkC,CACpEppD,YAAa,WACT,IAAIghE,EAASD,GAAcnX,WAC3B,OAAO5uD,KAAKimE,WAAWD,EAAQh9D,cAGvC+8D,GAAcG,IAAM,WAChB,IAAIF,EAASD,GAAcnX,WAC3B,OAAOoX,EAAOE,IAAI78D,MAAM28D,EAAQh9D,YAEpC+8D,GAAc/d,IAAM,WAChB,OAAOG,KAAKH,OAEhB+d,GAAcj/D,UAAUm/D,WAAa,SAAUD,EAAQG,GACnD,OAAQA,EAAMnlE,QACd,KAAK,EACD,OAAO,IAAIglE,EACf,KAAK,EACD,OAAO,IAAIA,EAAOG,EAAM,aAAche,KAAOge,EAAM,GAAGC,UAAYD,EAAM,IAC5E,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,IACtC,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAChD,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAC1D,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IACpE,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAC9E,KAAK,EACD,OAAO,IAAIH,EAAOG,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,MAG5FJ,GAAc/wD,YAAc,SAAUqxD,EAAOvP,GACzC,IAAIkP,EAAQM,EAaZ,OAZID,aAAiBN,GACjBM,EAAQA,EAAME,YACNF,IACRA,EAAQ,IAAIle,MAEX2O,IACDA,EAAgB9P,GAAK/yC,mBAAmBa,mBAE5CkxD,EAASD,GAAcnX,SAASkI,IAChCwP,EAAYz/D,OAAO2B,OAAOw9D,EAAOl/D,YACvBu/D,MAAQA,EAClBC,EAAUxP,cAAgBA,EACnBwP,GAEXP,GAAcnX,SAAW,SAAUkI,GAI/B,OAHKA,IACDA,EAAgB9P,GAAK/yC,mBAAmBa,mBAErC+wD,GAAe/O,IAE1B,CACI,UACA,WACA,cACA,UACA,SACA,WACA,aACA,aACA,kBACA,aACA,cACA,iBACA,YACA,cACA,gBACA,gBACA,qBACA,UACA,UACA,oBACA,WACA,eACA,UACA,cACA,UACA,WACA,WACA,aACA,aACA,kBACA,aACA,iBACA,cACA,cACA,gBACA,gBACA,sBACFl1D,SAAQ,SAAU6lD,GAChBse,GAAcj/D,UAAU2gD,GAAS,WAC7B,OAAOznD,KAAKqmE,MAAM5e,GAAOp+C,MAAMrJ,KAAKqmE,MAAOr9D,eAGnD+8D,GAAcj/D,UAAUy/D,UAAY,WAChC,OAAOvmE,KAAKqmE,OAEhBN,GAAcj/D,UAAUgO,gBAAkB,WACtC,OAAO9U,KAAK82D,eAEhBiP,GAAcj/D,UAAU0/D,OAAS,WAC7B,OAAOT,GAAcU,aAAazmE,KAAK82D,cAAe92D,KAAKqmE,MAAMhb,cAAerrD,KAAKqmE,MAAM/a,WAAYtrD,KAAKqmE,MAAM9a,YAEtHwa,GAAcj/D,UAAU4/D,OAAS,SAAUC,KAE3CZ,GAAcj/D,UAAU8/D,UAAY,WAChC,OAAOb,GAAcU,aAAazmE,KAAK82D,cAAe92D,KAAKqmE,MAAMQ,iBAAkB7mE,KAAKqmE,MAAMS,cAAe9mE,KAAKqmE,MAAMU,eAE5HhB,GAAcj/D,UAAUkgE,UAAY,SAAUL,KAE9CZ,GAAcj/D,UAAUmgE,QAAU,WAC9B,OAAOlB,GAAcmB,cAAclnE,KAAK82D,cAAe92D,KAAKqrD,cAAerrD,KAAKsrD,WAAYtrD,KAAKurD,YAErGwa,GAAcj/D,UAAUqgE,QAAU,SAAUC,GACxC,IAAIf,EAAQN,GAAcsB,mBAAmBrnE,KAAK82D,cAAesQ,EAAME,MAAQtnE,KAAKqrD,cAAe+b,EAAMG,MACzGvnE,KAAKwnE,YAAYnB,EAAMiB,KAAMjB,EAAMoB,MAAOpB,EAAMqB,MAEpD3B,GAAcj/D,UAAU6gE,WAAa,WACjC,OAAO5B,GAAcmB,cAAclnE,KAAK82D,cAAe92D,KAAK6mE,iBAAkB7mE,KAAK8mE,cAAe9mE,KAAK+mE,eAE3GhB,GAAcj/D,UAAU8gE,WAAa,SAAUR,GAC3C,IAAIf,EAAQN,GAAcsB,mBAAmBrnE,KAAK82D,cAAesQ,EAAME,MAAQtnE,KAAKqrD,cAAe+b,EAAMG,MACzGvnE,KAAK6nE,eAAexB,EAAMiB,KAAMjB,EAAMoB,MAAOpB,EAAMqB,MAEvD3B,GAAcj/D,UAAUghE,WAAa,WACjC,OAAOt+C,KAAKkgC,MAAM1pD,KAAKsrD,WAAa,IAExCya,GAAcj/D,UAAUihE,cAAgB,WACpC,OAAOv+C,KAAKkgC,MAAM1pD,KAAK8mE,cAAgB,IAE3Cf,GAAcj/D,UAAUkhE,aAAe,WACnC,OAAIhoE,KAAKgrD,WAAa,GACX,EAEA,GAGf+a,GAAcj/D,UAAUmhE,gBAAkB,WACtC,OAAIjoE,KAAKkoE,cAAgB,GACd,EAEA,GAGfnC,GAAcj/D,UAAUqhE,iBAAmB,WACvC,GAAInoE,KAAKqmE,MAAM8B,iBACX,OAAOnoE,KAAKqmE,MAAM8B,oBAG1BpC,GAAcj/D,UAAUshE,gBAAkB,WACtC,GAAIpoE,KAAKqmE,MAAM+B,gBACX,OAAOpoE,KAAKqmE,MAAM+B,mBA2C1B,SAASC,GAAuBrC,EAAQsC,GAEpC,IADA,IAAIlU,EAAUpN,GAAK/yC,mBAAmB8yC,oBAAoBP,kBAAmB+hB,EAAc/zD,GAAWQ,YAAYo/C,GAAUoU,EAAWD,EAAY3K,4BAA6B6K,EAAkBF,EAAYrzD,oBAAqBwzD,EAAY,IAAI1C,EAAOA,EAAOE,IAAIoC,EAAO,EAAG,IAAKK,EAAY,EACzRD,EAAUE,cAAgBH,GAC7BC,EAAUG,WAAWH,EAAU3B,aAAe,GAC9C4B,IAKJ,OAHIA,EAAYH,GACZE,EAAUG,WAAWH,EAAU3B,aAAe,GAE3C2B,EAEX,SAASI,GAAeC,EAAWC,GAC/B,OAAOx/C,KAAKkgC,OAAOsf,EAAQC,UAAYF,EAAUE,WApD3B,QAC1BlD,GAAcmB,cAAgB,SAAUpQ,EAAewR,EAAOY,EAAQC,GAClE,IAA2QC,EAAOC,EAAWC,EAAWC,EAApSnV,EAAUpN,GAAK/yC,mBAAmB8yC,oBAAoBP,kBAAmB+hB,EAAc/zD,GAAWQ,YAAYo/C,GAAU4R,EAAShmE,KAAK4uD,SAASkI,GAAgB4R,EAAYL,GAAuBrC,EAAQsC,GAAQjC,EAAQ,IAAIL,EAAOA,EAAOE,IAAIoC,EAAOY,EAAQC,IAkBnQ,OAjBIZ,EAAYxG,0BACZqH,EAAQN,GAAeJ,EAAWrC,IAGlCiD,EAAYhB,EAAQ,EACpBiB,EAAgBlB,GAAuBrC,EAFvCqD,EAAYf,EAAQ,GAIhBjC,GADYgC,GAAuBrC,EAAQsD,IAE3ChB,EAAQgB,EACRF,EAAQ,GACD/C,EAAQqC,GACfJ,EAAQe,EACRD,EAAQN,GAAeS,EAAelD,IAEtC+C,EAAQN,GAAeJ,EAAWrC,IAGnC,CACHiB,KAAMgB,EACNf,KAAM6B,IAGdrD,GAAcsB,mBAAqB,SAAUvQ,EAAewR,EAAOc,GAC/D,IAAIhV,EAAUpN,GAAK/yC,mBAAmB8yC,oBAAoBP,kBAAmB+hB,EAAc/zD,GAAWQ,YAAYo/C,GAAU4R,EAAShmE,KAAK4uD,SAASkI,GAAgB4R,EAAYL,GAAuBrC,EAAQsC,GAAQjC,EAAQ,IAAIL,EAAO0C,EAAUO,UA1B7N,OA0ByOG,GAC/P,OAD2Sb,EAAYxG,2BAC1R,IAAVqH,GAAeV,EAAU7B,iBAAmByB,EACpD,CACHhB,KAAMgB,EACNb,MAAO,EACPC,IAAK,GAGN,CACHJ,KAAMjB,EAAMQ,iBACZY,MAAOpB,EAAMS,cACbY,IAAKrB,EAAMU,eAiBnB,IAAIyC,GAAQ,GA0BZ,SAASjI,GAAQzK,GACb,IAAI1C,EAAUpN,GAAK/yC,mBAAmB8yC,oBAAoBP,kBAAmB+hB,EAAc/zD,GAAWQ,YAAYo/C,GAClH,KAD4HqN,EAAQ+H,GAAM1S,IAC9H,CACR,IAAI2K,GAAAA,EAAQ8G,EAAY7G,YAAY5K,IACzB,KACP2K,EAAM,GAAK,CAAEgI,OAAQ,UAEzB,IAAK,IAAI/iE,EAAI,EAAGA,EAAI+6D,EAAMzgE,OAAQ0F,IAAK,CACnC,IAAIgjE,EAAOjI,EAAM/6D,GACZgjE,IAGDA,EAAKD,SACLC,EAAKC,WAAaC,GAAgBF,EAAKD,SAEvCC,EAAKG,OACLH,EAAKI,SAAWF,GAAgBF,EAAKG,QAG7CL,GAAM1S,GAAiB2K,EAE3B,OAAOA,EAEX,SAASmI,GAAgBG,GACrB,IAAqCzB,EAAOY,EAAQC,EAAhDa,EAASD,EAAYxjE,MAAM,KAU/B,MATiB,IAAbyjE,EAAO,IACP1B,GAASlxC,SAAS4yC,EAAO,IACzBd,EAAS9xC,SAAS4yC,EAAO,IAAM,EAC/Bb,EAAO/xC,SAAS4yC,EAAO,MAEvB1B,EAAQlxC,SAAS4yC,EAAO,IACxBd,EAAS9xC,SAAS4yC,EAAO,IAAM,EAC/Bb,EAAO/xC,SAAS4yC,EAAO,KAEpB,CACHxe,UAAW,IAAIrD,KAAK,GAAG0f,eAAeS,EAAOY,EAAQC,GACrD7B,KAAMgB,EACNb,MAAOyB,EACPxB,IAAKyB,GA/DbpD,GAAcU,aAAe,SAAU3P,EAAewR,EAAOY,EAAQC,GAEjE,IADA,IAAkGO,EAA9FjI,EAAQF,GAAQzK,GAAgBmT,EAAa,IAAI9hB,KAAK,GAAG0f,eAAeS,EAAOY,EAAQC,GAClFziE,EAAI+6D,EAAMzgE,OAAS,EAAG0F,GAAK,EAAGA,IAEnC,GADAgjE,EAAOjI,EAAM/6D,GACb,CAGA,GAAIgjE,EAAKD,QAAUQ,GAAcP,EAAKC,WAAWne,UAC7C,OAAO9kD,EAEX,GAAIgjE,EAAKG,MAAQI,EAAaP,EAAKI,SAASte,UACxC,OAAO9kD,IAInBq/D,GAAcmE,cAAgB,SAAUpT,GACpC,IAAIjM,EAAO,IAAI1C,KACf,OAAOnoD,KAAKymE,aAAa3P,EAAejM,EAAKQ,cAAeR,EAAKS,WAAYT,EAAKU,YAEtFwa,GAAcoE,gBAAkB,SAAUrT,EAAe6P,GACrD,IAAIlF,EAAQF,GAAQzK,GAAgB4S,EAAOjI,EAAMkF,IAASlF,EAAM,GAChE,GAAIiI,EAAKD,OACL,OAAOC,EAAKC,YC7OpB,MAAMS,GACLrqE,cACC,IACCsqE,EACAxf,EACAiM,EAHGqP,EAAQn9D,UAKZ,OAAQm9D,EAAMnlE,QACd,KAAK,EAEJ,OADA6pD,EAAO,IAAI1C,KACJnoD,KAAKgF,YAAY6lD,EAAKQ,cAAeR,EAAKS,WAAYT,EAAKU,WAEnE,KAAK,EACL,KAAK,EACJ,KAAM4a,EAAM,aAAciE,IACzB,MAAM,IAAI7mE,MAAM,+FAEjBuzD,EAAgBqP,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAGmE,QAAQxT,cAGvDuT,EAAU,IAAIliB,KAAKge,EAAM,GAAG8C,WAG5BoB,EAAQ7C,YAAY6C,EAAQxD,iBAAkBwD,EAAQvD,cAAeuD,EAAQtD,cAC7EsD,EAAQE,SAASF,EAAQnC,cAAemC,EAAQG,gBAAiBH,EAAQI,gBAAiBJ,EAAQK,sBAElG1qE,KAAKsqE,QAAUK,GAAuBN,EAASvT,GAC/C,MAED,KAAK,EACL,KAAK,EACJ8T,GAAiBzE,EAAM,GAAI,iBAAiBA,EAAM,MAClDyE,GAAiBzE,EAAM,GAAI,kBAAkBA,EAAM,MACnDyE,GAAiBzE,EAAM,GAAI,iBAAiBA,EAAM,MAElDkE,EAAU,IAAIliB,KAAK,EAAG,EAAG,GACzBkiB,EAAQ7C,YAAYrB,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAE1CA,EAAM,KACTrP,EAAgBqP,EAAM,IAEvBnmE,KAAKsqE,QAAUK,GAAuBN,EAASvT,GAC/C,MAED,QACC,MAAM,IAAIvzD,MAAM,sIACwC4iE,MAI1DpmE,UACC,OAAOC,KAAKsqE,QAAQzD,iBAGrB9mE,QAAQunE,GAGP,OAFAsD,GAAiBtD,EAAM,iBAAiBA,KACxCtnE,KAAKsqE,QAAQzC,eAAeP,GACrBtnE,KAGRD,WACC,OAAOC,KAAKsqE,QAAQxD,cAkBrB/mE,SAAS0nE,EAAOrc,GAQf,OAPAwf,GAAiBnD,EAAO,kBAAkBA,KACtCrc,GAAiB,IAATA,GACXwf,GAAiBxf,EAAM,iBAAiBA,KACxCprD,KAAKsqE,QAAQO,YAAYpD,EAAOrc,IAEhCprD,KAAKsqE,QAAQO,YAAYpD,GAEnBznE,KAGRD,UACC,OAAOC,KAAKsqE,QAAQvD,aAGrBhnE,QAAQqrD,GAGP,OAFAwf,GAAiBxf,EAAM,iBAAiBA,KACxCprD,KAAKsqE,QAAQzB,WAAWzd,GACjBprD,KAGRD,SACC,OAAOC,KAAKsqE,QAAQ1B,YAGrB7oE,kBACC,OAAOC,KAAKsqE,QAAQxT,cAGrB/2D,SAAS+qE,GAER,OADAC,GAAkBD,GACX9qE,KAAKipE,UAAY6B,EAAc7B,UAGvClpE,QAAQ+qE,GAEP,OADAC,GAAkBD,GACX9qE,KAAKipE,UAAY6B,EAAc7B,UAGvClpE,eAAe+qE,GAEd,OADAC,GAAkBD,GACX9qE,KAAKipE,WAAa6B,EAAc7B,UAGxClpE,cAAc+qE,GAEb,OADAC,GAAkBD,GACX9qE,KAAKipE,WAAa6B,EAAc7B,UAGxClpE,OAAO+qE,GAEN,OADAC,GAAkBD,GACX9qE,KAAKipE,YAAc6B,EAAc7B,UAGzClpE,gBAGC,MAAMirE,EAAa,IAAI7iB,KAAKnoD,KAAKsqE,QAAQlE,WAMzC,OAHA4E,EAAWxD,YAAYwD,EAAWnE,iBAAkBmE,EAAWlE,cAAekE,EAAWjE,cACzFiE,EAAWT,SAAS,EAAG,EAAG,EAAG,GAEtBS,EAGRjrE,cAGC,MAAMkrE,EAAW,IAAI9iB,KAAKnoD,KAAKsqE,QAAQlE,WAGvC,OAFA6E,EAASC,YAAY,EAAG,EAAG,EAAG,GAEvBD,EAGRlrE,WACC,MAAO,GAAGC,KAAKsqE,QAAQxT,kBAAkB92D,KAAKmrE,aAAanrE,KAAKsrD,WAAa,KAAKtrD,KAAKurD,YAGxFxrD,UACC,OAAOC,KAAKsqE,QAAQlE,UAGrBrmE,uBAAuBsqE,EAASvT,GAO/B,KAHqB1L,EAGJif,IAFwC,kBAAzCxjE,OAAOC,UAAUiB,SAAS1G,KAAK+pD,IAA8B9B,MAAM8B,GAGlF,MAAM,IAAI7nD,MAAM,qDAAqD8mE,OAJtE,IAAqBjf,EAMrB,OAAO,IAAIgf,GAAaC,EAAQhf,cAAegf,EAAQ/e,WAAY+e,EAAQ9e,UAAWuL,GAGvF/2D,qBAAqBkqE,EAAYnT,GAChC,MAAMsU,EAAW,IAAIhB,GAAa,EAAG,EAAG,GAExC,OADAgB,EAASd,QAAUvE,GAAc/wD,YAAY,IAAImzC,KAAK8hB,GAAanT,GAC5DsU,GAIT,SAAST,GAAuBtE,EAAOvP,GACtC,OAAIA,EACIiP,GAAc/wD,YAAYq2D,GAAchF,GAAQvP,GAEjD,IAAIiP,GAAcsF,GAAchF,GAAOD,WAQ/C,SAASiF,GAAchF,GACtB,MAAM4E,EAAW,IAAI9iB,KAAKA,KAAK+d,IAAI,EAAG,EAAG,IAIzC,OAFA+E,EAASpD,eAAexB,EAAMhb,cAAegb,EAAM/a,WAAY+a,EAAM9a,WAE9D0f,EAGR,SAASF,GAAkBD,GAC1B,KAAMA,aAAyBV,IAC9B,MAAM,IAAI7mE,MAAM,2BAA2BunE,sDAU7C,SAASF,GAAiBlgE,EAAOwC,GAChC,QAAc5I,IAAVoG,GAAuBA,IAAU4gE,EAAAA,GAAYhiB,MAAM5+C,GACtD,MAAMwC,EC9MR,MAAMq+D,GAAe,CAACngB,EAAMogB,EAAQC,EAAMC,EAAU,KAAMC,EAAU,QACnE,MAAMC,EAAU,IAAIxB,GAAahf,GACjC,GAAa,QAATqgB,EACHG,EAAQC,QAAQzgB,EAAKG,UAAYigB,QAC3B,GAAa,UAATC,EAAkB,CAC5BG,EAAQE,SAAS1gB,EAAKE,WAAakgB,GACnC,MAAMO,GAA6B,IAAZP,GAAiBI,EAAQtgB,aAAeF,EAAKE,WAC9D0gB,EAA0B,IAAXR,GAAgBI,EAAQtgB,WAAaF,EAAKE,WAAa,GACxEygB,GAAkBC,IACrBJ,EAAQC,QAAQ,QAGjBD,EAAQK,QAAQ7gB,EAAK+f,UAAYK,GAC7BI,EAAQtgB,aAAeF,EAAKE,YAC/BsgB,EAAQC,QAAQ,GAIlB,OAAIH,GAAWE,EAAQ3C,UAAYyC,EAAQzC,UACnC,IAAImB,GAAasB,GAGrBC,GAAWC,EAAQ3C,UAAY0C,EAAQ1C,UACnC,IAAImB,GAAauB,GAGlBC,GChCFM,GAAuBC,GAAuB/B,GAAagC,gBAAgB,IAAIjkB,KAAQgkB,GAAqBlD,UAAY,ICHxH/sC,GAAW,+lBAKjBD,GANa,gBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,ofAKjBD,GANa,gBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,eCFzB,IAAIs7D,GAAU,SAAUjoD,EAAGC,EAAGioD,EAAUr/B,EAAUs/B,GAW9C,GAVuB,kBAAZD,IACPr/B,EAAWq/B,EACXA,OAAWhoE,GAEVioE,IACDA,EAAQ,GAEPD,IACDA,EAAW,IAEXC,EAAQD,EAER,OADAlkB,GAAIiE,QAAQ,4DAA8DigB,EAAW,iCAC9E,EAEX,GAAIloD,IAAMC,GAAKgjB,OAAOiiB,MAAMllC,IAAMijB,OAAOiiB,MAAMjlC,GAC3C,OAAO,EAEX,GAAI7jB,MAAMC,QAAQ2jB,IAAM5jB,MAAMC,QAAQ4jB,GAAI,CACtC,IAAK4oB,GAAY7oB,EAAEpjB,SAAWqjB,EAAErjB,OAC5B,OAAO,EAEX,GAAIojB,EAAEpjB,OAASqjB,EAAErjB,OACb,OAAO,EAEX,IAAK,IAAI0F,EAAI,EAAGA,EAAI0d,EAAEpjB,OAAQ0F,IAC1B,IAAK2lE,GAAQjoD,EAAE1d,GAAI2d,EAAE3d,GAAI4lE,EAAUr/B,EAAUs/B,EAAQ,GACjD,OAAO,EAGf,OAAO,EAEX,GAAgB,iBAALnoD,GAA6B,iBAALC,EAAe,CAC9C,IAAKD,IAAMC,EACP,OAAO,EAEX,GAAID,EAAEpf,cAAgBqf,EAAErf,YACpB,OAAO,EAEX,IAAKioC,GAAYpmC,OAAO6P,KAAK0N,GAAGpjB,SAAW6F,OAAO6P,KAAK2N,GAAGrjB,OACtD,OAAO,EAEX,GAAIojB,aAAalK,KACb,OAAOkK,EAAEooD,YAAYnoD,GAEzB,GAAID,aAAa+jC,KACb,OAAO/jC,EAAE6kD,YAAc5kD,EAAE4kD,UAE7B,IAAK,IAAIviE,KAAK0d,EACV,IAAKioD,GAAQjoD,EAAE1d,GAAI2d,EAAE3d,GAAI4lE,EAAUr/B,EAAUs/B,EAAQ,GACjD,OAAO,EAGf,OAAO,EAEX,OAAO,GCvDPE,GAAiB,qECQjBC,GAAa,WACb,MAAM,IAAInpE,OAEVopE,GAAmB,GACvBD,GAAWE,UAAY,CACnBC,sBAAuB,CACnBhgE,MAAO,SACPigE,cAAe,MACfC,cAAe,QAEnBC,uBAAwB,CACpB,CAAEngE,MAAO,SACT,CAAEA,MAAO,UACT,CAAEwtD,QAAS,cACX,CACIA,QAAS,WACT4S,eAAe,IAGvBC,6BAA6B,EAC7BC,kCAAkC,EAClCC,WAAY,SAAU7E,EAAa/Q,EAAQV,GACvC,OAAOyR,EAAYhR,eAAeC,EAAQV,IAE9CuW,eAAgB,CACZ7nC,MAAQ,EACR8hC,MAAQ,EACRgG,UAAY,EACZ7F,OAAS,EACTC,KAAO,GAEX6F,gBAAiB,CACb,OACA,QACA,OACA,OAEJC,qBAAsB,CAClB,OACA,UACA,QACA,OACA,MACA,OACA,SACA,UAEJC,uBAAwB,CACpB,MACA,WACA,UACA,QACA,OACA,SAGRf,GAAWgB,cAAgB,CACvBb,sBAAuB,CACnBhgE,MAAO,SACPigE,cAAe,OACfC,cAAe,QAEnBC,uBAAwB,CACpB,CAAEngE,MAAO,SACT,CAAEA,MAAO,UACT,CAAEwtD,QAAS,yBACX,CAAEA,QAAS,oBAEf+S,WAAY,SAAU7E,EAAa/Q,EAAQV,GACvC,IAAI6W,EAAcnW,EAAO12D,QAAQ,KACjC,OAAI6sE,EAAc,EACPpF,EAAY5Q,2BAA2BH,EAAOsI,OAAO,EAAG6N,GAAcnW,EAAOsI,OAAO6N,EAAc,GAAI7W,GAEtGyR,EAAY5Q,2BAA2BH,EAAQA,EAAQV,IAGtEuW,eAAgB,CACZ7nC,MAAQ,EACR8hC,MAAQ,EACRgG,UAAY,EACZ7F,OAAS,EACTC,KAAO,EACPkG,UAAY,EACZC,UAAY,EACZC,UAAY,EACZC,UAAY,GAEhBR,gBAAiB,CACb,OACA,QACA,OACA,MACA,OACA,SACA,UAEJC,qBAAsB,CAClB,OACA,UACA,QACA,OACA,MACA,OACA,SACA,UAEJC,uBAAwB,CACpB,MACA,WACA,UACA,QACA,OACA,OACA,YACA,QACA,UACA,YAGRf,GAAWsB,UAAY,CACnBnB,sBAAuB,CACnBhgE,MAAO,SACPigE,cAAe,OACfC,cAAe,QAEnBC,uBAAwB,CACpB,CAAEngE,MAAO,SACT,CAAEA,MAAO,UACT,CAAEwtD,QAAS,YACX,CAAEA,QAAS,WAEf+S,WAAY,SAAU7E,EAAa/Q,EAAQV,GACvC,OAAOyR,EAAY9Q,eAAeD,EAAQV,IAE9CuW,eAAgB,CACZ7nC,MAAQ,EACRooC,UAAY,EACZC,UAAY,EACZC,UAAY,EACZC,UAAY,GAEhBR,gBAAiB,CACb,OACA,SACA,UAEJC,qBAAsB,CAClB,OACA,UACA,QACA,OACA,MACA,OACA,SACA,UAEJC,uBAAwB,CACpB,YACA,QACA,UACA,YAGRf,GAAW13D,YAAc,SAAUi5D,EAAgB7Z,GAC/C,OAAOp0D,KAAKkuE,gBAAgBD,EAAgB7Z,IAEhDsY,GAAWwB,gBAAkB,SAAUD,EAAgB7Z,GACnD,OAAOp0D,KAAK2nB,eAAesmD,EAAgB7Z,EAASp0D,KAAK4sE,YAE7DF,GAAWyB,oBAAsB,SAAUF,EAAgB7Z,GACvD,OAAOp0D,KAAK2nB,eAAesmD,EAAgB7Z,EAASp0D,KAAK0tE,gBAE7DhB,GAAW0B,gBAAkB,SAAUH,EAAgB7Z,GACnD,OAAOp0D,KAAK2nB,eAAesmD,EAAgB7Z,EAASp0D,KAAKguE,YAO7DtB,GAAW/kD,eAAiB,SAAUsmD,EAAgB7Z,EAASia,GAC3D,IAAIC,EAAUznE,OAAO2B,OAAOxI,KAAK8G,WAqBjC,GApBImnE,aAA0Bv6C,KAC1B0gC,EAAU6Z,EACVA,OAAiB3pE,GAEhB8vD,IACDA,EAAUpN,GAAK/yC,mBAAmB8yC,oBAAoBP,mBAE1D8nB,EAAQla,QAAUA,EAClBka,EAAQ/F,YAAc/zD,GAAWQ,YAAYo/C,GAC7Cka,EAAQL,eAAiB7f,GAAO,GAAIigB,EAAMxB,sBAAuBoB,GAC5DK,EAAQL,eAAe9jE,eACxBmkE,EAAQL,eAAe9jE,aAAe68C,GAAK/yC,mBAAmBa,mBAE7Dw5D,EAAQL,eAAe5T,UACpBiU,EAAQL,eAAeM,OACvBD,EAAQL,eAAe5T,QAAUiU,EAAQ/F,YAAYtQ,yBAAyBqW,EAAQL,eAAeM,OAAQD,EAAQL,eAAe9jE,cAEpImkE,EAAQL,eAAe5T,QAAUgU,EAAMjB,WAAWkB,EAAQ/F,YAAa+F,EAAQL,eAAephE,MAAOyhE,EAAQL,eAAe9jE,eAGhImkE,EAAQL,eAAeO,SAAU,CAC7BF,EAAQL,eAAeM,QACvBD,EAAQG,iBAAmBH,EAAQ/F,YAAYzP,yBAAyBwV,EAAQL,eAAeM,OAAQ,KAAMD,EAAQL,eAAe9jE,cAC5F,iBAA7BmkE,EAAQG,mBACfH,EAAQG,iBAAmB,CAACH,EAAQG,mBAExCH,EAAQG,iBAAiB9tE,KAAK2tE,EAAQ/F,YAAYtQ,yBAAyBqW,EAAQL,eAAeM,OAAQD,EAAQL,eAAe9jE,gBAEjImkE,EAAQG,iBAAmB,CACvBH,EAAQ/F,YAAY1P,2BAA2ByV,EAAQL,eAAe5T,QAASiU,EAAQL,eAAe9jE,cACtGmkE,EAAQL,eAAe5T,SAG/B,IAAIqU,EAxCZ,SAAkDJ,GAC9C,IAAI5V,EAAW4V,EAAQ/F,YAAYlQ,mBAAmB,GAAIiW,EAAQL,eAAe9jE,cAEjF,OADAuuD,EAAWA,EAAS7oD,QAAQ,aAAc,MAC1BA,QAAQ,aAAcy+D,EAAQL,eAAe5T,SAqC3BsU,CAAyCL,GACvEA,EAAQG,iBAAiB9tE,KAAK+tE,GAElC,IAAKJ,EAAQL,eAAeW,SAAU,CAC7BP,EAAMQ,mBACPR,EAAMQ,iBAAmB,IAE7B,IAA6HnW,EAAUsU,EAAnI8B,EAAU1a,EAAQrsD,WAAY+uD,EAAgBwX,EAAQL,eAAe9jE,aAAcivD,EAAO0V,EAAU,IAAMhY,EAC1GwX,EAAQL,eAAe5T,SAAWgU,EAAMlB,mCACxC/T,EAAOA,EAAO,IAAMkV,EAAQL,eAAe5T,SAE3CiU,EAAQL,eAAeO,WACvBpV,GAAc,aAElB,IAAIyV,EAAmBR,EAAMQ,iBAAiBzV,GAAQvyD,OAAO0tC,OAAO,GAAI85B,EAAMQ,iBAAiBzV,SAAS90D,EACnGuqE,IACD7B,EAAyBqB,EAAMrB,uBAC3BqB,EAAMnB,8BACNxU,EAAW2V,EAAMjB,WAAWkB,EAAQ/F,YAAa,SACjDyE,EAAyBA,EAAuB/xD,OAAOyxD,GAAWqC,uCAAuCrW,KAEzG4V,EAAQL,eAAe5T,SAAWgU,EAAMlB,mCACxCH,EAAyBN,GAAWqC,uCAAuCT,EAAQL,eAAe5T,SAASp/C,OAAO+xD,IAEtH6B,EAAmBnC,GAAWsC,sBAAsBhC,EAAwBlW,EAAe1C,EAASia,EAAOC,EAAQL,eAAeO,WAEtIF,EAAQW,iBAAmBJ,EAO/B,OALAP,EAAQjB,eAAiBgB,EAAMhB,eAC/BiB,EAAQf,gBAAkBc,EAAMd,gBAChCe,EAAQd,qBAAuBa,EAAMb,qBACrCc,EAAQb,uBAAyBY,EAAMZ,uBACvCa,EAAQj6D,OACDi6D,GAEX5B,GAAW5lE,UAAUuN,KAAO,WACxB,IAAIyiD,EAAgB92D,KAAKiuE,eAAe9jE,aACxCnK,KAAKkvE,cAAgBlvE,KAAKuoE,YAAY3R,UAAU,cAAeE,GAC/D92D,KAAKmvE,YAAcnvE,KAAKuoE,YAAY3R,UAAU,OAAQE,GACtD92D,KAAKovE,cAAgBpvE,KAAKuoE,YAAY3R,UAAU,SAAUE,GAC1D92D,KAAKqvE,gBAAkBrvE,KAAKuoE,YAAYvR,oBAAoB,cAAeF,GAC3E92D,KAAKsvE,cAAgBtvE,KAAKuoE,YAAYvR,oBAAoB,OAAQF,GAClE92D,KAAKuvE,gBAAkBvvE,KAAKuoE,YAAYvR,oBAAoB,SAAUF,GACtE92D,KAAKwvE,YAAcxvE,KAAKuoE,YAAYtR,QAAQ,cAAeH,GAC3D92D,KAAKyvE,UAAYzvE,KAAKuoE,YAAYtR,QAAQ,OAAQH,GAClD92D,KAAK0vE,YAAc1vE,KAAKuoE,YAAYtR,QAAQ,SAAUH,GACtD92D,KAAK2vE,WAAa3vE,KAAKuoE,YAAYtR,QAAQ,QAASH,GACpD92D,KAAK4vE,cAAgB5vE,KAAKuoE,YAAYrR,kBAAkB,cAAeJ,GACvE92D,KAAK6vE,YAAc7vE,KAAKuoE,YAAYrR,kBAAkB,OAAQJ,GAC9D92D,KAAK8vE,cAAgB9vE,KAAKuoE,YAAYrR,kBAAkB,SAAUJ,GAClE92D,KAAK+vE,aAAe/vE,KAAKuoE,YAAYrR,kBAAkB,QAASJ,GAChE92D,KAAKgwE,gBAAkBhwE,KAAKuoE,YAAYpR,YAAY,cAAeL,GACnE92D,KAAKiwE,cAAgBjwE,KAAKuoE,YAAYpR,YAAY,OAAQL,GAC1D92D,KAAKkwE,gBAAkBlwE,KAAKuoE,YAAYpR,YAAY,SAAUL,GAC9D92D,KAAKmwE,kBAAoBnwE,KAAKuoE,YAAYnR,sBAAsB,cAAeN,GAC/E92D,KAAKowE,gBAAkBpwE,KAAKuoE,YAAYnR,sBAAsB,OAAQN,GACtE92D,KAAKqwE,kBAAoBrwE,KAAKuoE,YAAYnR,sBAAsB,SAAUN,GAC1E92D,KAAKswE,YAActwE,KAAKuoE,YAAYhH,QAAQ,SAAUzK,GACtD92D,KAAKuwE,YAAcvwE,KAAKuoE,YAAYhH,QAAQ,cAAezK,GAC3D92D,KAAKwwE,UAAYxwE,KAAKuoE,YAAYhH,QAAQ,OAAQzK,GAClD92D,KAAKywE,YAAczwE,KAAKuoE,YAAYlR,cAAc,cAAeP,GACjE92D,KAAK0wE,aAAe1wE,KAAK2wE,qBAAqB3wE,KAAKiuE,eAAe5T,SAClEr6D,KAAK4wE,mBAAqB5wE,KAAK6wE,qBAAqB7wE,KAAK0wE,eAE7DhE,GAAWsC,sBAAwB,SAAUhC,EAAwBlW,EAAe1C,EAASia,EAAOyC,GAChG,OAAO9D,EAAuB7rE,KAAI,SAAU4vE,GACxC,IAAI9C,EAAiBpnE,OAAO0tC,OAAO,GAAIw8B,GACnCD,IACA7C,EAAeO,UAAW,GAE9BP,EAAe9jE,aAAe2sD,EAC9BmX,EAAeW,UAAW,EAC1B,IAAIoC,EAAkBtE,GAAW/kD,eAAesmD,EAAgB7Z,EAASia,GAEzE,OADA2C,EAAgBC,aAAc,EACvBD,MAGftE,GAAWqC,uCAAyC,SAAUmC,GAC1D,IAAkCC,EACnB,MADmBA,EAEjB,KACVC,EACQ,MADRA,EAEU,KACVC,EAAe,CACdC,MAAO,SACPzhE,QAAS,CACL,OACA,OAMZ,OADAqhE,GADAA,GADAA,EAAeA,EAAarhE,QAbP,YAa+B,KACxBA,QAAQshE,EAAmBA,IAC3BthE,QAAQuhE,EAAqBA,GAClDC,EAAaxhE,QAAQ1O,KAAI,SAAUowE,GACtC,MAAO,CACHlX,QAAS6W,EAAarhE,QAAQwhE,EAAaC,MAAOC,GAClDtE,eAAe,OAI3B,IAAIuE,GAAe,CACfC,SAAU,SAAUC,GAChB,OAAOA,GAAa,IAAMA,GAAa,IAE3CC,YAAa,SAAU5d,EAAQ6d,GAE3B,IADA,IAAI/jB,EAAU,EACPA,EAAU+jB,GAAc5xE,KAAKyxE,SAAS1d,EAAO8d,WAAWhkB,KAC3DA,IAKJ,MAHsB,iBAAXkG,IACPA,EAASA,EAAOhsD,YAEbgsD,EAAO+L,OAAO,EAAGjS,IAE5BikB,UAAW,SAAU/d,EAAQge,GAEzB,IADA,IAAIC,GAAe,EAAGC,EAAiB,EAC9B1jD,EAAI,EAAGA,EAAIwjD,EAAM/wE,OAAQutB,IAC1BwjD,EAAMxjD,IAAMwjD,EAAMxjD,GAAGvtB,OAASixE,GAA+C,IAA7Ble,EAAOjzD,QAAQixE,EAAMxjD,MACrEyjD,EAAczjD,EACd0jD,EAAiBF,EAAMxjD,GAAGvtB,QAGlC,MAAO,CACHsW,MAAO06D,EACPtnE,OAAwB,IAAjBsnE,EAAqB,KAAOD,EAAMC,KAGjDE,QAAS,SAAUne,EAAQoe,GACvB,IAEIpO,EAFAlW,EAAU,EACVukB,EAAgC,KAApBre,EAAOjkD,OAAO,IAAa,EAAI,EAE/C+9C,IACAkW,EAAQ/jE,KAAK2xE,YAAY5d,EAAO+L,OAAOjS,GAAU,GACjD,IAAIwkB,EAAcj7C,SAAS2sC,GAC3BlW,GAAW,EACPskB,GACAtkB,IAGJ,IAAIykB,EAAU,EAKd,OANAvO,EAAQ/jE,KAAK2xE,YAAY5d,EAAO+L,OAAOjS,GAAU,MAG7CA,GAAW,EACXykB,EAAUl7C,SAAS2sC,IAEhB,CACH/iE,OAAQ6sD,EACR0kB,QAASD,EAAU,GAAKD,GAAeD,IAG/CI,WAAY,SAAUtV,EAAOuV,EAAcnE,GACvC,GAAIpR,KAASoR,EAAQjB,gBAAkBoF,EACnC,OAAO,IAInB/F,GAAW5lE,UAAU4rE,SAAW,CAC5B,GAAI,CACAhrE,KAAM,OACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,OAAOqE,EAAOjoE,OAElBU,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GAMrC,IALA,IAAIzW,EACA0W,GAAS,EACTC,EAAc,EACdC,EAAgB,EAEbA,EAAgBJ,EAAMnoE,MAAM1J,OAAQiyE,IAAiB,CAExD,GAAc,OADd5W,EAAQwW,EAAMnoE,MAAMoF,OAAOmjE,IAEvB,KAAsC,MAA/Blf,EAAOjkD,OAAOkjE,IACjBA,QALK,cAOStyE,SAAS27D,IAPlB,cAQO37D,SAASqzD,EAAOjkD,OAAOkjE,MACnCD,GAAS,GAEbC,MAEIjf,EAAOjkD,OAAOkjE,KAAiB3W,IAC/B0W,GAAS,GAEbC,KAEJ,IAAKD,EACD,MAGR,GAAIA,EACA,MAAO,CAAE/xE,OAAQgyE,GAEjB,IAAIP,GAAe,EAInB,OAHIK,EAAQx7D,MAAQw7D,EAAQI,YAAYlyE,OAAS,IAC7CyxE,EAAeK,EAAQI,YAAYJ,EAAQx7D,MAAQ,GAAG7J,QAAQ6gE,EAAQjB,gBAEnE,CAAE8F,MAAO3B,GAAagB,WAAWK,EAAMplE,KAAMglE,EAAcnE,MAI9EhU,EAAK,CACD5yD,KAAM,MACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI3H,EAAOiM,EAAOvM,EAAMO,YAAcP,EAAMG,SAC5C,OAAImM,EAAOtU,QAAU,EACViQ,EAAQiC,YAAY5J,GACF,IAAlBgM,EAAOtU,OACPiQ,EAAQkC,UAAU7J,GAElB2H,EAAQgC,YAAY3J,IAGnCv7D,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GAMrC,IALA,IAAIM,EAAgB,CAChB9E,EAAQkC,UACRlC,EAAQiC,YACRjC,EAAQgC,aAEH5pE,EAAI,EAAGA,EAAI0sE,EAAcpyE,OAAQ0F,IAAK,CAC3C,IAAI2sE,EAAYD,EAAc1sE,GAC1B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACHi8D,IAAKD,EAAOh8D,MACZtW,OAAQsyE,EAAO5oE,MAAM1J,QAIjC,MAAO,CACHuyE,IAAKjF,EAAQkC,UAAUxvE,OAAS,EAChCmyE,MAAO3B,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,MAI7D97D,EAAK,CACD9K,KAAM,OACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIhG,EAAQsK,EAAOvM,EAAMQ,iBAAmBR,EAAMhb,cAC9CmoB,EAAQx6D,OAAOsvD,GACfxR,EAAgBwX,EAAQL,eAAe9jE,aAO3C,OANqB,GAAjBwoE,EAAOtU,QAAemV,EAAMxyE,OAAS,IACrCwyE,EAAQA,EAAM1T,OAAO0T,EAAMxyE,OAAS,IAEpC81D,GAAiBzQ,GAAaH,UAA6B,GAAjBysB,EAAOtU,QAAeiK,EAAQ,MACxEkL,EAAQA,EAAMC,SAAS,EAAG,MAEvBD,EAAMC,SAASd,EAAOtU,OAAQ,MAEzCjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IACI/O,EADAjN,EAAgBwX,EAAQL,eAAe9jE,aAGvC45D,EADgB,GAAhB8O,EAAMxU,OACEmT,GAAaG,YAAY5d,EAAQ,GAClB,GAAhB8e,EAAMxU,OACLmT,GAAaG,YAAY5d,EAAQ,GAEjCyd,GAAaG,YAAY5d,EAAQ8e,EAAMxU,QAEnD,IAAIiK,EAAQlxC,SAAS2sC,GACrB,GAAIjN,GAAiBzQ,GAAaH,UAAY6d,EAAM/iE,QAAU,EAAG,CAC7D,IAAyE0yE,EAAtD3N,GAAc/wD,YAAY,IAAImzC,KAAQ2O,GAA4CzL,cAAesoB,EAAkBnqD,KAAKkgC,MAAMgqB,EAAe,KAAME,EAA8B,IAAlBD,EAAwBrL,EAAQoL,EAE9MpL,GADAsL,GAAa,GACoB,KAAvBD,EAAkB,GACrBC,EAAY,GACQ,IAAlBD,EAEwB,KAAvBA,EAAkB,GAGpC,MAAO,CACH3yE,OAAQ+iE,EAAM/iE,OACdmyE,MAAO3B,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACzDhH,KAAMgB,KAIlBrD,EAAK,CACDv9D,KAAM,WACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IACIuF,GADQjB,EAAOvM,EAAMsB,aAAetB,EAAMY,WACxBK,KAClBwM,EAAY96D,OAAO66D,GACnB/c,EAAgBwX,EAAQL,eAAe9jE,aAO3C,OANqB,GAAjBwoE,EAAOtU,QAAeyV,EAAU9yE,OAAS,IACzC8yE,EAAYA,EAAUhU,OAAOgU,EAAU9yE,OAAS,IAEhD81D,GAAiBzQ,GAAaH,UAA6B,GAAjBysB,EAAOtU,QAAewV,EAAY,MAC5EC,EAAYA,EAAUL,SAAS,EAAG,MAE/BK,EAAUL,SAASd,EAAOtU,OAAQ,MAE7CjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IACI/O,EADAjN,EAAgBwX,EAAQL,eAAe9jE,aAGvC45D,EADgB,GAAhB8O,EAAMxU,OACEmT,GAAaG,YAAY5d,EAAQ,GAClB,GAAhB8e,EAAMxU,OACLmT,GAAaG,YAAY5d,EAAQ,GAEjCyd,GAAaG,YAAY5d,EAAQ8e,EAAMxU,QAEnD,IACIwV,EADAvL,EAAQlxC,SAAS2sC,GAErB,GAAIjN,GAAiBzQ,GAAaH,UAAY6d,EAAM/iE,QAAU,EAAG,CAC7D,IAAyE0yE,EAAtD3N,GAAc/wD,YAAY,IAAImzC,KAAQ2O,GAA4CzL,cAAesoB,EAAkBnqD,KAAKkgC,MAAMgqB,EAAe,KAAME,EAA8B,IAAlBD,EAAwBE,EAAYH,EAElNG,GADAD,GAAa,GACwB,KAAvBD,EAAkB,GACzBC,EAAY,GACY,IAAlBD,EAEwB,KAAvBA,EAAkB,GAGxC,MAAO,CACH3yE,OAAQ+iE,EAAM/iE,OACdmyE,MAAO3B,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACzDhH,KAAMgB,EACNgF,SAAUuG,KAItBloD,EAAK,CACDjkB,KAAM,QACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIpF,EAAS0J,EAAOvM,EAAMS,cAAgBT,EAAM/a,WAChD,OAAqB,GAAjBqnB,EAAOtU,OACAiQ,EAAQY,cAAchG,GACL,GAAjByJ,EAAOtU,OACPiQ,EAAQa,YAAYjG,GACpByJ,EAAOtU,OAAS,EAChBiQ,EAAQc,cAAclG,GAEtBlwD,OAAOkwD,EAAS,GAAGuK,SAASd,EAAOtU,OAAQ,MAG1DjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAQIC,EACA7J,EACAnF,EAVAgQ,EAAkB,CAClBzF,EAAQa,YACRb,EAAQgB,cACRhB,EAAQY,cACRZ,EAAQe,gBACRf,EAAQc,cACRd,EAAQiB,iBAKZ,GAAIsD,EAAMxU,OAAS,EACf0F,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE0U,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC3DpF,EAAS9xC,SAAS2sC,GAAS,EACvB+O,EAAQkB,SAAW9K,EAAS,IAAMA,EAAS,KAC3C6J,GAAS,OAEV,CACH,IAAK,IAAIrsE,EAAI,EAAGA,EAAIqtE,EAAgB/yE,OAAQ0F,IAAK,CAC7C,IAAI2sE,EAAYU,EAAgBrtE,GAC5B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACHmwD,MAAO6L,EAAOh8D,MACdtW,OAAQsyE,EAAO5oE,MAAM1J,QAIjC+xE,EAASvB,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,GAEvD,MAAO,CACH7G,MAAOyB,EACPloE,OAAQ+iE,EAAQA,EAAM/iE,OAAS,EAC/BmyE,MAAOJ,KAInB3kD,EAAK,CACD1mB,KAAM,kBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIpF,EAAS0J,EAAOvM,EAAMS,cAAgBT,EAAM/a,WAChD,OAAqB,GAAjBqnB,EAAOtU,OACAiQ,EAAQe,gBAAgBnG,GACP,GAAjByJ,EAAOtU,OACPiQ,EAAQgB,cAAcpG,GACtByJ,EAAOtU,OAAS,EAChBiQ,EAAQiB,gBAAgBrG,GAExBlwD,OAAOkwD,EAAS,GAAGuK,SAASd,EAAOtU,OAAQ,MAG1DjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAQIC,EACA7J,EACAnF,EAVAgQ,EAAkB,CAClBzF,EAAQa,YACRb,EAAQgB,cACRhB,EAAQY,cACRZ,EAAQe,gBACRf,EAAQc,cACRd,EAAQiB,iBAKZ,GAAIsD,EAAMxU,OAAS,EACf0F,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE0U,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC3DpF,EAAS9xC,SAAS2sC,GAAS,EACvB+O,EAAQkB,SAAW9K,EAAS,IAAMA,EAAS,KAC3C6J,GAAS,OAEV,CACH,IAAK,IAAIrsE,EAAI,EAAGA,EAAIqtE,EAAgB/yE,OAAQ0F,IAAK,CAC7C,IAAI2sE,EAAYU,EAAgBrtE,GAC5B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACHmwD,MAAO6L,EAAOh8D,MACdtW,OAAQsyE,EAAO5oE,MAAM1J,QAIjC+xE,EAASvB,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,GAEvD,MAAO,CACH7G,MAAOyB,EACPloE,OAAQ+iE,EAAQA,EAAM/iE,OAAS,EAC/BmyE,MAAOJ,KAInB1jD,EAAK,CACD3nB,KAAM,aACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IACIlF,GADQwJ,EAAOvM,EAAMsB,aAAetB,EAAMY,WAC5BM,KACd0M,EAAQj7D,OAAOowD,EAAQ,GAM3B,OAJI6K,EADAtB,EAAOtU,OAAS,EACR4V,EAAMR,SAASd,EAAOtU,OAAQ,KAE9BiQ,EAAQ/F,YAAY1G,gBAAkC,IAAlB8Q,EAAOtU,OAAe,SAAW,OAAQ4V,EAAMR,SAAS,EAAG,OAI/GroE,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EACAqF,EACAvb,EAAU,EACd,GAAIglB,EAAMxU,OAAS,EAEfxQ,GADAkW,EAAQyN,GAAaG,YAAY5d,EAAQ,IACzB/yD,OAChBooE,EAAQhyC,SAAS2sC,GAAS,EAC1BgP,EAASvB,GAAagB,WAAWK,EAAMplE,MAAOs2D,EAAOuK,OAClD,CAEHvK,GADAA,EAAQuK,EAAQ/F,YAAY1G,gBAAiC,IAAjBgR,EAAMxU,OAAe,SAAW,SAC9DxuD,QAAQ,MAAO,UAC7B,IAAqCumD,EAAnB,IAAIlrC,OAAO64C,GAA8Bp0D,KAAKokD,GAC5DqC,GACAvI,EAAUuI,EAAQ,GAAGp1D,OACrBooE,EAAQhyC,SAASg/B,EAAQ,IAAM,GAE/B2c,EAASvB,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,GAG3D,MAAO,CACHttE,OAAQ6sD,EACRslB,MAAOJ,EACPxL,KAAM6B,KAIlBz6C,EAAK,CACDjnB,KAAM,cACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,MAAO,IAEXljE,MAAO,WACH,MAAO,KAGfkjB,EAAK,CACD5mB,KAAM,YACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,KAEvCljE,MAAO,WACH,MAAO,KAGf2e,EAAK,CACDriB,KAAM,MACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI4F,EAAQtB,EAAOvM,EAAMU,aAAeV,EAAM9a,UAC9C,OAAOvyC,OAAOk7D,GAAOT,SAASd,EAAOtU,OAAQ,MAEjDjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAI/O,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE0U,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC3DnF,EAAO/xC,SAAS2sC,GAIpB,OAHI+O,EAAQkB,SAAW7K,EAAO,IAAMA,EAAO,KACvC4J,GAAS,GAEN,CACHrL,IAAKyB,EACLnoE,OAAQ+iE,EAAM/iE,OACdmyE,MAAOJ,KAInB7N,EAAK,CACDx9D,KAAM,UACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI6F,EAAWvB,EAAOvM,EAAM0B,gBAAkB1B,EAAMyB,aACpD,OAAqB,GAAjB6K,EAAOtU,OACAiQ,EAAQ0B,gBAAgBmE,GACP,GAAjBxB,EAAOtU,OACPiQ,EAAQ2B,cAAckE,GACtBxB,EAAOtU,OAAS,EAChBiQ,EAAQ4B,gBAAgBiE,GAExBn7D,OAAOm7D,EAAW,GAAGV,SAASd,EAAOtU,OAAQ,MAG5DjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAoB,EACApQ,EACAqQ,EAAoB,CACpB9F,EAAQ2B,cACR3B,EAAQ8B,gBACR9B,EAAQ0B,gBACR1B,EAAQ6B,kBACR7B,EAAQ4B,gBACR5B,EAAQ+B,mBAEZ,GAAIwC,EAAMxU,OAAS,EACf0F,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE0U,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC3D6F,EAAW/8C,SAAS2sC,GAAS,EACzB+O,EAAQkB,QAAUG,EAAW,IAC7BpB,GAAS,OAEV,CACH,IAAK,IAAIrsE,EAAI,EAAGA,EAAI0tE,EAAkBpzE,OAAQ0F,IAAK,CAC/C,IAAI2sE,EAAYe,EAAkB1tE,GAC9B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACH+8D,QAASf,EAAOh8D,MAChBtW,OAAQsyE,EAAO5oE,MAAM1J,QAIjC+xE,EAASvB,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,GAEvD,MAAO,CACHttE,OAAQ+iE,EAAQA,EAAM/iE,OAAS,EAC/BqzE,QAASF,EACThB,MAAOJ,KAInB5N,EAAK,CACDz9D,KAAM,oBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI6F,EAAWvB,EAAOvM,EAAM0B,gBAAkB1B,EAAMyB,aACpD,OAAqB,GAAjB6K,EAAOtU,OACAiQ,EAAQ6B,kBAAkBgE,GACT,GAAjBxB,EAAOtU,OACPiQ,EAAQ8B,gBAAgB+D,GACxBxB,EAAOtU,OAAS,EAChBiQ,EAAQ+B,kBAAkB8D,GAE1Bn7D,OAAOm7D,EAAW,GAAGV,SAASd,EAAOtU,OAAQ,MAG5DjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAoB,EACApQ,EACAqQ,EAAoB,CACpB9F,EAAQ2B,cACR3B,EAAQ8B,gBACR9B,EAAQ0B,gBACR1B,EAAQ6B,kBACR7B,EAAQ4B,gBACR5B,EAAQ+B,mBAEZ,GAAIwC,EAAMxU,OAAS,EACf0F,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE0U,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC3D6F,EAAW/8C,SAAS2sC,GAAS,EACzB+O,EAAQkB,QAAUG,EAAW,IAC7BpB,GAAS,OAEV,CACH,IAAK,IAAIrsE,EAAI,EAAGA,EAAI0tE,EAAkBpzE,OAAQ0F,IAAK,CAC/C,IAAI2sE,EAAYe,EAAkB1tE,GAC9B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACH+8D,QAASf,EAAOh8D,MAChBtW,OAAQsyE,EAAO5oE,MAAM1J,QAIjC+xE,EAASvB,GAAagB,WAAWK,EAAMplE,MAAM,EAAM6gE,GAEvD,MAAO,CACHttE,OAAQ+iE,EAAQA,EAAM/iE,OAAS,EAC/BqzE,QAASF,EACThB,MAAOJ,KAInBtkD,EAAK,CACD/mB,KAAM,mBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,MAAO,IAEXljE,MAAO,WACH,MAAO,KAGfohB,EAAK,CACD9kB,KAAM,gBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAInF,EAAOyJ,EAAOvM,EAAMuC,YAAcvC,EAAMiO,SAC5C,OAAI3B,EAAOtU,OAAS,EACTiQ,EAAQkB,YAAYrG,GACH,GAAjBwJ,EAAOtU,OACPiQ,EAAQmB,UAAUtG,GACD,GAAjBwJ,EAAOtU,OACPiQ,EAAQoB,YAAYvG,GAEpBmF,EAAQqB,WAAWxG,IAGlC/9D,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GAWrC,IAVA,IAAIyB,EAAgB,CAChBjG,EAAQmB,UACRnB,EAAQuB,YACRvB,EAAQkB,YACRlB,EAAQsB,cACRtB,EAAQqB,WACRrB,EAAQyB,aACRzB,EAAQoB,YACRpB,EAAQwB,eAEHppE,EAAI,EAAGA,EAAI6tE,EAAcvzE,OAAQ0F,IAAK,CAC3C,IAAI2sE,EAAYkB,EAAc7tE,GAC1B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACHk9D,UAAWlB,EAAOh8D,MAClBtW,OAAQsyE,EAAO5oE,MAAM1J,WAMzCmpB,EAAK,CACDziB,KAAM,0BACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAInF,EAAOyJ,EAAOvM,EAAMuC,YAAcvC,EAAMiO,SAC5C,OAAI3B,EAAOtU,OAAS,EACTiQ,EAAQsB,cAAczG,GACL,GAAjBwJ,EAAOtU,OACPiQ,EAAQuB,YAAY1G,GACH,GAAjBwJ,EAAOtU,OACPiQ,EAAQwB,cAAc3G,GAEtBmF,EAAQyB,aAAa5G,IAGpC/9D,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GAWrC,IAVA,IAAIyB,EAAgB,CAChBjG,EAAQmB,UACRnB,EAAQuB,YACRvB,EAAQkB,YACRlB,EAAQsB,cACRtB,EAAQqB,WACRrB,EAAQyB,aACRzB,EAAQoB,YACRpB,EAAQwB,eAEHppE,EAAI,EAAGA,EAAI6tE,EAAcvzE,OAAQ0F,IAAK,CAC3C,IAAI2sE,EAAYkB,EAAc7tE,GAC1B4sE,EAAS9B,GAAaM,UAAU/d,EAAQsf,GAC5C,IAAsB,IAAlBC,EAAOh8D,MACP,MAAO,CACHowD,IAAK4L,EAAOh8D,MACZtW,OAAQsyE,EAAO5oE,MAAM1J,WAMzCgpB,EAAK,CACDtiB,KAAM,kBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAInF,EAAOyJ,EAAOvM,EAAMuC,YAAcvC,EAAMiO,SAC5C,OAAOhG,EAAQmG,gBAAgBtL,IAEnC/9D,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAI/O,EAAQyN,GAAaG,YAAY5d,EAAQ8e,EAAMxU,QACnD,MAAO,CACHqW,gBAAiBt9C,SAAS2sC,GAC1B/iE,OAAQ+iE,EAAM/iE,UAI1BojB,EAAK,CACD1c,KAAM,aACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIqG,EAAa/B,EAAOvM,EAAM4B,kBAAoB5B,EAAM2B,eACxD,OAAOsG,EAAQmC,YAAYkE,IAE/BvpE,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAI8B,EACA/mB,EACAgnB,EAAMvG,EAAQmC,YAAY,GAAIqE,EAAMxG,EAAQmC,YAAY,GAExDsE,EAAShhB,EAAOxkD,MADR,uCAERylE,EAAWD,GAA2B,IAAjBA,EAAOz9D,MAiBhC,OAhBI09D,IACAjhB,EAASghB,EAAO,GAChBF,EAAMA,EAAIhlE,QAAQ,cAAe,IACjCilE,EAAMA,EAAIjlE,QAAQ,cAAe,IACjCkkD,EAASA,EAAOlkD,QAAQ,cAAe,IACvCglE,EAAMA,EAAIhlE,QAAQ,MAAO,IAAIhF,cAC7BiqE,EAAMA,EAAIjlE,QAAQ,MAAO,IAAIhF,cAC7BkpD,EAASA,EAAOlkD,QAAQ,MAAO,IAAIhF,eAEX,IAAxBkpD,EAAOjzD,QAAQ+zE,IACfD,GAAM,EACN/mB,EAAUmnB,EAAWD,EAAO,GAAG/zE,OAAS6zE,EAAI7zE,QACb,IAAxB+yD,EAAOjzD,QAAQg0E,KACtBF,GAAM,EACN/mB,EAAUmnB,EAAWD,EAAO,GAAG/zE,OAAS8zE,EAAI9zE,QAEzC,CACHi0E,GAAIL,EACJ5zE,OAAQ6sD,KAIpBhiC,EAAK,CACDnkB,KAAM,WACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI4G,EAAStC,EAAOvM,EAAM6B,cAAgB7B,EAAMrb,WAChD,OAAOhyC,OAAOk8D,GAAQzB,SAASd,EAAOtU,OAAQ,MAElDjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE6W,EAAS99C,SAAS2sC,GAKtB,OAJAgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACvDwE,EAAQkB,QAAUkB,EAAS,KAC3BnC,GAAS,GAEN,CACHoC,KAAMD,EACNl0E,OAAQ+iE,EAAM/iE,OACdmyE,MAAOJ,KAInBnnD,EAAK,CACDlkB,KAAM,WACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI4G,EAAStC,EAAOvM,EAAM6B,cAAgB7B,EAAMrb,WAEhD,OADwB,IAAXkqB,EAAe,KAAOl8D,OAAOk8D,IAC5BzB,SAASd,EAAOtU,OAAQ,MAE1CjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE6W,EAAS99C,SAAS2sC,GAQtB,OAPAgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAC7C,IAAV4G,IACAA,EAAS,GAETpC,EAAQkB,QAAUkB,EAAS,KAC3BnC,GAAS,GAEN,CACHoC,KAAMD,EACNl0E,OAAQ+iE,EAAM/iE,OACdmyE,MAAOJ,KAInB3N,EAAK,CACD19D,KAAM,WACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI4G,EAAStC,EAAOvM,EAAM6B,cAAgB7B,EAAMrb,WAEhD,OADahyC,OAAOk8D,EAAS,GAAKA,EAAS,GAAKA,GAClCzB,SAASd,EAAOtU,OAAQ,MAE1CjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE6W,EAAS99C,SAAS2sC,GAKtB,OAJAgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACvDwE,EAAQkB,QAAUkB,EAAS,KAC3BnC,GAAS,GAEN,CACHoC,KAAMD,EACNl0E,OAAQ+iE,EAAM/iE,OACdmyE,MAAOJ,KAInBnpD,EAAK,CACDliB,KAAM,WACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI4G,EAAStC,EAAOvM,EAAM6B,cAAgB7B,EAAMrb,WAShD,OAPIkqB,EAAS,GACAl8D,OAAOk8D,EAAS,IACR,GAAVA,EACE,KAEAl8D,OAAOk8D,IAENzB,SAASd,EAAOtU,OAAQ,MAE1CjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAI8B,EAAM9B,EAAQsC,UAAUH,GACxBlR,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChE6W,EAAS99C,SAAS2sC,GAClBgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GAQ/D,OAPc,IAAV4G,IACAA,EAAS,EACTN,OAActwE,IAARswE,GAA2BA,GAEjC9B,EAAQkB,QAAUkB,EAAS,KAC3BnC,GAAS,GAEN,CACHoC,KAAMD,EACNl0E,OAAQ+iE,EAAM/iE,OACdi0E,GAAIL,EACJzB,MAAOJ,KAInB91D,EAAK,CACDvV,KAAM,SACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAI+G,EAAWzC,EAAOvM,EAAMmE,gBAAkBnE,EAAMpb,aACpD,OAAOjyC,OAAOq8D,GAAU5B,SAASd,EAAOtU,OAAQ,MAEpDjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChEgX,EAAWj+C,SAAS2sC,GAKxB,OAJAgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACvDwE,EAAQkB,QAAUqB,EAAW,KAC7BtC,GAAS,GAEN,CACH/xE,OAAQ+iE,EAAM/iE,OACds0E,OAAQD,EACRlC,MAAOJ,KAInBrxE,EAAK,CACDgG,KAAM,SACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIiH,EAAW3C,EAAOvM,EAAMoE,gBAAkBpE,EAAMnb,aACpD,OAAOlyC,OAAOu8D,GAAU9B,SAASd,EAAOtU,OAAQ,MAEpDjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAIC,EACAhP,EAAQyN,GAAaG,YAAY5d,EAAQvqC,KAAKuf,IAAI8pC,EAAMxU,OAAQ,IAChEkX,EAAWn+C,SAAS2sC,GAKxB,OAJAgP,EAASvB,GAAagB,WAAWK,EAAMplE,KAAgB,KAAVs2D,EAAcuK,GACvDwE,EAAQkB,QAAUuB,EAAW,KAC7BxC,GAAS,GAEN,CACH/xE,OAAQ+iE,EAAM/iE,OACdw0E,OAAQD,EACRpC,MAAOJ,KAInBjnD,EAAK,CACDpkB,KAAM,mBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAImH,EAAgB7C,EAAOvM,EAAMqE,qBAAuBrE,EAAMlb,kBAE1DuqB,EADgB18D,OAAOy8D,GACYhC,SAAS,EAAG,KAGnD,OADAiC,GADAA,EAAqBA,EAAmB5V,OAAO,EAAG6S,EAAOtU,SACjBsX,OAAOhD,EAAOtU,OAAQ,MAGlEjzD,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IAAI/O,EAAQyN,GAAaG,YAAY5d,EAAQ8e,EAAMxU,QAC/CxQ,EAAUkW,EAAM/iE,OAIpB,OAFA+iE,GADAA,EAAQA,EAAMjE,OAAO,EAAG,IACV6V,OAAO,EAAG,KAEjB,CACH30E,OAAQ6sD,EACR+nB,YAHgBx+C,SAAS2sC,MAOrCsB,EAAK,CACD39D,KAAM,kBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,GAAIqE,EAAOtU,OAAS,GAAKgI,EAAM+B,iBAAmB/B,EAAM+B,kBACpD,OAAO/B,EAAM+B,kBACV,GAAI/B,EAAM8B,kBAAoB9B,EAAM8B,mBACvC,OAAO9B,EAAM8B,mBAEjB,IAAI0N,EAAY,MACZC,EAAYtsD,KAAK+rB,IAAI8wB,EAAM0P,qBAC3BC,EAAkB3P,EAAM0P,oBAAsB,EAC9CE,EAAczsD,KAAKkgC,MAAMosB,EAAY,IACrCI,EAAgBJ,EAAY,GAShC,OARKlD,GAAqB,GAAbkD,EAMTD,GAAa,KALbA,GAAaG,EAAkB,IAAM,IACrCH,GAAa78D,OAAOi9D,GAAaxC,SAAS,EAAG,KAC7CoC,GAAa,IACbA,GAAa78D,OAAOk9D,GAAezC,SAAS,EAAG,MAI5CoC,GAEXzqE,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,IACIR,EADAzkB,EAAU,EAEVsoB,EAAMpiB,EAAOqiB,UAAU,EAAG,GAC9B,GAAY,QAARD,GAAyB,QAARA,EACjBtoB,EAAU,OACP,GAA+B,OAA3BkG,EAAOqiB,UAAU,EAAG,GAC3BvoB,EAAU,MACP,CAAA,GAAyB,MAArBkG,EAAOjkD,OAAO,GAIrB,MAAO,CAAE9C,MAAO,qGAHhB6gD,EAAU,EACVykB,EAAU,EAId,GAAyB,MAArBve,EAAOjkD,OAAO,GAAY,CAC1B,IAAIumE,EAAY7E,GAAaU,QAAQne,EAAO+L,OAAOjS,IAAU,GAC7DA,GAAWwoB,EAAUr1E,OACrBsxE,EAAU+D,EAAU9D,OAExB,MAAO,CACHvxE,OAAQ6sD,EACR0kB,OAAQD,KAIpB1jD,EAAK,CACDlnB,KAAM,iBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIwH,EAAYtsD,KAAK+rB,IAAI8wB,EAAM0P,qBAC3BC,EAAkB3P,EAAM0P,oBAAsB,EAC9CE,EAAczsD,KAAKkgC,MAAMosB,EAAY,IACrCI,EAAgBJ,EAAY,GAC5BD,EAAY,GAMhB,OALKjD,IACDiD,GAAaG,EAAkB,IAAM,IACrCH,GAAa78D,OAAOi9D,GAAaxC,SAAS,EAAG,KAC7CoC,GAAa78D,OAAOk9D,GAAezC,SAAS,EAAG,MAE5CoC,GAEXzqE,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,OAAOtB,GAAaU,QAAQne,GAAQ,KAG5CuR,EAAK,CACD59D,KAAM,kBACN6mE,OAAQ,SAAUoE,EAAQtM,EAAOuM,EAAMtE,GACnC,IAAIwH,EAAYtsD,KAAK+rB,IAAI8wB,EAAM0P,qBAC3BC,EAAkB3P,EAAM0P,oBAAsB,EAC9CE,EAAczsD,KAAKkgC,MAAMosB,EAAY,IACrCI,EAAgBJ,EAAY,GAC5BD,EAAY,GAahB,OAZKjD,GAAqB,GAAbkD,EAUTD,GAAa,KATbA,GAAaG,EAAkB,IAAM,IACrCH,GAAa78D,OAAOi9D,GAAaxC,SAAS,EAAG,MACzCd,EAAOtU,OAAS,GAAK6X,EAAgB,KACf,IAAlBvD,EAAOtU,QAAkC,IAAlBsU,EAAOtU,SAC9BwX,GAAa,KAEjBA,GAAa78D,OAAOk9D,GAAezC,SAAS,EAAG,OAKhDoC,GAEXzqE,MAAO,SAAU2oD,EAAQ8e,EAAOvE,EAASwE,GACrC,MAAyB,MAArB/e,EAAOjkD,OAAO,GACP,CACH9O,OAAQ,EACRuxE,OAAQ,GAGLf,GAAaU,QAAQne,EAAyB,IAAjB8e,EAAMxU,QAAiC,IAAjBwU,EAAMxU,WAKhFqO,GAAW5lE,UAAUwvE,QAAU,SAAUjM,EAASuI,GAC9C,GAAI5yE,KAAKiuE,eAAesI,SAAU,CAC9B,IAAIC,EAAOx2E,KAAKy2E,eAAepM,EAASuI,EAAM5yE,KAAKiuE,eAAeyI,eAClE,GAAIF,EACA,OAAOA,EAMf,IAHA,IAEkB3D,EAAO8D,EAAS5b,EAF9BjE,EAAgB92D,KAAKiuE,eAAe9jE,aACpCk8D,EAAQN,GAAc/wD,YAAYq1D,EAASvT,GAC3C8f,EAAU,GACLlwE,EAAI,EAAGA,EAAI1G,KAAK0wE,aAAa1vE,OAAQ0F,IAE1Cq0D,GADA8X,EAAQ7yE,KAAK0wE,aAAahqE,IACV0zD,QAAU,GAC1Bwc,EAAQj2E,KAAKX,KAAK0yE,SAAS3X,GAASwT,OAAOsE,EAAOxM,EAAOuM,EAAM5yE,OAYnE,OAVA22E,EAAUC,EAAQp0E,KAAK,IACnBwkD,GAAK/yC,mBAAmB6yC,mBACxB6vB,EAAU,IAAI39D,OAAO29D,IACbE,WAAa,CACjBC,OAAQ,gCACR7hD,OAAQj1B,KAAKo0D,QAAQrsD,WACrB8E,MAAO7M,KAAKiuE,eAAephE,MAC3BwtD,QAASr6D,KAAKiuE,eAAe5T,UAG9Bsc,GAEXjK,GAAW5lE,UAAUynE,OAAS,SAAUwI,EAASnE,GAC7C,IAAsD+D,EAAlD7f,EAAgB92D,KAAKiuE,eAAe9jE,aAIxC,QAHa7F,IAATsuE,IACAA,EAAO5yE,KAAKiuE,eAAe/H,KAE3B1lE,MAAMC,QAAQs2E,GAAU,CACxB,IAAK/2E,KAAKiuE,eAAeO,SAErB,OADApmB,GAAIp7C,MAAM,qEACH,GAEX,GAAuB,IAAnB+pE,EAAQ/1E,OAER,OADAonD,GAAIp7C,MAAM,iEAAmE+pE,EAAQ/1E,OAAS,cACvF,GAEX,GAAIhB,KAAKiuE,eAAe+I,oBAAqB,CACzC,GAAmB,OAAfD,EAAQ,GAER,OADA3uB,GAAIp7C,MAAM,qFACH,GAEQ,OAAf+pE,EAAQ,KACRJ,EAAU32E,KAAKs2E,QAAQS,EAAQ,GAAInE,IAG3C,QAAgBtuE,IAAZqyE,EAAuB,CAIvB,IAHaI,EAAQE,OAAM,SAAU5M,GACjC,OAAOA,IAAY/gB,MAAM+gB,EAAQjE,cAIjC,OADAhe,GAAIp7C,MAAM,sFACH,GAEX2pE,EAAU32E,KAAKk3E,gBAAgBH,EAASnE,QAEzC,CACH,IAAKmE,GAAWztB,MAAMytB,EAAQ3Q,WAE1B,OADAhe,GAAIp7C,MAAM,wCACH,GAEX,GAAIhN,KAAKiuE,eAAeO,SAEpB,OADApmB,GAAIp7C,MAAM,0GACH,GAEX2pE,EAAU32E,KAAKs2E,QAAQS,EAASnE,GAKpC,OAHI9b,GAAiBzQ,GAAaH,UAA2C,OAA/BlmD,KAAKo0D,QAAQx/C,gBACvD+hE,EAAUA,EAAQ9mE,QAAQ,eAAgB,SAEvC8mE,GAEXjK,GAAW5lE,UAAUowE,gBAAkB,SAAUC,EAAUvE,GACvD,IAGIvM,EACAwM,EACA9X,EAEArC,EACAgY,EARA5Z,EAAgB92D,KAAKiuE,eAAe9jE,aACpC4+D,EAAYhD,GAAc/wD,YAAYmiE,EAAS,GAAIrgB,GACnDkS,EAAUjD,GAAc/wD,YAAYmiE,EAAS,GAAIrgB,GAIjD8f,EAAU,GAGVQ,EAAap3E,KAAKq3E,sBAAsB,CACxCtO,EACAC,GACD4J,GACH,IAAKwE,EACD,OAAOp3E,KAAKs2E,QAAQa,EAAS,GAAIvE,GAGjCla,EADA14D,KAAKiuE,eAAeM,OACTvuE,KAAKuoE,YAAYzP,yBAAyB94D,KAAKiuE,eAAeM,OAAQ6I,EAAYtgB,GAElF92D,KAAKuoE,YAAY1P,2BAA2B74D,KAAKiuE,eAAe5T,QAASvD,GAExF4Z,EAAe1wE,KAAK2wE,qBAAqBjY,GACzC2N,EAAQ0C,EACR,IAAK,IAAIriE,EAAI,EAAGA,EAAIgqE,EAAa1vE,OAAQ0F,IAErCq0D,GADA8X,EAAQnC,EAAahqE,IACL0zD,QAAU,GACtByY,EAAMh7B,SACNwuB,EAAQ2C,GAEZ4N,EAAQj2E,KAAKX,KAAK0yE,SAAS3X,GAASwT,OAAOsE,EAAOxM,EAAOuM,EAAM5yE,OAEnE,OAAO42E,EAAQp0E,KAAK,KAExB,IAAI80E,GAAgB,CAChBhT,IAAK,MACLiT,SAAU,OACV/S,QAAS,UACTC,MAAO,QACPC,KAAM,OACNvc,KAAM,MACNoS,UAAW,YACXid,MAAO,OACPC,QAAS,SACTC,QAAS,UAEbhL,GAAW5lE,UAAUuwE,sBAAwB,SAAUM,EAAQ/E,GAC3D,IAAIgF,GAAa,EAAOC,EAAQ,GAQhC,OAPA73E,KAAKytE,uBAAuB7rE,SAAQ,SAAUk2E,GAC1C,IAAiD5lB,EAA7B,OAAS0gB,EAAO,MAAQ,IAAmCkF,EAAQC,EAAcT,GAAcQ,GAASE,EAAaL,EAAO,GAAGzlB,GAAa7oD,MAAMsuE,EAAO,IAAKM,EAAWN,EAAO,GAAGzlB,GAAa7oD,MAAMsuE,EAAO,IAC5NO,GAAUF,EAAYC,KACvBL,GAAa,EACbC,EAAME,IAAe,MAGzBH,EACOC,EAEJ,MAEXnL,GAAW5lE,UAAUqxE,OAAS,SAAUpkB,EAAQ2c,EAAckC,EAAMwF,GAQhE,IAPA,IAAgBvF,EAAOwF,EAAWjiB,EAA9B0E,EAAS,EACTwd,EAAa,CAAEnF,OAAO,GACtBoF,EAAa,CACbrF,YAAaxC,EACb0E,UAAWkD,EACXtE,OAAQoE,GAEH1xE,EAAI,EAAGA,EAAIgqE,EAAa1vE,SAC7Bq3E,EAAYtkB,EAAO+L,OAAOhF,GAC1B+X,EAAQnC,EAAahqE,GACrB6xE,EAAWjhE,MAAQ5Q,EACnB0vD,EAAUp2D,KAAK0yE,SAASG,EAAMzY,QAAU,IAAIhvD,MAAMitE,EAAWxF,EAAO7yE,KAAMu4E,IAAe,GACzFD,EAAalqB,GAAOkqB,EAAYliB,IACV,IAAlBA,EAAQ+c,OANyBzsE,IASrCo0D,GAAU1E,EAAQp1D,QAAU,EAahC,OAXAs3E,EAAWhhE,MAAQwjD,EACfwd,EAAWrD,KACXqD,EAAWnD,MAAQ,SAEY7wE,IAA/Bg0E,EAAW5D,sBAA0DpwE,IAAzBg0E,EAAW9D,YACvD8D,EAAW5D,gBAAkB10E,KAAKy0E,gBAAgB6D,EAAW9D,iBAEtClwE,IAAvBg0E,EAAWjE,cAA8C/vE,IAArBg0E,EAAW7Q,YAA0CnjE,IAAnBg0E,EAAW5Q,MACjF4Q,EAAW7Q,MAAQ,EAAI6Q,EAAWjE,QAClCiE,EAAW5Q,IAAM,GAEd4Q,GAEX5L,GAAW5lE,UAAU0xE,eAAiB,SAAUzkB,EAAQ+C,EAAe8b,EAAMwF,GACzE,IAAIK,EAAaC,EAASJ,EA0C1B,OAzCAt4E,KAAKyuE,iBAAiBt8D,KAAK,SAAUumD,GACjC,IAAIgY,EAAe1wE,KAAK2wE,qBAAqBjY,GAC7CggB,OAAUp0E,EACV,IAAK,IAAIoC,EAAI,EAAGA,EAAIgqE,EAAa1vE,OAAQ0F,IACrC,GAAIgqE,EAAahqE,GAAGmxC,OAAQ,CACxB6gC,EAAUhyE,EACV,MAGR,QAAgBpC,IAAZo0E,EAAuB,CAKvB,IAHyB,KADzBJ,EAAat4E,KAAKm4E,OAAOpkB,EAAQ2c,EAAckC,EAAMwF,IACtC9gE,OAAeghE,EAAWhhE,MAAQy8C,EAAO/yD,UACpDs3E,EAAWnF,OAAQ,IAEE,IAArBmF,EAAWnF,MACX,OAMJ,OAJAsF,EAAc,CACVH,EACAA,IAEG,EAIP,GAFAG,EAAc,IAEW,KADzBH,EAAat4E,KAAKm4E,OAAOpkB,EAAQ2c,EAAal5D,MAAM,EAAGkhE,GAAU9F,EAAMwF,IACxDjF,MAAf,CAGAsF,EAAY93E,KAAK23E,GACjB,IAAIzqB,EAAUyqB,EAAWhhE,MAKzB,IAHyB,KADzBghE,EAAat4E,KAAKm4E,OAAOpkB,EAAOqiB,UAAUvoB,GAAU6iB,EAAal5D,MAAMkhE,GAAU9F,EAAMwF,IACxE9gE,OAAeghE,EAAWhhE,MAAQu2C,EAAUkG,EAAO/yD,UAC9Ds3E,EAAWnF,OAAQ,IAEE,IAArBmF,EAAWnF,MAIf,OADAsF,EAAY93E,KAAK23E,IACV,IAEbh2D,KAAKtiB,OACAy4E,GAEX,IAAIE,GAAe,SAAUL,EAAYxhB,EAAe8b,EAAMwF,GAC1D,IAAI/R,EAAOiC,EAAmC,iBAApBgQ,EAAWhR,KAAoBgR,EAAWhR,KAAO,KAC3E,OAAIgR,EAAWnF,QACPP,QAA8BtuE,IAAtBg0E,EAAW/F,SACnBlM,EAAQN,GAAc/wD,YAAY,IAAImzC,KAAK,GAAI2O,IACzCkQ,UAAUsR,EAAW/E,KAAOxN,GAAcmE,cAAcpT,IAC9DuP,EAAMwB,eAAeS,GACrBjC,EAAMwE,YAAYyN,EAAW7Q,OAAS,GACtCpB,EAAMwC,WAAWyP,EAAW5Q,KAAO,GACnCrB,EAAM6E,YAAYoN,EAAWnD,MAAQ,GACrC9O,EAAMuS,cAAcN,EAAWhD,QAAU,GACzCjP,EAAMwS,cAAcP,EAAW9C,QAAU,GACzCnP,EAAMyS,mBAAmBR,EAAW1C,aAAe,GAC/CwC,IAAYE,EAAW5Q,KAAO,KAAOrB,EAAMU,cAC3CuR,EAAWnF,OAAQ,EACnB9M,OAAQ/hE,IAEJg0E,EAAW/F,QACXlM,EAAMuS,eAAeN,EAAWhD,QAAU,GAAKgD,EAAW/F,aAEtCjuE,IAApBg0E,EAAW/Q,WAA4CjjE,IAArBg0E,EAAW7Q,YAA0CnjE,IAAnBg0E,EAAW5Q,MAC/ErB,EAAMuB,WAAW,CACbN,KAAMgR,EAAWhL,UAAYgL,EAAWhR,KACxCC,KAAM+Q,EAAW/Q,YAEcjjE,IAA/Bg0E,EAAW5D,iBACXrO,EAAMwC,WAAWxC,EAAMU,aAAeuR,EAAW5D,gBAAkB,QAK/ErO,EAAQN,GAAc/wD,YAAY,IAAImzC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI2O,IAC3D4P,OAAO4R,EAAW/E,KAAOxN,GAAcmE,cAAcpT,IAC3DuP,EAAMmB,YAAYc,GAClBjC,EAAMyF,SAASwM,EAAW7Q,OAAS,GACnCpB,EAAMwF,QAAQyM,EAAW5Q,KAAO,GAChCrB,EAAMkE,SAAS+N,EAAWnD,MAAQ,GAClC9O,EAAM0S,WAAWT,EAAWhD,QAAU,GACtCjP,EAAM2S,WAAWV,EAAW9C,QAAU,GACtCnP,EAAM4S,gBAAgBX,EAAW1C,aAAe,GAC5CwC,IAAYE,EAAW5Q,KAAO,KAAOrB,EAAM9a,WAC3C+sB,EAAWnF,OAAQ,EACnB9M,OAAQ/hE,QACmBA,IAApBg0E,EAAW/Q,WAA4CjjE,IAArBg0E,EAAW7Q,YAA0CnjE,IAAnBg0E,EAAW5Q,MACtFrB,EAAMc,QAAQ,CACVG,KAAMgR,EAAWhL,UAAYgL,EAAWhR,KACxCC,KAAM+Q,EAAW/Q,YAEcjjE,IAA/Bg0E,EAAW5D,iBACXrO,EAAMwF,QAAQxF,EAAM9a,UAAY+sB,EAAW5D,gBAAkB,KAIrE4D,EAAWnF,OACX9M,EAAQA,EAAME,YAIf,MAEX,SAAS2S,GAAsBC,EAASC,GACpC,GAAID,IAAYC,EACZ,OAAOD,EAEX,IAAIE,EAAgB,GASpB,OARAxyE,OAAO6P,KAAKyiE,GAASv3E,SAAQ,SAAUw3D,GACnCigB,EAAcjgB,GAAQ+f,EAAQ/f,MAElCvyD,OAAO6P,KAAK0iE,GAASx3E,SAAQ,SAAUw3D,GAC9BigB,EAActyE,eAAeqyD,KAC9BigB,EAAcjgB,GAAQggB,EAAQhgB,OAG/BigB,EA6SX,SAASC,GAAcjT,EAAOkT,GAW1B,IAVA,IAAIC,EAAU,CACN,WACA,QACA,OACA,QACA,UACA,UACA,gBAEJC,EAAY,IAAItxB,KAAKke,EAAMD,WACtB1/D,EAAI6yE,EAAa7yE,EAAI8yE,EAAQx4E,OAAQ0F,IAE1C+yE,EADc,MAAQD,EAAQD,IACPlwE,MAAMowE,EAAW,CAAC,IAE7C,OAAOA,EApTX/M,GAAW5lE,UAAUsE,MAAQ,SAAU2oD,EAAQ6e,EAAMwF,GAEjD,IAAIE,EADJvkB,EAAmB,MAAVA,EAAiB,GAAK/6C,OAAO+6C,GAAQzwB,OAE9C,IATkCo2C,EA+D1BC,EAtDJ7iB,EAAgB92D,KAAKiuE,eAAe9jE,aAUxC,QATa7F,IAATsuE,IACAA,EAAO5yE,KAAKiuE,eAAe/H,UAEf5hE,IAAZ8zE,IACAA,EAAUp4E,KAAKiuE,eAAehB,eAE9BnW,GAAiBzQ,GAAaH,UAA2C,OAA/BlmD,KAAKo0D,QAAQx/C,gBACvDm/C,EAASA,EAAOlkD,QAAQ,MAAO,OAE9B7P,KAAKiuE,eAAeO,SAalB,CACH,IACIoL,EAAUC,EADVpB,EAAcz4E,KAAKw4E,eAAezkB,EAAQ+C,EAAe8b,EAAMwF,GAEnE,GAAIK,GAAqC,GAAtBA,EAAYz3E,OAAa,CACxC,IAAI84E,EAAcZ,GAAsBT,EAAY,GAAIA,EAAY,IAChEsB,EAAcb,GAAsBT,EAAY,GAAIA,EAAY,IAGpE,GAFAmB,EAAWjB,GAAamB,EAAahjB,EAAe8b,EAAMwF,GAC1DyB,EAAWlB,GAAaoB,EAAajjB,EAAe8b,EAAMwF,GACtDwB,GAAYC,EAAU,CACtB,GAAI75E,KAAKiuE,eAAe+I,qBAAuB4C,EAASxT,YAAcyT,EAASzT,UAC3E,MAAO,CACHwT,EACA,MAGR,IAAI7G,GA/CkB2G,EA+CkBG,IAAVD,EA9C3BxT,UAAYsT,EAAStT,YA+CxB,OAAIgS,IAAYrF,GACZ3qB,GAAIp7C,MAAM,mFACH,CACH,KACA,OAGD,CACH4sE,EACAC,SAtCmB,CAC/B,IAAIxP,EAAUrqE,KAAKg6E,cAAcjmB,EAAQ6e,GACzC,GAAIvI,EACA,OAAOA,EAOX,IAJyB,KADzBiO,EAAat4E,KAAKm4E,OAAOpkB,EAAQ/zD,KAAK0wE,aAAckC,EAAMwF,IAC3C9gE,OAAeghE,EAAWhhE,MAAQy8C,EAAO/yD,UACpDs3E,EAAWnF,OAAQ,GAEvB9I,EAAUsO,GAAaL,EAAYxhB,EAAe8b,EAAMwF,GAEpD,OAAO/N,EAgCf,OAAKrqE,KAAKixE,YAYLjxE,KAAKiuE,eAAeO,SAGd,CACH,KACA,MAJG,MAXPxuE,KAAKivE,iBAAiBgI,OAAM,SAAUjG,GAElC,OADA2I,EAAQ3I,EAAgB5lE,MAAM2oD,EAAQ6e,EAAMwF,GACxC53E,MAAMC,QAAQk5E,KACLA,EAAM,IAAMA,EAAM,KAEnBA,KAGTA,IAWfjN,GAAW5lE,UAAU6pE,qBAAuB,SAAUjY,GAClD,GAAIiU,GAAiBjU,GACjB,OAAOiU,GAAiBjU,GAE5B,IAAuBhyD,EAAnBgqE,EAAe,GAAOjU,GAAU,EAAOwd,EAAiB,KAAMC,EAAS,GAAIC,EAAY,GAAIC,EAAY,GAAIC,GAAsB,EACrI,IAAK3zE,EAAI,EAAGA,EAAIgyD,EAAS13D,OAAQ0F,IAAK,CAClC,IAAmC4zE,EAAWC,EAAWC,EAArDC,EAAW/hB,EAAS5oD,OAAOpJ,GAC/B,GAAI+1D,EAAS,CACT,GAAgB,KAAZge,EAIA,GAHAF,EAAY7hB,EAAS5oD,OAAOpJ,EAAI,GAChC8zE,EAAgB9hB,EAAS5oD,OAAOpJ,EAAI,GACpC4zE,EAAY5hB,EAAS5oD,OAAOpJ,EAAI,GACf,KAAb6zE,GAAsC,KAAjBC,EACrB/d,GAAU,MACP,CAAA,GAAiB,KAAb6d,EAEJ,CACH7d,GAAU,EACV,SAHA/1D,GAAK,EAMC,QAAVwzE,EACAD,EAAevvE,OAAS+vE,GAExBR,EAAiB,CACbxsE,KAAM,OACN/C,MAAO+vE,GAEX/J,EAAa/vE,KAAKs5E,GAClBC,EAAS,YAGG,KAAZO,EACAhe,GAAU,EACHz8D,KAAK0yE,SAAS+H,GAEjBP,IADJC,EAAYn6E,KAAK0yE,SAAS+H,GAAU/yE,MAEhCuyE,EAAe5b,UAEf4b,EAAiB,CACbxsE,KAAM0sE,EACN/f,OAAQqgB,EACRpc,OAAQ,GAEZqS,EAAa/vE,KAAKs5E,GAClBC,EAASC,EACJE,IACGD,EAAUD,IACVF,EAAepiC,QAAS,EACxBwiC,GAAsB,GAEtBD,EAAUD,IAAa,IAKrB,QAAVD,EACAD,EAAevvE,OAAS+vE,GAExBR,EAAiB,CACbxsE,KAAM,OACN/C,MAAO+vE,GAEX/J,EAAa/vE,KAAKs5E,GAClBC,EAAS,QAMzB,OADAvN,GAAiBjU,GAAYgY,EACtBA,GAEXhE,GAAW5lE,UAAUkzE,cAAgB,SAAUjmB,EAAQ6e,GACnD,IAAI1Z,EAAWwhB,EAAkBtkB,EACjC,IAAKrC,EACD,OAAO,KAEXmF,EAAYl5D,KAAKuoE,YAAYnJ,oBAAoBp/D,KAAKwtE,qBAAsBxtE,KAAKiuE,eAAelB,eAChG,IAAK,IAAIrmE,EAAI,EAAGA,EAAIwyD,EAAUl4D,OAAQ0F,IAIlC,GAHAg0E,EAASxhB,EAAUxyD,GAEnB0vD,EADW,IAAIlrC,OAAO,QAAUwvD,EAAOrgB,QAAQxqD,QAAQ,QAAS,UAAY,QAAS,KAClEF,KAAKokD,GAEpB,YAAqBzvD,IAAjBo2E,EAAOhwE,MACAiwE,EAAoBD,EAAOhwE,MAAOgwE,EAAO3a,OAGzC4a,EADEvjD,SAASg/B,EAAQ,IACUskB,EAAO1a,KAAM0a,EAAO3a,OAIpE,SAAS4a,EAAoBza,EAAON,GAChC,IAAIgb,EAA6BvQ,EAArBwQ,EAAS,IAAI1yB,KAOzB,OALIyyB,EADAhI,EACSiI,EAAOzU,UAEPje,KAAK+d,IAAI2U,EAAOxvB,cAAewvB,EAAOvvB,WAAYuvB,EAAOtvB,UAAWsvB,EAAO7vB,WAAY6vB,EAAO5vB,aAAc4vB,EAAO3vB,aAAc2vB,EAAO1vB,mBAErJkf,EAAU,IAAIliB,KAAKyyB,GACXhb,GACR,IAAK,SACDyK,EAAQwO,cAAcxO,EAAQI,gBAAkBvK,GAChD,MACJ,IAAK,SACDmK,EAAQuO,cAAcvO,EAAQG,gBAAkBtK,GAChD,MACJ,IAAK,OACDmK,EAAQa,YAAYb,EAAQnC,cAAgBhI,GAC5C,MACJ,IAAK,MACDmK,EAAQxB,WAAWwB,EAAQtD,aAAe7G,GAC1C,MACJ,IAAK,OACDmK,EAAQxB,WAAWwB,EAAQtD,aAAuB,EAAR7G,GAC1C,MACJ,IAAK,QACDmK,EAAQQ,YAAYR,EAAQvD,cAAgB5G,GAC5C,MACJ,IAAK,UACDmK,EAAQQ,YAAYR,EAAQvD,cAAwB,EAAR5G,GAC5C,MACJ,IAAK,OACDmK,EAAQxC,eAAewC,EAAQxD,iBAAmB3G,GAGtD,OAAI0S,EACOvI,EAEA,IAAIliB,KAAKkiB,EAAQxD,iBAAkBwD,EAAQvD,cAAeuD,EAAQtD,aAAcsD,EAAQnC,cAAemC,EAAQG,gBAAiBH,EAAQI,gBAAiBJ,EAAQK,wBAIpLgC,GAAW5lE,UAAU2vE,eAAiB,SAAUpM,EAASuI,EAAMjP,GAC3D,IAAyBmX,EAA+D5a,EAAiB6a,EAArGF,EAAS,IAAI1yB,KAAkByX,EAAS5/D,KAAKiuE,eAAenB,eAAiB,MAsBjF,OArBAiO,GAAgB1Q,EAAQjE,UAAYyU,EAAOzU,WAAa,IACf,QAArCpmE,KAAKiuE,eAAenB,gBACpBlN,EAAS5/D,KAAKg7E,UAAUD,EAAc/6E,KAAKutE,kBAE1C5J,IACDA,EAAS3jE,KAAKi7E,SAASrb,IAEb,QAAVA,GAA8B,SAAVA,GAA+B,OAAVA,IACzCib,EAAS,IAAI1yB,KAAKA,KAAK+d,IAAI2U,EAAOxvB,cAAewvB,EAAOvvB,WAAYuvB,EAAOtvB,YAC3EuvB,EAAW,IAAI3yB,KAAK,GAChByqB,EACAkI,EAASjT,eAAewC,EAAQxD,iBAAkBwD,EAAQvD,cAAeuD,EAAQtD,cAEjF+T,EAASjT,eAAewC,EAAQhf,cAAegf,EAAQ/e,WAAY+e,EAAQ9e,WAE/E8e,EAAUyQ,GAEd5a,EAAQlgE,KAAKk7E,eAAetb,EAAQ,CAChCib,EACAxQ,IAEqC,QAArCrqE,KAAKiuE,eAAenB,gBAA4B5M,EAAQyD,EAAO,IAAMzD,EAAQyD,EAAO,IAC7E,KD/tDO,SAAUjL,EAAUoL,GAMtC,OALApW,GAA2B,iBAAbgL,GAAyBA,aAAoB1/C,OAAQ,2BAC/DhQ,UAAUhI,OAAS,GAAgB,MAAX8iE,IAAoBtjE,MAAMC,QAAQqjE,MAC1DA,EAAUtjE,MAAMsG,UAAU0Q,MAAMnW,KAAK2H,UAAW,IAEpD86D,EAAUA,GAAW,GACdpL,EAAS7oD,QAAQ48D,IAAgB,SAAU11C,EAAIC,EAAIC,EAAIC,EAAIC,GAC9D,GAAIH,EACA,MAAO,IACJ,GAAIC,EACP,OAAOA,EAAGpnB,QAAQ,MAAO,KACtB,GAAIqnB,EACP,OAAOle,OAAO8qD,EAAQ1sC,SAASF,KAEnC,MAAM,IAAI3zB,MAAM,+CAAiD4zB,MCotD9DgkD,CADIn7E,KAAKuoE,YAAYtI,mBAAmBL,EAAQM,EAAO6a,EAAe,EAAG/6E,KAAKiuE,eAAelB,eACrE,CAACvjD,KAAK+rB,IAAI2qB,MAE7CwM,GAAW5lE,UAAUm0E,SAAW,CAC5BzF,OAAQ,EACH,GACD,IAEJF,OAAQ,EACH,GACD,IAEJH,KAAM,EACD,GACD,IAEJzN,IAAK,EACA,EACD,GAEJH,KAAM,EACD,EACD,GAEJE,MAAO,EACF,GACD,IAEJH,KAAM,EACD,GACD,KAGRoF,GAAW5lE,UAAUs0E,SAAW,CAC5B5F,OAAQ,EACRF,OAAQ,GACRH,KAAM,KACNzN,IAAK,MACLH,KAAM,OACNE,MAAO,OACP4M,QAAS,OACT/M,KAAM,SAEVoF,GAAW5lE,UAAUk0E,UAAY,SAAUD,EAAc1b,GACrD,IAAIO,EAAQyb,EACZN,EAAevxD,KAAK+rB,IAAIwlC,GACxB,IAAK,IAAIr0E,EAAI,EAAGA,EAAI24D,EAAQr+D,OAAQ0F,IAEhC,GADA20E,EAAahc,EAAQ34D,GACjBq0E,GAAgB/6E,KAAKo7E,SAASC,GAAa,CAC3Czb,EAASyb,EACT,MAMR,OAHKzb,IACDA,EAASP,EAAQA,EAAQr+D,OAAS,IAE/B4+D,GAmBX,IAAI0b,GAAiB,CACjBhU,KAAM,SAAUyB,EAAWC,GACvB,OAAOA,EAAQ3d,cAAgB0d,EAAU1d,eAE7Coc,MAAO,SAAUsB,EAAWC,GACxB,OAAOA,EAAQ1d,WAAayd,EAAUzd,WAA6C,GAAhCtrD,KAAKsnE,KAAKyB,EAAWC,IAE5EzB,KAAM,SAAUwB,EAAWC,EAASsF,GAChC,IAAIiN,EAAWjN,EAAQmG,gBAAgB1L,EAAUuL,UAC7CkH,EAASlN,EAAQmG,gBAAgBzL,EAAQsL,UAG7C,OAFAvL,EAAYuQ,GAAcvQ,EAAW,KACrCC,EAAUsQ,GAActQ,EAAS,IACjB5C,UAAY2C,EAAU3C,WAAaoV,EAASD,GAAYjN,EAAQ8M,SAAS1T,IAAM,MAAiC,IAAxB4G,EAAQ8M,SAAS7T,OAE7HG,IAAK,SAAUqB,EAAWC,EAASsF,GAG/B,OAFAvF,EAAYuQ,GAAcvQ,EAAW,KACrCC,EAAUsQ,GAActQ,EAAS,IACjB5C,UAAY2C,EAAU3C,YAAqC,IAAvBkI,EAAQ8M,SAAS1T,MAEzEyN,KAAM,SAAUpM,EAAWC,EAASsF,GAGhC,OAFAvF,EAAYuQ,GAAcvQ,EAAW,KACrCC,EAAUsQ,GAActQ,EAAS,IACjB5C,UAAY2C,EAAU3C,YAAsC,IAAxBkI,EAAQ8M,SAASjG,OAEzEG,OAAQ,SAAUvM,EAAWC,EAASsF,GAGlC,OAFAvF,EAAYuQ,GAAcvQ,EAAW,KACrCC,EAAUsQ,GAActQ,EAAS,IACjB5C,UAAY2C,EAAU3C,YAAwC,IAA1BkI,EAAQ8M,SAAS9F,SAEzEE,OAAQ,SAAUzM,EAAWC,EAASsF,GAGlC,OAFAvF,EAAYuQ,GAAcvQ,EAAW,KACrCC,EAAUsQ,GAActQ,EAAS,IACjB5C,UAAY2C,EAAU3C,YAAwC,IAA1BkI,EAAQ8M,SAAS5F,UAG7E9I,GAAW5lE,UAAU2tE,gBAAkB,SAAUgH,GAC7C,IACIC,EAAmBD,GADDjnE,GAAWQ,YAAYgyC,GAAK/yC,mBAAmB8yC,oBAAoBP,mBAAmBtxC,oBACrD,GAIvD,OAHIwmE,GAAoB,IACpBA,GAAoB,GAEjBA,GAEXhP,GAAW5lE,UAAUo0E,eAAiB,SAAUtb,EAAQ+X,GACpD,IAAI5O,EAAY4O,EAAO,GACnB3O,EAAU2O,EAAO,GACrB,OAAOnuD,KAAK4qB,MAAMknC,GAAe1b,GAAQmJ,EAAWC,EAAShpE,QAEjE0sE,GAAW5lE,UAAU+pE,qBAAuB,SAAUH,GAClD,GAAI1wE,KAAKiuE,eAAesI,SACpB,MAAO,GAMX,IAJA,IAGI1D,EAHAjC,EAAqB,GACrB+K,GAAW,EACXC,GAAO,EAEFl1E,EAAI,EAAGA,EAAIgqE,EAAa1vE,OAAQ0F,IAErC,QADAmsE,EAAQnC,EAAahqE,IACP+G,MACd,IAAK,OACGmjE,EAAmB9vE,QAAQ+xE,EAAMnoE,OAAS,IAC1CkmE,GAAsBiC,EAAMnoE,OAEhC,MACJ,IAAK,MACL,IAAK,OACL,IAAK,WACL,IAAK,kBACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,mBACIixE,IACD/K,GAAsB,aACtB+K,GAAW,GAEf,MACJ,IAAK,QACL,IAAK,kBACG9I,EAAMxU,OAAS,EACVsd,IACD/K,GAAsB,aACtB+K,GAAW,GAGfC,GAAO,EAEX,MACJ,QACIA,GAAO,EAOf,OAHIA,IACAhL,EAAqB,IAElBA,GCh5DX,MAAMv8C,GAAQ,IAAIn0B,IAEZ27E,GAA8B5mD,IAC9BZ,GAAMpxB,IAAIgyB,IACdZ,GAAMzzB,IAAIq0B,EAAQzgB,GAAWQ,YAAYigB,IAGnCZ,GAAM9zB,IAAI00B,ICPZZ,GAAQ,IAAIn0B,IAgBZ47E,GAAqB3P,IAC1B,MAAM1hE,EAAM,OAAO0hE,IAEnB,IAAK93C,GAAMpxB,IAAIwH,GAAM,CACpB,MAAMkhE,EAAU,IAAIvB,GAAa,EAAG,EAAG,EAAG+B,GAC1CR,EAAQM,QAAQ,MAChBN,EAAQG,SAAS,IACjB,MAAMiQ,EAAW,IAAI3R,GAAauB,EAASQ,GAC3C4P,EAASlQ,QAAQ,GACjBkQ,EAASjQ,SAASiQ,EAASzwB,WAAa,EAAG,GAC3CqgB,EAAQE,QAAQkQ,EAASxwB,WACzBl3B,GAAMzzB,IAAI6J,EAAKkhE,GAGhB,OAAOt3C,GAAM9zB,IAAIkK,ICjBZyE,GAAW,CAChB7J,eAAe,EACfiV,WAAiF,CAOhF6xD,oBAAqB,CACpB1+D,KAAM44C,IAWP21B,sBAAuB,CACtBvuE,KAAM44C,IAWPqlB,QAAS,CACRj+D,KAAMuL,QAWP2yD,QAAS,CACRl+D,KAAMuL,QAUPijE,cAAe,CACdxuE,KAAMuL,UAoBT,MAAMkjE,WAA0Bn7D,GAC/B7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzwB,cACCue,QAGD69D,2BACC,MAAMC,EAAaP,GAA4B5mE,MAC/C,OAAOjV,KAAKmsE,qBAAuBr3D,MAAqBsnE,EAAWpa,2BAGpEqa,eACC,OAAOr8E,KAAK0rE,SAAW1rE,KAAKs8E,YAAYlxE,MAAMpL,KAAK0rE,SAAW1rE,KAAKu8E,2BAA2Bv8E,KAAK0rE,SD3G1ES,CAAAA,IAC1B,MAAM1hE,EAAM,OAAO0hE,IAEnB,IAAK93C,GAAMpxB,IAAIwH,GAAM,CACpB,MAAMihE,EAAU,IAAItB,GAAa,EAAG,EAAG,EAAG+B,GAC1CT,EAAQO,QAAQ,GAChBP,EAAQI,SAAS,GACjBJ,EAAQG,QAAQ,GAChBx3C,GAAMzzB,IAAI6J,EAAKihE,GAGhB,OAAOr3C,GAAM9zB,IAAIkK,ICgG8F+xE,CAAmBx8E,KAAKm8E,sBAGvIM,eACC,OAAOz8E,KAAK2rE,SAAW3rE,KAAKs8E,YAAYlxE,MAAMpL,KAAK2rE,SAAW3rE,KAAKu8E,2BAA2Bv8E,KAAK2rE,SAAWmQ,GAAmB97E,KAAKm8E,sBAGvIO,qBACC,OAAO18E,KAAKi8E,eAAiB,SAG9BU,iBACC,MAA+B,WAAxB38E,KAAK08E,gBAAuD,UAAxB18E,KAAK08E,gBAAsD,SAAxB18E,KAAK08E,eAGpF38E,2BAA2B2K,GAC1B,MAAMkyE,EAAS58E,KAAKs8E,YAAYlxE,MAAMV,GACtC,GAAIkyE,EACH,OAAOxS,GAAagC,gBAAgBwQ,EAAQ58E,KAAKm8E,sBAInDp8E,wBAAwB2K,GACvB,MAAMmyE,EAAU78E,KAAKu8E,2BAA2B7xE,GAChD,GAAImyE,EACH,OAAOA,EAAQC,cAAc7T,UAI/BlpE,wBAAwByrD,GACvB,MAAMuxB,EAAY,IAAI50B,KAAKqD,GAC3B,OAAOxrD,KAAKs8E,YAAY/N,OAAOwO,GAAW,GAG3Ch9E,YACC,IAAIi9E,EAYJ,OAVCA,EADGh9E,KAAK28E,WACKjQ,GAAW13D,YAAY,CACnCqlD,QAASr6D,KAAK08E,eACdvyE,aAAcnK,KAAKm8E,uBAGPzP,GAAW13D,YAAY,CACnCnI,MAAO7M,KAAK08E,eACZvyE,aAAcnK,KAAKm8E,uBAGda,EAGRj9E,yBACEm8E,GAAkB5kD,kBAAoBh2B,QAAQC,IAAI,CAClD81B,GAAc,sBACdq9B,GAAUz/C,KAAYL,cAAeK,KAAY6gB,YAAa7gB,KAAYs9C,gBCjK7E,MAAMt4B,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQwd,SAAWpc,GAAOpB,EAASnJ,EAAMpX,GAAUg+B,GAAOzd,KACtGoB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,aAAcC,EAAMpX,oBAAyBugB,EAAQ+iD,gEAAgE7iD,GAAUF,EAAQgjD,4CAA4C9iD,GAAUF,EAAQijD,yCAAyC/iD,GAAUF,EAAQgjD,6CAA6C9iD,GAAUF,EAAQkjD,uBAAyBljD,EAAQmjD,iBAA8C/4E,EAAhCk3B,GAAOtB,EAASnJ,EAAMpX,6DAA+EmX,GAAS,aAAcC,EAAMpX,MACriB6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQwW,OAAO1vC,OAAS0kC,KAAgC+K,GAAOvW,EAASnJ,EAAMpX,KAC1H+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,4CACxC8f,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,kBAAkBuT,GAAShK,EAAQiK,QAAQuM,YAAaxW,EAAQyW,WAAaE,GAAO3W,EAASnJ,EAAMpX,QAAUrV,IAAe41B,EAAQojD,sBAAmDh5E,EAAhCk0C,GAAOte,EAASnJ,EAAMpX,cACrNk3B,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,YAAaC,EAAMpX,kFAAuFygB,GAAUF,EAAQyW,gBAAgB7f,GAAS,YAAaC,EAAMpX,MAC7N6+B,GAAS,CAACte,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,aAAcC,EAAMpX,sDAA2DygB,GAAUF,EAAQqjD,mCAAmCrjD,EAAQmR,YAAYva,GAAS,aAAcC,EAAMpX,MAC1Og+B,GAAS,CAACzd,EAASnJ,EAAMpX,IAAWgX,EAAI,mBAAmBnB,GAAS0K,EAAQrf,OAAOsvB,iBAAiBjG,GAAShK,EAAQiK,QAAQgG,oCAAoC/P,GAAUF,EAAQkQ,4BAA4BhQ,GAAUF,EAAQmQ,iCAAiCjQ,GAAUF,EAAQoQ,0BAA0BlQ,GAAUF,EAAQ5S,2BAA2B4S,EAAQQ,wBAAwBR,EAAQG,wBAAwBH,EAAQO,yBAAyBP,EAAQM,iFAAiFN,EAAQqQ,+DAA+D/a,GAAS0K,EAAQrf,OAAOy1B,kBAAmBpW,EAAQqW,eAAiBkI,GAAOve,QAAyB51B,gBAAyBkrB,GAAS0K,EAAQrf,OAAO5M,oBAAoBi2B,GAAShK,EAAQiK,QAAQl2B,uBAAuBisB,EAAQsQ,+BAAgCtQ,EAAQsW,eAAiBsI,GAAQ5e,QAAyB51B,oEAA6E41B,EAAQuQ,mCAC5+BgO,GAAS,CAACve,EAASnJ,EAAMpX,IAAWgX,EAAI,+DAAgEuJ,EAAQwW,OAAO1vC,OAAS43C,KAAgCC,GAAQ3e,cACxK0e,GAAS,CAAC1e,EAASnJ,EAAMpX,IAAWgX,EAAI,8BACxCkoB,GAAU,CAAC3e,EAASnJ,EAAMpX,IAAWgX,EAAI,qCAAqCyJ,GAAUF,EAAQyW,mBAChGmI,GAAU,CAAC5e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQ0W,OAAO5vC,OAAS+2C,UAAiCzzC,IACtGyzC,GAAU,CAAC7d,EAASnJ,EAAMpX,IAAWgX,EAAI,6ECZzCuL,GAAW,yQAKjBD,GANa,gBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,2IAKjBD,GANa,gBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCAnBkpB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,mBAAmBnB,GAAS0K,EAAQrf,OAAOsvB,iBAAiBjG,GAAShK,EAAQiK,QAAQgG,oCAAoC/P,GAAUF,EAAQkQ,4BAA4BhQ,GAAUF,EAAQmQ,iCAAiCjQ,GAAUF,EAAQoQ,0BAA0BlQ,GAAUF,EAAQ5S,2BAA2B4S,EAAQQ,wBAAwBR,EAAQG,wBAAwBH,EAAQO,yBAAyBP,EAAQM,iFAAiFN,EAAQqQ,wBAAyBrQ,EAAQqW,eAAiBjV,GAAOpB,QAAyB51B,gBAAyBkrB,GAAS0K,EAAQrf,OAAO5M,oBAAoBi2B,GAAShK,EAAQiK,QAAQl2B,uBAAuBisB,EAAQsQ,+BAAgCtQ,EAAQ0W,OAAO5vC,OAASyvC,UAAgCnsC,IAAc41B,EAAQsjD,UAAY3sC,GAAO3W,EAASnJ,EAAMpX,QAAUrV,oEAA6E41B,EAAQuQ,oCAC39BnP,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,yEAAyEyJ,GAAUF,EAAQujD,+BAA+BvjD,EAAQwjD,uCAAuCxjD,EAAQyjD,qBAAsBzjD,EAAQwW,OAAO1vC,OAASw6B,KAAgCkK,GAAOxL,cAC9SsB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,8BACxC+U,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,gEAAgEyJ,GAAUF,EAAQyW,mBAC1HF,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,6EACxCkgB,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,gCAAqCygB,GAAUF,EAAQ5S,8DAA8D4S,EAAQ0jD,yBAAyB9sD,GAAS,WAAYC,EAAMpX,MCH9PnN,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,mBAAoBxH,QAAQ,kmCCctF,MAKMiB,GAAW,CAChB/M,IAAK,aACL8W,MAAiE,CAWhEy3B,OAAQ,CACPjjC,KAAMiK,aAUPk5B,OAAQ,CACPnjC,KAAMiK,cAGR4C,WAAsE,CAUrEq2B,WAAY,CACXljC,KAAMuL,QAUPmiB,eAAgB,CACf1tB,KAAMuL,QAaP6kE,QAAS,CACRpwE,KAAMqL,SAaPglE,UAAW,CACVrwE,KAAMqL,SAgBP0kE,UAAW,CACV/vE,KAAMqL,SAMPilE,QAAS,CACRtwE,KAAMqL,SAMPklE,UAAW,CACVvwE,KAAMqL,WA8CT,MAAMmlE,WAAexpE,GACpB1U,cACCue,QAEAte,KAAKk+E,qBAAuBl+E,KAAKm+E,QAAQ77D,KAAKtiB,MAE9CA,KAAKo+E,sBAAwBp+E,KAAKq+E,iBAAiB/7D,KAAKtiB,MACxDA,KAAKs+E,oBAAsBt+E,KAAKu+E,eAAej8D,KAAKtiB,MAEpDA,KAAKw+E,wBAA0Bx+E,KAAKy+E,mBAAmBn8D,KAAKtiB,MAC5DA,KAAK0+E,sBAAwB1+E,KAAK2+E,iBAAiBr8D,KAAKtiB,MAGzDkP,sBACC,OAAOA,GAGRiZ,0BACC,MAAO,CACNkW,IAIFtiB,sBACC,OAAO6iE,GAGR/jE,oBACC,MAAO,CAACi3B,GAAqBC,GAAiB8sC,IAG/C9+E,iBAAiBgF,GAChB,OAAOA,EAAQkK,UAAUg+B,SAAS,0BAA6D,WAAjCloC,EAAQue,aAAa,QAWpFvjB,WAAWytC,GAAsB,SAC1BlvB,MAAMm0B,MAAMjF,GAGnBC,cACC,OAAO,EAGRC,yBACC,OAAO,EAGRpD,sBACC,IAAIw0C,EAMJ,MAJwB,KAApB9+E,KAAK2wC,YAAsB3wC,KAAKm7B,iBACnC2jD,EAAmB,yBAGbA,EAGRz0C,iBACC,IAAIkM,EAMJ,OAJIv2C,KAAK0wC,OAAO1vC,OAAS,GAAOhB,KAAKm7B,iBACpCob,EAAYv2C,KAAKm7B,gBAGXn7B,KAAKm7B,eAAiBn7B,KAAKm7B,eAAiBob,EAGpDnM,iBACC,OAAO,EAGRmC,mBACC,MAAO,OAMRgE,qBACC,OAAOvwC,KAAK0wC,OAAO1vC,QAAUhB,KAAK2wC,YAAc3wC,KAAK89E,WAAa99E,KAAKw9E,UAGxEuB,eACC,OAAQ/+E,KAAK69E,SAAW79E,KAAKg+E,YAAch+E,KAAK89E,WAAa99E,KAAKw9E,WAGnEC,sBACC,OAAOz9E,KAAK++E,SAAW,SAAMz6E,EAG9BvE,QACCue,MAAM0vB,QACNhuC,KAAKm+E,UAGNp+E,oBACCC,KAAKg/E,OAA+B,QAAtBh/E,KAAKsnB,aACnBtnB,KAAK+9E,QAAUzkD,KACft5B,KAAKg+E,UAAYzkD,KACjBv5B,KAAKi/E,wBAGNl/E,mBACCC,KAAKk/E,wBAGNn/E,YACCue,MAAMyD,YACN/hB,KAAKi/E,wBAGNl/E,wBACCinC,GAAcmL,SAASnyC,KAAMA,KAAKk+E,sBAClCl3C,GAAcmL,SAASvsC,SAASC,KAAM7F,KAAKk+E,sBAC3Cl+E,KAAKm/E,yBAA0B,EAGhCp/E,wBACKC,KAAKm/E,0BACRn4C,GAAcoL,WAAWpyC,KAAMA,KAAKk+E,sBACpCl3C,GAAcoL,WAAWxsC,SAASC,KAAM7F,KAAKk+E,sBAC7Cl+E,KAAKm/E,yBAA0B,GAIjCp/E,UACC,MAAMk5B,EAAS/0B,OAAOgvC,YAAclzC,KAAKmpC,aACxCnQ,EAAQ90B,OAAOk7E,WAAap/E,KAAKkpC,YAElCriC,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBkG,IAAK,GAAGyW,KAAK4qB,MAAMnb,EAAS,OAC5BpmB,KAAM,GAAG2W,KAAK4qB,MAAMpb,EAAQ,SAI9Bj5B,cACC8G,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBkG,IAAK,GACLF,KAAM,GACNmmB,MAAO,GACPC,OAAQ,KAETj5B,KAAK4lB,oBAAoB,mBAAoB5lB,KAAKq/E,aAMnDt/E,iBAAiBsS,GAEhB,IAAKrS,KAAK++E,WAAa/+E,KAAK89E,YAAcG,GAAOqB,UAAUjtE,EAAMtJ,QAChE,OAGDsJ,EAAMosB,iBAEN,MAAM1rB,IACLA,EAAGF,KACHA,GACG7S,KAAK4vC,yBACH5W,MACLA,EAAKC,OACLA,GACG/0B,OAAO4K,iBAAiB9O,MAE5B6G,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBkG,IAAK,GAAGA,MACRF,KAAM,GAAGA,MACTmmB,MAAO,GAAGxP,KAAK4qB,MAAiC,IAA3B/M,OAAO5O,WAAWO,IAAgB,QACvDC,OAAQ,GAAGzP,KAAK4qB,MAAkC,IAA5B/M,OAAO5O,WAAWQ,IAAiB,UAG1Dj5B,KAAKu/E,GAAKltE,EAAMM,QAChB3S,KAAKw/E,GAAKntE,EAAMO,QAEhB5S,KAAKy/E,2BAGN1/E,iBAAiBsS,GAChBA,EAAMosB,iBAEN,MAAMihD,EAAQ1/E,KAAKu/E,GAAKltE,EAAMM,QACxBgtE,EAAQ3/E,KAAKw/E,GAAKntE,EAAMO,SACxBC,KACLA,EAAIE,IACJA,GACG/S,KAAK4vC,wBAET/oC,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBgG,KAAM,GAAG2W,KAAKkgC,MAAM72C,EAAO6sE,OAC3B3sE,IAAK,GAAGyW,KAAKkgC,MAAM32C,EAAM4sE,SAG1B3/E,KAAKu/E,GAAKltE,EAAMM,QAChB3S,KAAKw/E,GAAKntE,EAAMO,QAGjB7S,iBACCC,KAAKu/E,GAAK,KACVv/E,KAAKw/E,GAAK,KAEVx/E,KAAK4/E,2BAGN7/E,uBAAuBsS,GACjBrS,KAAK++E,UAAad,GAAOqB,UAAUjtE,EAAMtJ,UAI1C/I,KAAK89E,WAAa,CAACnsD,GAAMC,GAAQH,GAAQC,IAASvf,KAAK1H,GAAOA,EAAI4H,IACrErS,KAAK6/E,eAAextE,GAIjBrS,KAAKw9E,WAAa,CAAC3rD,GAAWC,GAAaC,GAAaC,IAAc7f,KAAK1H,GAAOA,EAAI4H,KACzFrS,KAAK8/E,iBAAiBztE,IAIxBtS,eAAesS,GACd,MAAMU,IACLA,EAAGF,KACHA,EAAImmB,MACJA,EAAKC,OACLA,GACGj5B,KAAK4vC,wBAET,IAAImwC,EACHC,EAED,QAAQ,GACR,KAAKruD,GAAKtf,GACT0tE,EAAShtE,EAhZM,GAiZfitE,EAAe,MACf,MACD,KAAKpuD,GAAOvf,GACX0tE,EAAShtE,EApZM,GAqZfitE,EAAe,MACf,MACD,KAAKvuD,GAAOpf,GACX0tE,EAASltE,EAxZM,GAyZfmtE,EAAe,OACf,MACD,KAAKtuD,GAAQrf,GACZ0tE,EAASltE,EA5ZM,GA6ZfmtE,EAAe,OAIhBD,EAASj3C,GACRi3C,EACA,EACiB,SAAjBC,EAA0B97E,OAAOk7E,WAAapmD,EAAQ90B,OAAOgvC,YAAcja,GAG5Ej5B,KAAK6M,MAAMmzE,GAAgB,GAAGD,MAG/BhgF,iBAAiBsS,GAChBrS,KAAKi/E,wBACLj/E,KAAKgW,iBAAiB,mBAAoBhW,KAAKq/E,aAE/C,MAAMtsE,IAAEA,EAAGF,KAAEA,GAAS7S,KAAK4vC,wBAC1B/iC,EAAQ3I,OAAO4K,iBAAiB9O,MAChCigF,EAAW54C,OAAO5O,WAAW5rB,EAAMozE,UACnCC,EAAY74C,OAAO5O,WAAW5rB,EAAMqzE,WACpCtrC,EAAW1wC,OAAOk7E,WAAavsE,EAC/B8hC,EAAYzwC,OAAOgvC,YAAcngC,EAElC,IAAIimB,EAAQqO,OAAO5O,WAAW5rB,EAAMmsB,OACnCC,EAASoO,OAAO5O,WAAW5rB,EAAMosB,QAElC,QAAQ,GACR,KAAKpH,GAAUxf,GACd4mB,GA1be,GA2bf,MACD,KAAKnH,GAAYzf,GAChB4mB,GA7be,GA8bf,MACD,KAAKlH,GAAY1f,GAChB2mB,GAhce,GAicf,MACD,KAAKhH,GAAa3f,GACjB2mB,GAnce,GAuchBA,EAAQ8P,GAAM9P,EAAOinD,EAAUrrC,GAC/B3b,EAAS6P,GAAM7P,EAAQinD,EAAWvrC,GAElC9tC,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBmsB,MAAO,GAAGA,MACVC,OAAQ,GAAGA,QAIbl5B,2BACCC,KAAKi/E,wBAEL/6E,OAAO8R,iBAAiB,YAAahW,KAAKo+E,uBAC1Cl6E,OAAO8R,iBAAiB,UAAWhW,KAAKs+E,qBAGzCv+E,2BACCmE,OAAO0hB,oBAAoB,YAAa5lB,KAAKo+E,uBAC7Cl6E,OAAO0hB,oBAAoB,UAAW5lB,KAAKs+E,qBAG5Cv+E,mBAAmBsS,GAClB,IAAKrS,KAAK++E,WAAa/+E,KAAKw9E,UAC3B,OAGDnrE,EAAMosB,iBAEN,MAAM1rB,IACLA,EAAGF,KACHA,GACG7S,KAAK4vC,yBACH5W,MACLA,EAAKC,OACLA,EAAMgnD,SACNA,EAAQC,UACRA,GACGh8E,OAAO4K,iBAAiB9O,MAE5BA,KAAKmgF,UAAY9tE,EAAMM,QACvB3S,KAAKogF,UAAY/tE,EAAMO,QACvB5S,KAAKqgF,cAAgBh5C,OAAO5O,WAAWO,GACvCh5B,KAAKsgF,eAAiBj5C,OAAO5O,WAAWQ,GACxCj5B,KAAKugF,YAAcxtE,EACnB/S,KAAKwgF,aAAe3tE,EACpB7S,KAAKygF,UAAYp5C,OAAO5O,WAAWwnD,GACnCjgF,KAAK0gF,WAAar5C,OAAO5O,WAAWynD,GAEpCr5E,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBkG,IAAK,GAAGA,MACRF,KAAM,GAAGA,QAGV7S,KAAK2gF,6BAGN5gF,mBAAmBsS,GAClB,MAAMM,QAAEA,EAAOC,QAAEA,GAAYP,EAE7B,IAAIuuE,EACHC,EAEG7gF,KAAKg/E,QACR4B,EAAW93C,GACV9oC,KAAKqgF,eAAiB1tE,EAAU3S,KAAKmgF,WACrCngF,KAAKygF,UACLzgF,KAAKwgF,aAAexgF,KAAKqgF,eAG1BQ,EAAU/3C,GACT9oC,KAAKwgF,cAAgB7tE,EAAU3S,KAAKmgF,WACpC,EACAngF,KAAKmgF,UAAYngF,KAAKqgF,cAAgBrgF,KAAKygF,YAG5CG,EAAW93C,GACV9oC,KAAKqgF,eAAiB1tE,EAAU3S,KAAKmgF,WACrCngF,KAAKygF,UACLv8E,OAAOk7E,WAAap/E,KAAKwgF,cAI3B,MAAMM,EAAYh4C,GACjB9oC,KAAKsgF,gBAAkB1tE,EAAU5S,KAAKogF,WACtCpgF,KAAK0gF,WACLx8E,OAAOgvC,YAAclzC,KAAKugF,aAG3B15E,OAAO0tC,OAAOv0C,KAAK6M,MAAO,CACzBosB,OAAQ,GAAG6nD,MACX9nD,MAAO,GAAG4nD,MACV/tE,KAAMguE,EAAU,GAAGA,WAAcv8E,IAInCvE,mBACCC,KAAKmgF,UAAY,KACjBngF,KAAKogF,UAAY,KACjBpgF,KAAKqgF,cAAgB,KACrBrgF,KAAKsgF,eAAiB,KACtBtgF,KAAKugF,YAAc,KACnBvgF,KAAKwgF,aAAe,KACpBxgF,KAAKygF,UAAY,KACjBzgF,KAAK0gF,WAAa,KAElB1gF,KAAK+gF,6BAGNhhF,6BACCC,KAAKi/E,wBAEL/6E,OAAO8R,iBAAiB,YAAahW,KAAKw+E,yBAC1Ct6E,OAAO8R,iBAAiB,UAAWhW,KAAK0+E,uBACxC1+E,KAAKgW,iBAAiB,mBAAoBhW,KAAKq/E,aAGhDt/E,6BACCmE,OAAO0hB,oBAAoB,YAAa5lB,KAAKw+E,yBAC7Ct6E,OAAO0hB,oBAAoB,UAAW5lB,KAAK0+E,wBAI7CT,GAAOtjE,SChlBP,MAAMqmE,GAAc,CAMnBC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,MAYL,MAAMC,WAAmBnrE,GACxBrW,eAAe2K,GACd,QAASs2E,GAAYt2E,IAIvB62E,GAAWvnD,sBAAsBgnD,IC9DjC,MAAM/mD,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQsnD,GAAKlmD,GAAOpB,QAAyB51B,IAAc41B,EAAQunD,GAAKjmD,GAAOtB,QAAyB51B,IAAc41B,EAAQwnD,GAAKh8C,GAAOxL,QAAyB51B,IAAc41B,EAAQynD,GAAKlxC,GAAOvW,QAAyB51B,IAAc41B,EAAQ0nD,GAAK/wC,GAAO3W,QAAyB51B,IAAc41B,EAAQ2nD,GAAKrpC,GAAOte,QAAyB51B,IAChYg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCAClG6c,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCAClG+mB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCAClG8xB,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCAClGkyB,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCAClG65B,GAAS,CAACte,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQvb,wCCJxGnS,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,kBAAmBxH,QAAQ,s8BCOrF,MAAMiB,GAAW,CAChB/M,IAAK,YACLmY,WAAoE,CAcnEgqB,aAAc,CACb72B,KAAMw2B,GACNprB,aAAcorB,GAAaP,MAW5B0lB,MAAO,CACN37C,KAAM8zE,GACN1oE,aAAc0oE,GAAWL,KAG3BjoE,MAA+D,CAU9DzP,QAAW,CACViE,KAAMyM,QAwBT,MAAM4nE,WAAc/gE,GACnB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOgmE,GAGRlnE,oBACC,OAAOmnE,GAGRC,sBACC,OAAOjiF,KAAKopD,MAAMv+C,cAGnB22E,SACC,MAAgC,OAAzBxhF,KAAKiiF,gBAGbR,SACC,MAAgC,OAAzBzhF,KAAKiiF,gBAGbP,SACC,MAAgC,OAAzB1hF,KAAKiiF,gBAGbN,SACC,MAAgC,OAAzB3hF,KAAKiiF,gBAGbL,SACC,MAAgC,OAAzB5hF,KAAKiiF,gBAGbJ,SACC,MAAgC,OAAzB7hF,KAAKiiF,iBAIdH,GAAMnnE,SC5HNnO,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,8BAA+BxH,QAAQ,0kBCUjG,MAAMiB,GAAW,CAChB/M,IAAK,yBACLmY,WAAgF,CAM/E2iE,YAAa,CACZxvE,KAAMqL,SAQPopE,qBAAsB,CACrBz0E,KAAMqL,SAOPukE,YAAa,CACZ5vE,KAAMqL,SAYPwkE,iBAAkB,CACjB7vE,KAAMqL,WAuBT,MAAMqpE,WAA0BxwC,GAC/B5xC,cACCue,QAGDpP,sBACC,OAAOA,GAGR2L,oBACC,MAAO,CAAC82B,GAAQ92B,OAAQunE,IAGzBj+C,cACC,MAAMk+C,EAAa/jE,MAAM6lB,QAOzB,OALAk+C,EAAW3xC,OAAS,CACnB4xC,iCAAiC,EACjCC,0CAA2CviF,KAAK2wC,YAG1C0xC,EAGRtmE,sBACC,OAAOymE,GAGRr6D,0BACC,MAAO,CACNsa,GACAw7C,GACA6D,IAYF/hF,aAAawyC,EAAQ/E,GAAsB,GACrClU,MAGJt5B,KAAK6M,MAAMmC,QAAU,WACrBhP,KAAK6M,MAAMihC,OAASr6B,WACdzT,KAAKyiF,QAAQC,KAAKl1C,UAJlBlvB,MAAMjL,OAAOk/B,EAAQ/E,GAY7BztC,MAAM8rC,GAAa,EAAOsC,GAAwB,EAAO5C,GAAsB,GACzEjS,KAGJt5B,KAAKyiF,QAAQp3C,MAAMQ,EAAYsC,EAAuB5C,GAFtDjtB,MAAM+sB,MAAMQ,EAAYsC,EAAuB5C,GAMjDxrC,OAAOwyC,GACN,GAAIvyC,KAAKosC,SACR,OAAOpsC,KAAKqrC,QAGbrrC,KAAKqT,OAAOk/B,GAQbxyC,SACC,OAAOu5B,KAAYt5B,KAAKyiF,QAAQr2C,SAAW9tB,MAAM8tB,SAGlDq2C,cACC,OAAOziF,KAAKoR,WAAWrL,cAAc,gBAGtC2xC,eACC,OAAOpe,KAGRiX,qBACC,OAAQvwC,KAAK03C,WAAa13C,KAAKkiF,uBAAyB5jE,MAAMiyB,eAG/DC,qBACC,OAAOxwC,KAAK03C,WAAa13C,KAAKkiF,qBAG/B3E,4BACC,OAAO4E,GAAkB7qD,WAAWyH,QAAQuB,IAG7CvgC,iBAAiBsS,GAChBrS,KAAKwrC,QAAS,EACdxrC,KAAKk9E,sBAAsB7qE,GAG5BtS,kBAAkBsS,GACjBrS,KAAKwrC,QAAS,EACdxrC,KAAKk9E,sBAAsB7qE,GAG5BtS,sBAAsBsS,GACrB,MAAM5E,EAAO4E,EAAM5E,KAAKoC,QAAQ,OAAQ,IAExC7P,KAAKwB,UAAUiM,EAAM4E,EAAM2U,QAG5BjnB,wBACCoiF,GAAkB7qD,iBAAmBD,GAAc,uBAIrD8qD,GAAkBxnE,SCtMlB,MAAMzL,GAAW,CAChB/M,IAAK,WACLmY,WAA4E,CAQ3E5P,MAAO,CACN+C,KAAMuL,UAoBT,MAAMoxD,WAAqBrpD,GAC1B7R,sBACC,OAAOA,IAITk7D,GAAazvD,SCjCb,MAAMzL,GAAW,CAChBoL,WAA4E,CAO3EkxC,UAAW,CACV/9C,KAAM25B,MAkBT,MAAMu7C,WAAqBzG,GAC1BhtE,sBACC,OAAOA,GAGR0zE,oBACC,OAAO5iF,KAAKq8E,SAASpT,UAAY,IAGlC4Z,oBACC,OAAO7iF,KAAKy8E,SAASxT,UAAY,IAOlC6Z,iBACC,IAAIt3B,OAA+BlnD,IAAnBtE,KAAKwrD,UAA0BxrD,KAAKwrD,UAAY0gB,GAAqBlsE,KAAKm8E,sBAI1F,OAHI3wB,EAAYxrD,KAAK4iF,eAAiBp3B,EAAYxrD,KAAK6iF,iBACtDr3B,EAAYxrD,KAAK4iF,eAEXp3B,EAGRu3B,iBACC,OAAO,IAAI56B,KAAuB,IAAlBnoD,KAAK8iF,YAOtBE,oBACC,OAAO5Y,GAAa6Y,cAAcjjF,KAAK+iF,WAAW3c,UAAWpmE,KAAKm8E,sBASnEp8E,oBAAoByrD,GACnB,MAAM1yB,EAAM94B,KAAKq8E,SAASpT,UAAY,IAChClgC,EAAM/oC,KAAKy8E,SAASxT,UAAY,IAElCzd,EAAY1yB,IACf0yB,EAAY1yB,GAET0yB,EAAYziB,IACfyiB,EAAYziB,GAGb/oC,KAAKwrD,UAAYA,EASlBzrD,yBAAyByrE,EAAQC,GAChC,MAAMG,EAAUL,GAAavrE,KAAKgjF,cAAexX,EAAQC,GACzDzrE,KAAKkjF,oBAAoBtX,EAAQ3C,UAAY,KAG9ClpE,qBAAqB2wB,GACpB,MAAMyyD,EAAezyD,EAAQpN,aAAa,sBAC1C,OAAO8T,SAAS+rD,ICxGlB,MACMjnD,GAAW,+JAKjBD,GANa,kBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,wHAKjBD,GANa,kBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCAnBmrB,GAAW,qKAKjBD,GANa,mBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,8GAKjBD,GANa,mBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCAnBkpB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUF,EAAQ5S,2DAA2D4c,GAAShK,EAAQiK,QAAQi/C,2BAA2BlpD,EAAQmpD,4BAA4BjpD,GAAUF,EAAQopD,sBAAsBxyD,GAAS,WAAYC,EAAMpX,+DAAoEmX,GAAS,WAAYC,EAAMpX,uJAA4JugB,EAAQqpD,iDAAiDnpD,GAAUF,EAAQa,QAAQyoD,iCAAiCtpD,EAAQupD,+BAA+BvpD,EAAQwpD,+BAA+BxpD,EAAQypD,4BAA4BvpD,GAAUF,EAAQ0pD,2BAA4B1pD,EAAQ2pD,yBAA2BvoD,GAAOpB,QAAyB51B,4GAAqH41B,EAAQ4pD,2CAA2C5pD,EAAQ6pD,8BAA8B7pD,EAAQ8pD,8BAA8B9pD,EAAQ+pD,2BAA2B7pD,GAAUF,EAAQgqD,0BAA2BhqD,EAAQ2pD,yBAA2BroD,GAAOtB,QAAyB51B,yDAAkE4/B,GAAShK,EAAQiK,QAAQggD,2BAA2BjqD,EAAQkqD,2BAA2BhqD,GAAUF,EAAQmqD,qBAAqBvzD,GAAS,WAAYC,EAAMpX,gEAAqEmX,GAAS,WAAYC,EAAMpX,kBAC5kD2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,2CAA2CyJ,GAAUF,EAAQoqD,iCACrG9oD,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,2CAA2CyJ,GAAUF,EAAQqqD,gCCA3G/3E,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,2BAA4BxH,QAAQ,83GCWxFiB,GAAW,CAChB/M,IAAK,sBACLkD,eAAe,EACfiV,WAAY,CAMXkxC,UAAW,CACV/9C,KAAM25B,IAQP+kC,oBAAqB,CACpB1+D,KAAM44C,IAUP21B,sBAAuB,CACtBvuE,KAAM44C,IAQPm+B,mCAAoC,CACnC/2E,KAAM5G,QAGP49E,qBAAsB,CACrBh3E,KAAMqL,SAGP4rE,qBAAsB,CACrBj3E,KAAMqL,SAGPyqE,oBAAqB,CACpB91E,KAAMqL,SAGP8qE,iBAAkB,CACjBn2E,KAAMuL,QAGPkrE,gBAAiB,CAChBz2E,KAAMuL,QAGP8qE,mBAAoB,CACnBr2E,KAAMqL,UAGRyB,OAAQ,CACPoqE,iBAAkB,GAClBC,aAAc,GACdC,mBAAoB,GACpBC,kBAAmB,KAIrB,MAAMC,WAAuBhkE,GAC5B7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOipE,GAGRnqE,oBACC,OAAOA,GAGRsN,0BACC,MAAO,CAACkW,IAGTt+B,wBACCglF,GAAeztD,iBAAmBD,GAAc,sBAGjDt3B,cACCue,QAGDve,oBACCC,KAAKsjF,gBAAkByB,GAAeztD,WAAWyH,QAAQuC,IACzDthC,KAAKqkF,gBAAkBU,GAAeztD,WAAWyH,QAAQsC,IAErDrhC,KAAK6jF,2BACR7jF,KAAKskF,uBAAyBtkF,KAAKwkF,mCAAmCS,gBACtEjlF,KAAKukF,sBAAwBvkF,KAAKwkF,mCAAmCU,gBAIvEnlF,kBAAkBsS,GACjBrS,KAAKwB,UAAU,iBAAkB6Q,GAGlCtS,kBAAkBsS,GACjBrS,KAAKwB,UAAU,aAAc6Q,GAG9BtS,mBAAmBsS,GAClBrS,KAAKwB,UAAU,mBAAoB6Q,GAGpCtS,qBAAqBsS,GAChBkf,GAAQlf,IACXA,EAAMosB,iBAGHvN,GAAQ7e,IACXrS,KAAKwB,UAAU,mBAAoB6Q,GAIrCtS,mBAAmBsS,GACdkf,GAAQlf,KACXA,EAAMosB,iBACNz+B,KAAKwB,UAAU,mBAAoB6Q,IAIrCtS,kBAAkBsS,GACjBrS,KAAKwB,UAAU,kBAAmB6Q,GAGnCtS,oBAAoBsS,GACfkf,GAAQlf,IACXA,EAAMosB,iBAGHvN,GAAQ7e,IACXrS,KAAKwB,UAAU,kBAAmB6Q,GAIpCtS,kBAAkBsS,GACbkf,GAAQlf,KACXA,EAAMosB,iBACNz+B,KAAKwB,UAAU,kBAAmB6Q,IAIpCwxE,+BACC,QAAS7jF,KAAKg8E,sBAGf73C,cACC,MAAO,CACNi/C,WAAY,CACX+B,0BAA0B,EAC1BC,kCAAmCplF,KAAK0kF,sBAEzCP,WAAY,CACXgB,0BAA0B,EAC1BC,kCAAmCplF,KAAKykF,uBAK3C1pD,cACC,MAAO,CACNyoD,qBAAsBxjF,KAAK6jF,yBACxB,GAAG7jF,KAAK4jF,qBAAqB5jF,KAAKwkF,mCAAmC34B,OAAS,GAAG7rD,KAAK4jF,qBCvM5F,IAAIv5E,GD4MJ06E,GAAepqE,SC1Mf,MAAMzF,GAAoB,UACF5Q,IAAnB+F,KjMsDJW,IiMrDCX,GjMsDMP,EAAcO,gBiMnDdA,GAAe0K,gBCPjBswE,GAAsB,CAACC,EAAoBjf,EAAOiC,EAAOlU,EAASmU,KACvE,IAAIgd,EAAW,EACXC,EAAW,EACf,MAAM/c,EAAkBphC,OAAOC,UAAUg+C,GAAsBA,EAAqB/c,EAAYrzD,oBAKhG,GAAIk/C,GAAsC,OAA1BA,EAAQx/C,eAAkD,OAAxBw/C,EAAQt+B,YAAuB,CAMhF,MAAM2vD,EAAY,IAAI1f,GAAcM,EAAMD,WAC1Cqf,EAAU5d,eAAeS,EAAO,EAAG,GACnCkd,EAAWC,EAAU7c,YAGrB,MAAM8c,EAAa,IAAI3f,GAAcM,EAAMD,WAC3Csf,EAAW7c,WAAW6c,EAAW3e,aAAe2e,EAAW9c,YAAc4c,GAEzED,EAAW/7D,KAAK4qB,OAAOsxC,EAAWtf,UAAYqf,EAAUrf,WAAa,MAAW,GAAK,MAC/E,CAIN,MAAMuf,EAAY,IAAI5f,GAAcM,EAAMD,WAC1Cuf,EAAU9c,WAAW8c,EAAU5e,aAAe0B,GAC9C+c,EAAWG,EAAU/c,YACrB+c,EAAU9c,WAAW8c,EAAU5e,aAAeye,EAAW,GAEzD,MAAMI,EAAkB,IAAI7f,GAAc4f,EAAUvf,WACpDwf,EAAgB/a,YAAY,EAAG,GAC/B2a,EAAWI,EAAgBhd,YAC3B,IAAIid,EAAW,EACXL,EAAW,IACdK,EAAW,GAEZ,MAAMC,EAAiB,IAAI/f,GAAc6f,EAAgBxf,WACzD0f,EAAejd,WAAW,EAAI2c,EAAW,EAAIK,GAE7CN,EAAW/7D,KAAK4qB,OAAOuxC,EAAUvf,UAAY0f,EAAe1f,WAAa,MAAW,GAAK,EAG1F,OAAOmf,GCzCFQ,GAAyB,CAM9BC,OAAQ,SAORC,SAAU,WAOVC,MAAO,SAYR,MAAMC,WAA8B/vE,GACnCrW,eAAe2K,GACd,QAASq7E,GAAuBr7E,IAIlCy7E,GAAsBnsD,sBAAsB+rD,ICzC5C,MAAM9rD,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,mCAAmCnB,GAAS0K,EAAQrf,OAAOurE,sBAAsBlsD,EAAQQ,qBAAqBR,EAAQS,mBAAmBT,EAAQK,uBAAuBL,EAAQmsD,yBAAyBnsD,EAAQI,wBAAwBJ,EAAQG,wBAAwBD,GAAUF,EAAQvb,0EAA0Eyb,GAAUF,EAAQmc,6EAA8EwB,GAAO3d,EAAQosD,UAAW,CAACzkF,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUgkB,GAAOz5B,YAA+Cg2C,GAAO3d,EAAQqsD,OAAQ,CAAC1kF,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,kBACrsBy5B,GAAS,CAACz5B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCyJ,GAAUv4B,EAAK6F,iBAAiB0yB,GAAUv4B,EAAKsiC,aAAa/J,GAAUv4B,EAAK2kF,wBACxKhrD,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAI9uB,EAAKb,OAAS0kC,GAAO7jC,GAAsC+2C,OACpHlT,GAAS,CAAC7jC,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,4CAA6CknB,GAAOh2C,EAAM,CAACA,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUm5B,GAAO5uC,YAC3K4uC,GAAS,CAAC5uC,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAI9uB,EAAK2pD,UAAY3a,GAAOhvC,GAAsC81C,GAAO91C,KAC9HgvC,GAAS,CAAChvC,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,kBAAkByJ,GAAUv4B,EAAK0gC,oCAAoC1gC,EAAK4kF,iCAAiCrsD,GAAUv4B,EAAK2pD,8CAA8CpxB,GAAUv4B,EAAK6kF,8BAA8BtsD,GAAUv4B,EAAK00C,8BAA8Bnc,GAAUv4B,EAAKqjC,yBAAyB9K,GAAUv4B,EAAKsiC,8DAA8D/J,GAAUv4B,EAAK2pD,eAAepxB,GAAUv4B,EAAK6lE,cAAe7lE,EAAK8kF,yBAA2BnuC,GAAO32C,QAAsCyC,UACrjBk0C,GAAS,CAAC32C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,kDAAkDyJ,GAAUv4B,EAAK+kF,oBACtHjvC,GAAS,CAAC91C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAK9uB,EAAKglF,cAAwDviF,EAA7Cm0C,GAAO52C,KACjF42C,GAAS,CAAC52C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,qFAAqFyJ,GAAUv4B,EAAKilF,2CAA2C1sD,GAAUv4B,EAAKilF,wBACnNluC,GAAS,CAAC/2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,qCCP3DnkB,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,sBAAuBxH,QAAQ,0sNCqCzF,MAAMiB,GAAW,CAChB/M,IAAK,gBACLmY,WAAyE,CAMxEysE,cAAe,CACdt5E,KAAM25B,GACNruB,UAAU,EACViP,eAAe,GAehBg/D,cAAe,CACdv5E,KAAM04E,GACNttE,aAAcstE,GAAsBH,QAerCiB,gBAAiB,CAChBx5E,KAAMqL,SAOPytE,OAAQ,CACP94E,KAAM5G,OACNkS,UAAU,GAGXutE,UAAW,CACV74E,KAAM5G,OACNkS,UAAU,GAQXmuE,QAAS,CACRz5E,KAAMqL,QACNgB,aAAa,GAOdqtE,iBAAkB,CACjB15E,KAAMuL,SAGRuB,OAAqE,CAMpEwrB,OAAQ,GAMRqhD,SAAU,KAINC,GAAY,CAAC90E,EAAG+0E,EAAMC,IAASh1E,EAAIiX,KAAKsP,IAAIwuD,EAAMC,IAASh1E,EAAIiX,KAAKuf,IAAIu+C,EAAMC,GAgBpF,MAAMC,WAAkB7E,GACvBzzE,sBACC,OAAOA,GAGR6M,sBACC,OAAO0rE,GAGR5sE,oBACC,OAAO6sE,GAGR3nF,oBACC,MAAMq8E,EAAaP,GAA4B5mE,MAC/CjV,KAAK2nF,YAAYvL,GACjBp8E,KAAK4nF,eAAexL,GAQrBr8E,YAAYq8E,GACX,GAAIp8E,KAAKknF,QACR,OAGDlnF,KAAKumF,OAAS,GAEd,MAAMxxE,EAAiB/U,KAAK6nF,qBACtBC,EAAc1L,EAAWxlB,UAAU,OAAQ52D,KAAKm8E,sBAChD4L,EAAuB/nF,KAAK6jF,0BAA4BzH,EAAWxlB,UAAU,OAAQ52D,KAAKg8E,uBAC1FgM,EAAqBR,GAAUlwD,WAAWyH,QAAQyC,IAClDymD,EAAaT,GAAUlwD,WAAWyH,QAAQ0C,IAC1Cs6C,EAAW/7E,KAAKkoF,eAChBC,EAAY/d,GAAagC,gBAAgB,IAAIjkB,KAAQnoD,KAAKm8E,sBAC1DiM,EAAepoF,KAAKgjF,cACpBtX,EAAU1rE,KAAKq8E,SACf1Q,EAAU3rE,KAAKy8E,SAEf4L,EAAiBroF,KAAK6jF,0BAA4B7jF,KAAKsoF,iBAAiBvM,GAE9E,IAAIxU,EAAO,GACX,IAAK,IAAI7gE,EAAI,EAAGA,EAAI6hF,GAAkB7hF,IAAK,CAC1C,MAAM8kD,EAAYuwB,EAAS9S,UAAY,IAEvC,IAAIuf,EAAezM,EAASzH,SAAWv/D,EACnCyzE,EAAe,IAClBA,GAhEiB,GAmElB,MAAMC,EAAY1M,EAASzwB,aAAe88B,EAAa98B,YAAcywB,EAASxwB,YAAc68B,EAAa78B,UACnGm9B,EAAa1oF,KAAK2oF,eAAen9B,GACjCo9B,EAAoB5oF,KAAK6oF,2BAA2Br9B,GACpDs9B,EAAe/M,EAASzwB,aAAe88B,EAAa98B,WACpDy9B,EAAY/oF,KAAKgpF,WAAWjN,GAC5BkN,EAAalN,EAAS9S,UAAYyC,EAAQzC,WAAa8S,EAAS9S,UAAY0C,EAAQ1C,UACpFigB,EAAUnN,EAASoN,OAAOhB,GAC1BiB,EAAmBrN,EAASzH,WAAav/D,EAEzCs0E,EAAsBN,EAAY,GAAGf,KAAwB,GAC7DsB,EAAiBJ,EAAU,GAAGjB,KAAgB,GAC9C1xC,EAAYv2C,KAAK6jF,yBACpB,GAAGyF,IAAiBD,IAAsBvB,EAAY/L,EAASzwB,eAAeywB,EAASxwB,cAAcwwB,EAAS5Q,cAAc4c,EAAqBM,EAAe/8B,eAAe+8B,EAAe98B,cAAc88B,EAAeld,YAC3N,GAAGme,IAAiBD,IAAsBvB,EAAY/L,EAASzwB,eAAeywB,EAASxwB,cAAcwwB,EAAS5Q,YAE3GzD,EAAM,CACXlc,UAAWA,EAAUzjD,WACrB0+E,SAAUgC,EACVlmD,UAAWkmD,EAAY,IAAM,KAC7Bc,SAAUb,EACVhhB,IAAKqU,EAASxwB,UACdq7B,UAAW5mF,KAAK6jF,0BAA4BwE,EAAe98B,UAC3Do7B,yBAA0B3mF,KAAK6jF,yBAC/B1/C,QAAS,0BAA0BqkD,IACnCjyC,UAAAA,EACAmwC,aAAcgC,EAAa,OAAS,QACpCxjD,aAAc4jD,EAAe,YAASxkF,EACtC61B,SAAU8uD,GAGPG,IACH1hB,EAAIvjC,SAAW,oBAGZukD,IACHhhB,EAAIvjC,SAAW,0BAGZykD,IACHlhB,EAAIvjC,SAAW,kCAGZ+kD,IACHxhB,EAAIvjC,SAAW,qBAGZ2kD,IACHphB,EAAIvjC,SAAW,4BAGZ4kD,IACHrhB,EAAIvjC,SAAW,0BAGZ8kD,IACHvhB,EAAIvjC,SAAW,0BAGZnkC,KAAK6jF,2BACRnc,EAAIvjC,SAAW,gCAGhBojC,EAAK5mE,KAAK+mE,GAEW6gB,IAAjBC,GACHjhB,EAAKt+C,QAAQ,CACZ69D,QAASzB,GAAoBnwE,KAAqB6mE,EAASe,cAAef,EAAS5Q,UAAWl2D,KAAamnE,GAC3GyK,SAAU7mF,KAAKwpF,wBAIGjB,IAAhBhhB,EAAKvmE,SACRhB,KAAKumF,OAAO5lF,KAAK4mE,GACjBA,EAAO,IAGRwU,EAASlQ,QAAQkQ,EAASxwB,UAAY,GAClCvrD,KAAK6jF,0BACRwE,EAAexc,QAAQwc,EAAe98B,UAAY,IAUrDxrD,eAAeq8E,GACd,GAAIp8E,KAAKknF,QACR,OAGD,IAAIsB,EAEJ,MAAMiB,EAAgBrN,EAAWnlB,QAAQ,OAAQj3D,KAAKm8E,sBAChDuN,EAAuBtN,EAAWnlB,QAAQ,cAAej3D,KAAKm8E,sBACpE,IAAIwN,EAEJ3pF,KAAKsmF,UAAY,GACjBtmF,KAAKsmF,UAAU3lF,KAAK,CACnBwjC,QAAS,iBACTz8B,KAAM8/E,GAAUlwD,WAAWyH,QAAQwC,MAEpC,IAAK,IAAI76B,EAAI,EAAGA,EA3KG,EA2KeA,IACjC8hF,EAAe9hF,EAAI1G,KAAK6nF,qBACpBW,EAAeD,IAClBC,GA9KiB,GAgLlBmB,EAAU,CACTjiF,KAAM+hF,EAAcjB,GACpBhC,eAAgBkD,EAAqBlB,GACrCrkD,QAAS,kBAGVnkC,KAAKsmF,UAAU3lF,KAAKgpF,GAGrB3pF,KAAKsmF,UAAU,GAAGniD,SAAW,mBAEzBnkC,KAAKwpF,uBACRxpF,KAAKsmF,UAAUnjF,QAIjBpD,mBACKC,KAAK4pF,aAAe5pF,KAAKknF,SAC5BlnF,KAAKwR,QAIPzR,aACCC,KAAK4pF,YAAa,EAGnB7pF,cACCC,KAAK4pF,YAAa,EASnB7pF,eAAeyrD,GACd,OAAIxrD,KAAKgnF,gBAAkBb,GAAsBH,OACzCx6B,IAAcxrD,KAAK+mF,cAAc,GAIlC/mF,KAAK+mF,cAAcrmF,SAAS8qD,GASpCzrD,2BAA2ByrD,GAE1B,QAAIxrD,KAAKgnF,gBAAkBb,GAAsBD,QAAUlmF,KAAK+mF,cAAc/lF,UAK5C,IAA9BhB,KAAK+mF,cAAc/lF,QAAgBhB,KAAKmnF,iBACpCE,GAAU77B,EAAWxrD,KAAK+mF,cAAc,GAAI/mF,KAAKmnF,kBAIlDE,GAAU77B,EAAWxrD,KAAK+mF,cAAc,GAAI/mF,KAAK+mF,cAAc,KASvEhnF,YAAYsS,EAAOw3E,GAClB,MAAM9gF,EAASsJ,EAAMtJ,OAErB,IAAK/I,KAAK8pF,cAAc/gF,GACvB,OAGD,MAAMyiD,EAAYxrD,KAAK+pF,qBAAqBhhF,GAE5C/I,KAAKkjF,oBAAoB13B,GACzBxrD,KAAKgqF,yBAEDhqF,KAAKgnF,gBAAkBb,GAAsBH,OAChDhmF,KAAK+mF,cAAgB,CAACv7B,GACZxrD,KAAKgnF,gBAAkBb,GAAsBF,SACnDjmF,KAAK+mF,cAAc/lF,OAAS,GAAK6oF,EACpC7pF,KAAKiqF,mBAAmBz+B,GAExBxrD,KAAKkqF,4BAA4B1+B,GAGlCxrD,KAAK+mF,cAA+C,IAA9B/mF,KAAK+mF,cAAc/lF,OAAgB,IAAIhB,KAAK+mF,cAAev7B,GAAa,CAACA,GAGhGxrD,KAAKwB,UAAU,SAAU,CACxBgqD,UAAWxrD,KAAKwrD,UAChB2+B,MAAOnqF,KAAK+mF,gBASdhnF,YAAYsS,GACXrS,KAAKumF,OAAO3kF,QAAQ2lE,IAKnB,IADQ,IAHcA,EAAK6iB,UAAUvoF,IACpC,MAAMupD,EAAOgf,GAAa6Y,cAAyC,IAA3B7rD,SAASv1B,EAAK2pD,YACtD,OAAOJ,EAAKE,aAAetrD,KAAKgjF,cAAc13B,YAAcF,EAAKG,YAAcvrD,KAAKgjF,cAAcz3B,YAEhF,CACmBgc,EAAKp1D,KAAKtQ,GAAQA,EAAK2pD,YAAcxrD,KAAK+mF,cAAcrmF,SAAS02B,SAASv1B,EAAK2pD,aAEnH+b,EAAKrkE,OAAOrB,GAAQA,EAAK2pD,WAAW5pD,QAAQC,IAC3C7B,KAAKqqF,yBAAyBjzD,SAASv1B,EAAK2pD,cAG7C+b,EAAKrkE,OAAOrB,GAAQA,EAAK2pD,WAAW5pD,QAAQC,IAC3C7B,KAAKsqF,8BAA8BlzD,SAASv1B,EAAK2pD,iBAMrDxrD,KAAKwB,UAAU,SAAU,CACxBgqD,UAAWxrD,KAAKwrD,UAChB2+B,MAAOnqF,KAAK+mF,gBAIdhnF,4BAA4ByrD,GACvBxrD,KAAK+mF,cAAcrmF,SAAS8qD,GAC/BxrD,KAAKsqF,8BAA8B9+B,GAEnCxrD,KAAKqqF,yBAAyB7+B,GAIhCzrD,yBAAyByrD,GACnBxrD,KAAK+mF,cAAcrmF,SAAS8qD,KAChCxrD,KAAK+mF,cAAgB,IAAI/mF,KAAK+mF,cAAev7B,IAI/CzrD,8BAA8ByrD,GAC7BxrD,KAAK+mF,cAAgB/mF,KAAK+mF,cAAc7jF,OAAOwH,GAASA,IAAU8gD,GAQnEzrD,mBAAmByrD,GAClB,MAAM1yB,EAAMtP,KAAKsP,OAAO94B,KAAK+mF,eACvBh+C,EAAMvf,KAAKuf,OAAO/oC,KAAK+mF,eAC7B,IAAIwD,EACAC,EACAjkD,GAAS,EAEb,GAAIilB,EAAY1yB,EACfyxD,EAAQ/+B,EACRg/B,EAAM1xD,OACA,GAAI0yB,GAAa1yB,GAAO0yB,GAAaziB,EAAK,CAC1Bvf,KAAK+rB,IAAIiW,EAAY1yB,GACrBtP,KAAK+rB,IAAIiW,EAAYziB,IAG1CwhD,EAAQ/+B,EACRg/B,EAAMzhD,IAENwhD,EAAQzxD,EACR0xD,EAAMh/B,GAEPjlB,GAAS,OAETgkD,EAAQxhD,EACRyhD,EAAMh/B,EAGP,MAAMi/B,EAAYrgB,GAAa6Y,cAAsB,IAARsH,GACvCG,EAAUtgB,GAAa6Y,cAAoB,IAANuH,GAE3C,KAAOC,EAAUxhB,WAAayhB,EAAQzhB,WACrCjpE,KAAKumC,EAAS,8BAAgC,4BAA4BkkD,EAAUxhB,UAAY,KAChGwhB,EAAU5e,QAAQ4e,EAAUl/B,UAAY,GAS1CxrD,aAAasS,GACZ,MAAMs4E,EAAct4E,EAAMtJ,OAAO6hF,QAAQ,gBACrCD,GAAe3qF,KAAKgnF,gBAAkBb,GAAsBD,OAAuC,IAA9BlmF,KAAK+mF,cAAc/lF,SAC3FhB,KAAKmnF,iBAAmBnnF,KAAK+pF,qBAAqBY,IAIpD5qF,WAAWsS,GACV,IAAIosB,GAAiB,EAErB,GAAIvN,GAAQ7e,IAAUgf,GAAahf,GAClCrS,KAAK6qF,YAAYx4E,EAAOgf,GAAahf,SAC/B,GAAIkf,GAAQlf,IAAUmf,GAAanf,GACzCA,EAAMosB,sBACA,GAAIhN,GAAOpf,GACjBrS,KAAK8qF,oBAAoB,EAAG,YACtB,GAAIp5D,GAAQrf,GAClBrS,KAAK8qF,mBAAmB,EAAG,YACrB,GAAIn5D,GAAKtf,GACfrS,KAAK8qF,oBAAoB,EAAG,YACtB,GAAIl5D,GAAOvf,GACjBrS,KAAK8qF,mBAAmB,EAAG,YACrB,GAAIt4D,GAASngB,GACnBrS,KAAK8qF,oBAAoB,EAAG,cACtB,GAAIr4D,GAAWpgB,GACrBrS,KAAK8qF,mBAAmB,EAAG,cACrB,GAAIp4D,GAAcrgB,IhJvXPA,CAAAA,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,KAAqBK,GAAkBjf,GAAO,GAAO,GAAM,GgJuX3G04E,CAAY14E,GAC9CrS,KAAK8qF,oBAAoB,EAAG,aACtB,GAAIn4D,GAAgBtgB,IhJrXPA,CAAAA,IAAUA,EAAM5H,IAAoB,aAAd4H,EAAM5H,IAAqB4H,EAAM8e,UAAYF,KAAuBK,GAAkBjf,GAAO,GAAO,GAAM,GgJqX/G24E,CAAc34E,GAClDrS,KAAK8qF,mBAAmB,EAAG,aACrB,GAAIl4D,GAAkBvgB,GAC5BrS,KAAK8qF,oBAAoB,GAAI,aACvB,GAAIj4D,GAAoBxgB,GAC9BrS,KAAK8qF,mBAAmB,GAAI,aACtB,GAAI74D,GAAO5f,IAAU6f,GAAM7f,GACjCrS,KAAKirF,aAAah5D,GAAO5f,SACnB,GAAI8f,GAAW9f,GAAQ,CAC7B,MAAM0pE,EAAW,IAAI3R,GAAapqE,KAAKgjF,cAAehjF,KAAKm8E,sBAC3DJ,EAASlQ,QAAQ,GACjB7rE,KAAKkrF,cAAcnP,EAAS9S,UAAY,UAClC,GAAI72C,GAAU/f,GAAQ,CAC5B,MAAM0pE,EAAW,IAAI3R,GAAapqE,KAAKgjF,cAAehjF,KAAKm8E,sBAC3DJ,EAASjQ,SAASiQ,EAASzwB,WAAa,GACxCywB,EAASlQ,QAAQ,GACjB7rE,KAAKkrF,cAAcnP,EAAS9S,UAAY,UAExCxqC,GAAiB,EAGdA,GACHpsB,EAAMosB,iBAIR1+B,SAASsS,GAEJkf,GAAQlf,IAAWmf,GAAanf,IAAUrS,KAAKgnF,gBAAkBb,GAAsBF,SAC1FjmF,KAAK6qF,YAAYx4E,GAAO,GACdmf,GAAanf,IACvBrS,KAAKmrF,YAAY94E,GASnBtS,SAASsS,GACRrS,KAAK6qF,YAAYx4E,EAAOA,EAAM4gB,UAQ/BlzB,aAAaqrF,GACZprF,KAAKumF,OAAO3kF,QAAQ2lE,IAKnB,IADQ,IAHcA,EAAK6iB,UAAUvoF,IACpC,MAAMupD,EAAOgf,GAAa6Y,cAAyC,IAA3B7rD,SAASv1B,EAAK2pD,YACtD,OAAOJ,EAAKE,aAAetrD,KAAKgjF,cAAc13B,YAAcF,EAAKG,YAAcvrD,KAAKgjF,cAAcz3B,YAEhF,CAClB,MAAMj0C,EAAQ8zE,EAAc,EAAI,EAChCprF,KAAKkrF,cAAc9zD,SAASmwC,EAAKjwD,GAAOk0C,eAS3CzrD,mBACC,QAASC,KAAKgjF,cAAc13B,aAAetrD,KAAKq8E,SAAS/wB,YAActrD,KAAKgjF,cAAc7X,YAAcnrE,KAAKq8E,SAASlR,WAOvHprE,eACC,QAASC,KAAKgjF,cAAc13B,aAAetrD,KAAKy8E,SAASnxB,YAActrD,KAAKgjF,cAAc7X,YAAcnrE,KAAKy8E,SAAStR,WAQvHprE,oBACCC,KAAK8qF,oBAAoB,EAAG,SAQ7B/qF,gBACCC,KAAK8qF,mBAAmB,EAAG,SAS5B/qF,mBAAmByrE,EAAQC,GAE1BzrE,KAAKqrF,yBAAyB7f,EAAQC,GACtCzrE,KAAKgqF,yBAGLhqF,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAQ9CzrD,cAAc2K,GACb1K,KAAKkjF,oBAAoBx4E,GACzB1K,KAAKgqF,yBACLhqF,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAO9CzrD,yBACKC,KAAKgnF,gBAAkBb,GAAsBD,OAAuC,IAA9BlmF,KAAK+mF,cAAc/lF,SAC5EhB,KAAKmnF,iBAAmBnnF,KAAKwrD,WAI/Bg+B,4BACC,OAAIxpF,KAAKm8E,uBAAyB91B,GAAaL,WAIxChmD,KAAKinF,gBAGbpD,+BACC,QAAS7jF,KAAKg8E,sBAGfj8E,WAAWsmE,GACV,MAAM+V,EAAaP,GAA4B5mE,MAEzCuwE,EAAWnf,EAAMiO,SACtBgX,EAAgBlP,EAAWve,kBAC3B0tB,EAAcnP,EAAWte,gBAE1B,OAAQ0nB,GAAY8F,GAAiB9F,GAAY+F,GAC5CA,EAAcD,IAAkB9F,GAAY8F,GAAiB9F,GAAY+F,GAG/ExrF,cAAcgJ,GACb,MAAMyiF,EAAeziF,EAAO6jB,WAC5B,OAAQ7jB,EAAO0iF,UAAU3qF,QAAQ,gBAAkB,GAAO0qF,GAAgBA,EAAav8E,WAAau8E,EAAav8E,UAAUg+B,SAAS,eAGrIltC,iBAAiBg8E,GAChB,OAAO,IAAI3R,GAAa2R,EAAU/7E,KAAKg8E,uBAGxCj8E,eACC,IAAI2rF,EAEJ,MAAM32E,EAAiB/U,KAAK6nF,qBAGtB8D,EAAW,IAAIvhB,GAAapqE,KAAKgjF,cAAehjF,KAAKm8E,sBAW3D,OAVAwP,EAAS9f,QAAQ,GACjB6f,EAAwBC,EAASrX,SAAWv/D,EACxC22E,EAAwB,IAC3BA,EAAwB,EAAIA,GAGzBA,EAAwB,GAC3BC,EAAS9f,QAAQ,EAAI6f,GAGfC,EAGR5rF,qBACC,MAAMq8E,EAAaP,GAA4B5mE,MACzCqwE,EAAqBpwE,KAC3B,OAAOmyB,OAAOC,UAAUg+C,GAAsBA,EAAqBlJ,EAAWlnE,oBAG/E2F,aACC,MAAO,CACNurE,QAAS,CACRp3E,QAAShP,KAAKknF,QAAU,OAAS,OACjC0E,kBAAmB,UAEpB7mD,KAAM,CACL/L,MAAO,SAKVqd,0BACC,OAAOr2C,KAAK6jF,yBACT,GAAG7jF,KAAKm8E,gDAAgDn8E,KAAKg8E,iCAC7D,GAAGh8E,KAAKm8E,iCAIbqL,GAAU7sE,SC5uBV,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,oGAAoGuJ,EAAQQ,qBAAqBR,EAAQS,mBAAmBT,EAAQ2xD,yBAAyB3xD,EAAQI,cAAeud,GAAO3d,EAAQ4xD,QAAS,CAACjqF,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUgkB,GAAOz5B,YAChVy5B,GAAS,CAACz5B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,+BAAgCknB,GAAOh2C,EAAM,CAACA,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,YAC9J25B,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,2BAA2ByJ,GAAUv4B,EAAK2pD,uBAAuBpxB,GAAUv4B,EAAK0gC,mCAAmC1gC,EAAK4kF,oBAAoBrsD,GAAUv4B,EAAKsiC,4CAA4C/J,GAAUv4B,EAAK6kF,kBAAkBtsD,GAAUv4B,EAAK6F,cCAlT8E,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,q+DCiB3F,MAAMiB,GAAW,CAChB/M,IAAK,kBACLmY,WAA2E,CAM1EysE,cAAe,CACdt5E,KAAM25B,GACNruB,UAAU,EACViP,eAAe,GAGhB8jE,QAAS,CACRr+E,KAAM5G,OACNkS,UAAU,GAGXmuE,QAAS,CACRz5E,KAAMqL,QACNgB,aAAa,IAGfS,OAAuE,CAMtEwrB,OAAQ,GAORqhD,SAAU,KAqBZ,MAAM2E,WAAoBpJ,GACzBzzE,sBACC,OAAOA,GAGR6M,sBACC,OAAOiwE,GAGRnxE,oBACC,OAAOA,GAGR9a,oBACCC,KAAKisF,eAGNlsF,eACC,GAAIC,KAAKknF,QACR,OAGD,MACMY,EADajM,GAA4B5mE,MAChB2hD,UAAU,OAAQ52D,KAAKm8E,sBAEhD+P,EAAS,GACT9D,EAAepoF,KAAKgjF,cACpBtX,EAAU1rE,KAAKq8E,SACf1Q,EAAU3rE,KAAKy8E,SACfV,EAAW,IAAI3R,GAAage,EAAcpoF,KAAKm8E,sBACrD,IAAI3wB,EAGJ,IAAK,IAAI9kD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC5Bq1E,EAASjQ,SAASplE,GAClB8kD,EAAYuwB,EAAS9S,UAAY,IAEjC,MAAMyf,EAAa1oF,KAAK+mF,cAAc50E,KAAKg6E,IAC1C,MAAM/gC,EAAOgf,GAAa6Y,cAA8B,IAAhBkJ,EAAsBnsF,KAAKm8E,sBACnE,OAAO/wB,EAAK+f,YAAc4Q,EAAS5Q,WAAa/f,EAAKE,aAAeywB,EAASzwB,aAExEm9B,EAAY1M,EAASzwB,aAAe88B,EAAa98B,WACjD29B,EAAajpF,KAAKosF,wBAAwBrQ,EAAUrQ,EAASC,GAE7DlE,EAAQ,CACbjc,UAAWA,EAAUzjD,WACrB0+E,SAAUgC,EACVlmD,UAAWkmD,EAAY,IAAM,KAC7Bc,SAAUb,EACVhC,aAAcgC,EAAa,OAAS,QACpChhF,KAAMogF,EAAYphF,GAClByzB,SAAU8uD,EACV9kD,QAAS,eAGNukD,IACHjhB,EAAMtjC,SAAW,0BAGd8kD,IACHxhB,EAAMtjC,SAAW,0BAGlB,MAAMkoD,EAAej1D,SAAS1wB,EA/EhB,GAiFVwlF,EAAOG,GACVH,EAAOG,GAAc1rF,KAAK8mE,GAE1BykB,EAAOG,GAAgB,CAAC5kB,GAI1BznE,KAAK8rF,QAAUI,EAGhBnsF,mBACMC,KAAKknF,SACTlnF,KAAKwR,QAIPzR,WAAWsS,GACV,IAAIosB,GAAiB,EAEjBvN,GAAQ7e,GACXrS,KAAK6rF,aAAax5E,GACRkf,GAAQlf,GAClBA,EAAMosB,iBACIhN,GAAOpf,GACjBrS,KAAK8qF,oBAAoB,GACfp5D,GAAQrf,GAClBrS,KAAK8qF,mBAAmB,GACdn5D,GAAKtf,GACfrS,KAAK8qF,oBA7GS,GA8GJl5D,GAAOvf,GACjBrS,KAAK8qF,mBA/GS,GAgHJt4D,GAASngB,GACnBrS,KAAK8qF,oBAlHU,IAmHLr4D,GAAWpgB,GACrBrS,KAAK8qF,mBApHU,IAqHL74D,GAAO5f,IAAU6f,GAAM7f,GACjCrS,KAAKirF,aAAah5D,GAAO5f,IACf8f,GAAW9f,GACrBrS,KAAKkrF,cAAc9zD,SAASp3B,KAAK8rF,QAAQ,GAAG,GAAGtgC,YACrCp5B,GAAU/f,GACpBrS,KAAKkrF,cAAc9zD,SAASp3B,KAAK8rF,QAAQQ,GAA0BC,GAAc/gC,YAEjF/sB,GAAiB,EAGdA,GACHpsB,EAAMosB,iBAIR1+B,aAAaqrF,GACZprF,KAAK8rF,QAAQlqF,QAAQ4qF,IAEpB,IAAoB,IADDA,EAAIpC,UAAUvoF,GAAQuoE,GAAa6Y,cAAyC,IAA3B7rD,SAASv1B,EAAK2pD,YAAmBF,aAAetrD,KAAKgjF,cAAc13B,YAChH,CACtB,MAAMh0C,EAAQ8zE,EAAc,EAAImB,EAChCvsF,KAAKkrF,cAAc9zD,SAASo1D,EAAIl1E,GAAOk0C,eAU1CzrD,cAAc2K,GACb1K,KAAKkjF,oBAAoBx4E,GACzB1K,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAQ9CzrD,mBAAmByrE,GAElBxrE,KAAKqrF,yBAAyB7f,EAAQ,SAGtCxrE,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAG9CzrD,SAASsS,GACJkf,GAAQlf,IACXrS,KAAK6rF,aAAax5E,GASpBtS,aAAasS,GAEZ,GADAA,EAAMosB,iBACFpsB,EAAMtJ,OAAO0iF,UAAU3qF,QAAQ,gBAAkB,EAAG,CACvD,MAAM0qD,EAAYxrD,KAAK+pF,qBAAqB13E,EAAMtJ,QAClD/I,KAAKkjF,oBAAoB13B,GACzBxrD,KAAKwB,UAAU,SAAU,CAAEgqD,UAAWxrD,KAAKwrD,aAQ7CzrD,mBACC,OAAOC,KAAKgjF,cAAc7X,YAAcnrE,KAAKq8E,SAASlR,UAOvDprE,eACC,OAAOC,KAAKgjF,cAAc7X,YAAcnrE,KAAKy8E,SAAStR,UAQvDprE,oBACCC,KAAK8qF,oBA/MW,IAuNjB/qF,gBACCC,KAAK8qF,mBAxNW,IA2NjB/qF,wBAAwBqrD,EAAMsgB,EAASC,GACtC,MAAMlE,EAAQrc,EAAKE,WACbgc,EAAOlc,EAAK+f,UACZshB,EAAU/gB,EAAQP,UAClBuhB,EAAWhhB,EAAQpgB,WACnBqhC,EAAUhhB,EAAQR,UAClByhB,EAAWjhB,EAAQrgB,WAEzB,OAAOgc,EAAOmlB,GAAYnlB,IAASmlB,GAAWhlB,EAAQilB,GAAaplB,EAAOqlB,GAAYrlB,IAASqlB,GAAWllB,EAAQmlB,GAIpHb,GAAYpxE,SCrSZ,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,oGAAoGuJ,EAAQQ,qBAAqBR,EAAQS,mBAAmBT,EAAQ2yD,wBAAwB3yD,EAAQI,cAAeud,GAAO3d,EAAQ4yD,OAAQ,CAACjrF,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUgkB,GAAOz5B,YAC9Uy5B,GAAS,CAACz5B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,0CAA2CknB,GAAOh2C,EAAM,CAACA,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,YACzK25B,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,4BAA4ByJ,GAAUv4B,EAAK2pD,yBAAyBpxB,GAAUv4B,EAAK0gC,oCAAoC1gC,EAAK4kF,oBAAoBrsD,GAAUv4B,EAAKsiC,4CAA4C/J,GAAUv4B,EAAK6kF,kBAAkBtsD,GAAUv4B,EAAKylE,cCAtT96D,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,uBAAwBxH,QAAQ,o7DCmB1F,MAAMiB,GAAW,CAChB/M,IAAK,iBACLmY,WAA0E,CAMzEysE,cAAe,CACdt5E,KAAM25B,GACNruB,UAAU,EACViP,eAAe,GAGhB8kE,OAAQ,CACPr/E,KAAM5G,OACNkS,UAAU,GAGXmuE,QAAS,CACRz5E,KAAMqL,QACNgB,aAAa,IAGfS,OAAsE,CAMrEwrB,OAAQ,GAORqhD,SAAU,KAmBZ,MAAM2F,WAAmBpK,GACxBzzE,sBACC,OAAOA,GAGR2L,oBACC,OAAOA,GAGRkB,sBACC,OAAOixE,GAGRjtF,oBACCC,KAAKitF,cAGNltF,cACC,GAAIC,KAAKknF,QACR,OAGD,MAAMgG,EAAcxgB,GAAWwB,gBAAgB,CAAEK,OAAQ,IAAKpkE,aAAcnK,KAAKm8E,sBAAwBlnE,MAEzGjV,KAAKmtF,sBACLntF,KAAKotF,UAAYptF,KAAKqtF,WAxCN,GAwC+B,EAE/C,MAAMjF,EAAepoF,KAAKgjF,cACpBtX,EAAU1rE,KAAKq8E,SACf1Q,EAAU3rE,KAAKy8E,SACfV,EAAW,IAAI3R,GAAage,EAAcpoF,KAAKm8E,sBACrDJ,EAAS9P,QAAQjsE,KAAKqtF,YAEtB,MAAMC,EAAY,GAClB,IAAI9hC,EAGJ,IAAK,IAAI9kD,EAAI,EAAGA,EApDA,GAoDeA,IAAK,CACnC8kD,EAAYuwB,EAAS9S,UAAY,IAEjC,MAAMyf,EAAa1oF,KAAK+mF,cAAc50E,KAAKg6E,GAC7B/hB,GAAa6Y,cAA8B,IAAhBkJ,EAAsBnsF,KAAKm8E,sBACvDhR,YAAc4Q,EAAS5Q,WAE9Bsd,EAAY1M,EAAS5Q,YAAcid,EAAajd,UAChD8d,EAAalN,EAAS5Q,UAAYO,EAAQP,WAAa4Q,EAAS5Q,UAAYQ,EAAQR,UAEpF7D,EAAO,CACZ9b,UAAWA,EAAUzjD,WACrBw6B,UAAWkmD,EAAY,IAAM,KAC7BhC,SAAUgC,EACVc,SAAUb,EACVhC,aAAcgC,EAAa,OAAS,QACpCphB,KAAM4lB,EAAY3e,OAAOwN,EAASwR,iBAClCpzD,SAAU8uD,EACV9kD,QAAS,eAGNukD,IACHphB,EAAKnjC,SAAW,0BAGb8kD,IACH3hB,EAAKnjC,SAAW,0BAGjB,MAAMqpD,EAAgBp2D,SAAS1wB,EAhFjB,GAkFV4mF,EAAUE,GACbF,EAAUE,GAAe7sF,KAAK2mE,GAE9BgmB,EAAUE,GAAiB,CAAClmB,GAG7ByU,EAAS9P,QAAQ8P,EAAS5Q,UAAY,GAGvCnrE,KAAK8sF,OAASQ,EAGfvtF,sBACC,MAAM0tF,EAAkB3R,GAAmB97E,KAAKm8E,sBAAsBhR,UAChEuiB,EAAc1tF,KAAKgjF,cAAc7X,UAGlCnrE,KAAKqtF,aACTrtF,KAAKqtF,WAAaK,EAAcpB,IAI7BoB,EAAc1tF,KAAKqtF,WACtBrtF,KAAKqtF,YA1GU,GA2GLK,GAAe1tF,KAAKqtF,WA3Gf,KA4GfrtF,KAAKqtF,YA5GU,IAgHZ7jE,KAAK+rB,IAAIv1C,KAAKqtF,WAAaK,IAhHf,KAiHf1tF,KAAKqtF,WAAaK,EAAcpB,IAIjCtsF,KAAKqtF,WAAa7jE,KAAKuf,IAAI/oC,KAAKqtF,WAAYrtF,KAAKq8E,SAASlR,WAC1DnrE,KAAKqtF,WAAa7jE,KAAKsP,IAAI94B,KAAKqtF,WAAYrtF,KAAKy8E,SAAStR,WAGtDnrE,KAAKqtF,WAAaI,EAzHN,GAyHoC,IACnDztF,KAAKqtF,WAAaI,EA1HH,GA0HiC,GAIlD1tF,mBACMC,KAAKknF,SACTlnF,KAAKwR,QAIPzR,WAAWsS,GACV,IAAIosB,GAAiB,EAEjBvN,GAAQ7e,GACXrS,KAAK6sF,YAAYx6E,GACPkf,GAAQlf,GAClBA,EAAMosB,iBACIhN,GAAOpf,GACjBrS,KAAK8qF,oBAAoB,GACfp5D,GAAQrf,GAClBrS,KAAK8qF,mBAAmB,GACdn5D,GAAKtf,GACfrS,KAAK8qF,oBA/IS,GAgJJl5D,GAAOvf,GACjBrS,KAAK8qF,mBAjJS,GAkJJt4D,GAASngB,GACnBrS,KAAK8qF,oBApJU,IAqJLr4D,GAAWpgB,GACrBrS,KAAK8qF,mBAtJU,IAuJL74D,GAAO5f,IAAU6f,GAAM7f,GACjCrS,KAAKirF,aAAah5D,GAAO5f,IACf8f,GAAW9f,GACrBrS,KAAKkrF,cAAc9zD,SAASp3B,KAAK8sF,OAAO,GAAG,GAAGthC,YACpCp5B,GAAU/f,GACpBrS,KAAKkrF,cAAc9zD,SAASp3B,KAAK8sF,OAAOR,GAA0BC,GAAc/gC,YAEhF/sB,GAAiB,EAGdA,GACHpsB,EAAMosB,iBAIR1+B,aAAaqrF,GACZprF,KAAK8sF,OAAOlrF,QAAQ4qF,IAEnB,IAAoB,IADDA,EAAIpC,UAAUvoF,GAAQuoE,GAAa6Y,cAAyC,IAA3B7rD,SAASv1B,EAAK2pD,YAAmB2f,YAAcnrE,KAAKgjF,cAAc7X,WAC/G,CACtB,MAAM7zD,EAAQ8zE,EAAc,EAAImB,EAChCvsF,KAAKkrF,cAAc9zD,SAASo1D,EAAIl1E,GAAOk0C,eAU1CzrD,cAAc2K,GACb1K,KAAKkjF,oBAAoBx4E,GACzB1K,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAQ9CzrD,mBAAmByrE,GAElBxrE,KAAKqrF,yBAAyB7f,EAAQ,QAGtCxrE,KAAKwB,UAAU,WAAY,CAAEgqD,UAAWxrD,KAAKwrD,YAG9CzrD,SAASsS,GACJkf,GAAQlf,IACXrS,KAAK6sF,YAAYx6E,GASnBtS,YAAYsS,GAEX,GADAA,EAAMosB,iBACFpsB,EAAMtJ,OAAO0iF,UAAU3qF,QAAQ,gBAAkB,EAAG,CACvD,MAAM0qD,EAAYxrD,KAAK+pF,qBAAqB13E,EAAMtJ,QAClD/I,KAAKkjF,oBAAoB13B,GACzBxrD,KAAKwB,UAAU,SAAU,CAAEgqD,UAAWxrD,KAAKwrD,aAQ7CzrD,mBACC,OAAOC,KAAKqtF,WAAartF,KAAKq8E,SAASlR,UAOxCprE,eACC,OAAOC,KAAKqtF,WAxOI,GAwOqB,EAAIrtF,KAAKy8E,SAAStR,UAQxDprE,oBACCC,KAAK8qF,oBAjPW,IAyPjB/qF,gBACCC,KAAK8qF,mBA1PW,KA8PlBiC,GAAWpyE,SC9TX,IAAIqrC,GAAY+f,GAAc3X,OAAO,6BAA8B,CAC/DppD,YAAa,WACThF,KAAKqmE,MAAQrmE,KAAKimE,WAAW9d,KAAMn/C,WACnChJ,KAAK82D,cAAgBzQ,GAAaL,aAG1CA,GAAUkgB,IAAM,WACZ,OAAO/d,KAAK+d,IAAI78D,MAAM8+C,KAAMn/C,YAEhCg9C,GAAUgC,IAAM,WACZ,OAAOG,KAAKH,OAEhB6d,GAAexf,GAAaL,UAAWA,ICZvC,MAAM/rB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,sCAAsCuJ,EAAQQ,uBAAuBN,GAAUF,EAAQvb,0CAA0CmS,GAAS,gBAAiBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,4BAA4Bub,EAAQyzD,uCAAuCvzD,GAAUF,EAAQwiD,oCAAoCtiD,GAAUF,EAAQ0zD,wCAAwCxzD,GAAUF,EAAQyzD,8CAA8CvzD,GAAUF,EAAQiiD,kDAAkD/hD,GAAUF,EAAQ8hD,2CAA2C5hD,GAAUF,EAAQ8sD,6BAA6B5sD,GAAUF,EAAQwxC,uBAAuBtxC,GAAUF,EAAQyxC,wBAAwBvxC,GAAUF,EAAQ4oD,oCAAoC5oD,EAAQ+sD,iCAAiC7sD,GAAUF,EAAQ2zD,0CAA0CzzD,GAAUF,EAAQ4zD,kBAAkBh9D,GAAS,gBAAiBC,EAAMpX,OAAYmX,GAAS,kBAAmBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,qBAAqBub,EAAQ6zD,yCAAyC3zD,GAAUF,EAAQwiD,oCAAoCtiD,GAAUF,EAAQ0zD,wCAAwCxzD,GAAUF,EAAQ6zD,gDAAgD3zD,GAAUF,EAAQiiD,oCAAoC/hD,GAAUF,EAAQwxC,uBAAuBtxC,GAAUF,EAAQyxC,wBAAwBvxC,GAAUF,EAAQ4oD,6BAA6B1oD,GAAUF,EAAQ8zD,0CAA0C5zD,GAAUF,EAAQ4zD,kBAAkBh9D,GAAS,kBAAmBC,EAAMpX,OAAYmX,GAAS,iBAAkBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,qBAAqBub,EAAQ+zD,wCAAwC7zD,GAAUF,EAAQwiD,oCAAoCtiD,GAAUF,EAAQ0zD,wCAAwCxzD,GAAUF,EAAQ+zD,+CAA+C7zD,GAAUF,EAAQiiD,oCAAoC/hD,GAAUF,EAAQwxC,uBAAuBtxC,GAAUF,EAAQyxC,wBAAwBvxC,GAAUF,EAAQ4oD,6BAA6B1oD,GAAUF,EAAQg0D,yCAAyC9zD,GAAUF,EAAQ4zD,kBAAkBh9D,GAAS,iBAAkBC,EAAMpX,kIAAuImX,GAAS,sBAAuBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,oCAAoCyb,GAAUF,EAAQiiD,kDAAkD/hD,GAAUF,EAAQ8hD,gEAAgE5hD,GAAUF,EAAQi0D,gDAAgD/zD,GAAUF,EAAQ4oD,uCAAuC1oD,GAAUF,EAAQk0D,oDAAoDh0D,GAAUF,EAAQm0D,+CAA+Cj0D,GAAUF,EAAQo0D,mDAAmDl0D,GAAUF,EAAQq0D,8CAA8Cn0D,GAAUF,EAAQs0D,gDAAgDp0D,GAAUF,EAAQu0D,4CAA4Cr0D,GAAUF,EAAQw0D,8CAA8Ct0D,GAAUF,EAAQy0D,kDAAkDv0D,GAAUF,EAAQ00D,6BAA6B99D,GAAS,sBAAuBC,EAAMpX,YCElzGnN,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,qBAAsBxH,QAAQ,mXCsBxF,MAAMiB,GAAW,CAChB/M,IAAK,eACLmY,WAAwE,CAavE0sE,cAAe,CACdv5E,KAAM04E,GACNttE,aAAcstE,GAAsBH,QAcrCiB,gBAAiB,CAChBx5E,KAAMqL,SAMP+1E,eAAgB,CACfphF,KAAMuL,OACNH,aAAc,OAGfu1E,wBAAyB,CACxB3gF,KAAMqL,SAGPu1E,oBAAqB,CACpB5gF,KAAMqL,SAGPy1E,uBAAwB,CACvB9gF,KAAMuL,QAGPw1E,sBAAuB,CACtB/gF,KAAMuL,SAGRqB,cAAc,EACdpB,MAAmE,CAQlEzP,QAAW,CACV6P,aAAc,QACd5L,KAAMiK,YACN8C,yBAAyB,IAG3BD,OAAoE,CAYnEu0E,wBAAyB,CACxB9nE,OAAQ,CACPmjE,MAAO,CAAE18E,KAAMjN,OACfuM,OAAQ,CAAEU,KAAMjN,SAIlBqkF,mBAAoB,GACpBC,kBAAmB,KAgHrB,MAAMiK,WAAiBpM,GACtBzzE,sBACC,OAAOA,GAGR6M,sBACC,OAAOizE,GAGRn0E,oBACC,OAAOo0E,GAMRrB,+BACC,OAAO5tF,KAAKmqF,MAAMhpF,IAAIiqD,IACrB,MAAM1gD,EAAQ0gD,EAAK1gD,MACnB,OAAOA,GAAW1K,KAAKs8E,YAAYlxE,MAAMV,GAAS1K,KAAKkvF,wBAAwBxkF,GAAS,SAAOpG,IAC7FpB,OAAOkoD,KAAUA,GAMrBrrD,kBAAkBgnF,GACjB,MAAMoI,EAAiBpI,EAAc5lF,IAAIqqD,GAAaxrD,KAAKs8E,YAAY/N,OAAO,IAAIpmB,KAAiB,IAAZqD,IAAmB,IACpG4jC,EAAc,IAAIpvF,KAAKmqF,OAAOhpF,IAAIkuF,GAAeA,EAAY3kF,OAGnE1K,KAAKmqF,MAAMjnF,OAAOmsF,IAAgBF,EAAezuF,SAAS2uF,EAAY3kF,QAAQ9I,QAAQytF,IACrFrvF,KAAKmP,YAAYkgF,KAIlBF,EAAejsF,OAAOwH,IAAU0kF,EAAY1uF,SAASgK,IAAQ9I,QAAQ8I,IACpE,MAAM2kF,EAAczpF,SAASI,cAAc,YAC3CqpF,EAAY3kF,MAAQA,EACpB1K,KAAK8N,YAAYuhF,KAInBtvF,+BACO8E,IACN7E,KAAKouF,yBAA2BpuF,KAAKsvF,kBAAkBC,mBACvDvvF,KAAKquF,qBAAuBruF,KAAKsvF,kBAAkBE,eAEnD,MAAMC,EAAa/iB,GAAWwB,gBAAgB,CAAEK,OAAQ,IAAKpkE,aAAcnK,KAAKmsE,sBAC1EiQ,EAAaP,GAA4B5mE,MAG/C,GAFAjV,KAAKuuF,uBAAyBnS,EAAWxlB,UAAU,OAAQ52D,KAAKmsE,qBAAqBnsE,KAAKgjF,cAAc13B,YAE5E,SAAxBtrD,KAAK6uF,eAA2B,CACnC,MAAMa,EAAa,IAAItlB,GAAapqE,KAAKgjF,cAAehjF,KAAKm8E,sBACvDwT,EAAW,IAAIvlB,GAAapqE,KAAKgjF,cAAehjF,KAAKm8E,sBAC3DuT,EAAWzjB,QAAQjsE,KAAKsvF,kBAAkBjC,YAC1CsC,EAAS1jB,QAAQjsE,KAAKsvF,kBAAkBlC,WAExCptF,KAAKwuF,sBAAwB,GAAGiB,EAAWlhB,OAAOmhB,EAAWnC,iBAAiB,QAAWkC,EAAWlhB,OAAOohB,EAASpC,iBAAiB,UAErIvtF,KAAKwuF,sBAAwBx1E,OAAOy2E,EAAWlhB,OAAOvuE,KAAK+iF,YAAY,IAOzEhjF,uBAAuBsS,GACtBrS,KAAKsvF,kBAAkB1F,YAAa,EACpC5pF,KAAK6uF,eAAiB,QACtB7uF,KAAKwB,UAAU,mBAAoB6Q,GAMpCtS,sBAAsBsS,GACrBrS,KAAKsvF,kBAAkB1F,YAAa,EACpC5pF,KAAK6uF,eAAiB,OACtB7uF,KAAKwB,UAAU,kBAAmB6Q,GAGnCi9E,wBACC,OAAOtvF,KAAKoR,WAAWrL,cAAc,QAAQ/F,KAAK6uF,yBAMnD9uF,wBACCC,KAAKsvF,kBAAkBM,oBAMxB7vF,oBACCC,KAAKsvF,kBAAkBO,gBAGxB1B,sCACC,IAAKnuF,KAAKg8E,sBACT,OAGD,MAAMe,EAAY,IAAI50B,KAAuB,IAAlBnoD,KAAK8iF,YAC1BgN,EAAmBpjB,GAAWwB,gBAAgB,CAAEK,OAAQ,IAAKpkE,aAAcnK,KAAKg8E,wBAChF+T,EAAkB/vF,KAAKgwF,kCAE7B,MAAO,CACN9K,eAFsB4K,EAAiBvhB,OAAOwO,GAAW,GAGzDkI,gBAAiB8K,EAAgBvqD,KACjCyqD,gBAAiBF,EAAgBlkC,MAInC9rD,kCACC,MAAM0nE,EAAQznE,KAAKkwF,+BACb9T,EAAaP,GAA4B5mE,MACzColD,EAAU+hB,EAAW/jB,qBACrB0vB,EAAuBlM,GAA4B5mE,MAAa+hD,oBAAoB,cAAeh3D,KAAKg8E,uBACxGmU,EAA2BtU,GAA4B5mE,MAAa+hD,oBAAoB,OAAQh3D,KAAKg8E,uBAE3G,OAAIvU,EAAM2oB,aAAe3oB,EAAM4oB,SACvB,CACN7qD,KAAM42C,EAAWxlB,UAAU,cAAe52D,KAAKg8E,uBAAuBvU,EAAM2oB,YAC5EE,SAAUlU,EAAWxlB,UAAU,OAAQ52D,KAAKg8E,uBAAuBvU,EAAM2oB,aAIpE,CACN5qD,KAAM60B,EAAQxqD,QAAQ,QAASk4E,EAAqBtgB,EAAM2oB,aAAavgF,QAAQ,QAASk4E,EAAqBtgB,EAAM4oB,WACnHC,SAAUj2B,EAAQxqD,QAAQ,QAASsgF,EAAyB1oB,EAAM2oB,aAAavgF,QAAQ,QAASsgF,EAAyB1oB,EAAM4oB,YAIjItwF,+BACC,MAAMg9E,EAAY,IAAI50B,KAAuB,IAAlBnoD,KAAK8iF,YAChC,IAAIyN,EAAYnmB,GAAagC,gBAAgB2Q,EAAW/8E,KAAKm8E,sBAC7DoU,EAAU1kB,QAAQ,GAClB0kB,EAAY,IAAInmB,GAAammB,EAAWvwF,KAAKg8E,uBAC7C,MAAMoU,EAAaG,EAAUjlC,WAE7B,IAAIklC,EAAWpmB,GAAagC,gBAAgB2Q,EAAW/8E,KAAKm8E,sBAK5D,OAJAqU,EAAS3kB,QAAQ7rE,KAAKywF,gBAAgBD,IACtCA,EAAW,IAAIpmB,GAAaomB,EAAUxwF,KAAKg8E,uBAGpC,CAAEoU,WAAAA,EAAYC,SAFJG,EAASllC,YAK3BvrD,gBAAgBqrD,GACf,MAAMslC,EAAmB,IAAItmB,GAAahf,GAI1C,OAHAslC,EAAiB7kB,QAAQ,GACzB6kB,EAAiB5kB,SAAS4kB,EAAiBplC,WAAa,GACxDolC,EAAiB7kB,QAAQ,GAClB6kB,EAAiBnlC,UAQzB+iC,iCACC,MAA+B,UAAxBtuF,KAAK6uF,gBAAsD,SAAxB7uF,KAAK6uF,eAGhDlB,yBACC,MAA+B,QAAxB3tF,KAAK6uF,eAGbd,2BACC,MAA+B,UAAxB/tF,KAAK6uF,eAGbZ,0BACC,MAA+B,SAAxBjuF,KAAK6uF,eAGb9uF,sBAAsBsS,GACrB,MAAMm5C,EAAYn5C,EAAM2U,OAAOwkC,UACzBu7B,EAAgB10E,EAAM2U,OAAOmjE,MAC7BwG,EAAc5J,EAAc5lF,IAAIyvF,IACrC,MAAMxI,EAAehe,GAAa6Y,cAAmB,IAAL2N,EAAW5wF,KAAKm8E,sBAChE,OAAOn8E,KAAKs8E,YAAY/N,OAAO6Z,EAAatL,eAAe,KAG5D98E,KAAKwrD,UAAYA,GACSxrD,KAAKwB,UAAU,wBAAyB,CAAEgqD,UAAAA,EAAW2+B,MAAO,IAAIpD,GAAgBh6E,OAAQ4jF,IAAe,IAEhI3wF,KAAK6wF,kBAAkB9J,GAIzBhnF,sBAAsBsS,GACrBrS,KAAKwrD,UAAYn5C,EAAM2U,OAAOwkC,UAC9BxrD,KAAK6uF,eAAiB,MACtB7uF,KAAKsvF,kBAAkB1F,YAAa,EAGrC7pF,qBAAqBsS,GACpBrS,KAAKwrD,UAAYn5C,EAAM2U,OAAOwkC,UAC9BxrD,KAAK6uF,eAAiB,MACtB7uF,KAAKsvF,kBAAkB1F,YAAa,EAGrC7pF,WAAWsS,GACVrS,KAAKwrD,UAAYn5C,EAAM2U,OAAOwkC,UAG/BzrD,WAAWsS,GACN0gB,GAAK1gB,IAAkC,UAAxBrS,KAAK6uF,iBACvB7uF,KAAK6uF,eAAiB,S1JjQPx8E,CAAAA,IAAUA,EAAM5H,IAAoB,OAAd4H,EAAM5H,IAAe4H,EAAM8e,UAAYF,KAAgBK,GAAkBjf,GAAO,GAAO,GAAO,G0JoQhIy+E,CAAUz+E,IAAkC,SAAxBrS,KAAK6uF,iBAC5B7uF,KAAK6uF,eAAiB,QASxB9H,oBACC,OAAO/mF,KAAK4tF,yBASb7G,kBAAkBA,GACjB/mF,KAAK6wF,kBAAkB9J,GAGxB5+D,0BACC,MAAO,CACN4oE,GACAhM,GACAyC,GACAuE,GACAgB,KAKHgC,GAASp0E,SCneT,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,4CAA4CnB,GAAS0K,EAAQrf,OAAOkqB,yBAAyBjU,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,0DAA0Dyb,GAAUF,EAAQ8b,wBAAwB5b,GAAUF,EAAQzsB,iBAAiB2sB,GAAUF,EAAQxvB,sBAAsBwvB,EAAQC,wBAAwBD,EAAQmK,wBAAwBnK,EAAQqL,0BAA0BnL,GAAUF,EAAQ4L,oDAAoD1L,GAAUF,EAAQa,0BAA0BX,GAAUF,EAAQyoB,gCAAgCvoB,GAAUF,EAAQ82D,gCAAgC52D,GAAUF,EAAQ+2D,8BAA8B/2D,EAAQQ,eAAgBR,EAAQ2f,kBAAkB74C,OAASs6B,UAAgCh3B,IAAe41B,EAAQqL,cAA2CjhC,EAAhCk3B,GAAOtB,EAASnJ,EAAMpX,OAAyBmX,GAAS,YAAaC,EAAMpX,4CACj6B2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,kEACxC6K,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,wBAA6BygB,GAAUF,EAAQg3D,iDAAiD92D,GAAUF,EAAQi3D,wCAAwCj3D,EAAQk3D,sCAAsCl3D,EAAQm3D,uBAAuBj3D,GAAUF,EAAQ5S,oBAAoBwJ,GAAS,WAAYC,EAAMpX,MCF/WsgB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,yBAA0BC,EAAMpX,UAAeygB,GAAUF,EAAQvb,yIAAyIub,EAAQo3D,gDAAgDl3D,GAAUF,EAAQq3D,gCAAgCr3D,EAAQQ,iCAAiCN,GAAUF,EAAQs3D,mCAAoCt3D,EAAQu3D,WAAan2D,GAAOpB,EAASnJ,EAAMpX,QAAUrV,KAAcwsB,GAAS,eAAgBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,yCAAyCyb,GAAUF,EAAQiiD,mDAAmD/hD,GAAUF,EAAQ8hD,2CAA2C5hD,GAAUF,EAAQwiD,+BAA+BtiD,GAAUF,EAAQw3D,wCAAwCt3D,GAAUF,EAAQy3D,sCAAsCv3D,GAAUF,EAAQwxC,uBAAuBtxC,GAAUF,EAAQyxC,yCAAyCvxC,GAAUF,EAAQ2zD,kDAAkDzzD,GAAUF,EAAQy0D,kDAAkDv0D,GAAUF,EAAQ00D,+CAA+C10D,EAAQ+sD,qCAAqC7sD,GAAUF,EAAQ03D,4BAA6B/5C,GAAO3d,EAAQ23D,uBAAwB,CAAChwF,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,QAAcmX,GAAS,eAAgBC,EAAMpX,MAAYugB,EAAQ43D,WAAapsD,UAAgCphC,MAAewsB,GAAS,yBAA0BC,EAAMpX,OACvkD2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,mFAAmFyJ,GAAUF,EAAQ+d,4BAA4BnnB,GAAS,aAAcC,EAAMpX,2FAAgGugB,EAAQ63D,kBAAkBjhE,GAAS,aAAcC,EAAMpX,kBAC7V6hB,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,aAAkBygB,GAAUv4B,SAAYivB,GAAS,WAAYC,EAAMpX,MACvJ+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,GCD9CnkB,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,uBAAwBxH,QAAQ,wpECF5D,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,8BAA+BxH,QAAQ,kECoCjG,MAAMiB,GAAW,CAChB/M,IAAK,kBACL0X,OAAQ,iBACRQ,cAAc,EACdC,WAA0E,CAQzE5P,MAAO,CACN+C,KAAMuL,QAmBP8sB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAW1BW,SAAU,CACT52B,KAAMqL,SAUPqhB,SAAU,CACT1sB,KAAMqL,SAUPysB,SAAU,CACT93B,KAAMqL,SAePq/B,YAAa,CACZ1qC,KAAMuL,OACNH,kBAAcvU,GAmBfoD,KAAM,CACL+F,KAAMuL,QAePiuE,gBAAiB,CAChBx5E,KAAMqL,SAUPqiB,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,OACNH,aAAc,IAGfw4E,cAAe,CACd5jF,KAAMqL,QACNgB,aAAa,GAGdk4E,mBAAoB,CACnBvkF,KAAM5G,QAGP+qF,uBAAwB,CACvBnkF,KAAMuL,OACNH,aAAc,QAIhBI,MAAqE,CAcpE4gC,kBAAmB,CAClBpsC,KAAMiK,aAUPsuB,YAAa,CACZv4B,KAAMiK,cAIR6C,OAAsE,CAWrEwrB,OAAQ,CACP0lB,QAAS,CACR/gD,MAAO,CACN+C,KAAMuL,QAEPm6D,MAAO,CACN1lE,KAAMqL,WAcTo9B,MAAO,CACNuV,QAAS,CACR/gD,MAAO,CACN+C,KAAMuL,QAEPm6D,MAAO,CACN1lE,KAAMqL,aA+FX,MAAMm5E,WAAmB/V,GACxBhtE,sBACC,OAAOA,GAGR6M,sBACC,OAAOm2E,GAGRzqE,gCACC,OAAO0qE,GAGRt3E,oBACC,OAAOu3E,GAGR72E,8BACC,MAAO,CAACs/B,GAA4Bw3C,IAMrCtyF,gCACCC,KAAKqxF,eAAgB,EACjB/3D,KACHt5B,KAAKo+C,OAELp+C,KAAKsyF,YAAY9gF,QAInBzR,oBACC,CAAC,UAAW,WAAW6B,QAAQ0jB,IAC1BtlB,KAAKslB,KAAUtlB,KAAK0a,QAAQ1a,KAAKslB,KACpChjB,QAAQC,KAAK,+BAA+B+iB,OAAUtlB,KAAKslB,6DAAgEtlB,KAAKuyF,qBAIlI,MAAMzvD,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,MACxBA,KAAK0H,MACfpF,QAAQC,KAAK,4IAGdvC,KAAKwyF,UAAYxyF,KAAK0K,MAQvBinF,6BACC,MAAO,SASRD,yBACC,GAAI1xF,KAAK0K,OAAS1K,KAAKyyF,oBAAoBzyF,KAAK0K,OAAQ,CAEvD,MC/ayBgoF,CAAAA,IACtBA,IACJA,GAAkB,IAAIvqC,MAAOie,YAEdssB,EAAmBA,SAClB,KD0aRC,CADiB3yF,KAAK4yF,aAAaxsB,WAI3C,OAAO8F,GAAqBlsE,KAAKm8E,sBAQlC0V,6BACC,OAAI7xF,KAAK0K,OAAS1K,KAAKyyF,oBAAoBzyF,KAAK0K,OACxC,CAAC1K,KAAK0K,OAGP,GAGR3K,WAAWsS,GACNygB,GAAOzgB,KACVA,EAAMosB,iBACFz+B,KAAKosC,UACHrZ,GAAK1gB,IAIVrS,KAAK6yF,wBAIH7yF,KAAKosC,WAILxZ,GAAkBvgB,IACrBA,EAAMosB,iBACNz+B,KAAK8yF,iBAAiB,EAAG,SACfpgE,GAAcrgB,IACxBA,EAAMosB,iBACNz+B,KAAK8yF,iBAAiB,EAAG,UACftgE,GAASngB,IACnBA,EAAMosB,iBACNz+B,KAAK8yF,iBAAiB,EAAG,QACfjgE,GAAoBxgB,IAC9BA,EAAMosB,iBACNz+B,KAAK8yF,kBAAkB,EAAG,SAChBngE,GAAgBtgB,IAC1BA,EAAMosB,iBACNz+B,KAAK8yF,kBAAkB,EAAG,UAChBrgE,GAAWpgB,KACrBA,EAAMosB,iBACNz+B,KAAK8yF,kBAAkB,EAAG,SAU5B/yF,iBAAiByrE,EAAQC,GACxB,IAAKzrE,KAAKo1E,UACT,OAGD,MAAM2d,EAAexnB,GAAanB,GAAagC,gBAAgBpsE,KAAKo1E,WAAY5J,EAAQC,EAAMzrE,KAAKq8E,SAAUr8E,KAAKy8E,UAC5G33D,EAAW9kB,KAAKgzF,YAAYD,EAAajW,eAC/C98E,KAAKizF,0BAA0BnuE,GAAU,EAAM,CAAC,SAAU,kBAG3D/kB,0BAA0B2K,EAAOwoF,EAAgB34E,EAAQ44E,GAAc,GACtE,MAAMhgB,EAAQnzE,KAAKyyF,oBAAoB/nF,GAEnCyoE,GAAS+f,IACZxoF,EAAQ1K,KAAKkzF,eAAexoF,IAG7B,IAAI0oF,GAAe,EACnBpzF,KAAKwyF,UAAY9nF,EAEjB6P,EAAO3Y,QAAQyQ,IACTrS,KAAKwB,UAAU6Q,EAAO,CAAE3H,MAAAA,EAAOyoE,MAAAA,IAAS,KAC5CigB,GAAe,KAIZA,GAIDD,IACHnzF,KAAK0K,MAAQA,EACb1K,KAAKqzF,qBAIPtzF,oBACC,MAAM2a,EAAU1a,KAAKyyF,oBAAoBzyF,KAAK0K,OACzCgQ,EAEMA,GAAW1a,KAAK8lC,aAAehC,GAAWvgC,QACpDvD,KAAK8lC,WAAahC,GAAWJ,MAF7B1jC,KAAK8lC,WAAahC,GAAWvgC,MAM/BxD,uBACCC,KAAKoxF,eACLpxF,KAAKsyF,YAAY9gF,QAGlBzR,YACC,OAAOC,KAAKoR,WAAWrL,cAAc,eAOtChG,eAAesS,IAMftS,eAAesS,GACdrS,KAAKizF,0BAA0B5gF,EAAMtJ,OAAO2B,OAAO,EAAM,CAAC,SAAU,kBAOrE3K,oBAAoBsS,GACnBrS,KAAKizF,0BAA0B5gF,EAAMtJ,OAAO2B,OAAO,EAAO,CAAC,UAAU,GAMtE3K,oBAAoB2K,GACnB,MAAc,KAAVA,GAGG1K,KAAK0a,QAAQhQ,IAAU1K,KAAKszF,eAAe5oF,GAGnD3K,OAAOsS,GACFinB,OACHt5B,KAAK89C,kBAAkBzqC,OAAOrT,MAC9BqS,EAAMosB,kBASR1+B,QAAQ2K,EAAQ,IACf,MAAc,KAAVA,KAIK1K,KAAKs8E,YAAYlxE,MAAMV,GASjC3K,eAAe2K,EAAQ,IACtB,GAAc,KAAVA,EACH,OAAO,EAGR,MAAM09E,EAAepoF,KAAKu8E,2BAA2B7xE,GACrD,OAAO09E,EAAanf,WAAajpE,KAAKq8E,SAASpT,WAAamf,EAAanf,WAAajpE,KAAKy8E,SAASxT,UAOrGlpE,eAAe2K,GACd,MAAc,KAAVA,EACIA,EAGD1K,KAAKs8E,YAAY/N,OAAOvuE,KAAKs8E,YAAYlxE,MAAMV,GAAO,IAAO,GAGrE6nF,qBACC,OAAOvyF,KAAKs8E,YAAYrO,eAAe5T,QAMxCrkB,mBACC,YAA4B1xC,IAArBtE,KAAKm4C,YAA4Bn4C,KAAKm4C,YAAcn4C,KAAKuyF,eAGjEt6C,uBACC,OAAOg6C,GAAW36D,WAAWyH,QAAQW,IAGtC6zD,YACC,OAAOj6D,KAGRm4D,iBACC,OAAOzxF,KAAKuzF,MAGbzB,iBACC,OAAO9xF,KAAKuzF,MAGbjC,YACC,OAAOn4D,KAGR4B,cACC,MAAO,CACNsb,oBAAuBr2C,KAAKwzF,oBAC5Bp9C,aAAgB,OAChBE,iBAAoB,OACpBtY,KAAQ,WACR/C,aAAgB,GAAGj7B,KAAK2e,yBACxBqc,aAAgBh7B,KAAKosC,SACrBuY,aAAgB3kD,KAAKqkC,SACrBkS,UAAahP,GAA0BvnC,OAIzCmxF,oBACC,OAAOc,GAAW36D,WAAWyH,QAAQO,IAGtC4xD,mBACC,MAAO,gBAGRsC,0BACC,OAAOvB,GAAW36D,WAAWyH,QAAQQ,IAOtCgyD,wBACC,OAAO,EAGRxxF,qBAEC,aAD6BC,KAAK2tC,2BACZ5nC,cAAc,4BAGrChG,iBACC,OAAQC,KAAKm6B,WAAan6B,KAAKulC,SAQhCxlC,sBAAsBsS,GACrBA,EAAMosB,iBACN,MAAM3Z,EAAWzS,EAAM2U,OAAOja,QAAUsF,EAAM2U,OAAOja,OAAO,GAC5D/M,KAAKizF,0BAA0BnuE,GAAU,EAAM,CAAC,SAAU,kBAE1D9kB,KAAK+xF,cAMNhyF,yBACCC,KAAK4xF,uBAAyB,QAM/B7xF,wBACCC,KAAK4xF,uBAAyB,OAU/B7xF,YAAYqrD,GACX,OAAOprD,KAAKs8E,YAAY/N,OAAOnjB,GAOhCrrD,cACCC,KAAK89C,kBAAkBzS,QASxBtrC,mBACCC,KAAKqxF,eAAgB,EACrBrxF,KAAK4xF,uBAAyB,MAC9B5xF,KAAK89C,wBAA0B99C,KAAKyzF,eAEpCzzF,KAAK89C,kBAAkBzqC,OAAOrT,MAG/BD,eACKC,KAAKosC,SACRpsC,KAAK+xF,cACK/xF,KAAK0zF,kBACf1zF,KAAK2zF,aASP5zF,SACC,QAASC,KAAKqxF,cAUfjc,gBACC,OAAOp1E,KAAKwyF,UAAYxyF,KAAKs8E,YAAYlxE,MAAMpL,KAAKwyF,WAAaxyF,KAAKs8E,YAAYlxE,MAAMpL,KAAK0K,OAG9FkoF,mBACC,OAAO5yF,KAAKwyF,UAAYxyF,KAAKs8E,YAAYlxE,MAAMpL,KAAKwyF,WAAW,GAAQxyF,KAAKs8E,YAAYlxE,MAAMpL,KAAK0K,OAGpGmQ,aACC,MAAO,CACNkqB,KAAM,CACL/L,MAAO,SAKVvrB,WACC,OAAOo7B,GAAUL,KAGlBrgB,0BACC,MAAO,CACNkW,GACA8jD,GACA4M,GACAgC,GACAr2C,GACAjY,KAKHwvD,GAAWt3E,SElzBX,MACMuhB,GAAW,ujBAKjBD,GANa,qBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,mhBAKjBD,GANa,qBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCAnBkpB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,uCAAuCmS,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,sBAAsByb,GAAUF,EAAQxvB,wBAAwB0vB,GAAUF,EAAQ8b,6BAA6B9b,EAAQC,wBAAwBD,EAAQqL,0BAA0BnL,GAAUF,EAAQ4L,gCAAgC1L,GAAUF,EAAQa,wCAAwCb,EAAQ05D,mCAAmCx5D,GAAUF,EAAQ25D,oCAAoCz5D,GAAUF,EAAQ45D,oEAAoE55D,EAAQQ,eAAgBR,EAAQ2f,kBAAkB74C,OAASs6B,UAAgCh3B,IAAe41B,EAAQqL,cAA2CjhC,EAAhCk3B,GAAOtB,EAASnJ,EAAMpX,OAAyBmX,GAAS,YAAaC,EAAMpX,YACt0B2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,kEACxC6K,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,wBAA6BygB,GAAUF,EAAQg3D,qDAAqDh3D,EAAQk3D,sCAAsCl3D,EAAQm3D,8DAA8DvgE,GAAS,WAAYC,EAAMpX,MCF1TsgB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,yBAA0BC,EAAMpX,UAAeygB,GAAUF,EAAQvb,+LAA+Lyb,GAAUF,EAAQs3D,2CAA2Ct3D,EAAQ65D,2BAA2B75D,EAAQQ,gBAAgB5J,GAAS,qBAAsBC,EAAMpX,UAAeygB,GAAUF,EAAQvb,yBAAyByb,GAAUF,EAAQ85D,yCAAyC55D,GAAUF,EAAQwiD,gCAAgCtiD,GAAUF,EAAQ+5D,6BAA6B75D,GAAUF,EAAQg6D,+BAA+B95D,GAAUF,EAAQi6D,+BAA+B/5D,GAAUF,EAAQk6D,+BAA+Bh6D,GAAUF,EAAQm6D,4BAA4Bj6D,GAAUF,EAAQo6D,2BAA2Bl6D,GAAUF,EAAQq6D,6BAA6Bn6D,GAAUF,EAAQs6D,6BAA6Bp6D,GAAUF,EAAQu6D,6BAA6B3jE,GAAS,qBAAsBC,EAAMpX,iEAAsEugB,EAAQw6D,qBAAqB5jE,GAAS,aAAcC,EAAMpX,8CAAmDugB,EAAQy6D,kBAAkBv6D,GAAUF,EAAQ06D,uBAAuB9jE,GAAS,aAAcC,EAAMpX,OAAYmX,GAAS,aAAcC,EAAMpX,8CAAmDugB,EAAQ63D,gBAAgB33D,GAAUF,EAAQ26D,uBAAuB/jE,GAAS,aAAcC,EAAMpX,cAAmBmX,GAAS,yBAA0BC,EAAMpX,MCAjlDsgB,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,eAAeuT,GAAShK,EAAQiK,QAAQgG,iCAAiCjQ,EAAQQ,wBAAwBR,EAAQI,0BAA0BJ,EAAQG,gBAAiBH,EAAQ46D,gBAAkBx5D,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ66D,kBAAoBv5D,GAAOtB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ86D,kBAAoBtvD,GAAOxL,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ+6D,kBAAoBxkD,GAAOvW,EAASnJ,EAAMpX,QAAUrV,UACpeg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,kBAAmBC,EAAMpX,eAAoBygB,GAAUF,EAAQg7D,+BAA+B96D,GAAUF,EAAQi7D,8CAA8Cj7D,EAAQk7D,+BAA+Bh7D,GAAUF,EAAQm7D,yBAAyBj7D,GAAUF,EAAQo7D,2BAA2Bp7D,EAAQq7D,2BAA2Br7D,EAAQq7D,kDAAkDr7D,EAAQs7D,gBAAgB1kE,GAAS,kBAAmBC,EAAMpX,MACze6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,kBAAmBC,EAAMpX,eAAoBygB,GAAUF,EAAQu7D,iCAAiCr7D,GAAUF,EAAQw7D,6BAA6Bx7D,EAAQy7D,iCAAiCv7D,GAAUF,EAAQ07D,2BAA2Bx7D,GAAUF,EAAQ27D,6BAA6B37D,EAAQq7D,2BAA2Br7D,EAAQq7D,oDAAoDr7D,EAAQs7D,gBAAgB1kE,GAAS,kBAAmBC,EAAMpX,MACle+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,kBAAmBC,EAAMpX,eAAoBygB,GAAUF,EAAQ47D,iCAAiC17D,GAAUF,EAAQ67D,6BAA6B77D,EAAQ87D,iCAAiC57D,GAAUF,EAAQ+7D,2BAA2B77D,GAAUF,EAAQg8D,6BAA6Bh8D,EAAQq7D,2BAA2Br7D,EAAQq7D,oDAAoDr7D,EAAQs7D,gBAAgB1kE,GAAS,kBAAmBC,EAAMpX,MACle82B,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,kBAAmBC,EAAMpX,eAAoBygB,GAAUF,EAAQi8D,gCAAgC/7D,GAAUF,EAAQk8D,6BAA6Bl8D,EAAQm8D,gCAAgCj8D,GAAUF,EAAQo8D,0BAA0Bl8D,GAAUF,EAAQq8D,4BAA4Br8D,EAAQq7D,2BAA2Br7D,EAAQq7D,6CAA6CzkE,GAAS,kBAAmBC,EAAMpX,MCJ/buiB,GAAW,qKAKjBD,GANa,sBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,2NAKjBD,GANa,sBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCAnBmrB,GAAW,oKAKjBD,GANa,wBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,gOAKjBD,GANa,wBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCHnBylF,GAAQ,IAAIv3E,QAElB,MAAMw3E,GACLD,mBACC,OAAOA,GAGRz2F,eAAegF,EAAS2xF,GAClBF,GAAMvzF,IAAI8B,IACdyxF,GAAM51F,IAAImE,EAAS,IAGpByxF,GAAMj2F,IAAIwE,GAASpE,KAAK+1F,GAGzB32F,WAAWgF,EAAS2xF,GAKnB,OAJKF,GAAMvzF,IAAI8B,IACdyxF,GAAM51F,IAAImE,EAAS,IAGb2xF,IAAOC,KAAK,KAClB,MAAMC,EAAeJ,GAAMj2F,IAAIwE,GAE/B,GAAI6xF,EAAa51F,OAAS,EACzB,OAAOy1F,GAAeI,IAAI9xF,EAAS6xF,EAAazzF,SAEjDqzF,GAAMv1F,OAAO8D,KAIfhF,YAAYgF,EAAS2xF,GACCF,GAAMj2F,IAAIwE,GAG9B0xF,GAAeK,QAAQ/xF,EAAS2xF,GAEhCD,GAAeI,IAAI9xF,EAAS2xF,ICpC/B,OAAe,CACdK,gBAAiB,IACjBhyF,QAASa,SAASI,cAAc,OAChCgxF,SAAU,WCAI,EACdjyF,QAAAA,EAAUkyF,GAAgBlyF,QAC1BmyF,SAAAA,EAAWD,GAAgBC,SAC3BC,SAAUC,EAAmBH,GAAgBD,SAC7CK,GAAAA,EAAK,EACLC,GAAAA,EAAK,MAEL,IAAIC,EACA3qD,EAEJ,MCVc,GACd4qD,YAAAA,EAAcP,GAAgBD,SAC9BE,SAAAA,EAAWD,GAAgBF,gBAC3BhyF,QAAAA,EAAUkyF,GAAgBlyF,QAC1BoyF,SAAUC,EAAmBH,GAAgBD,aAE7C,IAEIS,EACAC,EACAC,EAJApN,EAAQ,KACRqN,GAAU,EAKd,MAAMC,EAAU,IAAIv2F,QAAQ,CAAC2C,EAAS6zF,KACrCH,EAAUnsC,IACT++B,EAAQA,GAAS/+B,EAEjB,MAAMusC,EAAcvsC,EAAY++B,EAGhC,GAAIwN,GAAeb,EAAU,CAE5BE,EADiB,GAHAF,EAAWa,GAGKb,GAEjCO,GAAkBG,GAAWzzF,sBAAsBwzF,QAEnDP,EAAiB,GACjBnzF,KAIFyzF,EAAO,KACNE,GAAU,EACVI,qBAAqBP,GACrBK,EAAO,IAAIv0F,MAAM,yBAEhB00F,MAAMC,GAAWA,GAWpB,OATAzB,GAAe91F,KAAKoE,EAAS,KAC5ByyF,IACArzF,sBAAsBwzF,GAEf,IAAIr2F,QAAQ2C,IAClB4zF,EAAQlB,KAAK,IAAM1yF,SAId,CACN4zF,QAAS,IAAMA,EACfH,KAAM,IAAMA,IDrCNC,CAAQ,CACdH,YAAa,KACZD,EAAaxyF,EAAQwyF,WACrB3qD,EAAY7nC,EAAQ6nC,WAErBsqD,SAAAA,EACAnyF,QAAAA,EACAoyF,SAAUA,IACTC,EAAiBD,GAEjBpyF,EAAQwyF,WAAaA,EAAcJ,EAAWE,EAC9CtyF,EAAQ6nC,UAAYA,EAAauqD,EAAWG,MEpB/C,MACMa,GAAoBj/D,KAAkB,WAAa,UAEzD,MAAMk/D,WAAyBt4F,EAC9BC,YAAYs4F,GACX/5E,QACAte,KAAKq4F,mBAAqBA,EAC1Br4F,KAAKs4F,UAAYt4F,KAAKu4F,YAAYj2E,KAAKtiB,MACvCA,KAAKw4F,QAAUx4F,KAAKy4F,WAAWn2E,KAAKtiB,MACpCA,KAAK04F,WAAa14F,KAAK24F,aAAar2E,KAAKtiB,MAEzCA,KAAKk5B,cAAgBA,KAKrBl5B,KAAK44F,YAAc,GAInB54F,KAAK64F,OAAS,EACd74F,KAAK84F,OAAS,EAEV94F,KAAKk5B,eACRm/D,EAAmBriF,iBAAiB,aAAchW,KAAK04F,WAAY,CAAExqE,SAAS,IAC9EmqE,EAAmBriF,iBAAiB,YAAahW,KAAKs4F,UAAW,CAAEpqE,SAAS,IAC5EmqE,EAAmBriF,iBAAiB,WAAYhW,KAAKw4F,QAAS,CAAEtqE,SAAS,KAEzEmqE,EAAmBriF,iBAAiB,YAAahW,KAAK04F,WAAY,CAAExqE,SAAS,IAI/EusB,oBAAoB/Q,GACnB1pC,KAAK+4F,WAAarvD,EAGnB+Q,sBACC,OAAOz6C,KAAK+4F,WAYbh5F,eAAe8S,EAAME,EAAKimF,EAAa,EAAGC,EAAgB,GACzD,IAAIC,EAAmBl5F,KAAKy6C,gBAAgB3G,aAAe,GAAK9zC,KAAKy6C,gBAAgB7G,YAAc,EAGnG,MAAQslD,GAAoBF,EAAa,SAClC,IAAI13F,QAAQ2C,IACjBI,WAAW,KACV60F,EAAmBl5F,KAAKy6C,gBAAgB3G,aAAe,GAAK9zC,KAAKy6C,gBAAgB7G,YAAc,EAC/FolD,IACA/0F,KACEg1F,KAKLj5F,KAAK+4F,WAAWxB,WAAa1kF,EAC7B7S,KAAK+4F,WAAWnsD,UAAY75B,EAG7BhT,KAAKs3F,EAAIC,EAAI6B,GACZ,OAAIA,GACHn5F,KAAK+4F,WAAWxB,YAAcF,OAC9Br3F,KAAK+4F,WAAWnsD,WAAa0qD,IAIvBvrD,GAAO,CACbhnC,QAAS/E,KAAK+4F,WACd1B,GAAAA,EACAC,GAAAA,IAIFv3F,gBACC,OAAOC,KAAK+4F,WAAWxB,WAGxBx3F,eACC,OAAOC,KAAK+4F,WAAWnsD,UAGxB7sC,eAAe2S,GACd,MAAMJ,EAAOtS,KAAK+4F,WAAWnpD,wBACvBr9B,EAAIvS,KAAKk5B,cAAgBxmB,EAAMC,QAAUD,EAAMH,EAC/CC,EAAIxS,KAAKk5B,cAAgBxmB,EAAME,QAAUF,EAAMF,EAErD,OAAOD,GAAKD,EAAKO,MAAQN,GAAKD,EAAKQ,OAC/BN,GAAKF,EAAKS,KAAOP,GAAKF,EAAKU,OAGhCjT,aAAasS,GACZ,MAAMK,EAAQ1S,KAAKk5B,cAAgB7mB,EAAMI,QAAQ,GAAK,KAEjDzS,KAAKk5B,eAKTl5B,KAAK64F,OAASnmF,EAAM0mF,MACpBp5F,KAAK84F,OAASpmF,EAAM2mF,QALpBzzF,SAASoQ,iBAAiB,UAAWhW,KAAKw4F,QAAS,CAAEtqE,SAAS,IAC9DtoB,SAASoQ,iBAAiB,YAAahW,KAAKs4F,UAAW,CAAEpqE,SAAS,KAOnEluB,KAAKs5F,WAAat5F,KAAKk5B,cAAgBxmB,EAAM0mF,MAAQ/mF,EAAME,EAC3DvS,KAAKu5F,WAAav5F,KAAKk5B,cAAgBxmB,EAAM2mF,MAAQhnF,EAAMG,EAE3DxS,KAAKw5F,WAAax5F,KAAKy5F,eAAez5F,KAAKk5B,cAAgBxmB,EAAQL,GAGpEtS,YAAYsS,GACX,IAAKrS,KAAKw5F,WACT,OAGD,MAAM9vD,EAAY1pC,KAAK+4F,WACjBrmF,EAAQ1S,KAAKk5B,cAAgB7mB,EAAMI,QAAQ,GAAK,KAEhDinF,EAAQ15F,KAAKk5B,cAAgBxmB,EAAM0mF,MAAQ/mF,EAAME,EACjDonF,EAAQ35F,KAAKk5B,cAAgBxmB,EAAM2mF,MAAQhnF,EAAMG,EAEvDk3B,EAAU6tD,YAAcv3F,KAAKs5F,WAAaI,EAC1ChwD,EAAUkD,WAAa5sC,KAAKu5F,WAAaI,EAEzC35F,KAAKwB,UAnIiB,SAmIU,CAC/BiwB,OAAQioE,EAAQ15F,KAAKs5F,WACrB5nE,QAASgoE,EAAQ15F,KAAKs5F,aAGvBt5F,KAAK44F,YAAYc,MAAQ15F,KAAKs5F,WAC9Bt5F,KAAK44F,YAAYe,MAAQ35F,KAAKu5F,WAE9Bv5F,KAAKs5F,WAAaI,EAClB15F,KAAKu5F,WAAaI,EAGnB55F,WAAWsS,GACV,GAAIrS,KAAKk5B,cAAe,CACvB,MAAM0gE,EAASpwE,KAAK+rB,IAAIljC,EAAMwnF,eAAe,GAAGT,MAAQp5F,KAAK64F,QACvDiB,EAAStwE,KAAK+rB,IAAIljC,EAAMwnF,eAAe,GAAGR,MAAQr5F,KAAK84F,QAE7D,GAAIc,EAAS,IAAME,EAAS,GAC3B,OAIF,IAAK95F,KAAKw5F,WACT,OAGD,MAAM9vD,EAAY1pC,KAAK+4F,WACjBW,EAAQ15F,KAAKk5B,cAAgB7mB,EAAMwnF,eAAe,GAAGT,MAAQ/mF,EAAME,EACnEonF,EAAQ35F,KAAKk5B,cAAgB7mB,EAAMwnF,eAAe,GAAGR,MAAQhnF,EAAMG,EAEzEk3B,EAAU6tD,YAAcv3F,KAAKs5F,WAAaI,EAC1ChwD,EAAUkD,WAAa5sC,KAAKu5F,WAAaI,EAEzC,MACMI,EADkBL,IAAU15F,KAAKs5F,WACNt5F,KAAK44F,YAAYc,MAAQA,EAG1D15F,KAAKwB,UAAU22F,GAAmB,CACjC1mE,OAAQsoE,EAAS/5F,KAAKs5F,WACtB5nE,QAASqoE,EAAS/5F,KAAKs5F,aAGxBt5F,KAAKs5F,WAAaI,EAClB15F,KAAKu5F,WAAaI,EAEb35F,KAAKk5B,gBACTtzB,SAASggB,oBAAoB,YAAa5lB,KAAKs4F,UAAW,CAAEpqE,SAAS,IACrEtoB,SAASggB,oBAAoB,UAAW5lB,KAAKw4F,WCnLhD,MAAMv+D,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,qBAAqByb,GAAUF,EAAQC,uBAAuBC,GAAUF,EAAQxvB,oBAAoB0vB,GAAUF,EAAQ8/D,oBAAoB5/D,GAAUF,EAAQK,sBAAsBL,EAAQQ,uBAAuBwJ,GAAShK,EAAQiK,QAAQgG,kDAAkDjQ,EAAQ65D,oEAAoE35D,GAAUF,EAAQvb,8CAA8Cyb,GAAUF,EAAQ8/D,kEAAkElpE,GAAS,aAAcC,EAAMpX,sEAA2EugB,EAAQ+/D,8BAA8BnpE,GAAS,aAAcC,EAAMpX,qBAA0BygB,GAAUF,EAAQvb,uDAAuDyb,GAAUF,EAAQvb,iFAAiFyb,GAAUF,EAAQvb,kDAAmDub,EAAQggE,SAAW5+D,GAAOpB,GAAyBwL,GAAOxL,4DAAiFpJ,GAAS,aAAcC,EAAMpX,wEAA6EugB,EAAQigE,gCAAgCrpE,GAAS,aAAcC,EAAMpX,kBAClzC2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,WAAWyJ,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQ8/D,WAAYniD,GAAO3d,EAAQkgE,aAAc,CAACv4F,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,EAAMyV,WAClPkkB,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,qDAAqDrZ,mCAAuC8iB,GAAUv4B,EAAK0nF,cAAcnvD,GAAUv4B,EAAK6I,cAC7Lg7B,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,WAAWyJ,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQ8/D,+EAA+E5/D,GAAUF,EAAQxvB,mBCD9O8B,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,o8KCe3F,MAAMiB,GAAW,CAChB/M,IAAK,kBACLmY,WAA0E,CAWzE6f,SAAU,CACT1sB,KAAMqL,SASPpO,MAAO,CACN+C,KAAMuL,OACNH,aAAc,KASfmhF,MAAO,CACNvsF,KAAMuL,OACNH,aAAc,IASfqhF,SAAU,CACTzsF,KAAMqL,SAGPuhF,OAAQ,CACP5sF,KAAMuL,OACND,UAAU,EACViP,eAAe,GAGhBoyE,aAAc,CACb3sF,KAAM5G,OACNkS,UAAU,GASXuhF,OAAQ,CACP7sF,KAAMqL,UAGRG,MAAqE,GAGrEsB,OAAsE,CAIrEggF,OAAQ,GAKRC,SAAU,GAKVn4C,OAAQ,CACPr7B,OAAQ,CACPtc,MAAO,CACN+C,KAAMuL,YA6BX,MAAMyhF,WAAoB15E,GACzB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAO6/E,GAGR3+E,sBACC,OAAO4+E,GAGR56F,cACCue,QACAte,KAAK46F,qBAAuB,EAC5B56F,KAAKo6F,aAAe,GACpBp6F,KAAK66F,UAAY,IAAIzC,GAAiBp4F,MACtCA,KAAK66F,UAAU3zF,YAAY,SAAUlH,KAAK86F,iBAAiBx4E,KAAKtiB,OAChEA,KAAK66F,UAAU3zF,YAAY,UAAWlH,KAAK+6F,sBAAsBz4E,KAAKtiB,OACtEA,KAAK66F,UAAU3zF,YAAY,WAAYlH,KAAK+6F,sBAAsBz4E,KAAKtiB,OAGxED,oBACC,IAAKC,KAAKk6F,UAAYl6F,KAAKs6F,OAAQ,CAClC,MAAMhjF,EAAQtX,KAAK46F,qBAAuB56F,KAAKq6F,OAAOr5F,OACtDhB,KAAK46F,qBAAwB56F,KAAKg7F,2BAA6B,EAAKh7F,KAAKq6F,OAAOr5F,OAASsW,EAGrFtX,KAAK0K,QACT1K,KAAK0K,MAAQ1K,KAAKq6F,OAAO,IAG1Br6F,KAAKi7F,oBAGN9yE,0BACC,MAAO,CAACsa,IAGT1iC,mBASC,GARKC,KAAK66F,UAAUpgD,kBACnBz6C,KAAK66F,UAAUpgD,gBAAkBz6C,KAAKoR,WAAWrL,cAAc,IAAI/F,KAAK2e,iBAGpE3e,KAAKk6F,UACTl6F,KAAK66F,UAAUluD,SAAS,EAAG,GAGxB3sC,KAAKk6F,SAAU,CAClB,MAAMgB,EAAWl7F,KAAKoR,WAAW+pF,iBAAiB,yBAClD,IAAK,IAAIz0F,EAAI,EAAGA,EAAIw0F,EAASl6F,OAAQ0F,IACpC,GAAIw0F,EAASx0F,GAAGmH,cAAgB7N,KAAK0K,MAEpC,OADA1K,KAAKo7F,sBAAsB/zD,OAAO6zD,EAASx0F,GAAG20F,QAAQC,WAAat7F,KAAKu7F,wBAA0Bv7F,KAAKq6F,OAAOr5F,SACvG,EAIThB,KAAKw7F,eAAeN,EAAS,KAI/B/2D,cACC,MAAO,CACNgG,KAAM,CACLsxD,wBAAwB,EACxBC,YAAapiE,OAKhBv5B,eACCC,KAAKk6F,UAAW,EAChBl6F,KAAKwB,UAAU,SAAU,IAG1BzB,iBACCC,KAAKk6F,UAAW,EAChBl6F,KAAKwB,UAAU,WAAY,IAG5Bm6F,sBACC,MAAMC,EAA4D,YAA9Ch/E,GAA2BhX,SAASC,MA5GhC,GACH,GA6GrB,GAAI7F,KAAKoR,WAAW+pF,iBAAiB,yBAAyBn6F,OAAQ,CACrE,MAEM66F,EAFoB/sF,iBAAiB9O,KAAKoR,WAAWrL,cAAc,0BAC/B8W,iBAAiB,kCACnBhN,QAAQ,KAAM,IACtD,OAAOw3B,OAAOw0D,IAAoBD,EAGnC,OAAOA,EAGR77F,mBACC,MAAM+7F,EAAe97F,KAAK27F,gBACzBI,EAAc/7F,KAAK66F,UAAUpgD,gBAAgB7N,UAC9C,IAAIovD,EAEJ,GAAKD,IAILC,EAAcxyE,KAAK4qB,MAAM2nD,EAAcD,GAEnC97F,KAAK0K,QAAU1K,KAAKo6F,aAAa4B,GAAatxF,OAAlD,CAIA,GAAI1K,KAAKs6F,OAAQ,CAChB,MAAM2B,EAAWj8F,KAAKk8F,0BAA0BF,GAC5CA,IAAgBC,IACnBD,EAAcC,GAIhBj8F,KAAK0K,MAAQ1K,KAAKo6F,aAAa4B,GAAatxF,MAC5C1K,KAAK46F,qBAAuBoB,GAG7Bj8F,wBACKC,KAAKk6F,UACRl6F,KAAKo7F,sBAAsBp7F,KAAK46F,sBAIlC76F,eAAegF,GACVA,GAAW/E,KAAKq6F,OAAOv5F,QAAQiE,EAAQ8I,cAAgB,IAC1D7N,KAAK46F,qBAAuBvzD,OAAOtiC,EAAQs2F,QAAQC,WACnDt7F,KAAKo7F,sBAAsBp7F,KAAK46F,uBAIlC76F,wBACC,OAAIC,KAAK46F,qBACDpxE,KAAKkgC,MAAM1pD,KAAK46F,qBAAuB56F,KAAKq6F,OAAOr5F,QAGpD,EAGRjB,sBAAsBo8F,GACrB,IAAI7kF,EAAQ6kF,EACZ,MAAMC,EAAap8F,KAAKo6F,aAAap5F,OAE/Bq7F,EADer8F,KAAK27F,gBACMrkF,EAE5BtX,KAAKs6F,SACRhjF,EAAQtX,KAAKk8F,0BAA0B5kF,IAGpCA,EAAQ8kF,GAAc9kF,GAAS,IAClCtX,KAAK66F,UAAUluD,SAAS,EAAG0vD,EAAU,EAAG,KACxCr8F,KAAK46F,qBAAuBtjF,EAC5BtX,KAAK0K,MAAQ1K,KAAKq6F,OAAO/iF,EAAStX,KAAKu7F,wBAA0Bv7F,KAAKq6F,OAAOr5F,QAC7EhB,KAAKwB,UAAU,SAAU,CAAEkJ,MAAO1K,KAAK0K,SAIzC3K,2BACC,MACMu8F,EAAkB9yE,KAAK4qB,MADU,GAC6Bp0C,KAAKq6F,OAAOr5F,QAGhF,OAAOwoB,KAAKuf,IAFe,EAESuzD,GAGrCv8F,oBACC,IAAIw8F,EAAcv8F,KAAKq6F,OACvB,GAAIr6F,KAAKs6F,QACJiC,EAAYv7F,OAAShB,KAAKq6F,OAAOr5F,OAAShB,KAAKg7F,2BAClD,IAAK,IAAIt0F,EAAI,EAAGA,EAAI1G,KAAKg7F,2BAA4Bt0F,IACpD61F,EAAcA,EAAYthF,OAAOjb,KAAKq6F,QAKzCr6F,KAAKo6F,aAAemC,EAAYp7F,IAAIuJ,IAC5B,CACNA,MAAAA,EACA6+E,SAAa7+E,IAAU1K,KAAK0K,SAK/B3K,0BAA0Bo8F,GACzB,MAAMK,EAAcx8F,KAAKo6F,aAAap5F,OAEtC,IAAIsW,EAAQ6kF,EAQZ,OAToC,EAGF7kF,EACjCA,GAA8B,EAArBtX,KAAKq6F,OAAOr5F,OACXsW,EAAQklF,EALiB,IAMnCllF,GAA8B,EAArBtX,KAAKq6F,OAAOr5F,QAGfsW,EAGRvX,aAAakN,GACPA,IAILA,EAAEyxB,kBACFzxB,EAAEwxB,iBAEExxB,EAAEwvF,YAAcz8F,KAAK08F,qBAAwB18F,KAAKk6F,WAIlDjtF,EAAE6sF,OAAS,EACd95F,KAAK28F,UACK1vF,EAAE6sF,OAAS,GACrB95F,KAAK48F,YAGN58F,KAAK08F,oBAAsBzvF,EAAEwvF,YAG9B18F,SAASkN,GACHA,EAAElE,OAAOkG,UAAUg+B,SAAS,0BAI7BjtC,KAAKk6F,UACRl6F,KAAK0K,MAAQuC,EAAElE,OAAO8E,YACtB7N,KAAKw7F,eAAevuF,EAAElE,QACtB/I,KAAKwB,UAAU,SAAU,CAAEkJ,MAAO1K,KAAK0K,SAEvC1K,KAAKk6F,UAAW,GAIlBn6F,aAAakN,GACZA,EAAEwxB,iBACFz+B,KAAK48F,YAGN78F,WAAWkN,GACVA,EAAEwxB,iBACFz+B,KAAK28F,UAGN58F,YACC,MAAM88F,EAAmB78F,KAAK46F,qBAAuB,EACrD56F,KAAKo7F,sBAAsByB,GAG5B98F,UACC,MAAM88F,EAAmB78F,KAAK46F,qBAAuB,EACrD56F,KAAKo7F,sBAAsByB,GAG5B98F,WAAWkN,GACLjN,KAAKk6F,WAINvoE,GAAK1kB,IACRjN,KAAKi6F,WAAWhtF,GAGb2kB,GAAO3kB,IACVjN,KAAKm6F,aAAaltF,GAGfwlB,GAAWxlB,IACdjN,KAAK88F,iBAAiB7vF,GAAG,GAGtBulB,GAASvlB,IACZjN,KAAK88F,iBAAiB7vF,GAAG,IAI3BlN,iBAAiBsS,EAAO0qF,GACvB1qF,EAAMosB,iBACN,MAAMu+D,EAAgBh9F,KAAKs6F,OAASt6F,KAAKq6F,OAAOr5F,OAAS,EACrD+7F,EACH/8F,KAAKo7F,sBAAsBp7F,KAAKq6F,OAAOr5F,OAAS,EAAIg8F,GAEpDh9F,KAAKo7F,sBAAsB4B,IAK9BvC,GAAY9/E,SChbZ,MAAMsiF,GAAyB,CAAC1qF,EAAGskC,EAAO,KACzC,MAAMqmD,EAAQ,GACd,IAAK,IAAIx2F,EAAI,EAAGA,EAAI6L,EAAG7L,IACtB,GAAIA,EAAImwC,GAAS,EAAG,CACnB,IAAIsmD,EAAaz2F,EAAEqB,WACO,IAAtBo1F,EAAWn8F,SACdm8F,EAAa,IAAIA,KAGlBD,EAAMv8F,KAAKw8F,GAIb,OAAOD,GCRR1wF,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,0BAA2BxH,QAAQ,2TCiCvFiB,GAAW,CAChB/M,IAAK,qBACLkD,eAAe,EACfgV,cAAc,EACdC,WAA4E,CAQ3E5P,MAAO,CACN+C,KAAMuL,OACNH,kBAAcvU,GAef23E,cAAe,CACdxuE,KAAMuL,QAQPi7E,UAAW,CACVxmF,KAAMqL,SAQPo7E,YAAa,CACZzmF,KAAMqL,SAQPq7E,YAAa,CACZ1mF,KAAMqL,SAOPw7E,SAAU,CACT7mF,KAAM25B,IAOPmtD,WAAY,CACX9mF,KAAM25B,IAOPotD,WAAY,CACX/mF,KAAM25B,IAGPitD,YAAa,CACZ5mF,KAAM25B,GACNvuB,aAAc,GAGfu7E,YAAa,CACZ3mF,KAAM25B,GACNvuB,aAAc,GAGfukF,eAAgB,CACf3vF,KAAMuL,OACNH,aAAc,UAGhB0B,OAAwE,CAIvEwrB,OAAQ,GAKRs3D,aAAc,KAehB,MAAMC,WAAsBv8E,GAC3B7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAO0iF,GAGRxhF,sBACC,OAAOyhF,GAGRr1E,0BACC,MAAO,CAACsyE,IAGT16F,yBACEu9F,GAAchmE,kBAAoBh2B,QAAQC,IAAI,CAC9C81B,GAAc,sBACdq9B,GAAUz/C,KAAYL,cAAeK,KAAY6gB,YAAa7gB,KAAYs9C,eAI5ExyD,cACCue,QAGDm/E,0BACC,MAAMC,EAAa19F,KAAKs8E,YAAY5L,aAAaliE,KAAK3M,GAAQA,EAAK4L,KAAK5B,WAAW,SACnF,MFrJ6B4B,CAAAA,IAC9B,MAAMuG,EAAS,GAoBf,MAlBa,aAATvG,GACHuG,EAAO2pF,QAAU,EACjB3pF,EAAO4pF,QAAU,GACjB5pF,EAAO6pF,qBAAsB,GACV,aAATpwF,GACVuG,EAAO2pF,QAAU,EACjB3pF,EAAO4pF,QAAU,GACjB5pF,EAAO6pF,qBAAsB,GACV,aAATpwF,GACVuG,EAAO2pF,QAAU,EACjB3pF,EAAO4pF,QAAU,GACjB5pF,EAAO6pF,qBAAsB,GACV,aAATpwF,IACVuG,EAAO2pF,QAAU,EACjB3pF,EAAO4pF,QAAU,GACjB5pF,EAAO6pF,qBAAsB,GAGvB7pF,GEgIC8pF,CAAuBJ,EAAaA,EAAWjwF,KAAO,YAG9DswF,qBAEC,MFlI8B,EAAC7qB,EAAa8qB,KAC7C,MAAMC,EAAe,EAAC,GAAO,GAAO,GAAO,GAE3C,IAAK,IAAIv3F,EAAI,EAAGA,EAAIwsE,EAAYlyE,OAAQ0F,IACX,IAAxBs3F,EAAYJ,UACfK,EAAa,IAAK,GAES,IAAxBD,EAAYJ,SAAiBI,EAAYH,sBAC5CI,EAAa,IAAK,GAES,WAAxB/qB,EAAYxsE,GAAG+G,OAClBwwF,EAAa,IAAK,GAES,WAAxB/qB,EAAYxsE,GAAG+G,OAClBwwF,EAAa,IAAK,GAES,eAAxB/qB,EAAYxsE,GAAG+G,OAClBwwF,EAAa,IAAK,GAIpB,OAAOA,GE6GCC,CADal+F,KAAKs8E,YAAY5L,aACO1wE,KAAKy9F,qBAGlD3I,sBACC,OAAO90F,KAAK+9F,eAAe,KAAO/9F,KAAKi0F,UAGxCc,wBACC,OAAO/0F,KAAK+9F,eAAe,KAAO/9F,KAAKk0F,YAGxCc,wBACC,OAAOh1F,KAAK+9F,eAAe,KAAO/9F,KAAKm0F,YAGxCc,wBACC,OAAOj1F,KAAK+9F,eAAe,GAG5BhI,mBACC,OFlLkBhtD,EEkLA/oC,KAAKw0F,WAAax0F,KAAKw0F,WAAa,OAAIlwF,EFlLnCuyC,EEkL8C72C,KAAKq0F,YFjLpE4I,GAAuBl0D,GAAO,GAAI8N,GADvB,IAAC9N,EAAK8N,EEqLxB6+C,mBACC,OF1LkB3sD,EE0LA/oC,KAAKu0F,WAAav0F,KAAKu0F,WAAa,OAAIjwF,EF1LnCuyC,EE0L8C72C,KAAKo0F,YFzLpE6I,GAAuBl0D,GAAO,GAAI8N,GADvB,IAAC9N,EAAK8N,EE6LxBs+C,iBACC,MFtNe,EAACnhF,EAAQ+0B,KACzB,IAAIo1D,EAAkB,GAQtB,GALCA,EADGnqF,EAAO6pF,oBACQZ,GAAuBl0D,GAAO,GAAI,GAElCk0D,GAAuBl0D,GAAO,GAAI,GAG9B,IAAnB/0B,EAAO2pF,QACV,IAAK,IAAIj3F,EAAI,EAAGA,EAAIy3F,EAAgBn9F,OAAQ0F,IAAK,CAChD,MAAM03F,EAAiC,EAArBD,EAAgBz3F,GAAS,EAEP,IAAhC03F,EAAUr2F,WAAW/G,OACxBm9F,EAAgBz3F,GAAK,IAAI03F,EAAUr2F,aAEnCo2F,EAAgBz3F,GAAK03F,EAAUr2F,WAKlC,OAAOo2F,GEiMCnzC,CAAShrD,KAAKy9F,oBAAqBz9F,KAAKs0F,SAAWt0F,KAAKs0F,SAAW,OAAIhwF,GAG/E8xF,mBACC,OAAOp2F,KAAKs8E,YAAY7L,YAAYtvE,IAAIoR,GAAKA,EAAEgF,eAGhD69E,0BACC,MAA+B,UAAxBp1F,KAAKo9F,eAGbzH,4BACC,MAA+B,YAAxB31F,KAAKo9F,eAGbpH,4BACC,MAA+B,YAAxBh2F,KAAKo9F,eAGb/G,2BACC,MAA+B,YAAxBr2F,KAAKo9F,eAGb/H,aACC,IAAIgJ,EACJ,MAAMjpB,EAAYp1E,KAAKs+F,eAWvB,OATCD,EADGr+F,KAAKy9F,oBAAoBI,qBAAuBzoB,EAAUpqB,WAAahrD,KAAKy9F,oBAAoBG,QAC3FxoB,EAAUpqB,WAAa,GACrBhrD,KAAKy9F,oBAAoBI,qBAAuBzoB,EAAUpqB,WAAahrD,KAAKy9F,oBAAoBE,QAClGvoB,EAAUpqB,WAAa,GAEvBoqB,EAAUpqB,WAEa,IAA5BqzC,EAAMt2F,WAAW/G,SACpBq9F,EAAQ,IAAIA,KAENA,EAAMt2F,WAGd6tF,eACC,MAAM2I,EAAUv+F,KAAKs+F,eAAerzC,aAAaljD,WACjD,OAA0B,IAAnBw2F,EAAQv9F,OAAe,IAAIu9F,IAAYA,EAG/CtI,eACC,MAAMuI,EAAUx+F,KAAKs+F,eAAepzC,aAAanjD,WACjD,OAA0B,IAAnBy2F,EAAQx9F,OAAe,IAAIw9F,IAAYA,EAG/ClI,cACC,IAAKt2F,KAAKy9F,oBAAoBI,oBAC7B,OAGD,IAAIY,EACJ,MAAMrpB,EAAYp1E,KAAKs+F,eAMvB,OAJCG,EADwC,IAArCz+F,KAAKy9F,oBAAoBE,QACnBvoB,EAAUpqB,YAAchrD,KAAKy9F,oBAAoBG,QAAU59F,KAAKo2F,aAAa,GAAKp2F,KAAKo2F,aAAa,GAEnGhhB,EAAUpqB,WAAahrD,KAAKy9F,oBAAoBG,SAAWxoB,EAAUpqB,aAAehrD,KAAKy9F,oBAAoBE,QAAW39F,KAAKo2F,aAAa,GAAKp2F,KAAKo2F,aAAa,GAErKqI,EAGR1+F,SAASqrD,GACR,MAAM1gD,EAAQ1K,KAAKgzF,YAAY5nC,GAC3BprD,KAAK0a,QAAQhQ,KAChB1K,KAAK0K,MAAQ1K,KAAKkzF,eAAexoF,GACjC1K,KAAKwB,UAAU,SAAU,CAAEkJ,MAAO1K,KAAK0K,MAAOyoE,OAAO,KAIvDpzE,cAAcsS,GACb,IAAIgsF,EAAQhsF,EAAM2U,OAAOtc,MACG1K,KAAKy9F,oBAAoBI,sBAGhD79F,KAAKs2F,UAAYt2F,KAAKo2F,aAAa,KACtCiI,EAAkB,OAAVA,EAAiB,EAAIA,GAG1Br+F,KAAKs2F,UAAYt2F,KAAKo2F,aAAa,KACtCiI,EAAkB,OAAVA,EAAiBA,EAAgB,EAARA,EAAY,KAI/C,MAAMjzC,EAAOprD,KAAKs+F,eAClBlzC,EAAKmf,SAAS8zB,GACdr+F,KAAK0+F,SAAStzC,GAGfrrD,gBAAgBsS,GACf,MAAMksF,EAAUlsF,EAAM2U,OAAOtc,MACvB0gD,EAAOprD,KAAKs+F,eAClBlzC,EAAK2tB,WAAWwlB,GAChBv+F,KAAK0+F,SAAStzC,GAGfrrD,gBAAgBsS,GACf,MAAMmsF,EAAUnsF,EAAM2U,OAAOtc,MACvB0gD,EAAOprD,KAAKs+F,eAClBlzC,EAAK4tB,WAAWwlB,GAChBx+F,KAAK0+F,SAAStzC,GAGfrrD,eAAesS,GACd,MAAMosF,EAASpsF,EAAM2U,OAAOtc,MACtB0gD,EAAOprD,KAAKs+F,eACdG,IAAWz+F,KAAKo2F,aAAa,IAAMhrC,EAAKJ,YAAc,IACzDI,EAAKmf,SAASnf,EAAKJ,WAAa,IAC3ByzC,IAAWz+F,KAAKo2F,aAAa,IAAMhrC,EAAKJ,WAAa,IAC1DI,EAAKmf,SAASnf,EAAKJ,WAAa,IAEjChrD,KAAK0+F,SAAStzC,GAGfrrD,QAAQ2K,GACP,MAAiB,KAAVA,GAAgB1K,KAAKs8E,YAAYlxE,MAAMV,GAG/C3K,eAAe2K,GACd,MAAc,KAAVA,EACIA,EAGD1K,KAAKs8E,YAAY/N,OAAOvuE,KAAKs8E,YAAYlxE,MAAMV,IAGvDgyE,qBACC,MAAMriB,EAAUr6D,KAAKi8E,cACf0iB,IAAatkC,EAAQ9qD,MAAM,MAC3Bq/D,GAAYvU,IAAYskC,EAExBviB,EAAaP,GAA4B5mE,MAC/C,OAAO25D,EAAWwN,EAAWzkB,2BAA2B,SAAU,SAAU33D,KAAKm8E,sBAAwB9hB,EAG1GsiB,iBACC,MAA+B,WAAxB38E,KAAK08E,gBAAuD,UAAxB18E,KAAK08E,gBAAsD,SAAxB18E,KAAK08E,eAOpF38E,aAAasS,GACZrS,KAAK4+F,kBAAkBvsF,EAAMtJ,OAAO6hF,QAAQ,qBAAqBtnE,aAAa,oBAG/EvjB,kBAAkB8+F,GACb7+F,KAAKo9F,iBAAmByB,IAG5B7+F,KAAKo9F,eAAiByB,EACtB7+F,KAAKwB,UAAU,gBAAiB,CAAEq9F,OAAAA,KAGnCC,wBACC,OAAO9+F,KAAKoR,WAAWrL,cAAc,qBAAqB/F,KAAKo9F,oBAGhE2B,qBACC,MAAO,CAAC,QAAS,UAAW,UAAW,WAAW77F,OAAO27F,IAAU7+F,OAAAA,KAAK,OArWlDg/F,EAqWyEH,EArWlEG,EAAIl/B,OAAO,EAAG,GAAGvoD,cAAgBynF,EAAIl/B,OAAO,YAAnDk/B,IAAAA,IAwWvBj/F,WAAWsS,GACLrS,KAAKo9F,gBACTp9F,KAAK4+F,kBAAkB5+F,KAAK++F,eAAe,IAGxC1sF,EAAMtJ,SAAWsJ,EAAM4sF,eAC1Bj/F,KAAK8+F,kBAAkBttF,QAIzBzR,YAAYsS,GACNrS,KAAKoR,WAAW67B,SAAS56B,EAAM06B,gBACnC/sC,KAAK4+F,kBAAkB,IAIzB7+F,iBAAiBsS,GAChB,IAAMof,GAAOpf,KAAUqf,GAAQrf,GAC9B,OAEDA,EAAMosB,iBAEN,MAAMygE,EAAgBl/F,KAAK++F,eACrBI,EAAe9sF,EAAMtJ,OAAO6hF,QAAQ,qBAAqBtnE,aAAa,mBAC5E,IAAIhM,EAAQ4nF,EAAcp+F,QAAQq+F,GAC9B1tE,GAAOpf,GACViF,EAAkB,IAAVA,EAAc4nF,EAAcl+F,OAAS,EAAIsW,EAAQ,EAC/Coa,GAAQrf,KAClBiF,EAAQA,IAAU4nF,EAAcl+F,OAAS,EAAI,EAAIsW,EAAQ,GAE1DtX,KAAK4+F,kBAAkBM,EAAc5nF,IACrCtX,KAAK8+F,kBAAkBttF,QAGxBzR,aAAakN,GACZA,EAAEwxB,iBAGH1+B,YACC,IAAIi9E,EAWJ,OATCA,EADGh9E,KAAK28E,WACKjQ,GAAW13D,YAAY,CACnCqlD,QAASr6D,KAAK08E,iBAGFhQ,GAAW13D,YAAY,CACnCnI,MAAO7M,KAAK08E,iBAIPM,EAGRj9E,YAAYqrD,GACX,OAAOprD,KAAKs8E,YAAY/N,OAAOnjB,GAGhCgqB,gBACC,OAAOp1E,KAAK0K,MAAQ1K,KAAKs8E,YAAYlxE,MAAMpL,KAAK0K,OAAS,IAAIy9C,KAG9Dm2C,qBACC,OAAOt+F,KAAK0a,QAAQ1a,KAAK0K,OAAS1K,KAAKo1E,UAAY,IAAIjtB,KAGxD+sC,uBACC,OAAOoI,GAAchmE,WAAWyH,QAAQ2B,IAGzC+0D,yBACC,OAAO6H,GAAchmE,WAAWyH,QAAQ4B,IAGzCm1D,yBACC,OAAOwH,GAAchmE,WAAWyH,QAAQ6B,IAGzCu1D,wBACC,OAAOmH,GAAchmE,WAAWyH,QAAQ8B,IAGzC20D,gBACC,OAAQr8D,KAGTgL,cACC,MAAO,CACNgG,KAAM,CACLi1D,2BAA2B,EAC3B1D,YAAapiE,QAMjBgkE,GAAc3iF,SCrednO,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,uBAAwBxH,QAAQ,kmECF5D,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,8BAA+BxH,QAAQ,6JCgCjG,MAAMiB,GAAW,CAChB7J,eAAe,EACfgV,cAAc,EACdC,WAA6E,CAQ5E5P,MAAO,CACN+C,KAAMuL,OACNH,kBAAcvU,GAmBfwhC,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAU1BvJ,SAAU,CACT1sB,KAAMqL,SAUPysB,SAAU,CACT93B,KAAMqL,SAMPu4E,cAAe,CACd5jF,KAAMqL,QACNgB,aAAa,IAGfb,MAAwE,CAcvE4gC,kBAAmB,CAClBpsC,KAAMiK,cAGR6C,OAAyE,CAQxEwrB,OAAQ,GAORmQ,MAAO,KAcT,MAAMmpD,WAAuBt+E,GAC5B7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAOykF,GAGR73E,gCACC,OAAO83E,GAGRxjF,sBACC,OAAOyjF,GAGRr3E,0BACC,MAAO,CACNkW,GACA8jD,GACAmb,GACA5iD,GACAjY,IAIF1iC,yBACEs/F,GAAe/nE,kBAAoBh2B,QAAQC,IAAI,CAC/C81B,GAAc,sBACdq9B,GAAUz/C,KAAYL,cAAeK,KAAY6gB,YAAa7gB,KAAYs9C,eAI5Eh3C,8BACC,MAAO,CAACs/B,GAA4B4kD,IAGrC1/F,cACCue,QAOD03B,oBAQA0mC,sBAIAgjB,sBACC,OAAO1/F,KAAK0K,MAGbspF,0BACC,OAAOh0F,KAAKo+F,UAGbr+F,sBAAsBsS,GACrBrS,KAAKo+F,UAAY/rF,EAAM2U,OAAOtc,MAG/B3K,gBACCC,KAAKizF,0BAA0BjzF,KAAKo+F,WAAW,EAAM,CAAC,SAAU,kBAChEp+F,KAAK+xF,cAGNhyF,gCACCC,KAAKqxF,eAAgB,EAGtBtxF,0BACC,GAAIC,KAAKqxF,cACR,OAGD,MAAMsO,QAAmB3/F,KAAK4/F,iBAE1BD,GACHA,EAAWt9C,SAIbtiD,0BAA0B2K,EAAOwoF,EAAgB34E,GAChD,GAAI7P,IAAU1K,KAAK0K,MAClB,OAGD,MAAMyoE,EAAQnzE,KAAK0a,QAAQhQ,GACvByoE,GAAS+f,IACZxoF,EAAQ1K,KAAKkzF,eAAexoF,IAG7B1K,KAAK0K,MAAQ,GACb1K,KAAK0K,MAAQA,EACb1K,KAAKo+F,UAAY1zF,EACjB1K,KAAKqzF,oBACL94E,EAAO3Y,QAAQyQ,IACdrS,KAAKwB,UAAU6Q,EAAO,CAAE3H,MAAAA,EAAOyoE,MAAAA,MAIjCpzE,oBACC,MAAM2a,EAAU1a,KAAK0a,QAAQ1a,KAAK0K,OAC7BgQ,EAEMA,GAAW1a,KAAK8lC,aAAehC,GAAWvgC,QACpDvD,KAAK8lC,WAAahC,GAAWJ,MAF7B1jC,KAAK8lC,WAAahC,GAAWvgC,MAM/BxD,yBAAyBsS,GACxBrS,KAAKizF,0BAA0B5gF,EAAMtJ,OAAO2B,OAAO,EAAM,CAAC,SAAU,kBAGrE3K,6BAA6BsS,GAC5BrS,KAAKizF,0BAA0B5gF,EAAMtJ,OAAO2B,OAAO,EAAO,CAAC,UAO5D3K,2BACiCC,KAAK2+C,eACnBtT,QAClBrrC,KAAKqxF,eAAgB,EAStBtxF,mBACCC,KAAKo+F,UAAYp+F,KAAK0K,OAAS1K,KAAK0a,QAAQ1a,KAAK0K,OAAS1K,KAAK0K,MAAQ1K,KAAKs8E,YAAY/N,OAAO,IAAIpmB,aACnEnoD,KAAK2+C,eACnBtrC,OAAOrT,MACzBA,KAAKqxF,eAAgB,EAGtBtxF,eACKC,KAAKosC,SACRpsC,KAAK+xF,cACK/xF,KAAK0zF,kBACf1zF,KAAK2zF,aASP5zF,SACC,QAASC,KAAKqxF,cAGftxF,iBACC,OAAQC,KAAKm6B,WAAan6B,KAAKulC,SAGhCxlC,oBAEC,aAD6BC,KAAK2tC,2BACZ5nC,cAAc,4BAGrChG,YACC,OAAOC,KAAKoR,WAAWrL,cAAc,eAGtChG,iBACC,MAAMm2C,EAAQl2C,KAAKsyF,YACnB,OAAOp8C,GAASA,EAAM0H,iBAGvB79C,WAAWkN,GACN6lB,GAAO7lB,KACVA,EAAEwxB,iBACFz+B,KAAKoxF,gBAGFpxF,KAAKosC,WAILxZ,GAAkB3lB,IACrBA,EAAEwxB,iBACFz+B,KAAK6/F,eAAe,EAAG,WACbntE,GAAczlB,IACxBA,EAAEwxB,iBACFz+B,KAAK6/F,eAAe,EAAG,WACbrtE,GAASvlB,IACnBA,EAAEwxB,iBACFz+B,KAAK6/F,eAAe,EAAG,SACbhtE,GAAoB5lB,IAC9BA,EAAEwxB,iBACFz+B,KAAK6/F,gBAAgB,EAAG,WACdltE,GAAgB1lB,IAC1BA,EAAEwxB,iBACFz+B,KAAK6/F,gBAAgB,EAAG,WACdptE,GAAWxlB,KACrBA,EAAEwxB,iBACFz+B,KAAK6/F,gBAAgB,EAAG,UAI1BljB,iBACC,MAA+B,WAAxB38E,KAAK08E,gBAAuD,UAAxB18E,KAAK08E,gBAAsD,SAAxB18E,KAAK08E,eAGpF38E,YACC,IAAIi9E,EAWJ,OATCA,EADGh9E,KAAK28E,WACKjQ,GAAW13D,YAAY,CACnCqlD,QAASr6D,KAAK08E,iBAGFhQ,GAAW13D,YAAY,CACnCnI,MAAO7M,KAAK08E,iBAIPM,EAURj9E,YAAYqrD,GACX,OAAOprD,KAAKs8E,YAAY/N,OAAOnjB,GAYhCrrD,QAAQ2K,GACP,MAAiB,KAAVA,GAAgB1K,KAAKs8E,YAAYlxE,MAAMV,GAG/C3K,eAAe2K,GACd,MAAc,KAAVA,EACIA,EAGD1K,KAAKs8E,YAAY/N,OAAOvuE,KAAKs8E,YAAYlxE,MAAMV,IAGvD3K,eAAeyrE,EAAQC,GACtB,MAAMrgB,EAAOprD,KAAKs8E,YAAYlxE,MAAMpL,KAAK0/F,iBACzC,IAAKt0C,EACJ,OAGY,SAATqgB,EACHrgB,EAAKmf,SAASnf,EAAKJ,WAAawgB,GACb,WAATC,EACVrgB,EAAK2tB,WAAW3tB,EAAKH,aAAeugB,GACjB,WAATC,GACVrgB,EAAK4tB,WAAW5tB,EAAKF,aAAesgB,GAGrC,MAAM1mD,EAAW9kB,KAAKgzF,YAAY5nC,GAClCprD,KAAKizF,0BAA0BnuE,GAAU,EAAM,CAAC,SAAU,kBAG3D/kB,aAAakN,GACZA,EAAEwxB,iBAGHm2D,wBACC,OAAOyK,GAAe/nE,WAAWyH,QAAQ+B,IAG1C+zD,wBACC,OAAOwK,GAAe/nE,WAAWyH,QAAQgC,IAM1CmwD,mBACC,MAAO,sBC/bT,MAAMhiF,GAAW,CAChB/M,IAAK,kBACL0X,OAAQ,iBACRS,WAA6E,CAa5E69B,YAAa,CACZ1qC,KAAMuL,OACNH,kBAAcvU,GAef23E,cAAe,CACdxuE,KAAMuL,UAsET,MAAM8mF,WAAmBT,GACxBnwF,sBACC,OAAOA,GAGRwtE,qBACC,MAAMiiB,IAAa3+F,KAAKi8E,cAAc1sE,MAAM,MACtCq/D,GAAY5uE,KAAKi8E,gBAAkB0iB,EAEnCviB,EAAaP,GAA4B5mE,MAC/C,OAAO25D,EAAWwN,EAAW3kB,eAAe,UAAYz3D,KAAKi8E,cAG9DsW,qBACC,OAAOvyF,KAAKs8E,YAAYrO,eAAe5T,QAGxCrkB,mBACC,YAA4B1xC,IAArBtE,KAAKm4C,YAA4Bn4C,KAAKm4C,YAAcn4C,KAAKuyF,eAUjEnd,gBACC,OAAOp1E,KAAKs8E,YAAYlxE,MAAMpL,KAAK0/F,iBAGpC3kE,cACC,MAAO,CACNsb,oBAAuBr2C,KAAKwzF,oBAC5Bp9C,aAAgB,SAChBE,iBAAoB,OACpBtY,KAAQ,WACR/C,aAAgB,GAAGj7B,KAAK2e,yBACxBqc,aAAgBh7B,KAAKosC,UAIvBonD,0BACC,OAAOsM,GAAWxoE,WAAWyH,QAAQiC,KAIvC8+D,GAAWnlF,SCnKX,MAAMolF,GACLhgG,gBAAgBigG,GACf,OAAOhgG,KAAKigG,OAAOh9F,IAAI+8F,GAGxBjgG,gBAAgBigG,GACf,OAAOhgG,KAAKigG,OAAO1/F,IAAIy/F,GAGxBjgG,gCAAgCigG,GAC/B,OAAOhgG,KAAKkgG,cAAc3/F,IAAIy/F,GAG/BjgG,mBAAmBigG,GAElB,OADAhgG,KAAKkgG,cAAcj/F,OAAO++F,GACnBhgG,KAAKigG,OAAOh/F,OAAO++F,GAG3BjgG,kBAAkBogG,EAAUH,GACvBhgG,KAAKogG,SAASJ,IACjBhgG,KAAKqgG,uBAAuBF,EAAUH,GACtChgG,KAAKsgG,SAASN,GAAWr/F,KAAKw/F,IAE9BngG,KAAKugG,YAAYJ,EAAUH,GAG5BhgG,KAAKwgG,eAAeR,GAGrBjgG,uBAAuBogG,EAAUH,GAChC,IAAKhgG,KAAKogG,SAASJ,GAClB,OAGD,MAAMnhD,EAAQ7+C,KAAKsgG,SAASN,GACtBS,EAAezgG,KAAK0gG,yBAAyBV,GAGnDnhD,EAAMj9C,QAAQ,CAAC++F,EAAWv9E,EAAKzhB,KAC9B,GAAIw+F,EAASxhF,MAAQgiF,EAAUhiF,IAC9B,OAAOhd,EAAIZ,OAAOqiB,EAAK,KAIrBq9E,IAAiBN,GACpBngG,KAAKkgG,cAAct/F,IAAIo/F,EAAW,MAI9BnhD,EAAM79C,QACVhB,KAAK4gG,YAAYZ,GAGlBhgG,KAAKwgG,eAAeR,GAGrBjgG,mBAAmBogG,EAAUH,GACxBG,EAAS76D,SACZtlC,KAAKkgG,cAAct/F,IAAIo/F,EAAWG,GAGnCngG,KAAKigG,OAAOr/F,IAAIo/F,EAAW,CAACG,IAG7BpgG,sBAAsB8B,EAAMm+F,GAC3B,MAAMnhD,EAAQ7+C,KAAKsgG,SAASN,GAC3Ba,EAAchiD,EAAM79C,OACpB8/F,EAAsBjiD,EAAM/9C,QAAQe,GAErC,GAAIg/F,GAAe,EAClB,OAGD,MAAME,EAAmB/gG,KAAKghG,gBAAgBF,EAAqBjiD,GAEnE7+C,KAAKihG,uBAAuBF,EAAkBf,GAG/CjgG,sBAAsBigG,GACrB,IAAKhgG,KAAKogG,SAASJ,GAClB,OAGD,MAAMnhD,EAAQ7+C,KAAKsgG,SAASN,GACtBkB,EAAkBriD,EAAM1sC,KAAKguF,GAAYA,EAAS76D,SAExDuZ,EAAM37C,OAAOi9F,IAAaA,EAAShmE,UAAUv4B,QAAQ,CAACu+F,EAAU/8E,KAE9D+8E,EAAS59D,UADN2+D,EACkBf,EAAS76D,QAAU,IAAM,KAEjB,IAARliB,EAAY,IAAM,OAK1CrjB,0BAA0B8B,EAAMm+F,GAC/B,MAAMnhD,EAAQ7+C,KAAKsgG,SAASN,GAC3Ba,EAAchiD,EAAM79C,OACpB8/F,EAAsBjiD,EAAM/9C,QAAQe,GAErC,GAAIg/F,GAAe,EAClB,OAGD,MAAMM,EAAuBnhG,KAAKohG,oBAAoBN,EAAqBjiD,GAE3E7+C,KAAKihG,uBAAuBE,EAAsBnB,GAGnDjgG,kBAAkB8B,EAAMm+F,GACvBhgG,KAAKihG,uBAAuBp/F,EAAMm+F,GAClChgG,KAAKwgG,eAAeR,GAGrBjgG,8BAA8BshG,EAAkBrB,GAC/C,MAAMS,EAAezgG,KAAK0gG,yBAAyBV,GAEnDhgG,KAAKshG,eAAeb,GACpBzgG,KAAKuhG,aAAaF,GAClBrhG,KAAKkgG,cAAct/F,IAAIo/F,EAAWqB,GAGnCthG,sBAAsBogG,GACjBA,IACHA,EAAS76D,SAAU,GAIrBvlC,oBAAoBogG,GACfA,IACHA,EAAS3uF,QACT2uF,EAAS76D,SAAU,EACnB66D,EAASqB,UAAW,EACpBrB,EAAS3+F,UAAU,WAIrBzB,uBAAuBkiD,EAAKpD,GAE3B,IAAI4iD,EAAoB,KAExB,GAAIx/C,IAHgBpD,EAAM79C,OAGA,EAAG,CAC5B,GAAI69C,EAAM,GAAG1kB,UAAY0kB,EAAM,GAAGtZ,SACjC,OAAOvlC,KAAKghG,gBAAgB,EAAGniD,GAEhC4iD,EAAoB5iD,EAAM,OACpB,CAAA,GAAIA,EAAMoD,EAAM,GAAG9nB,UAAY0kB,EAAMoD,EAAM,GAAG1c,SACpD,OAAOvlC,KAAKghG,gBAAgB/+C,EAAM,EAAGpD,GAErC4iD,EAAoB5iD,EAAMoD,EAAM,GAGjC,OAAOw/C,EAGR1hG,2BAA2BkiD,EAAKpD,GAC/B,MAAMgiD,EAAchiD,EAAM79C,OAC1B,IAAI0gG,EAAwB,KAC5B,GAAY,IAARz/C,EAAW,CACd,GAAIpD,EAAMgiD,EAAc,GAAG1mE,UAAY0kB,EAAMgiD,EAAc,GAAGt7D,SAC7D,OAAOvlC,KAAKohG,oBAAoBP,EAAc,EAAGhiD,GAElD6iD,EAAwB7iD,EAAMgiD,EAAc,OACtC,CAAA,GAAIhiD,EAAMoD,EAAM,GAAG9nB,UAAY0kB,EAAMoD,EAAM,GAAG1c,SACpD,OAAOvlC,KAAKohG,oBAAoBn/C,EAAM,EAAGpD,GAEzC6iD,EAAwB7iD,EAAMoD,EAAM,GAGrC,OAAOy/C,EAGR3hG,8BAA8BogG,EAAUH,GACvC,MAAMS,EAAezgG,KAAK0gG,yBAAyBV,GAE/CG,EAAS76D,QACPm7D,EAEMN,IAAaM,IACvBzgG,KAAKshG,eAAeb,GACpBzgG,KAAKkgG,cAAct/F,IAAIo/F,EAAWG,IAHlCngG,KAAKkgG,cAAct/F,IAAIo/F,EAAWG,GAKzBA,IAAaM,GACvBzgG,KAAKkgG,cAAct/F,IAAIo/F,EAAW,MAGnChgG,KAAKwgG,eAAeR,GAGrBC,oBAIC,OAHKjgG,KAAK2hG,UACT3hG,KAAK2hG,QAAU,IAAIzhG,KAEbF,KAAK2hG,QAGbzB,2BAIC,OAHKlgG,KAAK4hG,iBACT5hG,KAAK4hG,eAAiB,IAAI1hG,KAEpBF,KAAK4hG,gBCrMd,MAAM3nE,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,8BAA8BuT,GAAShK,EAAQiK,QAAQY,qCAAqC3K,GAAUF,EAAQoL,4BAA4BlL,GAAUF,EAAQ+K,iCAAiC7K,GAAUF,EAAQgL,8BAA8B9K,GAAUF,EAAQ2nE,qCAAqCznE,GAAUF,EAAQkL,+BAA+BhL,GAAUF,EAAQkD,mBAAmBhD,GAAUF,EAAQ5S,0BAA0B4S,EAAQK,uBAAuBL,EAAQQ,uBAAuBR,EAAQS,yBAAyBT,EAAQM,2BAA2BN,EAAQO,0BAA0BP,EAAQG,4CAA4C6J,GAAShK,EAAQiK,QAAQ29D,2EAA2ErkE,2CAAuEvD,EAAQoL,uBAAuBpL,EAAQqL,wBAAwBrL,EAAQC,mBAAmBC,GAAUF,EAAQxyB,qCAAsCwyB,EAAQsL,KAAOlK,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQuL,cAAgBjK,GAAOtB,QAAyB51B,UACxlCg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,4CAA4Cyb,GAAUF,EAAQvb,wBAAwByb,GAAUF,EAAQoK,kBAAkBlK,GAAUF,EAAQsL,UAAU1U,GAAS,YAAaC,EAAMpX,MAC3R6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,uCAAuCyb,GAAUF,EAAQyL,yBAEhIlI,GAAY,CAACvD,EAASnJ,EAAMpX,IAAW+jB,EAAG,mICFhDlxB,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,wBAAyBxH,QAAQ,qwLCoB3F,IAAI2zB,IAA0B,EAC1BmgE,GAAc,KAKlB,MAAM7yF,GAAW,CAChB/M,IAAK,mBACL0X,OAAQ,kBACRxU,eAAe,EACfiV,WAA0E,CAWzE6f,SAAU,CACT1sB,KAAMqL,SAaPysB,SAAU,CACT93B,KAAMqL,SAePwsB,QAAS,CACR73B,KAAMqL,SAUP0sB,KAAM,CACL/3B,KAAMuL,QAiBP8sB,WAAY,CACXjtB,aAAcirB,GAAWJ,KACzBj2B,KAAMq2B,IA4BPp8B,KAAM,CACL+F,KAAMuL,QAePtO,MAAO,CACN+C,KAAMuL,QAgBPsrB,aAAc,CACb72B,KAAMw2B,GACNprB,aAAcorB,GAAaP,MAY5BvI,eAAgB,CACf1tB,KAAMuL,QAGPupB,UAAW,CACV90B,KAAMuL,OACNH,aAAc,KACdiB,aAAa,GAObmoB,OAAQ,CACRx0B,KAAMqL,UAGRG,MAAqE,CAQpE+sB,YAAa,CACZv4B,KAAMiK,cAGR6C,OAAsE,CASrEwrB,OAAQ,KAqCV,MAAMi8D,WAAoBjhF,GACzBhhB,cACCue,QAEAte,KAAK6iC,YAAc,KACdk/D,KACHA,GAAY9/D,QAAS,IAIlBL,KACJh8B,SAASoQ,iBAAiB,UAAWhW,KAAK6iC,aAC1CjB,IAA0B,GAI5B1yB,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOkmF,GAGRpnF,oBACC,OAAOqnF,GAGR/5E,0BACC,MAAO,CAACqc,IAGTzkC,wBACCiiG,GAAY1qE,iBAAmBD,GAAc,sBAG9Ct3B,oBACCC,KAAKmiG,YAELniG,KAAKomC,qBAGNrmC,YACC,MAAMqiG,EAAWpiG,KAAKqiG,MAChBC,EAAetiG,KAAK0H,KACpB66F,EAAaviG,KAAKwhG,SAClBgB,EAAiBxiG,KAAKslC,QAExBg9D,IAAiBF,GAChBA,GAEHrC,GAAiB0C,gBAAgBziG,KAAMoiG,GAGpCE,GAEHvC,GAAiB2C,WAAW1iG,KAAMsiG,IAEzBA,GACVvC,GAAiBM,uBAAuBrgG,KAAMsiG,GAG3CtiG,KAAK0H,MAAQ86F,IAAmBD,GACnCxC,GAAiBS,eAAexgG,KAAK0H,MAGtC1H,KAAKqiG,MAAQriG,KAAK0H,KAClB1H,KAAKwhG,SAAWxhG,KAAKslC,QAGtBvlC,qBACC,MAAM+iC,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,KAAM,CAAC+E,EAASuhC,KACjDA,EAAYnM,SAAWp1B,EAAQo1B,WAAap1B,EAAQugC,QACpDgB,EAAY57B,MAAQ3F,EAAQugC,QAAUvgC,EAAQ2F,MAAQ,KAE7C1K,KAAK0K,OACfpI,QAAQC,KAAK,6IAIfxC,WACC,OAAOC,KAAKumC,SAGbxmC,YAAYsS,GACX,MAAMiwF,EAAetiG,KAAK0H,KAErB46F,IAILjwF,EAAMosB,iBACNshE,GAAiB4C,eAAe3iG,KAAMsiG,IAGvCviG,UAAUsS,GACT,MAAMiwF,EAAetiG,KAAK0H,KAErB46F,IAILjwF,EAAMosB,iBACNshE,GAAiB6C,mBAAmB5iG,KAAMsiG,IAG3CviG,WAAWsS,GACV,OAAIkf,GAAQlf,IACXrS,KAAKiiC,QAAS,EACP5vB,EAAMosB,kBAGVvN,GAAQ7e,IACXrS,KAAKiiC,QAAS,EACPjiC,KAAKumC,YAGT3U,GAAOvf,IAAUqf,GAAQrf,KAC5BrS,KAAKy8C,YAAYpqC,SAGdsf,GAAKtf,IAAUof,GAAOpf,KACzBrS,KAAKw8C,UAAUnqC,KAIjBtS,SAASsS,GACJkf,GAAQlf,IACXrS,KAAKumC,SAGNvmC,KAAKiiC,QAAS,EAGfliC,eACCC,KAAKiiC,QAAS,EACd8/D,GAAc/hG,KAGfD,aACCC,KAAKiiC,QAAS,EAGfliC,cACCC,KAAKiiC,QAAS,EAGfliC,SACC,OAAKC,KAAKwmC,YAILxmC,KAAK0H,MAMVq4F,GAAiB8C,WAAW7iG,KAAMA,KAAK0H,MAChC1H,OANNA,KAAKslC,SAAWtlC,KAAKslC,QACrBtlC,KAAKwB,UAAU,UACRxB,MANAA,KAaTD,YACC,QAASC,KAAKm6B,UAAYn6B,KAAKulC,UAAYvlC,KAAKslC,SAGjDvlC,yBACC,MAAO,CACNwD,MAASy+F,GAAY1qE,WAAWyH,QAAQkC,IACxC2C,QAAWo+D,GAAY1qE,WAAWyH,QAAQmC,KAI5CiD,cACC,MAAO,CACNY,KAAM,GACN+8D,MAAO,CACNgB,8BAA+B9iG,KAAKm6B,WAAan6B,KAAKulC,UAAYhM,OAKrE0L,mBACC,OAAOjlC,KAAKulC,SAAW,YAASjhC,EAGjC4gC,mBACC,OAAOllC,KAAKm6B,SAAW,YAAS71B,EAGjCu9F,oBACC,MAAO,CAAC7hG,KAAKwlC,KAAMxlC,KAAKm7B,gBAAgBj4B,OAAO4V,SAAStW,KAAK,KAG9D4iC,sBACC,OAAOplC,KAAKylC,cAAgB,GAAGzlC,KAAK2e,iBAAcra,EAGnDmhC,oBACC,OAAOzlC,KAAK8lC,aAAehC,GAAWJ,KAGvCiC,qBACC,OAAO3lC,KAAK0mC,yBAAyB1mC,KAAK8lC,YAG3C1I,eACC,MAAMoG,EAAWxjC,KAAKsjB,aAAa,YAEnC,OAAItjB,KAAKm6B,SACD,KAGJn6B,KAAK0H,KACD1H,KAAKuiC,UAGNiB,GAAY,IAGpBu/D,kBACC,MAA2B,SAApB/iG,KAAK8lC,WAAwB,IAAM,KAI5Ck8D,GAAYrnF,SCxeZ,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,yCAAyCnB,GAAS0K,EAAQrf,OAAOkqB,yBAAyB7K,EAAQic,0BAA0Bjc,EAAQI,0BAA0BJ,EAAQG,gBAAiBH,EAAQ8oE,QAAU1nE,GAAOpB,QAAyB51B,kBAA2B81B,GAAUF,EAAQvb,uDAAuDyb,GAAUF,EAAQie,4BAA4Bje,EAAQC,wBAAwBD,EAAQqL,yBAAyBnL,GAAUF,EAAQ2nE,qCAAqCznE,GAAUF,EAAQkL,oCAAoChL,GAAUF,EAAQmK,yBAAyBjK,GAAUF,EAAQ+oE,mBAAmBC,6BAA6B9oE,GAAUF,EAAQxvB,mBAAmBwvB,EAAQipE,sBAAsBjpE,EAAQkpE,sBAAsBlpE,EAAQS,uBAAuBT,EAAQQ,6DAA8DR,EAAQmpE,iBAAmB39D,GAAOxL,QAAyB51B,IAAc41B,EAAQuL,cAAgBgL,GAAOvW,QAAyB51B,2CACrgCg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,uBAAuB6Q,GAAS0K,EAAQrf,OAAOyoF,2DAA4DzrD,GAAO3d,EAAQqpE,YAAa,CAAC1hG,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkkB,GAAO35B,YACzQ25B,GAAS,CAAC35B,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,EAAK2jC,cACvEE,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,4CAA4CyJ,GAAUF,EAAQ+oE,mBAAmBO,uBACzH/yD,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQkd,mCCJzInd,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQupE,gCAAkCnoE,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IACtHg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,cAAeC,EAAMpX,2IAAgJ6V,GAAS0K,EAAQrf,OAAO6oF,+HAA+Hx/D,GAAShK,EAAQiK,QAAQw/D,oBAAoB7yE,GAAS,WAAYC,EAAMpX,uDAA4DygB,GAAUF,EAAQ0pE,8BAA8B9yE,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQ2pE,oBAAsBroE,GAAOtB,GAAyBuW,GAAOvW,aAAkCpJ,GAAS,cAAeC,EAAMpX,MACjtB6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUouB,GAAO7jC,MAC9I6jC,GAAS,CAAC7jC,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KAClE4uC,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBCFnEn5B,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,qBAAsBxH,QAAQ,m1QCuBxF,MAAMiB,GAAW,CAChB/M,IAAK,eACLkD,eAAe,EACfgV,cAAc,EACdC,WAAuE,CAQtE5P,MAAO,CACN+C,KAAMuL,QAYPmhB,SAAU,CACT1sB,KAAMqL,SAaPysB,SAAU,CACT93B,KAAMqL,SAWPurB,SAAU,CACT52B,KAAMqL,SAUPq/B,YAAa,CACZ1qC,KAAMuL,QAuBP8sB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAiB1BogE,KAAM,CACLr2F,KAAM25B,GACNvuB,aAAc,GAUfo9B,UAAW,CACVxoC,KAAM25B,GACNvuB,aAAc,MAgBfwqF,iBAAkB,CACjB51F,KAAMqL,SAWPkqF,QAAS,CACRv1F,KAAMqL,SAUPirF,gBAAiB,CAChBt2F,KAAM25B,GACNvuB,aAAc,GAmBfnR,KAAM,CACL+F,KAAMuL,QAUPmiB,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,QAMPklB,QAAS,CACRzwB,KAAMqL,SAMPkrF,UAAW,CACVv2F,KAAMqL,SAMPyqF,YAAa,CACZ91F,KAAM5G,OACNkS,UAAU,EACVF,aAAc,IAMforF,WAAY,CACXx2F,KAAMuL,OACNc,aAAa,GAMd06B,OAAQ,CACP/mC,KAAM25B,KAGRnuB,MAAkE,CAgBjE4gC,kBAAmB,CAClBpsC,KAAMiK,aAUPsuB,YAAa,CACZv4B,KAAMiK,cAGR6C,OAAmE,CAOlEwrB,OAAQ,GAURmQ,MAAO,KAkCT,MAAMguD,WAAiBnjF,GACtB7R,sBACC,OAAOA,GAGR2L,oBACC,OAAOA,GAGR8B,oBACC,OAAO6T,GAGRzU,sBACC,OAAOooF,GAGR18E,gCACC,OAAO28E,GAGR7oF,8BACC,OAAO8oF,GAGRtkG,cACCue,QAEAte,KAAKskG,iBAAkB,EACvBtkG,KAAKukG,2BAA4B,EACjCvkG,KAAKwkG,YAAcxkG,KAAKykG,UAAUniF,KAAKtiB,MAGxCD,aACCinC,GAAcmL,SAASnyC,KAAMA,KAAKwkG,aAGnCzkG,YACCinC,GAAcoL,WAAWpyC,KAAMA,KAAKwkG,aAGrCzkG,oBACCC,KAAKijG,mBAAqBjjG,KAAK0kG,oBAC/B1kG,KAAKujG,YAAcvjG,KAAK2kG,cAAc3kG,KAAK0K,OAE3C1K,KAAKgkG,UAAYhkG,KAAKijG,mBAAmB2B,oBAAsB,EAE3D5kG,KAAK+jG,kBAER/jG,KAAKikG,WAAa,GAA0B,IAAvBjkG,KAAK+jG,gBAAwB,GAAK,OAGxD,MAAMjhE,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,MACxBA,KAAK0H,MACfpF,QAAQC,KAAK,4IAIfxC,mBACCC,KAAK6kG,wBAAwB7kG,KAAK8kG,0BAClC9kG,KAAKskG,iBAAkB,EAGxBvkG,iBACC,OAAOC,KAAKqmB,YAAYtgB,cAAc,YAGvChG,WAAWsS,GAGV,GAFArS,KAAKk9C,UAAW,EAEZ7qB,GAAShgB,GAAQ,CACpB,MAAM0yF,EAAiB/kG,KAAKglG,iBAE5BhlG,KAAK0K,MAAQ1K,KAAKq7C,cAClB0pD,EAAer6F,MAAQ1K,KAAK0K,MAC5B1K,KAAKwB,UAAU,UAIjBzB,WACCC,KAAKk9C,UAAW,EAGjBn9C,aACCC,KAAKk+B,SAAU,EACfl+B,KAAKukG,2BAA4B,EACjCvkG,KAAKq7C,cAAgBr7C,KAAKglG,iBAAiBt6F,MAG5C3K,YAAYsS,GACX,MAAM0rC,EAAgC1rC,EAAM06B,eAAiB16B,EAAM06B,cAAc37B,YAAciB,EAAM06B,cAAc37B,WAAWrL,cAAc,+BAC5I/F,KAAKk+B,SAAU,EAEV6f,IACJ/9C,KAAKukG,2BAA4B,GAInCxkG,YACCC,KAAKwB,UAAU,SAAU,IAG1BzB,SAASsS,GACR,MAAM0yF,EAAiB/kG,KAAKglG,iBAMtBC,EAAcF,EAAer6F,QAAU1K,KAAK0K,OAAUyuB,OAAWn5B,KAAKk9C,YAAcl9C,KAAKm4C,YAC3F9lC,EAAMtJ,SAAWg8F,GAEpB1yF,EAAM2rC,2BAGHinD,IAIJjlG,KAAK0K,MAAQq6F,EAAer6F,MAC5B1K,KAAKwB,UAAU,QAAS,IAGxBxB,KAAKwB,UAAU,kBAGhBzB,YACKC,KAAKyjG,kCACRzjG,KAAKw0C,OAASx0C,KAAKkpC,aAIrBnpC,wBAAwBwmC,GACnBA,EACHvmC,KAAKs8C,cAELt8C,KAAKu8C,eAIPx8C,oBACCC,KAAKsvC,cAAgBtvC,KAAK2+C,cAC1B3+C,KAAKsvC,SAAWtvC,KAAKsvC,QAAQj8B,OAAOrT,KAAKoR,WAAWrL,cAAc,wBAGnEhG,qBACCC,KAAKsvC,cAAgBtvC,KAAK2+C,cAC1B3+C,KAAKsvC,SAAWtvC,KAAKsvC,QAAQjE,QAG9BtrC,oBAEC,aAD6BC,KAAK2tC,2BACZ5nC,cAAc,iBAGrChG,cAAc2K,GACb,MAAMw6F,EAAgBx6F,EAAMmF,QAAQ,MAAO,SAASA,QAAQ,MAAO,UAAUA,QAAQ,MAAO,UAAUA,QAAQ,MAAO,QACnHA,QAAQ,MAAO,QACftJ,MAAM,MAER,OAAI2+F,EAAclkG,OAAShB,KAAK8jG,KACxB9jG,KAAKmlG,0BAA0B,IAAID,KAAkB1kG,MAAMR,KAAK8jG,KAAOoB,EAAclkG,QAAQ+sB,KAAK,MAGnG/tB,KAAKmlG,0BAA0BD,GAGvCnlG,0BAA0BmlG,GACzB,OAAOA,EAAc/jG,IAAI,CAACikG,EAAO9tF,KACzB,CACNkuB,KAAM4/D,EACNC,KAAM/tF,IAAW4tF,EAAclkG,OAAS,KAK3CjB,oBACC,IAAImjG,EACHM,EACAoB,EAED,GAAI5kG,KAAKqjG,iBAAkB,CAC1B,MAAMiC,EAAYtlG,KAAKi2C,WAAa,EAEhCqvD,IACHV,EAAsBU,EAAYtlG,KAAK0K,MAAM1J,OAG5CwiG,EADGoB,GAAuB,EACXV,GAAS5sE,WAAWyH,QAAQyB,GAA0BokE,GAEtDV,GAAS5sE,WAAWyH,QAAQ0B,GAA8BjX,KAAK+rB,IAAIqvD,UAIpF1B,EAAkBljG,KAAKi2C,UAGxB,MAAO,CACNutD,aAAAA,EAAcoB,oBAAAA,EAAqB1B,gBAAAA,GAIrC/+D,cACC,MAAO,CACNw/D,cAAe,CACd3iD,+BAAgChhD,KAAK8lC,aAAehC,GAAWvgC,MAC/D09C,iCAAkCjhD,KAAK8lC,aAAehC,GAAWF,SAAW5jC,KAAKgkG,UACjF9iD,qCAAsClhD,KAAK8lC,aAAehC,GAAWD,cAKxEhpB,aAGC,MAAO,CACNyoF,OAAQ,CACP5tD,aAAc11C,KAAKikG,YAEpBl/D,KAAM,CACL/L,MAAO,OACPC,OAASj5B,KAAK8jG,OAAS9jG,KAAKgjG,QAAW,GARtB,KAQyBhjG,KAAK8jG,SAAwB,QAExEyB,SAAU,CACTtsE,OAAWj5B,KAAKqjG,iBAAmB,oBAAsB,OACzD3tD,aAAe11C,KAAe,YAE/B0jG,qBAAsB,CACrB/tD,YAAa,GAAG31C,KAAKw0C,aAKxBpX,eACC,OAAOp9B,KAAKm6B,cAAW71B,EAAY,IAGpCu9F,oBACC,MAAM2D,EAAyBj+D,GAA0BvnC,MAEzD,OAAIA,KAAKqjG,iBACJmC,EACI,GAAGA,KAA0BxlG,KAAKijG,mBAAmBO,eAGtDxjG,KAAKijG,mBAAmBO,aAGzBgC,EAGRpgE,sBACC,OAAOplC,KAAKylC,cAAgB,GAAGzlC,KAAK2e,0BAAuBra,EAG5D8yC,+BACC,GAAKp3C,KAAKylC,cAIV,OAAIzlC,KAAK6jG,oBACD7jG,KAAKu4C,sBAAsBp3C,IAAI2E,GAAMA,EAAG+H,aAAarL,KAAK,KAG3DxC,KAAK2lC,eAGbwQ,kBACC,MAA2B,UAApBn2C,KAAK8lC,WAAyB,YAASxhC,EAG/CwgG,+BACC,OAAQ9kG,KAAKskG,iBAAmBtkG,KAAKukG,2BAA6BvkG,KAAKyjG,gCAGxEA,sCACC,OAAOzjG,KAAK6jG,qBAAuB7jG,KAAKylC,eAAiBzlC,KAAKgkG,UAG/DH,0BACC,QAAS7jG,KAAK65C,kBAAkB74C,QAAUhB,KAAKylC,cAGhDA,oBACC,OAAOzlC,KAAK8lC,aAAehC,GAAWvgC,OAASvD,KAAK8lC,aAAehC,GAAWF,SAAW5jC,KAAK8lC,aAAehC,GAAWD,YAGzH0U,4BACC,OAAOv4C,KAAK65C,kBAAkB14C,IAAIoR,GAAKA,EAAEkvC,WAAU,IAGpD9b,qBACC,OAAI3lC,KAAK8lC,aAAehC,GAAWvgC,OAASvD,KAAKgkG,UACzChkG,KAAK0mC,yBAAyB5C,GAAWF,SAG1C5jC,KAAK0mC,yBAAyB1mC,KAAK8lC,YAM3C89D,6BAQC,OAAO5jG,KAAK8lC,aAAehC,GAAWJ,KAPZ,CACzBngC,MAAO,QACPqgC,QAAS,QACTD,QAAS,cACTE,YAAa,eAGiD7jC,KAAK8lC,YAAc,GAGnF/lC,yBACC,MAAO,CACN8jC,YAAeqgE,GAAS5sE,WAAWyH,QAAQoC,IAC3C59B,MAAS2gG,GAAS5sE,WAAWyH,QAAQkC,IACrC2C,QAAWsgE,GAAS5sE,WAAWyH,QAAQmC,KAIzC/Y,0BACC,MAAO,CAACwpB,IAGT5xC,wBACCmkG,GAAS5sE,iBAAmBD,GAAc,uBAI5C6sE,GAASvpF,SC1qBT,MAAM8qF,GAAwB,CAM7BC,OAAQ,SAKRC,UAAW,aCbZ,IAAIC,GACAC,G7OWe5+F,IAAAA,I4OKnB,cAAmCmP,GAClCrW,eAAe2K,GACd,QAAS+6F,GAAsB/6F,MAIZsvB,sBAAsByrE,I5OXxBx+F,G6OTR,KACV,GAAI2+F,IAAcC,GACjB,OAGD,MAAMhrF,EAAS,wIAOf+qF,GAAahgG,SAASI,cAAc,QACpC6/F,GAAgBjgG,SAASI,cAAc,QAEvC4/F,GAAW32F,UAAU7M,IAAI,+BACzByjG,GAAc52F,UAAU7M,IAAI,kCAE5BwjG,GAAWh4F,aAAa,YAAa,UACrCi4F,GAAcj4F,aAAa,YAAa,aAExCg4F,GAAWh4F,aAAa,OAAQ,SAChCi4F,GAAcj4F,aAAa,OAAQ,SAEnCg4F,GAAW/4F,MAAMU,QAAUsN,EAC3BgrF,GAAch5F,MAAMU,QAAUsN,EAE9BnV,EAA4B,mBAAmBoI,YAAY83F,IAC3DlgG,EAA4B,mBAAmBoI,YAAY+3F,K7OlB3DjjG,GAAcsE,YAAY,OAAQD,I6O2BnC,MCzCMi1B,GAAW,oKAKjBD,GANa,kBAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,6HAKjBD,GANa,kBAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCEnB7B,GAAW,CAChB/M,IAAK,aACLkY,cAAc,EACdC,WAAsE,CAQrEivE,SAAU,CACT97E,KAAMqL,SAYPqhB,SAAU,CACT1sB,KAAMqL,SAaPuiB,KAAM,CACL5tB,KAAMuL,OACNH,aAAc,MAUfnO,MAAO,CACN+C,KAAMuL,QAUP8sF,SAAU,CACTr4F,KAAMqL,UAGRG,MAAgE,CAU/DzP,QAAW,CACViE,KAAMyM,OAGRK,OAAiE,IAkBlE,MAAMwrF,WAAehlF,GACpB7R,sBACC,OAAOA,GAGR82F,mBACC,MAAO,GAAGhmG,KAAK2e,sBAIjBonF,GAAOprF,SChHP,MAAMsrF,GACC,OADDA,GAEK,WAFLA,GAGO,aCCPC,GAIG,SAJHA,GASG,SCmCT,MAAMC,GAeLpmG,YAAYqmG,EAAkBv9F,EAAU,IACvC7I,KAAKqmG,kBAAkBD,GACvBpmG,KAAKsmG,aAAaz9F,GAGnB9I,kBAAkBqmG,GACjB,IAAKA,EAAiB9yF,aACrB,MAAM,IAAI/P,MAAM,yDAEjBvD,KAAKomG,iBAAmBA,EACxBpmG,KAAKomG,iBAAiBpwF,iBAAiB,UAAWhW,KAAK06B,WAAWpY,KAAKtiB,OACvEA,KAAKomG,iBAAiBrgF,2BAA6B,KAClD/lB,KAAKumG,SAIPxmG,aAAa8I,GACZ,GAAwC,mBAA7BA,EAAQ29F,iBAClB,MAAM,IAAIjjG,MAAM,gCAGjBvD,KAAKymG,UAAY59F,EAAQ29F,iBACzBxmG,KAAK0mG,cAAgB79F,EAAQszF,cAAgB,EAC7Cn8F,KAAK2mG,SAAW99F,EAAQ+9F,SAAW,EACnC5mG,KAAK6mG,UAAYh+F,EAAQi+F,UAAYZ,GACrClmG,KAAK+mG,gBAAkBl+F,EAAQm+F,gBAAkBf,GACjDjmG,KAAKinG,yBAA2Bp+F,EAAQq+F,yBAA2B,GACnElnG,KAAKmnG,eAAiBt+F,EAAQu+F,eAAiB,KAUhDrnG,eAAeyG,GACd,MAAM6gG,EAAmBrnG,KAAKymG,YAAY3lG,QAAQ0F,IAExB,IAAtB6gG,GAKJrnG,KAAK0mG,cAAgBW,EACrBrnG,KAAKsnG,kBALJhlG,QAAQC,KAAK,qDAAsDiE,GAcrEzG,WAAWwnG,GACVvnG,KAAK2mG,SAAWY,EAGjBxnG,QACCC,KAAKymG,YAAY7kG,QAAQ,CAACC,EAAMuhB,KAC/BvhB,EAAK0gC,UAAanf,IAAQpjB,KAAK0mG,cAAiB,IAAM,OAIxD3mG,WAAWsS,GACV,IAAKrS,KAAKwnG,eACT,OAGD,MAAMC,EAAyBznG,KAAK+mG,kBAAoBd,IAA6BjmG,KAAK+mG,kBAAoBd,GACxGyB,EAAuB1nG,KAAK+mG,kBAAoBd,IAA2BjmG,KAAK+mG,kBAAoBd,GAE1G,GAAIt0E,GAAKtf,IAAUq1F,EAClB1nG,KAAKw8C,iBACC,GAAI5qB,GAAOvf,IAAUq1F,EAC3B1nG,KAAKy8C,mBACC,GAAIhrB,GAAOpf,IAAUo1F,EAC3BznG,KAAK2nG,mBACC,GAAIj2E,GAAQrf,IAAUo1F,EAC5BznG,KAAK4nG,oBACC,GAAI31E,GAAO5f,GACjBrS,KAAK6nG,mBACC,GAAI31E,GAAM7f,GAChBrS,KAAK8nG,kBACC,GAAIt1E,GAASngB,GACnBrS,KAAK+nG,oBACC,CAAA,IAAIt1E,GAAWpgB,GAGrB,OAFArS,KAAKgoG,kBAKN31F,EAAMosB,iBACNz+B,KAAKsnG,iBACLtnG,KAAKioG,oBAGNloG,YACC,MAAMmoG,EAAcloG,KAAKymG,YAAYzlG,OACrC,GAAIhB,KAAK0mG,cAAgB1mG,KAAK2mG,UAAY,EACzC3mG,KAAK0mG,eAAiB1mG,KAAK2mG,cAI5B,GAAI3mG,KAAK6mG,YAAcX,GAA+B,CACrD,MAAMiC,EAA6BnoG,KAAK0mG,cAAgB1mG,KAAK2mG,SAG7D,IAAIyB,GAFkE,IAA/BD,EAAmCnoG,KAAK2mG,SAAW,EAAIwB,EAA6B,IAC9G3+E,KAAK6+E,KAAKH,EAAcloG,KAAK2mG,UACmC,GAAK3mG,KAAK2mG,SACnFyB,EAAgCF,EAAc,IACjDE,GAAiCpoG,KAAK2mG,UAEvC3mG,KAAK0mG,cAAgB0B,OAErBpoG,KAAK0mG,cAAgB,EAIvB3mG,cACC,MAAMmoG,EAAcloG,KAAKymG,YAAYzlG,OACrC,GAAIhB,KAAK0mG,cAAgB1mG,KAAK2mG,SAAWuB,EACxCloG,KAAK0mG,eAAiB1mG,KAAK2mG,cAI5B,GAAI3mG,KAAK6mG,YAAcX,GAA+B,CACrD,MACMoC,GAD6BtoG,KAAK0mG,cAAgB1mG,KAAK2mG,SACI,GAAK3mG,KAAK2mG,SAC3E3mG,KAAK0mG,cAAgB4B,OAErBtoG,KAAK0mG,cAAgBwB,EAAc,EAIrCnoG,cACC,MAAMmoG,EAAcloG,KAAKymG,YAAYzlG,OACjChB,KAAK0mG,cAAgB,EACxB1mG,KAAK0mG,eAAiB,EAInB1mG,KAAK6mG,YAAcX,KACtBlmG,KAAK0mG,cAAgBwB,EAAc,GAIrCnoG,eACC,MAAMmoG,EAAcloG,KAAKymG,YAAYzlG,OACjChB,KAAK0mG,cAAgBwB,EAAc,EACtCloG,KAAK0mG,eAAiB,EAInB1mG,KAAK6mG,YAAcX,KACtBlmG,KAAK0mG,cAAgB,GAIvB3mG,cACC,MAAMwoG,EAAevoG,KAAK2mG,SAAW,EAAI3mG,KAAK2mG,SAAW3mG,KAAKymG,YAAYzlG,OAC1EhB,KAAK0mG,eAAiB1mG,KAAK0mG,cAAgB6B,EAG5CxoG,aACC,MAAMwoG,EAAevoG,KAAK2mG,SAAW,EAAI3mG,KAAK2mG,SAAW3mG,KAAKymG,YAAYzlG,OAC1EhB,KAAK0mG,eAAkB6B,EAAe,EAAIvoG,KAAK0mG,cAAgB6B,EAGhExoG,gBACKC,KAAK2mG,SAAW,GAKpB3mG,KAAKwoG,oBAGNzoG,kBACKC,KAAK2mG,SAAW,GAKpB3mG,KAAKyoG,sBAMN1oG,oBAC6B,OAAxBC,KAAKmnG,iBAERnnG,KAAK0mG,eAAiB1mG,KAAK0mG,eAGxB1mG,KAAK0mG,cAAgB,EAAI1mG,KAAKmnG,eAGjCnnG,KAAK0mG,eAAiB1mG,KAAKmnG,eAG3BnnG,KAAK0mG,eAAiB1mG,KAAK0mG,cAO7B3mG,sBAC6B,OAAxBC,KAAKmnG,iBAERnnG,KAAK0mG,cAAgB1mG,KAAKymG,YAAYzlG,OAAS,GAGtBhB,KAAKymG,YAAYzlG,OAAShB,KAAK0mG,cAAgB,EAEjD1mG,KAAKmnG,eAG5BnnG,KAAK0mG,eAAiB1mG,KAAKmnG,eAG3BnnG,KAAK0mG,cAAgB1mG,KAAKymG,YAAYzlG,OAAS,EAIjDjB,iBACC,MAAM2oG,EAAQ1oG,KAAKymG,YACnB,IAAK,IAAI//F,EAAI,EAAGA,EAAIgiG,EAAM1nG,OAAQ0F,IACjCgiG,EAAMhiG,GAAG67B,UAAY77B,IAAM1G,KAAK0mG,cAAgB,IAAM,KAGvD1mG,KAAKinG,yBAAyBrlG,QAAQ8W,IACrC,MAAM4M,EAAOtlB,KAAKomG,iBAAiB1tF,GACnC1Y,KAAKomG,iBAAiB1tF,GAAYlY,MAAMC,QAAQ6kB,GAAQ,IAAIA,GAAQ,IAAKA,KAI3EvlB,oBACC,MAAM4oG,EAAc3oG,KAAK4oG,kBACrBD,GACHA,EAAYn3F,QAIdzR,eACC,MAAM4oG,EAAc3oG,KAAK4oG,kBACnBz3F,EAAgBD,KAEtB,OAAOy3F,GAAeA,IAAgBx3F,EAGvCpR,kBACC,MAAM2oG,EAAQ1oG,KAAKymG,YAEnB,IAAKiC,EAAM1nG,OACV,OAAO,KAIR,KAAOhB,KAAK0mG,eAAiBgC,EAAM1nG,QAClChB,KAAK0mG,eAAiB1mG,KAAK2mG,SAGxB3mG,KAAK0mG,cAAgB,IACxB1mG,KAAK0mG,cAAgB,GAGtB,MAAMiC,EAAcD,EAAM1oG,KAAK0mG,eAE/B,GAAKiC,EAAL,CAIA,GAAIA,EAAYr1F,aACf,OAAOq1F,EAAYpiF,iBAGpB,GAAKvmB,KAAKomG,iBAAiB//E,YAI3B,OAAOrmB,KAAKomG,iBAAiB//E,YAAYtgB,cAAc,IAAI4iG,EAAYpzF,QCxVzE,MCSMszF,GAAe,CAACC,EAAOC,KAC5B,MAAMC,EAAiBD,GAAa,GAEpC,OAAKD,GAILtoG,MAAMqR,KAAKi3F,GAAOlnG,QAAQgQ,IACzB,GAAIA,EAAY0Z,WAAapR,KAAKkpB,WAAaxxB,EAAY0Z,WAAapR,KAAKipB,eAAgBvxB,EAAYoI,aAAa,uBAAtH,CAIA,GAAIpI,EAAYR,WAAY,CAE3B,MAAMU,EAAWF,EAAYR,WAAWU,SACxCF,EAAcpR,MAAMqR,KAAKC,GAAUtD,KAAK2Q,GAAyB,UAAjBA,EAAK4M,SDxBjC5M,CAAAA,IACtB,IAAKA,EACJ,OAAO,EAGR,MAAM8pB,EAAW9pB,EAAK8pB,SAASp+B,cAE/B,GAAIsU,EAAKnF,aAAa,uBACrB,OAAO,EAGR,GAAIgvB,GAAa7pB,GAChB,OAAO,EAGR,MAAMie,EAAWje,EAAKmE,aAAa,YACnC,OAAI8Z,MAAAA,EACIhG,SAASgG,IAAa,EAGb,MAAb6L,GAAoB,sCAAsChe,KAAKge,IAC1D9pB,EAAKgb,cADd,GCOK8uE,CAAer3F,IAClBo3F,EAAeroG,KAAKiR,GAGO,SAAxBA,EAAYma,QACf88E,GAAaj3F,EAAYM,gBAAiB82F,GAE1CH,GAAaj3F,EAAYE,SAAUk3F,MAI9BA,GAzBCA,GCTT,IAAIE,GAAmB,KAEvB,MCFMC,GAAY,CAMjBzlE,KAAM,OAON0lE,aAAc,eAOdC,kBAAmB,oBAQnBC,gBAAiB,kBAQjBC,iBAAkB,mBAOlBC,YAAa,cAObC,OAAQ,UAYT,MAAMC,WAAiBtzF,GACtBrW,eAAe2K,GACd,QAASy+F,GAAUz+F,IAIrBg/F,GAAS1vE,sBAAsBmvE,ICpE/B,MAAMQ,GAAe,CAOpBlnE,OAAQ,SAORmnE,OAAQ,SAORlmE,KAAM,QAYP,MAAMmmE,WAAoBzzF,GACzBrW,eAAe2K,GACd,QAASi/F,GAAaj/F,IAIxBm/F,GAAY7vE,sBAAsB2vE,IClClC,MAAMG,WAAwBD,ICL9B,MAAME,GAAsB,CAM3BC,IAAK,MAOLC,MAAO,QAMPvmE,KAAM,QAYP,MAAMwmE,WAAuB9zF,GAC5BrW,eAAe2K,GACd,QAASq/F,GAAoBr/F,IAI/Bw/F,GAAelwE,sBAAsB+vE,ICrCrC,MAAMI,GAAqB,CAM1BC,MAAO,QAOPC,OAAQ,SAORC,MAAO,SAYR,MAAMC,WAA0Bn0F,GAC/BrW,eAAe2K,GACd,QAASy/F,GAAmBz/F,IAI9B6/F,GAAkBvwE,sBAAsBmwE,ICzCxC,MAAMlwE,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,eAAeuT,GAAShK,EAAQiK,QAAQgG,UAAWjQ,EAAQswE,QAAUlvE,GAAOpB,EAASnJ,EAAMpX,QAAUrV,iBAA2B41B,EAAQ+H,OAASyD,GAAOxL,QAAyB51B,UACzNg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,oDAAoDyJ,GAAUF,EAAQuwE,4HAA4HrwE,GAAUF,EAAQwwE,sRAAuRxwE,EAAQsL,KAAOhK,GAAOtB,EAASnJ,EAAMpX,QAAUrV,UAClkBk3B,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,YAAaC,EAAMpX,UAAeygB,GAAUF,EAAQvb,+CAA+Cyb,GAAUF,EAAQsL,UAAU1U,GAAS,YAAaC,EAAMpX,MAChN+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,wDAAwDuJ,EAAQywE,0BCD9Gn+F,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,0BAA2BxH,QAAQ,05ECa7F,MAAMiB,GAAW,CAChB/M,IAAK,qBACL0X,OAAQ,oBACRxU,eAAe,EACf4T,MAAuE,CAStEzP,QAAW,CACViE,KAAMyM,OAGRI,WAA4E,CAS3EkrB,KAAM,CACL/3B,KAAMuL,QAmBPyzB,KAAM,CACLh/B,KAAM88F,GACN1xF,aAAc0xF,GAAkBF,QAUjCpoE,OAAQ,CACPx0B,KAAMqL,SAUP8xF,MAAO,CACNn9F,KAAM25B,GACNvuB,aAAc,KAOf2xF,QAAS,CACR/8F,KAAMqL,QACNgB,aAAa,KAgDhB,MAAM+wF,WAAsB9pF,GAC3BhhB,cACCue,QACAte,KAAK8qG,gBAAkB9qG,KAAK+qG,eAAezoF,KAAKtiB,MAChDA,KAAKgrG,qBAAuBhrG,KAAKirG,cAAc3oF,KAAKtiB,MAGrDD,aACCC,KAAKgW,iBAAiB,UAAWhW,KAAK8qG,gBAAiB,CACtD98E,SAAS,IAEVhuB,KAAKgW,iBAAiB,QAAShW,KAAKgrG,qBAAsB,CACzDh9E,SAAS,IAIXjuB,YACKC,KAAKkrG,iBACRplD,aAAa9lD,KAAKkrG,uBACXlrG,KAAKkrG,gBAGblrG,KAAK4lB,oBAAoB,UAAW5lB,KAAK8qG,iBAAiB,GAC1D9qG,KAAK4lB,oBAAoB,QAAS5lB,KAAKgrG,sBAAsB,GAG9D97F,sBACC,OAAOA,GAGR2L,oBACC,OAAOswF,GAGRxuF,oBACC,OAAO6T,GAGRzU,sBACC,OAAOqvF,GAGRjjF,0BACC,MAAO,CAACqc,IAGTzkC,wBACC8qG,GAAcvzE,iBAAmBD,GAAc,sBAGhDozE,gBACC,OAAOI,GAAcvzE,WAAWyH,QAAQG,IAGzCwrE,cACC,OAAO1qG,KAAKwlC,KAAO,GAAGxlC,KAAK2e,iBAAcra,EAG1C6/B,cACC,MAAO,CACNgG,KAAM,CACLkhE,2BAA2B,EAC3BC,8BAA+BnyE,OAKlCp5B,oBACKC,KAAKiiC,OACHjiC,KAAKwqG,SAAYxqG,KAAKkrG,iBAC1BlrG,KAAKkrG,eAAiB7mG,WAAW,YACzBrE,KAAKkrG,eACZlrG,KAAKwqG,SAAU,GACbhhF,KAAKuf,IAAI,EAAG/oC,KAAK4qG,UAGjB5qG,KAAKkrG,iBACRplD,aAAa9lD,KAAKkrG,uBACXlrG,KAAKkrG,gBAEblrG,KAAKwqG,SAAU,GAIjBzqG,eAAesS,GACTrS,KAAKiiC,SAIV5vB,EAAM2rC,2BAGF1rB,GAAUjgB,KACbrS,KAAKurG,cAAe,EACpBvrG,KAAKoR,WAAWrL,cAAc,6BAA6ByL,QAC3DxR,KAAKurG,cAAe,IAItBxrG,cAAcsS,GACTrS,KAAKiiC,QACR5vB,EAAM2rC,2BAORj+C,eAAesS,GACVrS,KAAKurG,eAITl5F,EAAMosB,iBACNz+B,KAAKoR,WAAWrL,cAAc,iCAAiCyL,UAIjEq5F,GAAclwF,SCvQd,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,wCAAwCuJ,EAAQI,yBAAyBJ,EAAQQ,qEAAsER,EAAQwW,OAAO1vC,OAASs6B,UAAgCh3B,IAAc41B,EAAQsxE,eAAiBhwE,GAAOtB,QAAyB51B,IAAc41B,EAAQuxE,QAAU/lE,GAAOxL,QAAyB51B,cAAuB81B,GAAUF,EAAQvb,2CAA2Cyb,GAAUF,EAAQwxE,oCAAoCtxE,GAAUF,EAAQvb,0CAA0Cyb,GAAUF,EAAQyxE,gCAAgCvxE,GAAUF,EAAQ0xE,mCAAmCxxE,GAAUF,EAAQiL,iCAAkCjL,EAAQ2xE,eAAiBp7D,GAAOvW,QAAyB51B,SAAmB41B,EAAQ4xE,gBAAkBj7D,GAAO3W,QAAyB51B,IAAc41B,EAAQ6xE,WAAavzD,GAAOte,QAAyB51B,IAAc41B,EAAQuxE,QAAU9zD,GAAOzd,QAAyB51B,oFAA8F41B,EAAQ8xE,KAAOvzD,GAAOve,EAASnJ,EAAMpX,QAAUrV,WACrnCg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,yBACxC6K,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,eAAeyJ,GAAUF,EAAQ+xE,sCAAsC7xE,GAAUF,EAAQyW,uBACjIjL,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,8DACtE8xB,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,WAAWyJ,GAAUF,EAAQvb,kDAAkDyb,GAAUF,EAAQgyE,6BAA6B9xE,GAAUF,EAAQvb,kDAAkDyb,GAAUF,EAAQiyE,yBAC5Pt7D,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,wEAAwEyJ,GAAUF,EAAQvb,qCAAqCub,EAAQkyE,4BAA4BlyE,EAAQmyE,+BAA+BnyE,EAAQoyE,+BAA+BpyE,EAAQqyE,iCAAiCryE,EAAQsyE,mCAAmCtyE,EAAQuyE,sDAAsDryE,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQwyE,yCAC/fl0D,GAAS,CAACte,EAASnJ,EAAMpX,IAAWgX,EAAI,eAAeyJ,GAAUF,EAAQvb,wCAAwCyb,GAAUF,EAAQ6xE,uBACnIp0D,GAAS,CAACzd,EAASnJ,EAAMpX,IAAWgX,EAAI,YAAYyJ,GAAUF,EAAQvb,6DACtE85B,GAAS,CAACve,EAASnJ,EAAMpX,IAAWgX,EAAI,mCAAmCG,GAAS,qBAAsBC,EAAMpX,aAAkBygB,GAAUF,EAAQyyE,qEAAqEn9E,GAAS0K,EAAQrf,OAAO+xF,kCAAkC97E,GAAS,qBAAsBC,EAAMpX,YCN9TnN,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,iBAAkBxH,QAAQ,42GCyBpF,MAOMiB,GAAW,CAChB/M,IAAK,WACLkY,cAAc,EACdpB,MAA8D,CAY7Dy3B,OAAQ,CACPjjC,KAAMiK,aAYPlO,QAAW,CACV6P,aAAc,QACd5L,KAAMiK,cAGR4C,WAAoE,CAWnEq2B,WAAY,CACXljC,KAAMuL,QAUP+yF,WAAY,CACXt+F,KAAMuL,QAUP6zF,OAAQ,CACPp/F,KAAMqL,SAaP2F,KAAM,CACLhR,KAAMi8F,GACN7wF,aAAc6wF,GAAShmE,MAUxByoE,WAAY,CACX1+F,KAAMuL,QAkBP8zF,WAAY,CACXr/F,KAAMy8F,GACNrxF,aAAcqxF,GAAeF,KAyB9BhH,QAAS,CACRv1F,KAAMq8F,GACNjxF,aAAcixF,GAAgBpmE,MAW/BsoE,KAAM,CACLv+F,KAAMqL,SAUP6zF,UAAW,CACVl/F,KAAM25B,GACNvuB,aAAc,KAWfsiB,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,OACNH,aAAc,IAWf8yF,eAAgB,CACfl+F,KAAMuL,OACNH,aAAc,QAOfk0F,YAAa,CACZt/F,KAAMqL,SAOPszF,gBAAiB,CAChB3+F,KAAMqL,UAGRyB,OAAgE,CAU/DyyF,aAAc,CACbhmF,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,eAehBu1F,aAAc,CACbjmF,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,eAchBw1F,cAAe,CACdlmF,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,eAchBy1F,cAAe,CACdnmF,OAAQ,CACPnlB,KAAM,CAAE4L,KAAMiK,eAahB01F,mBAAoB,CACnBpmF,OAAQ,CACPqmF,cAAe,CAAE5/F,KAAMjN,OACvB8sG,wBAAyB,CAAE7/F,KAAMjN,OACjC+sG,0BAA2B,CAAE9/F,KAAMqL,WAarC00F,YAAa,KAgEf,MAAMC,WAAa1sF,GAClB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAO2xF,GAGR7yF,oBACC,OAAO8yF,GAGR5tG,wBACC0tG,GAAKn2E,iBAAmBD,GAAc,sBAGvClP,0BACC,MAAO,CAAC0iF,IAGT9qG,cACCue,QACAte,KAAK4tG,qBAGL5tG,KAAK6tG,uBAAyB,KAG9B7tG,KAAK8tG,kBAAmB,EAExB9tG,KAAK+tG,wBAA0B,KAG/B/tG,KAAKguG,wBAAyB,EAG9BhuG,KAAKiuG,iBAAkB,EAEvBjuG,KAAKgW,iBAAiB,aAAchW,KAAKkuG,YAAY5rF,KAAKtiB,OAC1DA,KAAKgW,iBAAiB,YAAahW,KAAKmuG,YAAY7rF,KAAKtiB,OACzDA,KAAKgW,iBAAiB,aAAchW,KAAKouG,aAAa9rF,KAAKtiB,OAC3DA,KAAKgW,iBAAiB,eAAgBhW,KAAKquG,cAAc/rF,KAAKtiB,OAC9DA,KAAKgW,iBAAiB,qBAAsBhW,KAAKsuG,eAAehsF,KAAKtiB,OACrEA,KAAKgW,iBAAiB,sBAAuBhW,KAAKuuG,gBAAgBjsF,KAAKtiB,OACvEA,KAAKgW,iBAAiB,2BAA4BhW,KAAKwuG,qBAAqBlsF,KAAKtiB,OACjFA,KAAKgW,iBAAiB,uBAAwBhW,KAAKyuG,0BAA0BnsF,KAAKtiB,OAElFA,KAAK4xC,cAAgB5xC,KAAK0uG,oBAAoBpsF,KAAKtiB,MAInDA,KAAK2uG,qBAAsB,EAG5B5uG,YACCC,KAAK4uG,mBACL5uG,KAAKguG,wBAAyB,EAC9BhnE,GAAcoL,WAAWpyC,KAAKqmB,YAAarmB,KAAK4xC,eAGjD7xC,oBACCC,KAAK6uG,mBAGN9uG,mBACKC,KAAK8uG,cACR9uG,KAAK+uG,iBACK/uG,KAAKiuG,iBACfjuG,KAAK4uG,mBAGF5uG,KAAKgvG,QACRhvG,KAAK0uG,sBACL1uG,KAAKivG,mBAIPlvG,kBACMC,KAAKguG,yBACThuG,KAAKguG,wBAAyB,EAC9BhnE,GAAcmL,SAASnyC,KAAKqmB,YAAarmB,KAAK4xC,gBAIhD45D,qBACC,OAAQxrG,KAAK0wC,OAAO1vC,QAAUhB,KAAK2wC,WAGpCs7D,eACC,MAAO,GAAGjsG,KAAK2e,aAGhBuwF,kBACC,MAAO,GAAGlvG,KAAK2e,gBAGhBwwF,iBACC,OAAOnvG,KAAKoR,WAAWrL,cAAc,wBAGtC0lG,cACC,OAAgD,IAAzCzrG,KAAKwhD,gBAAgB,SAASxgD,OAGtC6qG,qBACC,OAAQ7rG,KAAKyrG,SAAWzrG,KAAKmsG,WAG9BiD,eACC,OAAOpvG,KAAKye,OAASirF,GAASD,OAG/B4F,qBACC,MAAO,CACN3F,GAASN,aACTM,GAASL,kBACTK,GAASJ,gBACTI,GAASH,kBACR7oG,SAASV,KAAKye,MAGjB6wF,oBACC,OAAOtvG,KAAKye,OAASirF,GAASF,YAG/BrkE,qBACC,GAAInlC,KAAKwnC,mBAAqBxnC,KAAKm7B,eAClC,OAED,MAAMyM,EAAM,GAUZ,OARI5nC,KAAKsvG,eAAiBtvG,KAAKqvG,gBAAkBrvG,KAAKovG,WACrDxnE,EAAIjnC,KAAKX,KAAKkvG,aAGXlvG,KAAKwrG,gBACR5jE,EAAIjnC,KAAKX,KAAKisG,UAGRrkE,EAAI5mC,OAAS4mC,EAAIplC,KAAK,UAAO8B,EAGrCsnG,mBACC,OAAOrkE,GAA0BvnC,MAGlC0rG,wBACC,OAAI1rG,KAAKsvG,cACD7B,GAAKn2E,WAAWyH,QAAQqB,IAE5BpgC,KAAKqvG,eACD5B,GAAKn2E,WAAWyH,QAAQoB,IAE5BngC,KAAKovG,SACD3B,GAAKn2E,WAAWyH,QAAQsB,SADhC,EAOD2uE,YACC,OAAOhvG,KAAKgjG,UAAY8G,GAAgBpmE,KAGzCorE,oBACC,OAAO9uG,KAAKgjG,UAAY8G,GAAgBF,SAAWzwE,KAGpD2yE,sBACC,OAAI3yE,KAEIn5B,KAAKgvG,MAGNhvG,KAAKgjG,UAAY8G,GAAgBrnE,OAGzCiqE,yBACC,OAAOe,GAAKn2E,WAAWyH,QAAQwB,IAGhCgvE,sBACC,OAAIp2E,OAAWn5B,KAAKgvG,OAIbhvG,KAAK+sG,YAHJ,WAG+B,SAGxClyF,aACC,MAAO,CACN+xF,QAAS,CACR4C,SAAUxvG,KAAKuvG,kBAKlBxvG,qBACCC,KAAKyvG,gBAAkB,IAAItJ,GAAenmG,KAAM,CAC/ConG,cAzkBuB,GA0kBvBJ,eAAgBf,GAChBO,iBAAkB,IAAMxmG,KAAK0vG,oBAI/B3vG,mBACC,MAAM4vG,EAAe3vG,KAAKwhD,gBAAgB,SAE1CmuD,EAAa/tG,QAAQ,CAACC,EAAM4I,KAC3B,MAAMmlG,EAAcnlG,IAAQklG,EAAa3uG,OAAS,EAC5C6uG,EAAmB7vG,KAAK8sG,aAAe5C,GAAeF,KACvDhqG,KAAK8sG,aAAe5C,GAAeD,QAAU2F,EAElD/tG,EAAKiuG,MAAQ9vG,KAAKye,KAClB5c,EAAKkuG,UAAYF,IAGlB7vG,KAAK+tG,wBAA0B,KAGhChuG,uBACMC,KAAKiuG,wBACHppG,IACN7E,KAAKgwG,0BAA0B1wF,QAAQtf,KAAKmvG,YAC5CnvG,KAAKiuG,iBAAkB,GAIzBluG,mBACKC,KAAKiwG,8BACRjwG,KAAKiwG,4BAA4B1tF,aACjCviB,KAAKiwG,4BAA8B,KACnCjwG,KAAKiuG,iBAAkB,GAIzBluG,gBAAgB2N,GACX1N,KAAK2uG,oBACR3uG,KAAK2uG,qBAAsB,EAG5BjhG,EAAQ9L,QAAQmlC,IX7oBD,IAAC3lC,EAAIwpG,EW8oBf7jE,EAAMmpE,iBX9oBK9uG,EW+oBLpB,KAAKmwG,SAAS7tF,KAAKtiB,MX/oBV4qG,EWwBgB,IXvBrC9kD,aAAaojD,IACbA,GAAmB7kG,WAAW,KAC7B6kG,GAAmB,KACnB9nG,KACEwpG,MWkpBH7qG,qBAAqBsS,GACpB,MAAMi7F,EAA0BttG,KAAKowG,mBACrC,IAAIC,GAAkB,EACtBrwG,KAAKswG,qBAAsB,EAEvBtwG,KAAK,SAASA,KAAKye,UACtB4xF,EAAkBrwG,KAAK,SAASA,KAAKye,QAAQpM,EAAM2U,OAAOnlB,KAAMwQ,EAAM2U,OAAOuiE,WAG1E8mB,GACHrwG,KAAKwB,UAAU,mBAAoB,CAClC6rG,cAAertG,KAAKowG,mBACpB9C,wBAAAA,EACAC,0BAA2Bl7F,EAAM2U,OAAOumF,0BACxC9iG,IAAK4H,EAAM2U,OAAOvc,MAKrB1K,mBAAmB8B,GAClB,OAAIA,EAAK0nF,WAITvpF,KAAKuwG,wBACL1uG,EAAK0nF,UAAW,GAET,GAGRxpF,wBAAwB8B,GACvB,OAAO7B,KAAKwwG,mBAAmB3uG,GAGhC9B,sBAAsB8B,GACrB,OAAO7B,KAAKwwG,mBAAmB3uG,GAGhC9B,uBAAuB8B,GACtB,OAAO7B,KAAKwwG,mBAAmB3uG,GAGhC9B,kBAAkB8B,EAAM0nF,GAEvB,OADA1nF,EAAK0nF,SAAWA,GACT,EAGRxpF,aAAa8B,GACZ7B,KAAKwB,UAAU,cAAe,CAAEK,KAAAA,IAGjC9B,wBACCC,KAAKowG,mBAAmBxuG,QAAQC,IAAUA,EAAK0nF,UAAW,IAG3DxpF,mBACC,OAAOC,KAAKwhD,gBAAgB,SAASt+C,OAAOrB,GAAQA,EAAK0nF,UAG1DxpF,kBACC,OAAOC,KAAKwhD,gBAAgB,SAASt+C,OAAOrB,IAASA,EAAKs4B,UAG3Dp6B,WAAWsS,GACNigB,GAAUjgB,IACbrS,KAAKywG,eAAep+F,GAItBtS,mBAAmBsS,GACdkf,GAAQlf,KACXA,EAAMosB,iBACNz+B,KAAKosG,iBAAkB,GAGpBl7E,GAAQ7e,KACXrS,KAAKqsG,mBACLrsG,KAAKosG,iBAAkB,GAGpB95E,GAAUjgB,KACbrS,KAAK0wG,yBAAyBr+F,EAAMtJ,QACpC/I,KAAK2wG,qBAIP5wG,iBAAiBsS,GACZkf,GAAQlf,IACXrS,KAAKqsG,mBAENrsG,KAAKosG,iBAAkB,EAGxBrsG,uBACCC,KAAKosG,iBAAkB,EAGxBrsG,qBACCC,KAAKosG,iBAAkB,EAGxBrsG,mBACCC,KAAKmwG,WAGNpwG,sBACCC,KAAK+sG,YCrwBiBjnG,CAAAA,IACvB,MAAMwM,EAAOxM,EAAG8pC,wBAEhB,OACCt9B,EAAKS,KAAO,GAAKT,EAAKO,MAAQ,GAC1BP,EAAKU,SAAW9O,OAAOgvC,aAAettC,SAAS4N,gBAAgBsgC,eAC/DxhC,EAAKQ,QAAU5O,OAAOk7E,YAAcx5E,SAAS4N,gBAAgBogC,cD+vB9Cg9D,CAAgB5wG,KAAKqmB,aAGzCtmB,WACCC,KAAKwB,UAAU,aAMhBzB,eAAesS,GAId,IAAIw+F,EACJ,MAAM9nG,EAAS/I,KAAK8wG,oBAAoBz+F,EAAMtJ,QAE1C/I,KAAK+wG,gBACRF,EAAiB7wG,KAAKgxG,uCAGlBH,GAIDA,IAAmB9nG,IAClB/I,KAAKixG,aAAa1+F,GAAKA,EAAEg3E,WAAah3E,EAAE4nB,UAC3Cn6B,KAAKkxG,yBACKlxG,KAAKmxG,2BACfnxG,KAAKoxG,6BAELpxG,KAAKqxG,iBAGNh/F,EAAM2rC,2BACN3rC,EAAMosB,kBAIR1+B,WAAWsS,GAEV,GAAKrS,KAAKsxG,iBAAiBtxG,KAAK8wG,oBAAoBz+F,EAAMtJ,SAA1D,CAOA,IAAK/I,KAAKmxG,2BAQT,OAPInxG,KAAKixG,aAAa1+F,GAAKA,EAAEg3E,WAAah3E,EAAE4nB,UAC3Cn6B,KAAKkxG,yBAELlxG,KAAKqxG,sBAGNh/F,EAAM2rC,2BAMFh+C,KAAKuxG,uBACLvxG,KAAKixG,aAAa1+F,GAAKA,EAAEg3E,WAAah3E,EAAE4nB,UAC3Cn6B,KAAKkxG,yBAELlxG,KAAKoxG,6BAGN/+F,EAAM2rC,4BAGPh+C,KAAKwxG,oBAAmB,QA7BvBn/F,EAAM2rC,2BAgCRj+C,iBAAiBof,GAChB,MAAMsyF,EAAStyF,EAAK5J,GACdm8F,EAAe1xG,KAAK2xG,kBACpBC,EAAgB5xG,KAAK6xG,mBAE3B,SAAI7xG,KAAK2e,MAAQ8yF,GAAWG,GAAiBA,EAAcr8F,KAAOk8F,IAI3DC,GAAgBA,EAAan8F,KAAOk8F,EAG5C1xG,cAAcsS,GACb,MAAMtJ,EAASsJ,EAAMtJ,OAErB/I,KAAKyvG,gBAAgBqC,eAAe/oG,GACpC/I,KAAKwB,UAAU,eAAgB,CAAEK,KAAMkH,IAEnC/I,KAAKye,OAASirF,GAASH,kBAC1BvpG,KAAKwuG,qBAAqB,CACzBxnF,OAAQ,CACPnlB,KAAMkH,EACNwkG,2BAA2B,EAC3BhkB,UAAU,EACV9+E,IAAK4H,EAAM2U,OAAOvc,OAMtB1K,YAAYsS,GACX,MAAM0/F,EAAc1/F,EAAM2U,OAAOnlB,KAE5B7B,KAAKswG,qBAAuBtwG,KAAKye,OAASirF,GAASD,SACvDzpG,KAAKswG,qBAAsB,EAC3BtwG,KAAKwuG,qBAAqB,CACzBxnF,OAAQ,CACPnlB,KAAMkwG,EACNxE,2BAA2B,EAC3BhkB,UAAWwoB,EAAYxoB,SACvB9+E,IAAK4H,EAAM2U,OAAOvc,QAKrBzK,KAAKwB,UAAU,aAAc,CAAEK,KAAMkwG,IACrC/xG,KAAKwB,UAAU,aAAc,CAAEK,KAAMkwG,IAErC/xG,KAAKswG,qBAAsB,EAI5BvwG,YAAYsS,GACXrS,KAAKwB,UAAU,aAAc,CAAEK,KAAMwQ,EAAM2U,OAAOnlB,OAGnD9B,aAAasS,GACZrS,KAAKwB,UAAU,cAAe,CAAEK,KAAMwQ,EAAM2U,OAAOnlB,OAGpD9B,gBAAgBsS,GACfrS,KAAK0wG,yBAAyBr+F,EAAMtJ,QACpC/I,KAAKgyG,qBACL3/F,EAAM2rC,2BAGPj+C,eAAesS,GACdrS,KAAK0wG,yBAAyBr+F,EAAMtJ,QAE/B/I,KAAK8rG,iBACT9rG,KAAK2wG,oBAIP5wG,qBACCC,KAAKwxG,oBAAmB,GACxBxxG,KAAK6xG,mBAAmBrgG,QAGzBzR,oBACCC,KAAKwxG,oBAAmB,GACxBxxG,KAAK2xG,kBAAkBngG,QAGxBzR,iBAEC,MAAMkyG,EAAYjyG,KAAKixG,aAAa1+F,IAAMA,EAAE4nB,UAExC83E,GACHA,EAAUzgG,QAIZzR,6BACC,MAAMmyG,EAAwBlyG,KAAKmxG,2BAE/Be,GACHA,EAAsB1gG,QAIxBzR,yBAEC,MAAMoyG,EAAoBnyG,KAAKixG,aAAa1+F,GAAKA,EAAEg3E,WAAah3E,EAAE4nB,UAE9Dg4E,GACHA,EAAkB3gG,QASpBzR,UAAU8B,GACT7B,KAAKyvG,gBAAgBqC,eAAejwG,GACpCA,EAAK2P,QAGNzR,0BAA0BsS,GACzBhO,WAAW,KACVrE,KAAK0wG,yBAAyBr+F,EAAMtJ,QACpC/I,KAAKoxG,8BACH,GAGJrxG,mBAAmBqyG,GAClBpyG,KAAK8tG,iBAAmBsE,EAGzBryG,qBACC,OAAOC,KAAK8tG,iBAGb/tG,yBAAyB8B,GACxB7B,KAAK6tG,uBAAyBhsG,EAG/B9B,2BACC,OAAOC,KAAK6tG,uBAGb9tG,aAAamD,GACZ,MAAMysG,EAAe3vG,KAAKwhD,gBAAgB,SAC1C,IAAIywD,EAAY,KAEhB,IAAK/uG,EACJ,QAASysG,EAAa3uG,QAAU2uG,EAAa,GAG9C,IAAK,IAAIjpG,EAAI,EAAGA,EAAIipG,EAAa3uG,OAAQ0F,IACxC,GAAIxD,EAAOysG,EAAajpG,IAAK,CAC5BurG,EAAYtC,EAAajpG,GACzB,MAIF,OAAOurG,EAGRlyG,kBAIC,OAHKC,KAAKqyG,gBACTryG,KAAKqyG,cAAgBryG,KAAKoR,WAAWrL,cAAc,IAAI/F,KAAK2e,cAEtD3e,KAAKqyG,cAGbtyG,mBAIC,OAHKC,KAAKsyG,iBACTtyG,KAAKsyG,eAAiBtyG,KAAKoR,WAAWrL,cAAc,IAAI/F,KAAK2e,eAEvD3e,KAAKsyG,eAGbvyG,sCACC,MZ7/B6Bof,CAAAA,IAC9B,MAAM4pF,EAAYF,GAAa1pF,EAAKrN,UACpC,OAAOi3F,EAAU/nG,OAAS+nG,EAAUA,EAAU/nG,OAAS,GAAK,MY2/BpDuxG,CAAuBvyG,KAAK+wG,cAAc1qF,cAAgBrmB,KAAK+wG,cAAc1qF,YAGrFtmB,oBAAoBgJ,GACnB,IAAIm1B,EAAUn1B,EAMd,OAJIA,EAAOqI,YAAcrI,EAAOqI,WAAWD,gBAC1C+sB,EAAUn1B,EAAOqI,WAAWD,eAGtB+sB,EAGRn+B,0BASC,OARKC,KAAKiwG,8BACTjwG,KAAKiwG,4BAA8B,IAAIuC,qBAAqBxyG,KAAKyyG,gBAAgBnwF,KAAKtiB,MAAO,CAC5FmqC,KAAM,KACNuoE,WAAY,MACZC,UAAW,KAIN3yG,KAAKiwG,6BAIdxC,GAAK9yF,SE3hCL,MACMuhB,GAAW,wLAKjBD,GANa,OAMM,UAAEC,QAJT,aACO,2BACC,6BAIpB,OAAe,UAAEA,ICRjB,MACMA,GAAW,iJAKjBD,GANa,OAMM,UAAEC,QAJT,aACO,wBACC,6BAIpB,OAAe,UAAEA,ICPAnrB,GAAQ,qBCGnB6hG,GAAgB,CAMrBC,SAAU,WAOVC,OAAQ,SAORC,OAAQ,UAYT,MAAMC,WAAqB58F,GAC1BrW,eAAe2K,GACd,QAASkoG,GAAcloG,IAIzBsoG,GAAah5E,sBAAsB44E,ICvCnCpmG,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,yBAA0BxH,QAAQ,m6CCI5F,MAAMiB,GAAW,CAChBoL,WAA6E,CAQ5EivE,SAAU,CACT97E,KAAMqL,SAOPi3F,UAAW,CACVtiG,KAAMqL,SAGPypB,UAAW,CACV90B,KAAMuL,OACNH,aAAc,KACdiB,aAAa,GAYdqgB,SAAU,CACT1sB,KAAMqL,SAOPolB,QAAS,CACRzwB,KAAMqL,UAGRyB,OAAyE,CACxEurF,SAAU,GACVmN,iBAAkB,GAClBC,kBAAmB,KAerB,MAAMC,WAAqBpyF,GAC1B7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAOA,GAGR9a,WAAWsS,GACa,WAAnBA,EAAM2wB,UAA4C,SAAnB3wB,EAAM2wB,WAIzChjC,KAAKk+B,SAAU,EACfl+B,KAAKwB,UAAU,WAAY6Q,IAG5BtS,YAAYmjC,GACXljC,KAAKk+B,SAAU,EAGhBn+B,WAAWsS,GACV,OAAIigB,GAAUjgB,GACNrS,KAAKywG,eAAep+F,GAGxBkgB,GAAclgB,GACVrS,KAAKozG,mBAAmB/gG,QADhC,EAKDtS,YAEAA,eAAesS,GACd,MAAMtJ,EAASsJ,EAAMtJ,OAEjB/I,KAAKqzG,sBAAsBtqG,IAC9B/I,KAAKwB,UAAU,iBAAkB,CAAEK,KAAMkH,IAI3ChJ,mBAAmBsS,GAClB,MAAMtJ,EAASsJ,EAAMtJ,OAErB,GAAI/I,KAAKszG,uBAAuBvqG,GAAS,CACxC,MAAMwqG,EAAYlhG,EAClBkhG,EAAU1xG,KAAOkH,EACjB/I,KAAKwB,UAAU,kBAAmB+xG,IAQpCxzG,sBAAsBgJ,GACrB,MAAMyqG,GnBxIoBr0F,EmBwIWnf,KAAKqmB,YnBvIpCwiF,GAAa1pF,EAAKrN,WADEqN,IAAAA,EmB8I1B,OAJIpW,EAAOwd,iBACVxd,EAASA,EAAOwd,mBAGTitF,EAASxyG,QAAWwyG,EAASA,EAASxyG,OAAS,KAAO+H,EAM/DhJ,uBAAuBgJ,GACtB,OAAO/I,KAAKqmB,cAAgBtd,EAG7Bo7B,cACC,MAAO,CACNY,KAAM,CACL0uE,eAAe,EACfC,qBAAsB1zG,KAAKm6B,WAK9B+K,mBACC,OAAOllC,KAAKm6B,SAAW,YAAS71B,EAGjC84B,eACC,OAAIp9B,KAAKm6B,UACA,EAELn6B,KAAKupF,SACD,EAEDvpF,KAAKuiC,WCzKd/1B,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,qBAAsBxH,QAAQ,ygICiBxF,MAAMiB,GAAW,CAChB7J,eAAe,EACfiV,WAAwE,CAavE7M,KAAM,CACLA,KAAMulG,GACNn6F,aAAcm6F,GAAaF,QAS5B7wE,OAAQ,CACPx0B,KAAMqL,SAUPsiB,MAAO,CACN3tB,KAAMuL,QASP26F,WAAY,CACXlmG,KAAMqL,SAYPklB,KAAM,CACLvwB,KAAMuL,OACNH,aAAc,YAGfi3F,MAAO,CACNriG,KAAMi8F,GACN7wF,aAAc6wF,GAAShmE,OAGzBnpB,OAAmE,CAOlEq5F,eAAgB,GAChBC,OAAQ,GACR/N,SAAU,GACVgO,uBAAwB,KAe1B,MAAMC,WAAiBZ,GACtBjkG,sBACC,OAAOA,GAGR2L,oBACC,MAAO,CAACs4F,GAAat4F,OAAQA,IAG9BsN,0BACC,MAAO,CACNsa,GACAu/D,GACA/7D,IAIFlmC,cACCue,QAEAte,KAAKg0G,gBAAkB3hG,IAClB6e,GAAQ7e,IACXrS,KAAKi0G,cAIPj0G,KAAKi0G,WAAa,KACbj0G,KAAKiiC,SACRjiC,KAAKiiC,QAAS,IAKjBliC,qBAAqB0L,GACpBzL,KAAK2zG,WAAc3zG,KAAKyN,OAASulG,GAAaF,QAAY9yG,KAAK8vG,QAAUpG,GAASD,OAGnF1pG,aACC6F,SAASoQ,iBAAiB,UAAWhW,KAAKi0G,YAC1CruG,SAASoQ,iBAAiB,WAAYhW,KAAKi0G,YAC3CruG,SAASoQ,iBAAiB,QAAShW,KAAKg0G,iBAGzCj0G,YACC6F,SAASggB,oBAAoB,UAAW5lB,KAAKi0G,YAC7CruG,SAASggB,oBAAoB,QAAS5lB,KAAKg0G,iBAC3CpuG,SAASggB,oBAAoB,WAAY5lB,KAAKi0G,YAG/Cl0G,WAAWsS,GACViM,MAAMoc,WAAWroB,GAEjB,MAAM6hG,EAAal0G,KAAKyN,OAASulG,GAAaF,OAE1CvhF,GAAQlf,IACXA,EAAMosB,kBAGFlN,GAAQlf,IAAU6e,GAAQ7e,KAAW6hG,GACzCl0G,KAAKm0G,WAGFjjF,GAAQ7e,IACXrS,KAAKo0G,cAAc/hG,GAIrBtS,SAASsS,IACJkf,GAAQlf,IAAU6e,GAAQ7e,KAC7BrS,KAAKi0G,aAGF1iF,GAAQlf,IACXrS,KAAKo0G,cAAc/hG,GAGhBrS,KAAKq0G,YnOtCMhiG,CAAAA,IAAUA,EAAM5H,IAAoB,WAAd4H,EAAM5H,IAAmB4H,EAAM8e,UAAYF,MAAqBG,GAAgB/e,GmOsC9F+8F,CAAS/8F,IAC/BrS,KAAKs0G,WAIPv0G,aAAasS,GACW,WAAnBA,EAAM2wB,UAGVhjC,KAAKm0G,WAGNp0G,WAAWsS,GACa,WAAnBA,EAAM2wB,UAGVhjC,KAAKi0G,aAGNl0G,cAAcsS,GACbrS,KAAKw6B,aAAanoB,GAGnBtS,YAAYsS,GACXrS,KAAKy6B,WAAWpoB,GAGjBtS,cACCue,MAAM+b,cACNr6B,KAAKi0G,aAGNl0G,SAASsS,GACe,WAAnBA,EAAM2wB,UAGVhjC,KAAKo0G,cAAc/hG,GAOpBtS,+BAA+BsS,GAC1BrS,KAAKu0G,YAITv0G,KAAKwB,UAAU,uBAAwB,CAAEK,KAAM7B,KAAMupF,SAAUl3E,EAAMtJ,OAAOu8B,QAASioE,2BAA2B,IAGjHxtG,gCAAgCsS,GAC3BrS,KAAKu0G,YAITv0G,KAAKwB,UAAU,uBAAwB,CAAEK,KAAM7B,KAAMupF,UAAWl3E,EAAMtJ,OAAOwgF,SAAUgkB,2BAA2B,IAGnHxtG,WACKC,KAAKyN,OAASulG,GAAaF,SAC9B9yG,KAAKiiC,QAAS,GAIhBliC,SAASsS,GACRrS,KAAKwB,UAAU,uBAAwB,CAAEK,KAAM7B,KAAMutG,2BAA2B,IAGjFxtG,cAAcsS,GACbrS,KAAKwB,UAAU,eAAgB,CAAEK,KAAM7B,KAAMupF,SAAUvpF,KAAKupF,WAG7DxpF,cAAcsS,GACTrS,KAAKu0G,YAITv0G,KAAKwB,UAAU,SAAU,CAAEK,KAAM7B,KAAMupF,SAAUvpF,KAAKupF,SAAU9+E,IAAK4H,EAAM5H,MAG5E8pG,iBACC,OAAOv0G,KAAKyN,OAASulG,GAAaH,UAAY7yG,KAAKyN,OAASulG,GAAaD,OAG1EyB,kCACC,OAAOx0G,KAAK8vG,QAAUpG,GAASF,aAC3BxpG,KAAK8vG,QAAUpG,GAASL,kBAG7BoL,iCACC,OAAQz0G,KAAKw0G,8BACRx0G,KAAK8vG,QAAUpG,GAASJ,iBAAmBtpG,KAAK8vG,QAAUpG,GAASD,QAGzEiL,uBACC,MAAO,CACNhL,GAASL,kBACTK,GAASJ,gBACTI,GAASN,cACR1oG,SAASV,KAAK8vG,OAGjB6E,sBACC,OAAO30G,KAAK8vG,QAAUpG,GAASF,YAGhC6K,iBACC,OAAOr0G,KAAK8vG,QAAUpG,GAASD,OAMhCmL,yBACC,OAAO50G,KAAKq0G,WAGbQ,0BACC,OAAO,EAMRC,iBACC,OAAO90G,KAAKyN,OAASulG,GAAaD,OAGnCgC,iBACC,OAAO/0G,KAAKyN,OAASulG,GAAaF,OAGnCpsB,mBACC,GAAI1mF,KAAK20G,iBAAmB30G,KAAK00G,iBAChC,OAAO10G,KAAKupF,SAMdyrB,uBACC,IAAIA,EAUJ,YAJ0B1wG,IAAtBtE,KAAK0mF,eACRsuB,EAAmBh1G,KAAK0mF,aAAeqtB,GAASz8E,WAAWyH,QAAQgB,IAAsBg0E,GAASz8E,WAAWyH,QAAQiB,KAG/Gg1E,EAGRC,iBACC,OAAOlB,GAASz8E,WAAWyH,QAAQS,IAGpC01E,eACC,MAAO,CACNl3E,KAAMh+B,KAAKg+B,KACXhD,kBAAc12B,EACd6wG,eAAW7wG,EACXiyC,UAAWw9D,GAASz8E,WAAWyH,QAAQkB,IACvCm1E,qBAAsBrB,GAASz8E,WAAWyH,QAAQmB,IAClD80E,iBAAkBh1G,KAAKg1G,kBAIzBj1G,wBACCg0G,GAASz8E,iBAAmBD,GAAc,uBC3W5C,MAAM4C,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,0CAA0CyJ,GAAUF,EAAQsJ,wCAAwCtJ,EAAQS,qBAAqBT,EAAQQ,wBAAwBR,EAAQG,wBAAwBH,EAAQI,qBAAqBJ,EAAQK,kBAAkBH,GAAUF,EAAQm7E,0BAA0Bj7E,GAAUF,EAAQo7E,mBAAoBp7E,EAAQq7E,SAAWj6E,KAAgCE,GAAOtB,EAASnJ,EAAMpX,WAC3b2hB,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,gBACxC6K,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQmB,KAAOqK,GAAOxL,EAASnJ,EAAMpX,GAAU82B,GAAOvW,KAClGwL,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,oCAAyCygB,GAAUF,EAAQmB,2BAA2BjB,GAAUF,EAAQs7E,0BAA0B1kF,GAAS,WAAYC,EAAMpX,MACpO82B,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQu7E,SAAW5kE,GAAO3W,QAAyB51B,IAC/FusC,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,qCAAqCyJ,GAAUF,EAAQw7E,wBCHrGlpG,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,mBAAoBxH,QAAQ,+sHCAtF,MAAM0nG,GAAc,CAOnBC,GAAI,KAQJ9pF,EAAG,IAQHH,EAAG,IAQHyC,EAAG,IAQHynF,GAAI,MAYL,MAAMC,WAAmB1/F,GACxBrW,eAAe2K,GACd,QAASirG,GAAYjrG,IAIvBorG,GAAW97E,sBAAsB27E,ICzDjC,MAAMI,GAAe,CAMpBC,OAAQ,SAORC,OAAQ,UAYT,MAAMC,WAAoB9/F,GACzBrW,eAAe2K,GACd,QAASqrG,GAAarrG,IAIxBwrG,GAAYl8E,sBAAsB+7E,IC/BlC,MAAMI,GAAqB,CAM1BC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,QAAS,UAOTC,SAAU,WAOVC,YAAa,eAYd,MAAMC,WAA0B3gG,GAC/BrW,eAAe2K,GACd,QAASyrG,GAAmBzrG,IAI9BqsG,GAAkB/8E,sBAAsBm8E,IChFxC,MAAMjnG,GAAW,CAChB/M,IAAK,aACLkD,eAAe,EACfgV,cAAc,EACdC,WAAqE,CAQpEwjB,YAAa,CACZrwB,KAAMqL,SAOPolB,QAAS,CACRzwB,KAAMqL,SAmBPuiB,KAAM,CACL5tB,KAAMuL,QAYPy8F,SAAU,CACThoG,KAAMuL,QAePg+F,MAAO,CACNvpG,KAAMyoG,GACNr9F,aAAcq9F,GAAYF,QAkB3BvpE,KAAM,CACLh/B,KAAMqoG,GACNj9F,aAAci9F,GAAWhqF,GAM1BmrF,MAAO,CACNxpG,KAAMuL,OACNH,aAAci9F,GAAWhqF,GAwB1BorF,YAAa,CACZzpG,KAAMspG,GACNl+F,aAAck+F,GAAkBN,SAMjCU,aAAc,CACb1pG,KAAMuL,OACNH,aAAck+F,GAAkBN,SAYjCt7E,eAAgB,CACf1tB,KAAMuL,QAUPkiB,aAAc,CACbztB,KAAMuL,QAGPupB,UAAW,CACV90B,KAAMuL,OACNc,aAAa,GAGds9F,UAAW,CACV3pG,KAAMqL,UAGRG,MAAgE,CAgB/DzP,QAAW,CACV6P,aAAc,QACd5L,KAAMiK,cAGR6C,OAAiE,CAQhE6jB,MAAO,KAqCT,MAAMi5E,WAAet2F,GACpB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGR3V,oBACC,OAAOy8F,GAGRv7F,sBACC,OAAOw7F,GAGRpvF,0BACC,MAAO,CAACkW,IAGTt+B,wBACCs3G,GAAO//E,iBAAmBD,GAAc,sBAGzCmM,eACC,OAAOxjC,KAAKuiC,YAAcviC,KAAK89B,YAAc,IAAM,MAUpD05E,qBAEC,OAAOx3G,KAAKsjB,aAAa,SAAWtjB,KAAKi3G,MAU1CQ,gCAEC,OAAOz3G,KAAKsjB,aAAa,kBAAoBtjB,KAAKm3G,aAGnD9B,YACC,OAAOr1G,KAAK89B,YAAc,cAAWx5B,EAGtCgxG,oBACC,OAAOt1G,KAAK03G,mBAGbhC,oBAGC,OAAI11G,KAAKy1G,UAFa,kBAEaxqF,KAAKjrB,KAAKy1G,UACrCz1G,KAAKy1G,SAGN,KAGRD,yBACC,OAAIx1G,KAAKm7B,eACDn7B,KAAKm7B,eAGNk8E,GAAO//E,WAAWyH,QAAQE,UAAmB36B,EAGrDixG,eAEC,OADAv1G,KAAKo3G,YAAcp3G,KAAKk5C,MAAMl4C,OACvBhB,KAAKo3G,UAGbr3G,oBACCC,KAAKu6B,SAAWv6B,KAAK89B,YAAc99B,KAAK8+B,gBAAgBxc,KAAKtiB,WAAQsE,EAGtEvE,gBAAgBsS,GAEfA,EAAMqsB,kBACN1+B,KAAKwB,UAAU,SAGhBzB,WAAWsS,GACLrS,KAAK89B,cAIN5M,GAAQ7e,IACXrS,KAAKwB,UAAU,SAGZ+vB,GAAQlf,IACXA,EAAMosB,kBAIR1+B,SAASsS,GACJrS,KAAK89B,cAAgBzrB,EAAM4gB,UAAY1B,GAAQlf,IAClDrS,KAAKwB,UAAU,SAIjBzB,cACCC,KAAKk+B,SAAU,EAGhBn+B,aACKC,KAAK89B,cACR99B,KAAKk+B,SAAU,GAIjBn+B,mBACC,GAAKC,KAAK89B,aAAqC,KAAtB99B,KAAKk7B,aAI9B,OAAOl7B,KAAKk7B,cAIdm8E,GAAO18F,SClYP,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,kCAAkCyJ,GAAUF,EAAQkD,qBAAqB8G,GAAShK,EAAQiK,QAAQY,eAAe3K,GAAUF,EAAQ5S,4BAA4B4S,EAAQI,0BAA0BJ,EAAQG,wBAAwBH,EAAQS,uBAAuBT,EAAQQ,yBAAyBR,EAAQO,2BAA2BP,EAAQM,8BAA8BN,EAAQU,6BAA6BV,EAAQW,wBAAwBX,EAAQK,mBAAmBH,GAAUF,EAAQg7E,SAASl3E,yBAAyB5D,GAAUF,EAAQg7E,SAASl6E,yBAAyBZ,GAAUF,EAAQkB,uBAAuBhB,GAAUF,EAAQg7E,SAASC,8BAA8B/6E,GAAUF,EAAQg7E,SAASyC,4BAA4Bv9E,GAAUF,EAAQg7E,SAAS0C,+BAA+Bx9E,GAAUF,EAAQvb,oDAAoDyb,GAAUF,EAAQvb,sBAAsByb,GAAUF,EAAQvb,gCAAgCyb,GAAUF,EAAQgL,kBAAmBhL,EAAQs6E,4BAA8Bl5E,GAAOpB,EAASnJ,EAAMpX,QAAUrV,aAAsB81B,GAAUF,EAAQvb,wCAAyCub,EAAQ29E,aAAehnE,GAAO3W,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ49E,iBAAmBt/D,GAAOte,EAASnJ,EAAMpX,QAAUrV,iGAA2G41B,EAAQof,YAAc3B,GAAOzd,QAAyB51B,IAAe41B,EAAQ66E,gBAA6CzwG,EAAhCs0C,GAAO1e,WAA8CA,EAAQof,iBAA+Ch1C,EAAjCu0C,GAAQ3e,WAA6CA,EAAQ69E,eAAiBhgE,GAAQ7d,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ46E,WAAa97D,GAAQ9e,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQu6E,2BAA6Bx7D,GAAQ/e,EAASnJ,EAAMpX,QAAUrV,cAAuB81B,GAAUF,EAAQvb,+CAA+Cyb,GAAUF,EAAQg7E,SAAS8C,qBAAqB59E,GAAUF,EAAQiB,mCAAmCf,GAAUF,EAAQvb,2DAA2Dyb,GAAUF,EAAQg7E,SAASF,iCACrkE15E,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQw6E,iBAAmBl5E,GAAOtB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQy6E,gBAAkBjvE,GAAOxL,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ06E,mBAAqBnkE,GAAOvW,EAASnJ,EAAMpX,QAAUrV,IAC1Pk3B,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,mBAAoBC,EAAMpX,iBAAsBugB,EAAQq6E,gCAAgCn6E,GAAUF,EAAQg7E,SAASE,4CAA4Ch7E,GAAUF,EAAQvb,4EAA4Eub,EAAQqvD,qBAAqBrvD,EAAQ+9E,sCAAsCnnF,GAAS,mBAAoBC,EAAMpX,MACha+rB,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,eAAgBC,EAAMpX,iBAAsBugB,EAAQq6E,iCAAiCn6E,GAAUF,EAAQvb,oEAAoEub,EAAQqvD,yBAAyBnvD,GAAUF,EAAQg7E,SAAS3+D,uBAAuBrc,EAAQg+E,qCAAqCpnF,GAAS,eAAgBC,EAAMpX,MAC/X82B,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,kCAAkCG,GAAS,aAAcC,EAAMpX,4CAAiDygB,GAAUF,EAAQvb,+EAA+Eub,EAAQ26E,gCAAgC36E,EAAQo6E,oBAAoBl6E,GAAUF,EAAQ+6E,kBAAkBnkF,GAAS,aAAcC,EAAMpX,YAC9Xk3B,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,aAAcC,EAAMpX,kDAAuDygB,GAAUF,EAAQgf,wCAAwCpoB,GAAS,aAAcC,EAAMpX,MACvN6+B,GAAS,CAACte,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,wBAA6BygB,GAAUF,EAAQmB,gCAAgCvK,GAAS,WAAYC,EAAMpX,MACjLg+B,GAAS,CAACzd,EAASnJ,EAAMpX,IAAWgX,EAAI,6FAA6FyJ,GAAUF,EAAQof,sBAAuBpf,EAAQif,eAAiBV,GAAOve,QAAyB51B,UACvOm0C,GAAS,CAACve,EAASnJ,EAAMpX,IAAWgX,EAAI,+DAA+DyJ,GAAUF,EAAQif,yBACzHP,GAAS,CAAC1e,EAASnJ,EAAMpX,IAAWgX,EAAI,iCAAiCyJ,GAAUF,EAAQzsB,eAC3ForC,GAAU,CAAC3e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQif,eAAiBL,GAAQ5e,QAAyB51B,IACvGw0C,GAAU,CAAC5e,EAASnJ,EAAMpX,IAAWgX,EAAI,+DAA+DyJ,GAAUF,EAAQif,yBAC1HpB,GAAU,CAAC7d,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,wBAA6BygB,GAAUF,EAAQmB,gCAAgCvK,GAAS,WAAYC,EAAMpX,MAClLq/B,GAAU,CAAC9e,EAASnJ,EAAMpX,IAAWgX,EAAI,kCAAkCG,GAAS,aAAcC,EAAMpX,+CAAoDugB,EAAQi+E,oBAAoBrnF,GAAS,aAAcC,EAAMpX,YACrNs/B,GAAU,CAAC/e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQw6E,iBAAmBn7D,GAAQrf,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQy6E,gBAAkB38D,GAAQ9d,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQ06E,mBAAqBt9D,GAAQpd,EAASnJ,EAAMpX,QAAUrV,IAC9Pi1C,GAAU,CAACrf,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,mBAAoBC,EAAMpX,iBAAsBugB,EAAQq6E,gCAAgCn6E,GAAUF,EAAQg7E,SAASE,4CAA4Ch7E,GAAUF,EAAQvb,4EAA4Eub,EAAQqvD,qBAAqBrvD,EAAQ+9E,sCAAsCnnF,GAAS,mBAAoBC,EAAMpX,MACjaq+B,GAAU,CAAC9d,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,eAAgBC,EAAMpX,iBAAsBugB,EAAQq6E,iCAAiCn6E,GAAUF,EAAQvb,oEAAoEub,EAAQqvD,yBAAyBnvD,GAAUF,EAAQg7E,SAAS3+D,uBAAuBrc,EAAQg+E,qCAAqCpnF,GAAS,eAAgBC,EAAMpX,MAChY29B,GAAU,CAACpd,EAASnJ,EAAMpX,IAAWgX,EAAI,kCAAkCG,GAAS,aAAcC,EAAMpX,4CAAiDygB,GAAUF,EAAQvb,+EAA+Eub,EAAQ26E,gCAAgC36E,EAAQo6E,oBAAoBl6E,GAAUF,EAAQ+6E,kBAAkBnkF,GAAS,aAAcC,EAAMpX,YCX/XzK,GAAW,CAChB/M,IAAK,SACLmY,WAA+E,CAS9Eg/B,YAAa,CACZ7rC,KAAMuL,QAaPqiB,KAAM,CACL5tB,KAAMuL,QAYP+oB,QAAS,CACRt0B,KAAMqL,SAWPogC,MAAO,CACNzrC,KAAMuL,QASPmgC,eAAgB,CACf1rC,KAAMuL,QAYPogC,oBAAqB,CACpB3rC,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAY1BvI,eAAgB,CACf1tB,KAAMuL,QAQPo/F,SAAU,CACT3qG,KAAMqL,UAGRG,MAA0E,CAUzEzP,QAAW,CACViE,KAAMyM,QAiCT,MAAMm+F,WAAyBtE,GAC9Bh4F,sBACC,OAAOu8F,GAGRppG,sBACC,OAAOA,GAGRnP,qBAAqB0L,GACpB6S,MAAMwH,qBAAqBra,GAC3BzL,KAAKo4G,WAAap4G,KAAK6N,YAGxBgqG,mBACC,QAAS73G,KAAKk5C,MAGf4+D,uBACC,OAAQ93G,KAAKq7B,OAASr7B,KAAK+hC,QAG5Bg2E,qBACC,OAAQ/3G,KAAKq7B,MAAQr7B,KAAK+hC,QAG3B5Z,0BACC,MAAO,IACH4rF,GAAS5rF,aACZkW,GACAg5E,KAKHgB,GAAiB19F,SCzLjB,MAAMsf,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,qCAAqCyJ,GAAUF,EAAQ5S,sBAAsB8S,GAAUF,EAAQvb,wBAAwBub,EAAQK,aAAcL,EAAQq+E,mBAAqBj9E,GAAOpB,EAASnJ,EAAMpX,QAAUrV,oEAA6E81B,GAAUF,EAAQkD,kEAAkEhD,GAAUF,EAAQ2nE,qCAAqCznE,GAAUF,EAAQsmB,qCAAqCpmB,GAAUF,EAAQ+uD,+BAA+B7uD,GAAUF,EAAQmK,6BAA6BjK,GAAUF,EAAQm3D,6BAA6Bn3D,EAAQQ,0BAA0BR,EAAQs+E,sCAAsCt+E,EAAQS,uBAAuBT,EAAQI,0BAA0BJ,EAAQG,gBAAgBD,GAAUF,EAAQu+E,gBAAgB3nF,GAAS,WAAYC,EAAMpX,kDAAuDugB,EAAQw+E,sBAAsBt+E,GAAUF,EAAQ5S,oBAAoBwJ,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQuL,cAAgBjK,GAAOtB,QAAyB51B,0CAChlCg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,WAAYC,EAAMpX,8DAAmEygB,GAAUF,EAAQq+E,6BAA6Bn+E,GAAUF,EAAQ5S,oBAAoBwJ,GAAS,WAAYC,EAAMpX,MAC1P6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,aAAayJ,GAAUF,EAAQvb,gDAAgDyb,GAAUF,EAAQyL,yBCFzI1L,GAAS,CAACC,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQrxB,QAAUyyB,GAAOpB,EAASnJ,EAAMpX,QAAUrV,IAAc41B,EAAQy+E,mCAAqC3/D,GAAQ9e,EAASnJ,EAAMpX,QAAUrV,IAC1Lg3B,GAAS,CAACpB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,yBAA0BC,EAAMpX,0FAA+FuqB,GAAShK,EAAQiK,QAAQmL,yDAAyDlV,GAAUF,EAAQ0+E,kCAAkCx+E,GAAUF,EAAQ2+E,mCAAmCz+E,GAAUF,EAAQ4+E,2BAA2B5+E,EAAQQ,eAAgBR,EAAQwd,SAAWlc,GAAOtB,EAASnJ,EAAMpX,QAAUrV,IAAe41B,EAAQwd,cAA2CpzC,EAAhCqzC,GAAOzd,EAASnJ,EAAMpX,MAAwBmX,GAAS,WAAYC,EAAMpX,4DAAiEugB,EAAQ6+E,oCAAoC3+E,GAAUF,EAAQ8+E,sBAAuBnhE,GAAO3d,EAAQ++E,eAAgB,CAACp3G,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUygC,GAAQl2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,QAAcmX,GAAS,WAAYC,EAAMpX,QAAamX,GAAS,yBAA0BC,EAAMpX,MAC/7B6hB,GAAS,CAACtB,EAASnJ,EAAMpX,IAAWgX,EAAI,mFAAmFyJ,GAAUF,EAAQ+d,4BAA4BnnB,GAAS,aAAcC,EAAMpX,2FAAgGugB,EAAQg/E,yBAAyBpoF,GAAS,aAAcC,EAAMpX,YAAkBugB,EAAQi/E,kBAAoBzzE,GAAOxL,QAAyB51B,UAClbohC,GAAS,CAACxL,EAASnJ,EAAMpX,IAAWgX,EAAI,eAAeuT,GAAShK,EAAQiK,QAAQiU,gEAAiEle,EAAQoe,sCAAwC7H,GAAOvW,GAAyB2W,GAAO3W,WACxOuW,GAAS,CAACvW,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC7DkL,GAAS,CAAC3W,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUkhC,GAAO32C,MAC9I22C,GAAS,CAAC32C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KAClE81C,GAAS,CAACzd,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIuJ,EAAQi/E,kBAAoB1gE,GAAOve,EAASnJ,EAAMpX,QAAUrV,IACxGm0C,GAAS,CAACve,EAASnJ,EAAMpX,IAAWgX,EAAI,6BAA6BuT,GAAShK,EAAQiK,QAAQiU,6BAA6B5oB,GAAS0K,EAAQrf,OAAOu+F,6BAA6BtoF,GAAS,WAAYC,EAAMpX,uDAA4DygB,GAAUF,EAAQye,mCAAmC7nB,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQoe,sCAAwCM,GAAO1e,GAAyB2e,GAAQ3e,WAC3b0e,GAAS,CAAC1e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC7DkT,GAAU,CAAC3e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAUwhC,GAAQj3C,MAChJi3C,GAAU,CAACj3C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KACnEk2C,GAAU,CAACl2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,SAAUC,EAAMpX,UAAeygB,GAAUv4B,EAAK0T,iBAAiB6kB,GAAUv4B,EAAKw5B,qBAAqBx5B,EAAK0nF,uBAAuB1nF,EAAKikG,6BAA6BjkG,EAAK0nF,8BAA8BnvD,GAAUv4B,EAAKmkG,kBAAkB5rE,GAAUv4B,EAAKgM,iBAAiBijB,GAAS,SAAUC,EAAMpX,MACjWq/B,GAAU,CAAC9e,EAASnJ,EAAMpX,IAAWgX,EAAI,IAAIG,GAAS,cAAeC,EAAMpX,8MAAmNuqB,GAAShK,EAAQiK,QAAQiU,8BAA8B5oB,GAAS0K,EAAQrf,OAAO2+B,oBAAoB1oB,GAAS,WAAYC,EAAMpX,uDAA4DygB,GAAUF,EAAQye,mCAAmC7nB,GAAS,WAAYC,EAAMpX,MAAYugB,EAAQoe,sCAAwCW,GAAQ/e,GAAyBqf,GAAQrf,aAAkCpJ,GAAS,cAAeC,EAAMpX,MAC7sBs/B,GAAU,CAAC/e,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUF,EAAQyL,kBAC9D4T,GAAU,CAACrf,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAIknB,GAAO3d,EAAQqe,sBAAuB,CAAC12C,EAAMyV,IAAUzV,EAAK8c,KAAOrH,EAAO,CAACzV,EAAMyV,IAAU0gC,GAAQn2C,MAChJm2C,GAAU,CAACn2C,EAAMyV,EAAO4iB,EAASnJ,EAAMpX,IAAWgX,EAAI,GAAGyJ,GAAUv4B,KCdzE2K,GAA8B,6BAA8B,cAAe,IAAMoxB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,mBAAoBxH,QAAQ,+zYCFxD,6BAA8B,cAAe,IAAM2vB,IACjFpxB,GAA8B,qBAAsB,cAAe,IAAMqxB,IACzE,OAAe,CAACpxB,YAAY,qBAAqBgJ,SAAS,0BAA2BxH,QAAQ,mcC8C7F,MAAMiB,GAAW,CAChB/M,IAAK,aACLkD,eAAe,EACfgV,cAAc,EACdpB,MAAgE,CAe/DzP,QAAW,CACV6P,aAAc,UACd5L,KAAMiK,YACN8C,yBAAyB,GAgB1Bq/B,kBAAmB,CAClBpsC,KAAMiK,aAUPsuB,YAAa,CACZv4B,KAAMiK,cAGR4C,WAAuE,CAWtE6f,SAAU,CACT1sB,KAAMqL,SAoBPpR,KAAM,CACL+F,KAAMuL,QAmBP8sB,WAAY,CACXr4B,KAAMq2B,GACNjrB,aAAcirB,GAAWJ,MAW1BW,SAAU,CACT52B,KAAMqL,SAWPqiB,eAAgB,CACf1tB,KAAMuL,QAWPwuB,kBAAmB,CAClB/5B,KAAMuL,OACNH,aAAc,IAGf4/F,MAAO,CACNhrG,KAAMuL,OACNc,aAAa,GAGd4+F,aAAc,CACbjrG,KAAMqL,QACNgB,aAAa,GAMd0xB,OAAQ,CACP/9B,KAAMqL,SAGPqhC,WAAY,CACX1sC,KAAM25B,GACNvuB,aAAc,EACdiB,aAAa,GAMdokB,QAAS,CACRzwB,KAAMqL,UAGRyB,OAAiE,CAQhEwrB,OAAQ,CACP/e,OAAQ,CACPqyF,eAAgB,OAuCpB,MAAMC,WAAev4F,GACpB7R,sBACC,OAAOA,GAGRyN,oBACC,OAAO6T,GAGRzU,sBACC,OAAOw9F,GAGR9xF,gCACC,OAAO+xF,GAGR3+F,oBACC,OAAO4+F,GAGRl+F,8BACC,MAAO,CAACs/B,GAA4BC,GAAsB4+D,IAG3D35G,cACCue,QAEAte,KAAKi5G,eAAiB,GACtBj5G,KAAK25G,gBAAkB,EACvB35G,KAAK45G,0BAA4B,EACjC55G,KAAK65G,gBAAiB,EACtB75G,KAAK85G,oBAAsB,KAC3B95G,KAAK+5G,YAAc,GACnB/5G,KAAKg6G,kBAAoB,EAG1Bj6G,oBACCC,KAAKi6G,iBACLj6G,KAAKomC,qBAGNrmC,mBACCC,KAAKk6G,wBAAwBl6G,KAAK24G,oCAE9B34G,KAAKqxF,gBACHrxF,KAAKm6C,aACTn6C,KAAKm6C,WAAan6C,KAAK89C,kBAAkB5U,cAI3ClpC,KAAKm6G,qBAGNp6G,aACCC,KAAKk+B,SAAU,EAGhBn+B,cACCC,KAAKk+B,SAAU,EAGhBmzD,oBACC,QAASrxF,KAAK89C,mBAAqB99C,KAAK89C,kBAAkBtS,OAG3DzrC,qBAEC,aAD6BC,KAAK2tC,2BACZ5nC,cAAc,4BASrCszG,qBACC,OAAOr5G,KAAKo6G,eAAe5rG,KAAK6rG,GAAUA,EAAO9wB,UAGlDxpF,2BACCC,KAAK04G,cAAe,EACpB14G,KAAK89C,wBAA0B99C,KAAKyzF,eAChCzzF,KAAKm6B,WAILn6B,KAAKqxF,cACRrxF,KAAK89C,kBAAkBzS,QAEvBrrC,KAAK89C,kBAAkBzqC,OAAOrT,OAIhCD,2BACCC,KAAK89C,wBAA0B99C,KAAKyzF,eAEpCzzF,KAAK6I,QAAQjH,QAAQy4G,IACpBA,EAAOl0F,eAAiB,IAAMnmB,KAAK89C,kBAAkB/3C,cAAc,qBAAqBs0G,EAAOrU,mBAIjGjmG,iBACC,IAAIu6G,GAA2B,EAC9BC,GAA2B,EAC5B,MAAM1xG,EAAU7I,KAAKo6G,eACfI,EAAW3xG,EAAQ1H,IAAI,CAACs5G,EAAKnjG,MAC9BmjG,EAAIlxB,UAAYkxB,EAAI5sG,cAAgB7N,KAAK0K,SAE5C4vG,EAA0BhjG,IAEM,IAA7BijG,IACHA,EAA0BjjG,GAG3BmjG,EAAIlxB,UAAW,EACfkxB,EAAI3U,UAAW,EAER,CACNvc,UAAU,EACVuc,UAAU,EACVzqE,KAAMo/E,EAAIp/E,KACV3wB,MAAO+vG,EAAI/vG,MACXmD,YAAa4sG,EAAI5sG,YACjB0H,GAAIklG,EAAI97F,IACRqnF,aAAcyU,EAAIzU,gBAIhBsU,GAA2B,IAAME,EAASF,GAAyBngF,UACtEqgF,EAASF,GAAyB/wB,UAAW,EAC7CixB,EAASF,GAAyBxU,UAAW,EAC7Cj9F,EAAQyxG,GAAyB/wB,UAAW,EAC5C1gF,EAAQyxG,GAAyBxU,UAAW,EAC5C9lG,KAAKy4G,MAAQ+B,EAASF,GAAyBzsG,YAC/C7N,KAAK25G,eAAiBW,IAEtBt6G,KAAKy4G,MAAQ,GACbz4G,KAAK25G,gBAAkB,EACnBa,EAASD,KACZC,EAASD,GAAyBhxB,UAAW,EAC7CixB,EAASD,GAAyBzU,UAAW,EAC7Cj9F,EAAQ0xG,GAAyBhxB,UAAW,EAC5C1gF,EAAQ0xG,GAAyBzU,UAAW,EAC5C9lG,KAAK25G,eAAiBY,EACtBv6G,KAAKy4G,MAAQ5vG,EAAQ0xG,GAAyB1sG,cAIhD7N,KAAKi5G,eAAiBuB,EAGvBz6G,qBACC,MAAM+iC,EAAcl7B,EAAW,eAC3Bk7B,EACHA,EAAYuD,sBAAsBrmC,KAAM,CAAC+E,EAASuhC,KACjDA,EAAYnM,SAAWp1B,EAAQo1B,SAC/BmM,EAAY57B,MAAQ3F,EAAQ21G,yBAA2B31G,EAAQ21G,yBAAyBhwG,MAAQ,KAEvF1K,KAAK0H,MACfpF,QAAQC,KAAK,4IAIfxC,WAAWsS,IACKigB,GAAUjgB,IAAUkgB,GAAclgB,KAEpCrS,KAAK89C,mBAAqB99C,KAAK89C,kBAAkBtS,QAC7DxrC,KAAK89C,kBAAkBzS,QAGpBvY,GAAOzgB,IACVA,EAAMosB,iBACNz+B,KAAKk5G,sBACK3nF,GAAQlf,GAClBA,EAAMosB,iBACIpM,GAAShgB,IAAUrS,KAAKqxF,cAClCrxF,KAAK65G,gBAAiB,EACZ5nF,GAAO5f,GACjBrS,KAAK26G,eAAetoG,GACV6f,GAAM7f,GAChBrS,KAAK46G,cAAcvoG,GACT6e,GAAQ7e,GAClBrS,KAAK66G,0BACKlpF,GAAKtf,IAAUuf,GAAOvf,KAChCrS,KAAK86G,uBAAuBzoG,GAI9BtS,0BAA0BsS,GACzB,GAAI6e,GAAQ7e,GACX,OAGD,MAAM0oG,EAAiB1oG,EAAM5H,IAAII,cAEjC7K,KAAK+5G,aAAegB,EAMpB,MAAMv1E,EAAO,YAAcva,KAAKjrB,KAAK+5G,aAAegB,EAAiB/6G,KAAK+5G,YAE1Ej0D,aAAa9lD,KAAKg6G,kBAElBh6G,KAAKg6G,iBAAmB31G,WAAW,KAClCrE,KAAK+5G,YAAc,GACnB/5G,KAAKg6G,kBAAoB,GACvB,KAEHh6G,KAAKg7G,iBAAiBx1E,GAGvBzlC,iBAAiBylC,GAChB,MAAM22D,EAAen8F,KAAK25G,eACpBsB,EAAej7G,KAAKk7G,sBAAsB11E,GAEhD,GAAIy1E,EAAc,CACjB,MAAMx3F,EAAYzjB,KAAKm7G,sBAAsBF,GAE7Cj7G,KAAKo7G,oBAAoBp7G,KAAK25G,eAAgBl2F,GAE1C04E,IAAiBn8F,KAAK25G,gBACzB35G,KAAKsgD,yBAKRvgD,sBAAsBylC,GACrB,IAAI61E,EAAiBr7G,KAAKo6G,eAAe5iG,MAAM,GAC/C,MAAM8jG,EAAuBD,EAAet6G,OAAOf,KAAK25G,eAAiB,EAAG0B,EAAer6G,OAAShB,KAAK25G,gBACnG4B,EAAwBF,EAAet6G,OAAO,EAAGs6G,EAAer6G,OAAS,GAI/E,OAFAq6G,EAAiBC,EAAqBrgG,OAAOsgG,GAEtCF,EAAe7sG,KAAK6rG,GAAUA,EAAOxsG,YAAYhD,cAAcgB,WAAW25B,IAGlFzlC,eAAesS,GACdA,EAAMosB,iBACNz+B,KAAKo7G,oBAAoBp7G,KAAK25G,eAAgB,GAG/C55G,cAAcsS,GACb,MAAM2Y,EAAYhrB,KAAKo6G,eAAep5G,OAAS,EAE/CqR,EAAMosB,iBACNz+B,KAAKo7G,oBAAoBp7G,KAAK25G,eAAgB3uF,GAG/CjrB,SAASsS,GACJkf,GAAQlf,KACPrS,KAAKqxF,cACRrxF,KAAK66G,yBAEL76G,KAAKk5G,sBAKRn5G,sBAAsB8B,GACrB,MAAO,GAAGf,QAAQO,KAAKQ,EAAK8D,cAAcmM,SAAUjQ,GAGrD9B,QAAQuX,GACPtX,KAAKo6G,eAAep6G,KAAK25G,gBAAgBpwB,UAAW,EACpDvpF,KAAK25G,eAAiBriG,EACtBtX,KAAKo6G,eAAe9iG,GAAOiyE,UAAW,EAOvCxpF,iBAAiBsS,GAChB,MAAMxQ,EAAOwQ,EAAM2U,OAAOnlB,KACpB25G,EAAoBx7G,KAAKm7G,sBAAsBt5G,GAErD7B,KAAK66G,uBAAuBW,GAG7Bz7G,eAAesS,GAEdA,EAAMosB,iBAGP1+B,SAASsS,GACRrS,KAAKumB,iBAAiB/U,QACtBxR,KAAKk5G,qBAONn5G,uBAAuBuX,EAAQtX,KAAK25G,gBACnC35G,KAAKy7G,QAAQnkG,GAEbtX,KAAKk5G,qBAGNn5G,uBAAuBsS,GACtB,IAAIoR,GAAa,EACjB,MAAM04E,EAAen8F,KAAK25G,eACpB+B,EAAY9pF,GAAOvf,GAEzBA,EAAMosB,iBAELhb,EADGi4F,EACS17G,KAAK27G,sBAEL37G,KAAK47G,0BAGlB57G,KAAKo7G,oBAAoBp7G,KAAK25G,eAAgBl2F,GAE1C04E,IAAiBn8F,KAAK25G,gBAIzB35G,KAAKsgD,wBAIPvgD,oBAAoB87G,EAAU5f,GAC7B,MAAMpzF,EAAU7I,KAAKo6G,eAErBvxG,EAAQgzG,GAAUtyB,UAAW,EAC7B1gF,EAAQgzG,GAAU/V,UAAW,EAE7Bj9F,EAAQozF,GAAU1S,UAAW,EAC7B1gF,EAAQozF,GAAU6J,UAAW,EAE7B9lG,KAAK25G,eAAiB1d,EAEjBj8F,KAAKqxF,eAETrxF,KAAKmlD,iBAAiBt8C,EAAQozF,IAIhCl8F,sBACC,OAAOC,KAAK25G,iBAAoB35G,KAAK6I,QAAQ7H,OAAS,EAAKhB,KAAK25G,eAAkB35G,KAAK25G,eAAiB,EAGzG55G,0BACC,OAA+B,IAAxBC,KAAK25G,eAAuB35G,KAAK25G,eAAkB35G,KAAK25G,eAAiB,EAGjF55G,cACCC,KAAK45G,yBAA2B55G,KAAK25G,eACrC35G,KAAK85G,oBAAsB95G,KAAKo6G,eAAep6G,KAAK25G,gBAGrD55G,aACCC,KAAKwrC,QAAS,EAGfzrC,cACCC,KAAKwrC,QAAS,EACdxrC,KAAK04G,cAAe,EACpB14G,KAAKm6C,WAAa,EAEdn6C,KAAK65G,gBACR75G,KAAKy7G,QAAQz7G,KAAK45G,0BAClB55G,KAAK65G,gBAAiB,GACZ75G,KAAK85G,sBAAwB95G,KAAKo6G,eAAep6G,KAAK25G,kBAChE35G,KAAKmlD,iBAAiBnlD,KAAKo6G,eAAep6G,KAAK25G,iBAC/C35G,KAAK85G,oBAAsB95G,KAAKo6G,eAAep6G,KAAK25G,iBAItD55G,iBAAiBs5G,GAChBr5G,KAAKwB,UAAU,SAAU,CAAE63G,eAAAA,IAG3Br5G,KAAK87G,aAAezC,EAAexrG,YACnC7N,KAAKwB,UAAU,yBAGhBklC,6BACC,MAAO,CACN/C,QAAW21E,GAAOhiF,WAAWyH,QAAQqC,IACrCyC,YAAey1E,GAAOhiF,WAAWyH,QAAQoC,IACzC59B,MAAS+1G,GAAOhiF,WAAWyH,QAAQkC,IACnC2C,QAAW01E,GAAOhiF,WAAWyH,QAAQmC,KAIvCyE,qBACC,OAAO3lC,KAAK0mC,uBAAuB1mC,KAAK8lC,YAGzCL,oBACC,OAAOzlC,KAAK8lC,aAAehC,GAAWJ,KAGvC8c,uBACC,OAAOxgD,KAAKylC,cAAgB,GAAGzlC,KAAK2e,0BAAuBra,EAG5D2kF,iBACC,OAAOjpF,KAAKm6B,eAAY71B,EAGzB2zC,uBACC,OAAOqhE,GAAOhiF,WAAWyH,QAAQW,IAGlCq8E,2BACC,OAAO/7G,KAAKoR,WAAWrL,cAAc,IAAI/F,KAAKo6G,eAAep6G,KAAK25G,gBAAgBh7F,UAGnF+7F,+BACC,OAAO16G,KAAKo6G,eAAep6G,KAAK25G,gBAGjCv8E,eACC,OAAOp9B,KAAKm6B,UACRn6B,KAAK89C,mBACN99C,KAAK89C,kBAAkBtS,OAAU,KAAO,IAM5CmN,kCAQC,OAAO34C,KAAK8lC,aAAehC,GAAWJ,KAPZ,CACzBngC,MAAO,QACPqgC,QAAS,QACTD,QAAS,cACTE,YAAa,eAGiD7jC,KAAK8lC,YAAc,GAGnF3B,cACC,MAAO,CACNiU,kBAAmB,CAClByI,8BAA8B,EAC9BE,iCAAkC/gD,KAAK8lC,aAAehC,GAAWH,QACjEqd,+BAAgChhD,KAAK8lC,aAAehC,GAAWvgC,MAC/D09C,iCAAkCjhD,KAAK8lC,aAAehC,GAAWF,QACjEsd,qCAAsClhD,KAAK8lC,aAAehC,GAAWD,aAEtEyL,QAAS,CACR0sE,gCAAiCh8G,KAAKylC,gBAKzC5qB,aACC,MAAO,CACN2+B,cAAe,CACd7D,YAAa,GAAG31C,KAAKkpC,iBAEtBkwE,wBAAyB,CACxBpqG,QAAWhP,KAAKo6G,eAAep5G,QAA8B,IAApBhB,KAAKm6C,WAAmB,OAAS,eAC1EnhB,MAAS,GAAGh5B,KAAKo6G,eAAep5G,OAAShB,KAAKm6C,WAAan6C,KAAKkpC,kBAKnE24D,oBACC,OAAOt6D,GAA0BvnC,MAGlCu4C,4BACC,OAAOv4C,KAAKwhD,gBAAgB,qBAAqBrgD,IAAI2E,GAAMA,EAAG27C,WAAU,IAGzEnJ,4CACC,OAAQt4C,KAAK65C,kBAAkB74C,QAAUhB,KAAKm5G,kBAG/CA,wBACC,OAAOn5G,KAAKylC,eAAiBzlC,KAAK8lC,aAAehC,GAAWH,QAG7Dg1E,yCACC,OAAO34G,KAAKk+B,SAAWl+B,KAAKm5G,oBAAsBn5G,KAAK04G,eAClD14G,KAAKqxF,gBAAkBrxF,KAAK03C,SAGlCA,eACC,OAAOpe,KAGR8gF,qBACC,OAAOp6G,KAAK6I,QAAQ3F,OAAOm3G,IAAWA,EAAOlgF,UAG9Cp6B,wBACC,IAAIylC,EACJ,MAAMy2E,EAAej8G,KAAKo6G,eAAep5G,OACnCk7G,EAAmB5C,GAAOhiF,WAAWyH,QAAQe,GAAoB9/B,KAAK25G,eAAiB,EAAGsC,GAE5Fj8G,KAAKk+B,SAAWl+B,KAAK06G,2BACxBl1E,EAAO,GAAGxlC,KAAK06G,yBAAyB7sG,eAAe7N,KAAKqxF,cAAgB6qB,EAAmB,K3C/tBjF,EAAChvG,EAASuR,KAE1B,MAAM09F,EAAO19F,IAAS29F,GAAqBzW,UAAYE,GAAgBD,GAGvEuW,EAAKtuG,YAAc,GACnBsuG,EAAKtuG,YAAcX,EAEfuR,IAAS29F,GAAqBzW,WAAalnF,IAAS29F,GAAqB1W,QAC5EpjG,QAAQC,KAAK,6I2CwtBZ85G,CAAS72E,EAAM,WAIjBzlC,8BACCC,KAAKsvC,cAAgBtvC,KAAK2+C,cACtB3+C,KAAKsvC,SACRtvC,KAAKsvC,QAAQj8B,OAAOrT,MAItBD,yBACCC,KAAKsvC,SAAWtvC,KAAKsvC,QAAQjE,QAG9BtrC,wBAAwBwT,GACnBA,EACHvT,KAAKs8G,wBAELt8G,KAAKu8G,yBAIPhE,yBACC,OAAOv4G,KAAKq5G,gBAAkBr5G,KAAKq5G,eAAeh+E,KAGnDt7B,oBAEC,aAD6BC,KAAK2tC,2BACZ5nC,cAAc,iBAGrCoiB,0BACC,MAAO,CACN49E,GACAvhE,GACA29C,GACAxwC,GACA87D,GACA4K,GACAh6E,GACAoE,IAIF1iC,wBACCu5G,GAAOhiF,iBAAmBD,GAAc,uBAI1CiiF,GAAO3+F,SChvBP,MAAM6hG,GAAwB,CAACz3G,EAASuhC,KACvCA,EAAYnM,SAAWp1B,EAAQo1B,SAC/BmM,EAAY57B,MAAQ3F,EAAQ2F,OAI7BjD,EAAgB,cAnFhB,MAMC1H,6BAA6BgF,EAAS03G,GACrC,MAAMC,IAAqB33G,EAAQ2C,KACnC,IAAI4+B,EAAcvhC,EAAQgB,cAAc,6CACpC22G,IAAqBp2E,IACxBA,EAAc1gC,SAASI,cAAc,SACrCsgC,EAAY74B,KAAO,SACnB64B,EAAY14B,aAAa,wBAAyB,IAClD04B,EAAYjjB,KAAO,cACnBte,EAAQ+I,YAAYw4B,KAEhBo2E,GAAoBp2E,GACxBvhC,EAAQoK,YAAYm3B,GAGjBo2E,IACHp2E,EAAY5+B,KAAO3C,EAAQ2C,MAC1B+0G,GAA6BD,IAAuBz3G,EAASuhC,IAIhEvmC,2BAA2BgF,EAAS03G,EAA2BE,GAC9D,MAAMD,IAAqB33G,EAAQ2C,KACnC,IAAI4+B,EAAcvhC,EAAQgB,cAAc,cAAchB,EAAQ63G,OAAS,oCAEnEF,IAAqBp2E,IACxBA,EAAc1gC,SAASI,cAAc,SACrCsgC,EAAY74B,KAAO1I,EAAQ63G,MAC3Bt2E,EAAY14B,aAAa,wBAAyB,IAClD04B,EAAYjjB,KAAO,cACnBijB,EAAYz5B,MAAM2iG,SAAW,WAC7BlpE,EAAYz5B,MAAMkG,IAAM,IACxBuzB,EAAYz5B,MAAMgG,KAAO,IACzByzB,EAAYz5B,MAAMmsB,MAAQ,OAC1BsN,EAAYz5B,MAAMosB,OAAS,OAC3BqN,EAAYz5B,MAAMgwG,QAAU,IAExB93G,EAAQgU,WACXutB,EAAYvtB,UAAW,GAGxButB,EAAYtwB,iBAAiB,SAAU2mG,GAEvC53G,EAAQ+I,YAAYw4B,KAGhBo2E,GAAoBp2E,GACxBvhC,EAAQoK,YAAYm3B,GAGjBo2E,IACHp2E,EAAY5+B,KAAO3C,EAAQ2C,MAC1B+0G,GAA6BD,IAAuBz3G,EAASuhC,IAIhEvmC,yBAAyBgF,GACxB,IAAKA,EAAQi9B,QACZ,OAED,IAAIqO,EAAiBtrC,EAAQY,cAC7B,KAAO0qC,GAA2D,SAAzCA,EAAetkB,QAAQlhB,eAC/CwlC,EAAiBA,EAAe1qC,cAE7B0qC,EACHA,EAAeysE,SAEfx6G,QAAQ0K,MAAM,GAAGjI,uDCxEpB,MAiFMg4G,GAAiBl5G,MAAO2xB,IAC7B,MAAMt0B,OAhFgB2C,OAAO2xB,IAC7B,OAAQA,GACP,IAAK,KAAM,aAAcwnF,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,QAAS,aAAcwzG,OAAO,wBAA8BxzG,QACjE,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,QAC3D,IAAK,KAAM,aAAcwzG,OAAO,qBAA2BxzG,Q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"}
|