primevue 4.3.4 → 4.3.6
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/accordion/index.mjs +4 -2
- package/accordion/index.mjs.map +1 -1
- package/accordioncontent/AccordionContent.vue +2 -2
- package/accordioncontent/index.mjs +2 -2
- package/accordioncontent/index.mjs.map +1 -1
- package/accordionheader/AccordionHeader.vue +2 -2
- package/accordionheader/index.mjs +2 -2
- package/accordionheader/index.mjs.map +1 -1
- package/accordionpanel/index.mjs.map +1 -1
- package/accordiontab/index.mjs.map +1 -1
- package/animateonscroll/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +3 -1
- package/autocomplete/index.mjs +10 -5
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +6 -5
- package/autocomplete/style/index.mjs.map +1 -1
- package/avatar/index.mjs.map +1 -1
- package/avatargroup/index.mjs.map +1 -1
- package/badge/index.mjs.map +1 -1
- package/badge/style/index.mjs.map +1 -1
- package/badgedirective/index.mjs.map +1 -1
- package/blockui/index.mjs.map +1 -1
- package/breadcrumb/index.mjs +4 -2
- package/breadcrumb/index.mjs.map +1 -1
- package/button/Button.vue +1 -1
- package/button/index.d.ts +4 -0
- package/button/index.mjs +5 -4
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs.map +1 -1
- package/buttongroup/index.mjs.map +1 -1
- package/card/index.mjs.map +1 -1
- package/carousel/index.mjs +10 -5
- package/carousel/index.mjs.map +1 -1
- package/cascadeselect/index.mjs +10 -5
- package/cascadeselect/index.mjs.map +1 -1
- package/chart/index.mjs.map +1 -1
- package/checkbox/index.mjs.map +1 -1
- package/checkboxgroup/index.mjs.map +1 -1
- package/chip/Chip.vue +1 -1
- package/chip/index.mjs +1 -1
- package/chip/index.mjs.map +1 -1
- package/colorpicker/index.mjs.map +1 -1
- package/column/index.mjs.map +1 -1
- package/columngroup/index.mjs.map +1 -1
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmpopup/index.mjs.map +1 -1
- package/contextmenu/index.mjs +16 -8
- package/contextmenu/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +1 -1
- package/datatable/ColumnFilter.vue +2 -13
- package/datatable/DataTable.vue +8 -4
- package/datatable/index.d.ts +2 -2
- package/datatable/index.mjs +53 -57
- package/datatable/index.mjs.map +1 -1
- package/dataview/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +13 -2
- package/datepicker/index.mjs +68 -30
- package/datepicker/index.mjs.map +1 -1
- package/deferredcontent/index.mjs.map +1 -1
- package/dialog/Dialog.vue +1 -1
- package/dialog/index.mjs +1 -1
- package/dialog/index.mjs.map +1 -1
- package/dialog/style/index.mjs.map +1 -1
- package/divider/index.mjs.map +1 -1
- package/dock/index.mjs +8 -4
- package/dock/index.mjs.map +1 -1
- package/dock/style/index.mjs.map +1 -1
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs.map +1 -1
- package/dynamicdialog/index.mjs +6 -3
- package/dynamicdialog/index.mjs.map +1 -1
- package/editor/index.mjs.map +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +27 -25
- package/fileupload/index.d.ts +5 -0
- package/fileupload/index.mjs +18 -9
- package/fileupload/index.mjs.map +1 -1
- package/fileupload/style/index.d.ts +5 -1
- package/fileupload/style/index.mjs +2 -1
- package/fileupload/style/index.mjs.map +1 -1
- package/floatlabel/index.d.ts +1 -1
- package/floatlabel/index.mjs.map +1 -1
- package/fluid/index.mjs.map +1 -1
- package/focustrap/index.mjs.map +1 -1
- package/galleria/index.mjs +8 -4
- package/galleria/index.mjs.map +1 -1
- package/iconfield/index.mjs.map +1 -1
- package/iftalabel/index.mjs.map +1 -1
- package/image/index.mjs.map +1 -1
- package/imagecompare/index.mjs.map +1 -1
- package/inlinemessage/index.mjs.map +1 -1
- package/inplace/index.mjs.map +1 -1
- package/inputchips/index.mjs +2 -1
- package/inputchips/index.mjs.map +1 -1
- package/inputgroup/index.mjs.map +1 -1
- package/inputgroupaddon/index.mjs.map +1 -1
- package/inputicon/index.mjs.map +1 -1
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/InputNumber.vue +10 -1
- package/inputnumber/index.mjs +8 -1
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/index.mjs.map +1 -1
- package/inputtext/index.mjs.map +1 -1
- package/keyfilter/index.mjs.map +1 -1
- package/knob/index.mjs +2 -2
- package/knob/index.mjs.map +1 -1
- package/listbox/BaseListbox.vue +4 -0
- package/listbox/Listbox.vue +8 -6
- package/listbox/index.d.ts +5 -0
- package/listbox/index.mjs +20 -10
- package/listbox/index.mjs.map +1 -1
- package/listbox/style/index.mjs +1 -0
- package/listbox/style/index.mjs.map +1 -1
- package/megamenu/index.d.ts +0 -1
- package/megamenu/index.mjs +22 -11
- package/megamenu/index.mjs.map +1 -1
- package/menu/index.mjs +6 -3
- package/menu/index.mjs.map +1 -1
- package/menubar/MenubarSub.vue +0 -1
- package/menubar/index.d.ts +0 -2
- package/menubar/index.mjs +15 -9
- package/menubar/index.mjs.map +1 -1
- package/message/index.mjs.map +1 -1
- package/metergroup/index.mjs +10 -5
- package/metergroup/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +10 -5
- package/multiselect/index.mjs +17 -9
- package/multiselect/index.mjs.map +1 -1
- package/orderlist/index.mjs.map +1 -1
- package/organizationchart/index.mjs +6 -3
- package/organizationchart/index.mjs.map +1 -1
- package/overlaybadge/index.mjs.map +1 -1
- package/package.json +6 -6
- package/paginator/index.mjs +10 -4
- package/paginator/index.mjs.map +1 -1
- package/paginator/style/index.mjs.map +1 -1
- package/panel/index.mjs.map +1 -1
- package/panelmenu/index.mjs +42 -21
- package/panelmenu/index.mjs.map +1 -1
- package/passthrough/index.mjs.map +1 -1
- package/password/index.mjs.map +1 -1
- package/picklist/PickList.vue +8 -11
- package/picklist/index.mjs +15 -7
- package/picklist/index.mjs.map +1 -1
- package/popover/index.mjs.map +1 -1
- package/portal/index.mjs.map +1 -1
- package/progressbar/index.mjs.map +1 -1
- package/progressspinner/index.mjs.map +1 -1
- package/radiobutton/index.mjs.map +1 -1
- package/radiobuttongroup/index.mjs.map +1 -1
- package/rating/Rating.vue +2 -2
- package/rating/index.d.ts +10 -0
- package/rating/index.mjs +17 -6
- package/rating/index.mjs.map +1 -1
- package/ripple/index.mjs.map +1 -1
- package/row/index.mjs.map +1 -1
- package/scrollpanel/ScrollPanel.vue +3 -1
- package/scrollpanel/index.mjs +2 -1
- package/scrollpanel/index.mjs.map +1 -1
- package/scrolltop/index.mjs.map +1 -1
- package/select/Select.vue +3 -4
- package/select/index.mjs +15 -9
- package/select/index.mjs.map +1 -1
- package/selectbutton/BaseSelectButton.vue +4 -0
- package/selectbutton/index.d.ts +25 -0
- package/selectbutton/index.mjs +4 -0
- package/selectbutton/index.mjs.map +1 -1
- package/selectbutton/style/index.mjs +5 -2
- package/selectbutton/style/index.mjs.map +1 -1
- package/skeleton/index.mjs.map +1 -1
- package/slider/index.mjs.map +1 -1
- package/speeddial/index.mjs +6 -3
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/style/index.mjs.map +1 -1
- package/splitbutton/index.mjs.map +1 -1
- package/splitter/Splitter.vue +1 -1
- package/splitter/index.mjs +5 -2
- package/splitter/index.mjs.map +1 -1
- package/splitterpanel/index.mjs.map +1 -1
- package/step/index.mjs.map +1 -1
- package/stepitem/index.mjs.map +1 -1
- package/steplist/index.mjs.map +1 -1
- package/steppanel/index.mjs.map +1 -1
- package/steppanels/index.mjs.map +1 -1
- package/stepper/index.mjs.map +1 -1
- package/steps/index.mjs +8 -4
- package/steps/index.mjs.map +1 -1
- package/styleclass/index.mjs.map +1 -1
- package/tab/index.mjs.map +1 -1
- package/tablist/index.mjs.map +1 -1
- package/tabmenu/index.mjs +8 -2
- package/tabmenu/index.mjs.map +1 -1
- package/tabpanel/index.mjs.map +1 -1
- package/tabpanels/index.mjs.map +1 -1
- package/tabs/index.mjs.map +1 -1
- package/tabview/index.mjs +8 -4
- package/tabview/index.mjs.map +1 -1
- package/tag/index.mjs.map +1 -1
- package/terminal/index.mjs +8 -4
- package/terminal/index.mjs.map +1 -1
- package/textarea/index.mjs.map +1 -1
- package/tieredmenu/index.mjs +18 -9
- package/tieredmenu/index.mjs.map +1 -1
- package/timeline/index.mjs +12 -6
- package/timeline/index.mjs.map +1 -1
- package/toast/Toast.vue +3 -0
- package/toast/ToastMessage.vue +21 -9
- package/toast/index.d.ts +16 -4
- package/toast/index.mjs +27 -14
- package/toast/index.mjs.map +1 -1
- package/toast/style/index.mjs.map +1 -1
- package/togglebutton/BaseToggleButton.vue +4 -0
- package/togglebutton/index.d.ts +5 -0
- package/togglebutton/index.mjs +4 -0
- package/togglebutton/index.mjs.map +1 -1
- package/togglebutton/style/index.mjs +1 -0
- package/togglebutton/style/index.mjs.map +1 -1
- package/toggleswitch/index.mjs.map +1 -1
- package/toggleswitch/style/index.d.ts +1 -5
- package/toolbar/index.mjs.map +1 -1
- package/tooltip/index.mjs.map +1 -1
- package/tree/index.mjs.map +1 -1
- package/treeselect/index.mjs +2 -1
- package/treeselect/index.mjs.map +1 -1
- package/treetable/TreeTable.vue +1 -1
- package/treetable/index.mjs +3 -2
- package/treetable/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -12213
- package/useconfirm/index.mjs.map +1 -1
- package/usedialog/index.mjs.map +1 -1
- package/usetoast/index.mjs.map +1 -1
- package/virtualscroller/VirtualScroller.vue +4 -1
- package/virtualscroller/index.mjs +3 -1
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
package/datatable/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/datatable/BaseDataTable.vue","../../src/datatable/RowCheckbox.vue","../../src/datatable/RowCheckbox.vue?vue&type=template&id=737048ec&lang.js","../../src/datatable/RowRadioButton.vue","../../src/datatable/RowRadioButton.vue?vue&type=template&id=4c71d642&lang.js","../../src/datatable/BodyCell.vue","../../src/datatable/BodyCell.vue?vue&type=template&id=223dc796&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=fb011038&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=c76f1efc&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=dcaeafd8&lang.js","../../src/datatable/TableFooter.vue","../../src/datatable/TableFooter.vue?vue&type=template&id=2895da87&lang.js","../../src/datatable/ColumnFilter.vue","../../src/datatable/ColumnFilter.vue?vue&type=template&id=8c87a08e&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=2d543024&lang.js","../../src/datatable/FilterHeaderCell.vue","../../src/datatable/FilterHeaderCell.vue?vue&type=template&id=1923dfa4&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=11cfc911&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=13736116&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=5b09146b&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\n\nexport default {\n name: 'BaseDataTable',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n rows: {\n type: Number,\n default: 0\n },\n first: {\n type: Number,\n default: 0\n },\n totalRecords: {\n type: Number,\n default: 0\n },\n paginator: {\n type: Boolean,\n default: false\n },\n paginatorPosition: {\n type: String,\n default: 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n default: true\n },\n paginatorTemplate: {\n type: [Object, String],\n default: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n default: 5\n },\n rowsPerPageOptions: {\n type: Array,\n default: null\n },\n currentPageReportTemplate: {\n type: String,\n default: '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n defaultSortOrder: {\n type: Number,\n default: 1\n },\n nullSortOrder: {\n type: Number,\n default: 1\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n removableSort: {\n type: Boolean,\n default: false\n },\n filters: {\n type: Object,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n globalFilterFields: {\n type: Array,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n selectAll: {\n type: Boolean,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n csvSeparator: {\n type: String,\n default: ','\n },\n exportFilename: {\n type: String,\n default: 'download'\n },\n exportFunction: {\n type: Function,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: undefined\n },\n collapsedRowIcon: {\n type: String,\n default: undefined\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n stateStorage: {\n type: String,\n default: 'session'\n },\n stateKey: {\n type: String,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n editingRows: {\n type: Array,\n default: null\n },\n rowClass: {\n type: Function,\n default: null\n },\n rowStyle: {\n type: Function,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n scrollHeight: {\n type: String,\n default: null\n },\n frozenValue: {\n type: Array,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n showHeaders: {\n type: Boolean,\n default: true\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n stripedRows: {\n type: Boolean,\n default: false\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n tableStyle: {\n type: null,\n default: null\n },\n tableClass: {\n type: [String, Object],\n default: null\n },\n tableProps: {\n type: Object,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: Object,\n default() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n default() {\n return {\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n };\n }\n }\n },\n style: DataTableStyle,\n provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox.icon')\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox.icon')\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n data-p-selected=\"selected\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n editCompleteTimeout: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n this.selfClick = this.$el && this.$el.contains(e.target);\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n data-p-selected=\"selected\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n editCompleteTimeout: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n this.selfClick = this.$el && this.$el.contains(e.target);\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n if (this.d_rowExpanded) groupRowSpan++;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n if (this.d_rowExpanded) groupRowSpan++;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" :data-p=\"dataP\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n dataP() {\n return cn({\n hoverable: this.rowHover || this.selectionMode,\n frozen: this.frozenRow\n });\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" :data-p=\"dataP\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n dataP() {\n return cn({\n hoverable: this.rowHover || this.selectionMode,\n frozen: this.frozenRow\n });\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <tfoot\n v-if=\"hasFooter\"\n :class=\"cx('tfoot')\"\n :style=\"sx('tfoot')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"tfoot\"\n >\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n }\n\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <tfoot\n v-if=\"hasFooter\"\n :class=\"cx('tfoot')\"\n :style=\"sx('tfoot')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"tfoot\"\n >\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n }\n\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || (hasFilter() ? 'FilterFillIcon' : 'FilterIcon')\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: false\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraint: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraint: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.$id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterFillIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || (hasFilter() ? 'FilterFillIcon' : 'FilterIcon')\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: false\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraint: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraint: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.$id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterFillIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <!--<template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>-->\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <!--<template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>-->\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n if (!this.column) return null;\n\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n if (!this.column) return null;\n\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <thead\n :class=\"cx('thead')\"\n :style=\"sx('thead')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"thead\"\n >\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTFilterHeaderCell: FilterHeaderCell\n }\n};\n</script>\n","<template>\n <thead\n :class=\"cx('thead')\"\n :style=\"sx('thead')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"thead\"\n >\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTFilterHeaderCell: FilterHeaderCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-top=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" :data-p=\"dataP\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-bottom=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$emit('value-change', filteredValue);\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n if (targetRow) targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.d_first;\n rangeEnd -= this.d_first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n\n if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n };\n\n document.addEventListener('mousemove', this.documentColumnResizeListener);\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n };\n\n document.addEventListener('mouseup', this.documentColumnResizeEndListener);\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n // Functions can't be serialized, so don't attempt to save them\n if (typeof this.d_sortField !== 'function') state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n let parsedState;\n try {\n parsedState = JSON.parse(stateString, reviver);\n } catch (error) {}\n if (!parsedState || typeof parsedState !== 'object') {\n storage.removeItem(this.stateKey);\n return;\n }\n\n const restoredState = {};\n\n if (this.paginator) {\n if (typeof parsedState.first === 'number') {\n this.d_first = parsedState.first;\n this.$emit('update:first', this.d_first);\n restoredState.first = this.d_first;\n }\n if (typeof parsedState.rows === 'number') {\n this.d_rows = parsedState.rows;\n this.$emit('update:rows', this.d_rows);\n restoredState.rows = this.d_rows;\n }\n }\n\n if (typeof parsedState.sortField === 'string') {\n this.d_sortField = parsedState.sortField;\n this.$emit('update:sortField', this.d_sortField);\n restoredState.sortField = this.d_sortField;\n }\n\n if (typeof parsedState.sortOrder === 'number') {\n this.d_sortOrder = parsedState.sortOrder;\n this.$emit('update:sortOrder', this.d_sortOrder);\n restoredState.sortOrder = this.d_sortOrder;\n }\n\n if (Array.isArray(parsedState.multiSortMeta)) {\n this.d_multiSortMeta = parsedState.multiSortMeta;\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n restoredState.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters && typeof parsedState.filters === 'object' && parsedState.filters !== null) {\n this.d_filters = this.cloneFilters(parsedState.filters);\n this.$emit('update:filters', this.d_filters);\n restoredState.filters = this.d_filters;\n }\n\n if (this.resizableColumns) {\n if (typeof parsedState.columnWidths === 'string') {\n this.columnWidthsState = parsedState.columnWidths;\n restoredState.columnWidths = this.columnWidthsState;\n }\n if (typeof parsedState.tableWidth === 'string') {\n this.tableWidthState = parsedState.tableWidth;\n restoredState.tableWidth = this.tableWidthState;\n }\n }\n\n if (this.reorderableColumns && Array.isArray(parsedState.columnOrder)) {\n this.d_columnOrder = parsedState.columnOrder;\n restoredState.columnOrder = this.d_columnOrder;\n }\n\n if (typeof parsedState.expandedRows === 'object' && parsedState.expandedRows !== null) {\n this.$emit('update:expandedRows', parsedState.expandedRows);\n restoredState.expandedRows = parsedState.expandedRows;\n }\n\n if (Array.isArray(parsedState.expandedRowGroups)) {\n this.$emit('update:expandedRowGroups', parsedState.expandedRowGroups);\n restoredState.expandedRowGroups = parsedState.expandedRowGroups;\n }\n\n if (typeof parsedState.selection === 'object' && parsedState.selection !== null) {\n if (typeof parsedState.selectionKeys === 'object' && parsedState.selectionKeys !== null) {\n this.d_selectionKeys = parsedState.selectionKeys;\n restoredState.selectionKeys = this.d_selectionKeys;\n }\n this.$emit('update:selection', parsedState.selection);\n restoredState.selection = parsedState.selection;\n }\n\n this.$emit('state-restore', restoredState);\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters(filters) {\n let cloned = {};\n\n if (filters) {\n Object.entries(filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (cols && this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n\n return data;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex'\n });\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-top=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" :data-p=\"dataP\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-bottom=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$emit('value-change', filteredValue);\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n if (targetRow) targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.d_first;\n rangeEnd -= this.d_first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n\n if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n };\n\n document.addEventListener('mousemove', this.documentColumnResizeListener);\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n };\n\n document.addEventListener('mouseup', this.documentColumnResizeEndListener);\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n // Functions can't be serialized, so don't attempt to save them\n if (typeof this.d_sortField !== 'function') state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n let parsedState;\n try {\n parsedState = JSON.parse(stateString, reviver);\n } catch (error) {}\n if (!parsedState || typeof parsedState !== 'object') {\n storage.removeItem(this.stateKey);\n return;\n }\n\n const restoredState = {};\n\n if (this.paginator) {\n if (typeof parsedState.first === 'number') {\n this.d_first = parsedState.first;\n this.$emit('update:first', this.d_first);\n restoredState.first = this.d_first;\n }\n if (typeof parsedState.rows === 'number') {\n this.d_rows = parsedState.rows;\n this.$emit('update:rows', this.d_rows);\n restoredState.rows = this.d_rows;\n }\n }\n\n if (typeof parsedState.sortField === 'string') {\n this.d_sortField = parsedState.sortField;\n this.$emit('update:sortField', this.d_sortField);\n restoredState.sortField = this.d_sortField;\n }\n\n if (typeof parsedState.sortOrder === 'number') {\n this.d_sortOrder = parsedState.sortOrder;\n this.$emit('update:sortOrder', this.d_sortOrder);\n restoredState.sortOrder = this.d_sortOrder;\n }\n\n if (Array.isArray(parsedState.multiSortMeta)) {\n this.d_multiSortMeta = parsedState.multiSortMeta;\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n restoredState.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters && typeof parsedState.filters === 'object' && parsedState.filters !== null) {\n this.d_filters = this.cloneFilters(parsedState.filters);\n this.$emit('update:filters', this.d_filters);\n restoredState.filters = this.d_filters;\n }\n\n if (this.resizableColumns) {\n if (typeof parsedState.columnWidths === 'string') {\n this.columnWidthsState = parsedState.columnWidths;\n restoredState.columnWidths = this.columnWidthsState;\n }\n if (typeof parsedState.tableWidth === 'string') {\n this.tableWidthState = parsedState.tableWidth;\n restoredState.tableWidth = this.tableWidthState;\n }\n }\n\n if (this.reorderableColumns && Array.isArray(parsedState.columnOrder)) {\n this.d_columnOrder = parsedState.columnOrder;\n restoredState.columnOrder = this.d_columnOrder;\n }\n\n if (typeof parsedState.expandedRows === 'object' && parsedState.expandedRows !== null) {\n this.$emit('update:expandedRows', parsedState.expandedRows);\n restoredState.expandedRows = parsedState.expandedRows;\n }\n\n if (Array.isArray(parsedState.expandedRowGroups)) {\n this.$emit('update:expandedRowGroups', parsedState.expandedRowGroups);\n restoredState.expandedRowGroups = parsedState.expandedRowGroups;\n }\n\n if (typeof parsedState.selection === 'object' && parsedState.selection !== null) {\n if (typeof parsedState.selectionKeys === 'object' && parsedState.selectionKeys !== null) {\n this.d_selectionKeys = parsedState.selectionKeys;\n restoredState.selectionKeys = this.d_selectionKeys;\n }\n this.$emit('update:selection', parsedState.selection);\n restoredState.selection = parsedState.selection;\n }\n\n this.$emit('state-restore', restoredState);\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters(filters) {\n let cloned = {};\n\n if (filters) {\n Object.entries(filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (cols && this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n\n return data;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex'\n });\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","dataKey","String","Function","rows","Number","first","totalRecords","paginator","Boolean","paginatorPosition","alwaysShowPaginator","paginatorTemplate","Object","pageLinkSize","rowsPerPageOptions","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","sortField","sortOrder","defaultSortOrder","nullSortOrder","multiSortMeta","sortMode","removableSort","filters","filterDisplay","globalFilterFields","filterLocale","selection","selectionMode","compareSelectionBy","metaKeySelection","contextMenu","contextMenuSelection","selectAll","rowHover","csvSeparator","exportFilename","exportFunction","resizableColumns","columnResizeMode","reorderableColumns","expandedRows","expandedRowIcon","collapsedRowIcon","rowGroupMode","groupRowsBy","expandableRowGroups","expandedRowGroups","stateStorage","stateKey","editMode","editingRows","rowClass","rowStyle","scrollable","virtualScrollerOptions","scrollHeight","frozenValue","breakpoint","showHeaders","showGridlines","stripedRows","highlightOnSelect","size","tableStyle","tableClass","tableProps","filterInputProps","filterButtonProps","default","filter","severity","text","rounded","inline","clear","popover","addRule","removeRule","apply","outlined","editButtonProps","init","save","cancel","style","DataTableStyle","provide","$pcDataTable","$parentInstance","hostName","emits","checked","column","rowCheckboxIconTemplate","index","methods","getColumnPT","key","columnMetaData","parent","instance","$props","state","$data","context","disabled","$attrs","mergeProps","ptm","concat","ptmo","getColumnProp","pt","onChange","event","$emit","originalEvent","data","computed","checkboxAriaLabel","$primevue","config","locale","aria","selectRow","unselectRow","components","CheckIcon","Checkbox","_createBlock","_component_Checkbox","modelValue","binary","_ctx","$options","unstyled","icon","_withCtx","slotProps","_openBlock","_resolveDynamicComponent","_normalizeClass","_component_CheckIcon","_mergeProps","RadioButton","_component_RadioButton","_regeneratorRuntime","r","t","e","prototype","n","hasOwnProperty","o","Symbol","i","iterator","a","asyncIterator","u","toStringTag","c","defineProperty","enumerable","configurable","writable","h","Generator","create","Error","done","method","arg","delegate","d","f","sent","_sent","dispatchException","abrupt","s","Context","call","wrap","GeneratorFunction","GeneratorFunctionPrototype","l","p","getPrototypeOf","y","x","v","g","forEach","_invoke","AsyncIterator","_typeof","resolve","__await","then","TypeError","next","w","tryEntries","push","m","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","unshift","pop","values","prev","charAt","slice","stop","rval","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","_next","_throw","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","editCompleteTimeout","d_editing","styleObject","watch","newValue","$dataD_editing","field","mounted","columnProp","updateStickyPosition","updated","_this","setTimeout","focusableEl","getFirstFocusableElement","$el","focus","beforeUnmount","OverlayEventBus","off","prop","getVNodeProp","_this$$parentInstance","_this$$parentInstance2","resolveFieldData","toggleRow","toggleRowWithRadio","toggleRowWithCheckbox","isEditable","children","editor","bindDocumentEditListener","_this2","contains","target","clearTimeout","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","_this4","_callee","currentCell","targetCell","_callee$","_context","findCell","findPreviousEditableColumn","$nextTick","invokeElementMethod","_this5","_callee2","_callee2$","_context2","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","pos","getNextElementSibling","getOuterWidth","parseFloat","insetInlineEnd","getPreviousElementSibling","insetInlineStart","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","cellEven","cellOdd","expandButtonAriaLabel","expandRow","collapseRow","initButtonAriaLabel","editRow","saveButtonAriaLabel","saveEdit","cancelButtonAriaLabel","cancelEdit","DTRadioButton","RowRadioButton","DTCheckbox","RowCheckbox","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","directives","ripple","Ripple","_createElementBlock","role","_objectSpread","colspan","rowspan","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtoggleicon","rowExpanded","rowtogglericon","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","data1","data2","onRowGroupToggle","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","onRowToggle","expanded","onRadioChange","onCheckboxChange","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","options","getItemOptions","rowStyles","_this$rowStyle","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","_iterator","_createForOfIteratorHelper","_step","_selectionMode","isNotEmpty","err","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","DTBodyCell","BodyCell","_createElementVNode","tabindex","onDblclick","onContextmenu","onTouchend","onMousedown","onDragstart","onDragover","onDragleave","onDragend","onDrop","_renderList","_component_DTBodyCell","id","rowGroupHeaderStyleObject","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","getRowKey","top","getOuterHeight","tableHeaderHeight","bodyRef","el","contentRef","bodyContentStyle","ptmTBodyOptions","dataP","cn","hoverable","frozen","DTBodyRow","BodyRow","ref","_component_DTBodyRow","$id","$attrSelector","onRowgroupToggle","onRowDblclick","onRowRightclick","onRowTouchend","onRowKeydown","onRowMousedown","onRowDragstart","onRowDragover","onRowDragleave","onRowDragend","footer","columnGroup","$rows","d_footerRows","$columns","d_footerColumns","HelperSet","getColumnGroupPT","columnGroupMetaData","getColumnGroupProps","ptmTFootOptions","getRowPT","row","rowMetaData","getRowProp","getFooterRows","_this$d_footerRows","get","getFooterColumns","_this$d_footerColumns","hasFooter","DTFooterCell","FooterCell","sx","_ctx$$parentInstance","_component_DTFooterCell","j","display","showMenu","matchMode","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filtersStore","filterMenuClass","filterMenuStyle","overlayVisible","defaultMatchMode","defaultOperator","overlay","ZIndex","onOverlayHide","fieldFilters","operator","constraints","params","ptmFilterConstraintOptions","highlighted","isRowMatchModeSelected","clearFilter","_filters","splice","hide","applyFilter","hasFilter","fieldFilter","isFilterBlank","hasRowFilter","trim","toggleMenu","onToggleButtonKeyDown","onRowMatchModeChange","onRowMatchModeKeyDown","item","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onOperatorChange","onMenuMatchModeChange","addConstraint","newConstraint","constraint","removeConstraint","removedConstraint","filterCallback","showMenuButton","$refs","onContentClick","emit","onContentMouseDown","onOverlayEnter","addStyle","set","zIndex","position","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","resizeListener","isTouchDevice","window","overlayId","matchModes","filterMatchModeOptions","map","label","isShowMatchModes","operatorOptions","matchAll","FilterOperator","AND","matchAny","OR","noFilterLabel","noFilter","isShowOperator","fieldConstraints","showRemoveIcon","removeRuleButtonLabel","addRuleButtonLabel","isShowAddConstraint","clearButtonLabel","applyButtonLabel","columnFilterButtonAriaLabel","showFilterMenu","hideFilterMenu","filterOperatorAriaLabel","filterOperator","filterRuleAriaLabel","filterConstraint","ptmHeaderFilterClearParams","hidden","ptmFilterMenuParams","active","Select","Portal","FilterSlashIcon","FilterFillIcon","FilterIcon","TrashIcon","PlusIcon","focustrap","FocusTrap","filterModel","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_toDisplayString","onRowClearItemClick","_component_Select","optionLabel","optionValue","fieldConstraint","onUpdateModelValue","iconProps","iconPos","headerCheckboxIconTemplate","headerCheckboxAriaLabel","unselectAll","allRowsSelected","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","_component_DTHeaderCheckbox","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","groupRowSortField","filterColumn","sortable","sorted","isColumnSorted","resizable","currentTarget","nodeName","onMouseDown","onDragStart","onDragOver","onDragLeave","onResizeStart","getMultiSortMetaIndex","meta","getBadgeValue","isMultiSorted","filterRow","getIndex","onHeaderCheckboxChange","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","Badge","header","sorticon","_component_Badge","headercheckboxicon","d_headerRows","d_headerColumns","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","DTFilterHeaderCell","FilterHeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","_component_DTFilterHeaderCell","BaseDataTable","inheritAttrs","d_columns","$columnGroups","d_columnGroups","d_first","d_rows","d_sortField","d_sortOrder","d_nullSortOrder","d_multiSortMeta","_toConsumableArray","d_groupRowsSortMeta","d_selectionKeys","d_columnOrder","d_editingRowKeys","d_editingMeta","d_filters","cloneFilters","rowTouched","anchorRowIndex","rangeRowIndex","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","columnResizing","colReorderIconWidth","colReorderIconHeight","draggedColumn","draggedColumnElement","draggedRowIndex","droppedRowIndex","rowDragging","columnWidthsState","tableWidthState","columnWidthsRestored","updateSelectionKeys","updateEditingRowKeys","isStateful","restoreState","restoreColumnWidths","unbindColumnResizeEvents","destroyStyleElement","saveState","onPage","clearEditingMetaData","pageEvent","createLazyLoadEvent","pageCount","page","processedData","onColumnHeaderClick","targetNode","columnField","closest","isClickable","clearSelection","resetPage","metaKey","ctrlKey","addMultiSortField","sortSingle","sortMultiple","resolvedFieldData","Map","comparer","localeComparator","sort","value1","value2","firstSortMeta","multisortField","getActiveFilters","removeEmptyFilters","_ref","_ref2","_slicedToArray","filteredConstraints","filterValidEntries","entry","entries","fromEntries","activeFilters","globalFilterFieldsArray","filteredValue","localMatch","globalMatch","localFiltered","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","filterEvent","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","focusedItem","findSingle","isMultipleSelectionMode","selectRange","metaSelection","isSingleSelectionMode","selectionIndex","_selection","val","_event$target","_event$currentTarget","targetRow","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","onTabKey","dataToRender","isCopyShortcut","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","lastRow","findLastSelectableRow","firstSelectedRowIndex","lastSelectedRowIndex","findIndexInList","Math","min","max","find","firstSelectedRow","table","firstFocusableRow","currentFocusedRow","toggleRowsWithCheckbox","_iterator3","_step3","_iterator4","_step4","rangeStart","rangeEnd","rangeRowData","exportCSV","_this6","csv","selectionOnly","headerInitiated","record","rowInitiated","cellData","replace","footerInitiated","onColumnResizeStart","containerLeft","getOffset","left","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","resizeHelper","height","offsetHeight","onColumnResizeEnd","delta","isRTL","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","updateTableWidth","width","virtualScrollerDisabled","frozenBody","frozenBodyRef","resizeColumn","colIndex","widths","headers","createStyleElement","innerHTML","selector","colWidth","styleElement","_this7","onColumnHeaderMouseDown","draggable","onColumnHeaderDragStart","getHiddenElementOuterWidth","reorderIndicatorUp","getHiddenElementOuterHeight","findParentHeader","dataTransfer","setData","onColumnHeaderDragOver","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","ceil","dropPosition","onColumnHeaderDragLeave","onColumnHeaderDrop","_this8","dragIndex","dropIndex","allowDrop","isSameColumn","col1","col2","dragColIndex","child","dropColIndex","movedItem","_","remainingItems","reorderedWidths","addColumnWidthStyles","reorderArray","updateReorderableColumns","findColumnByKey","rowElement","rowY","pageY","rowMidY","prevRowElement","removeClass","addClass","_this9","rest","_objectWithoutProperties","_excluded","toggleRowGroup","_expandedRowGroups","group","getStorage","localStorage","sessionStorage","storage","hasFilters","saveColumnWidths","columnOrder","setItem","JSON","stringify","stateString","getItem","dateFormat","reviver","test","Date","parsedState","parse","error","removeItem","restoredState","columnWidths","join","split","_editingRows","fields","hasGlobalFilter","cloned","_ref3","_ref4","_this0","_this$$primevue","createElement","csp","nonce","head","appendChild","removeChild","_data","getVirtualScrollerRef","virtualScroller","hasSpacerStyle","cols","orderedColumns","_iterator5","_step5","columnKey","columnGroups","headerColumnGroup","_this$columnGroups","_this1","footerColumnGroup","_this$columnGroups2","_this10","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this11","every","headerFilterButtonProps","rowEditButtonProps","isEmpty","DTPaginator","Paginator","DTTableHeader","TableHeader","DTTableBody","TableBody","DTTableFooter","TableFooter","DTVirtualScroller","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon","ptmi","_renderSlot","$slots","loadingicon","_component_SpinnerIcon","spin","_component_DTPaginator","template","alwaysShow","paginatorcontainer","fn","last","pageLinks","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","changePageCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","maxHeight","_component_DTVirtualScroller","items","loaderDisabled","autoSize","showSpacer","content","spacerStyle","_component_DTTableHeader","_component_DTTableBody","styleClass","itemSize","_component_DTTableFooter","rowreorderindicatorupicon","reorderindicatorupicon","rowreorderindicatordownicon","reorderindicatordownicon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,eAAe;AACrB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDC,IAAAA,IAAI,EAAE;AACFL,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDC,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDE,IAAAA,YAAY,EAAE;AACVR,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDG,IAAAA,SAAS,EAAE;AACPT,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDC,IAAAA,iBAAiB,EAAE;AACfX,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDS,IAAAA,mBAAmB,EAAE;AACjBZ,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDG,IAAAA,iBAAiB,EAAE;AACfb,MAAAA,IAAI,EAAE,CAACc,MAAM,EAAEX,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDY,IAAAA,YAAY,EAAE;AACVf,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDU,IAAAA,kBAAkB,EAAE;AAChBhB,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDgB,IAAAA,yBAAyB,EAAE;AACvBjB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDe,IAAAA,IAAI,EAAE;AACFlB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDS,IAAAA,OAAO,EAAE;AACLnB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDU,IAAAA,WAAW,EAAE;AACTpB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAASkB,EAAAA;KACZ;AACDC,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDkB,IAAAA,gBAAgB,EAAE;AACdxB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDmB,IAAAA,aAAa,EAAE;AACXzB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD0B,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDyB,IAAAA,aAAa,EAAE;AACX5B,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDmB,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgB,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4B,IAAAA,kBAAkB,EAAE;AAChB/B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD+B,IAAAA,YAAY,EAAE;AACVhC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAASkB,EAAAA;KACZ;AACDY,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDiC,IAAAA,gBAAgB,EAAE;AACdpC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2B,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDyB,IAAAA,SAAS,EAAE;AACPvC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD8B,IAAAA,QAAQ,EAAE;AACNxC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD+B,IAAAA,YAAY,EAAE;AACVzC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuC,IAAAA,cAAc,EAAE;AACZ1C,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDwC,IAAAA,cAAc,EAAE;AACZ3C,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDwC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDmC,IAAAA,gBAAgB,EAAE;AACd7C,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD2C,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDqC,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDkC,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAASkB,EAAAA;KACZ;AACD4B,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAASkB,EAAAA;KACZ;AACD6B,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDqD,IAAAA,YAAY,EAAE;AACVtD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoD,IAAAA,QAAQ,EAAE;AACNvD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDyD,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDuD,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDwD,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDmD,IAAAA,sBAAsB,EAAE;AACpB7D,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,YAAY,EAAE;AACV9D,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4D,IAAAA,WAAW,EAAE;AACT/D,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD+D,IAAAA,UAAU,EAAE;AACRhE,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD8D,IAAAA,WAAW,EAAE;AACTjE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDwD,IAAAA,aAAa,EAAE;AACXlE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDyD,IAAAA,WAAW,EAAE;AACTnE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD0D,IAAAA,iBAAiB,EAAE;AACfpE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2D,IAAAA,IAAI,EAAE;AACFrE,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDmE,IAAAA,UAAU,EAAE;AACRtE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDuE,IAAAA,UAAU,EAAE;AACRvE,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEW,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACD0D,IAAAA,UAAU,EAAE;AACRxE,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD2D,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAEc,MAAM;MAAA,SACZ6D,EAAAA,SAAAA,QAAOA,GAAG;QACN,OAAO;AACHC,UAAAA,MAAM,EAAE;AAAEC,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC5DC,UAAAA,MAAM,EAAE;AACJC,YAAAA,KAAK,EAAE;AAAEJ,cAAAA,QAAQ,EAAE,WAAW;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAEC,cAAAA,OAAO,EAAE;AAAK;WAC7D;AACDG,UAAAA,OAAO,EAAE;AACLC,YAAAA,OAAO,EAAE;AAAEN,cAAAA,QAAQ,EAAE,MAAM;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAET,cAAAA,IAAI,EAAE;aAAS;AACxDe,YAAAA,UAAU,EAAE;AAAEP,cAAAA,QAAQ,EAAE,QAAQ;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAET,cAAAA,IAAI,EAAE;aAAS;AAC7DgB,YAAAA,KAAK,EAAE;AAAEhB,cAAAA,IAAI,EAAE;aAAS;AACxBY,YAAAA,KAAK,EAAE;AAAEK,cAAAA,QAAQ,EAAE,IAAI;AAAEjB,cAAAA,IAAI,EAAE;AAAQ;AAC3C;SACH;AACL;KACH;AACDkB,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MAAA,SACZ6D,EAAAA,SAAAA,QAAOA,GAAG;QACN,OAAO;AACHa,UAAAA,IAAI,EAAE;AAAEX,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC1DU,UAAAA,IAAI,EAAE;AAAEZ,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC1DW,UAAAA,MAAM,EAAE;AAAEb,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;AAAK;SAC9D;AACL;AACJ;GACH;AACDY,EAAAA,KAAK,EAAEC,cAAc;EACrBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,eAAe,EAAE;KACpB;AACL;AACJ,CAAC;;ACxSD,eAAe;AACXnG,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,IAAI;AACXmG,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,uBAAuB,EAAE;AACrBpG,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDiG,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;AACb;GACH;AACDgG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;UACjBH,OAAO,EAAE,IAAI,CAACA,OAAO;AACrBc,UAAAA,QAAQ,EAAE,IAAI,CAACC,MAAM,CAACD;AAC1B;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAAC,IAAI,CAACR,MAAM,CAACD,QAAQ,EAAE;AACvB,QAAA,IAAI,CAACU,KAAK,CAAC,QAAQ,EAAE;AACjBC,UAAAA,aAAa,EAAEF,KAAK;UACpBG,IAAI,EAAE,IAAI,CAAC7H;AACf,SAAC,CAAC;AACN;AACJ;GACH;AACD8H,EAAAA,QAAQ,EAAE;IACNC,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACC,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAK,GAAG,IAAI,CAAChC,OAAQ,GAAE,IAAI,CAAC6B,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACC,SAAU,GAAE,IAAI,CAACJ,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACE,WAAW,GAAI/G,SAAS;AACvK;GACH;AACDgH,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;AACJ;AACJ,CAAC;;;;;sBCvEGC,WAKU,CAAAC,mBAAA,EAAA;IALCC,UAAU,EAAE9B,MAAO,CAAAV,OAAA;AAAGyC,IAAAA,MAAM,EAAE,IAAI;AAAG3B,IAAAA,QAAQ,EAAE4B,IAAM,CAAA3B,MAAA,CAACD,QAAQ;IAAG,YAAU,EAAE6B,QAAiB,CAAAf,iBAAA;IAAGN,QAAM,EAAEqB,QAAQ,CAAArB,QAAA;IAAGsB,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAAGvB,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,eAAA;;AACpJwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAA+HC,SADzG,EAAA;AAAA,MAAA,OAAA,CACLrC,MAAuB,CAAAR,uBAAA,IAAxC8C,SAAA,EAAA,EAAAV,WAAA,CAA+HW,wBAAhFvC,MAAuB,CAAAR,uBAAA,CAAA,EAAA;;QAAGF,OAAO,EAAE+C,SAAS,CAAC/C,OAAO;QAAG,OAAKkD,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;4CACrGrC,MAAwB,CAAAR,uBAAA,IAAG6C,SAAS,CAAC/C,OAAO,IAAnEgD,SAAA,EAAA,EAAAV,WAAA,CAA0Ia,sBAA1IC,UAA0I,CAAA;;AAApE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;;;;;;ACK7H,eAAe;AACX3G,EAAAA,IAAI,EAAE,gBAAgB;AACtBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,IAAI;AACXmG,IAAAA,OAAO,EAAE,IAAI;AACbtG,IAAAA,IAAI,EAAE,IAAI;AACVuG,IAAAA,MAAM,EAAE,IAAI;AACZE,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;AACb;GACH;AACDgG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;UACjBH,OAAO,EAAE,IAAI,CAACA,OAAO;AACrBc,UAAAA,QAAQ,EAAE,IAAI,CAACC,MAAM,CAACD;AAC1B;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAAC,IAAI,CAACR,MAAM,CAACD,QAAQ,EAAE;AACvB,QAAA,IAAI,CAACU,KAAK,CAAC,QAAQ,EAAE;AACjBC,UAAAA,aAAa,EAAEF,KAAK;UACpBG,IAAI,EAAE,IAAI,CAAC7H;AACf,SAAC,CAAC;AACN;AACJ;GACH;AACDsI,EAAAA,UAAU,EAAE;AACRkB,IAAAA,WAAU,EAAVA;AACJ;AACJ,CAAC;;;;sBCxDGf,WAA0K,CAAAgB,sBAAA,EAAA;IAA5Jd,UAAU,EAAE9B,MAAO,CAAAV,OAAA;AAAGyC,IAAAA,MAAM,EAAE,IAAI;AAAG3B,IAAAA,QAAQ,EAAE4B,IAAM,CAAA3B,MAAA,CAACD,QAAQ;IAAGpH,IAAI,EAAEgH,MAAI,CAAAhH,IAAA;IAAG4H,QAAM,EAAEqB,QAAQ,CAAArB,QAAA;IAAGsB,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAAGvB,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,kBAAA;;;;;;;oMCsIvJkD,mBAAA,YAAAA,mBAAA,GAAA,EAAA,OAAAC,CAAA,CAAAC,EAAAA,CAAAA,CAAAA,IAAAA,CAAA,EAAAD,CAAA,GAAA,EAAA,EAAAE,CAAA,GAAA9I,MAAA,CAAA+I,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,GAAAC,EAAAA,EAAAA,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAAC,YAAAA,EAAAA,CAAA,GAAAJ,CAAA,CAAAK,aAAA,IAAAC,iBAAAA,EAAAA,CAAA,GAAAN,CAAA,CAAAO,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAC,CAAAb,CAAAA,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAE,CAAA,WAAAhJ,MAAA,CAAA2J,cAAA,CAAAd,CAAA,EAAAD,CAAA,EAAA,EAAA3J,KAAA,EAAA6J,CAAA,EAAAc,UAAA,EAAA,CAAAZ,CAAA,EAAAa,YAAA,EAAA,CAAAb,CAAA,EAAAc,QAAA,GAAAd,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,IAAA,EAAAU,CAAA,CAAAb,EAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAA,EAAAa,EAAAA,CAAA,GAAAA,SAAAA,CAAAA,CAAAb,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAA,EAAA,OAAAD,CAAA,CAAAD,CAAA,CAAAE,GAAAA,CAAA,CAAAiB,EAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAnB,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,EAAAA,IAAAA,CAAA,GAAAN,CAAA,IAAAA,CAAA,CAAAC,SAAA,YAAAiB,SAAA,GAAAlB,CAAA,GAAAkB,SAAA,EAAAV,CAAA,GAAAtJ,MAAA,CAAAiK,MAAA,CAAAb,CAAA,CAAAL,SAAA,UAAAW,CAAA,CAAAJ,CAAA,EAAAV,SAAAA,EAAAA,UAAAA,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,EAAAA,IAAAA,CAAA,uBAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAA,CAAA,KAAAJ,CAAA,EAAA,MAAAgB,KAAA,CAAAhB,8BAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAA,oBAAAE,CAAA,EAAA,MAAAE,CAAA,CAAArK,CAAAA,OAAAA,EAAAA,KAAA,EAAA4J,CAAA,EAAAsB,IAAA,EAAAnB,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,KAAAA,CAAA,CAAAoB,MAAA,GAAAhB,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAAf,CAAA,UAAAE,CAAA,GAAAR,CAAA,CAAAsB,QAAA,MAAAd,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAa,CAAA,CAAAf,CAAA,EAAAR,CAAA,OAAAU,CAAA,EAAA,EAAA,IAAAA,CAAA,KAAAc,CAAA,EAAAd,SAAAA,CAAAA,OAAAA,CAAA,CAAAV,EAAAA,EAAAA,CAAAA,IAAAA,MAAAA,KAAAA,CAAA,CAAAoB,MAAA,EAAApB,CAAA,CAAAyB,IAAA,GAAAzB,CAAA,CAAA0B,KAAA,GAAA1B,CAAA,CAAAqB,GAAA,CAAA,KAAA,IAAA,OAAA,KAAArB,CAAA,CAAAoB,MAAA,cAAAlB,CAAA,EAAA,MAAAA,CAAA,GAAA,CAAA,EAAAF,CAAA,CAAAqB,GAAA,CAAArB,CAAAA,CAAA,CAAA2B,iBAAA,CAAA3B,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAAoB,MAAA,IAAApB,CAAA,CAAA4B,MAAA,CAAA,QAAA,EAAA5B,CAAA,CAAAqB,GAAA,CAAAnB,CAAAA,CAAAA,CAAA,GAAAa,CAAAA,CAAAA,CAAAA,IAAAA,CAAA,GAAAc,CAAA,CAAAjC,CAAA,EAAAE,CAAA,EAAAE,CAAA,CAAA,CAAA,CAAA,IAAA,QAAA,KAAAe,CAAA,CAAA7K,IAAA,QAAAgK,CAAA,GAAAF,CAAA,CAAAmB,IAAA,UAAAJ,CAAA,CAAAM,GAAA,KAAAG,CAAA,EAAA,SAAA,CAAA,OAAA,EAAAvL,KAAA,EAAA8K,CAAA,CAAAM,GAAA,EAAAF,IAAA,EAAAnB,CAAA,CAAAmB,IAAA,EAAAJ,CAAAA,EAAAA,CAAAA,OAAAA,KAAAA,CAAA,CAAA7K,IAAA,KAAAgK,CAAA,GAAAF,CAAAA,EAAAA,CAAA,CAAAoB,MAAA,GAAA,OAAA,EAAApB,CAAA,CAAAqB,GAAA,GAAAN,CAAA,CAAAM,GAAA,UAAAzB,CAAA,EAAAI,CAAA,EAAA8B,IAAAA,OAAA,CAAA5B,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAAI,CAAA,CAAAuB,EAAAA,CAAAA,SAAAA,CAAAA,CAAAhC,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA5J,IAAA,EAAA,QAAA,EAAAmL,GAAA,EAAAxB,CAAA,CAAAkC,IAAA,CAAAnC,CAAA,EAAAE,CAAA,CAAAD,EAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAA,EAAA3J,EAAAA,OAAAA,EAAAA,IAAA,EAAAmL,OAAAA,EAAAA,GAAA,EAAAxB,CAAA,EAAA,CAAA,EAAA,EAAA,CAAAD,CAAA,CAAAoC,IAAA,GAAAjB,CAAA,CAAA,CAAA,IAAAS,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAR,SAAA,GAAA,EAAA,CAAA,SAAAiB,oBAAAC,EAAAA,CAAAA,SAAAA,0BAAAA,UAAAC,CAAA,GAAA,EAAA,CAAA,CAAAzB,CAAA,CAAAyB,CAAA,EAAA/B,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,IAAAgC,CAAA,GAAApL,MAAA,CAAAqL,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAAD,CAAA,IAAAA,CAAA,KAAAxC,CAAA,IAAAE,CAAA,CAAA+B,IAAA,CAAAO,CAAA,EAAAlC,CAAA,MAAA+B,CAAA,GAAAG,CAAA,CAAAE,CAAAA,CAAAA,IAAAA,CAAA,GAAAN,0BAAA,CAAAnC,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAA/I,MAAA,CAAAiK,MAAA,CAAAkB,CAAA,CAAAM,CAAAA,CAAAA,SAAAA,CAAAA,CAAA5C,CAAA,EAAA6C,EAAAA,CAAAA,MAAAA,EAAAA,OAAAA,EAAAA,QAAAA,CAAAA,CAAAA,OAAA,WAAA9C,CAAA,EAAA,EAAAc,CAAA,CAAAb,CAAA,EAAAD,CAAA,EAAAC,UAAAA,CAAA,gBAAA8C,OAAA,CAAA/C,CAAA,EAAAC,CAAA,sBAAA+C,aAAA/C,CAAAA,CAAA,EAAAD,CAAA,EAAA,EAAA,SAAAE,EAAAI,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAmB,CAAA,CAAAhC,CAAA,CAAAK,CAAA,GAAAL,CAAA,EAAAO,CAAA,CAAAM,CAAAA,CAAAA,IAAAA,OAAAA,KAAAA,CAAA,CAAAxK,IAAA,EAAA,EAAA,IAAA6K,CAAA,GAAAL,CAAA,CAAAW,GAAA,EAAAG,CAAA,GAAAT,CAAA,CAAA9K,KAAA,CAAAuL,CAAAA,OAAAA,CAAA,gBAAAqB,SAAA,CAAArB,CAAA,CAAAxB,IAAAA,CAAA,CAAA+B,IAAA,CAAAP,CAAA,EAAA,SAAA,CAAA,GAAA5B,CAAA,CAAAkD,OAAA,CAAAtB,CAAA,CAAAuB,OAAA,CAAA,CAAAC,IAAA,CAAAnD,UAAAA,CAAA,EAAAC,EAAAA,CAAA,CAAAD,MAAAA,EAAAA,CAAA,EAAAS,CAAA,EAAAE,CAAA,CAAAX,CAAAA,EAAAA,EAAAA,UAAAA,CAAA,IAAAC,CAAA,CAAA,OAAA,EAAAD,CAAA,EAAAS,CAAA,EAAAE,CAAA,CAAA,CAAA,EAAA,CAAA,GAAAZ,CAAA,CAAAkD,OAAA,CAAAtB,CAAA,CAAA,CAAAwB,IAAA,CAAA,UAAAnD,CAAA,EAAA,EAAAkB,CAAA,CAAA9K,KAAA,GAAA4J,CAAA,EAAAS,CAAA,CAAAS,CAAA,gBAAAlB,CAAA,EAAA,EAAA,OAAAC,CAAA,CAAAD,OAAAA,EAAAA,CAAA,EAAAS,CAAA,EAAAE,CAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAA,CAAAE,CAAA,CAAAW,GAAA,SAAAnB,CAAA,CAAA,CAAAQ,CAAA,CAAAb,IAAAA,EAAAA,SAAAA,EAAAA,UAAAA,CAAA,EAAAG,CAAA,EAAA,EAAA,SAAAI,IAAAR,EAAAA,OAAAA,IAAAA,CAAA,WAAAA,CAAA,EAAAM,CAAA,EAAAJ,EAAAA,CAAA,CAAAD,CAAA,EAAAG,CAAA,EAAAJ,CAAA,EAAAM,CAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA8C,IAAA,CAAA5C,CAAA,EAAAA,CAAA,IAAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAA,CAAA,SAAAmB,EAAA3B,CAAA,EAAAE,CAAA,EAAAE,EAAAA,IAAAA,CAAA,GAAAF,CAAA,CAAAsB,MAAA,EAAAlB,CAAA,GAAAN,CAAA,CAAAQ,CAAA,CAAAJ,CAAA,CAAA,CAAA,CAAA,IAAAE,CAAA,KAAAL,CAAA,SAAAC,CAAA,CAAAwB,QAAA,GAAAtB,IAAAA,EAAAA,OAAAA,KAAAA,CAAA,IAAAJ,CAAA,CAAAQ,CAAA,CAAA,QAAA,CAAA,KAAAN,CAAA,CAAAsB,MAAA,GAAAtB,QAAAA,EAAAA,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAA0B,CAAA,CAAA3B,CAAA,EAAAE,CAAA,CAAAA,EAAAA,OAAAA,KAAAA,CAAA,CAAAsB,MAAA,CAAA,IAAA,QAAA,KAAApB,CAAA,KAAAF,CAAA,CAAAsB,MAAA,GAAAtB,OAAAA,EAAAA,CAAA,CAAAuB,GAAA,GAAA,IAAA4B,SAAA,CAAAjD,mCAAAA,GAAAA,CAAA,iBAAAwB,CAAA,CAAA,CAAA,IAAApB,CAAA,GAAAyB,CAAA,CAAA3B,CAAA,EAAAN,CAAA,CAAAQ,CAAA,EAAAN,CAAA,CAAAuB,GAAA,CAAA,CAAA,CAAA,IAAA,OAAA,KAAAjB,CAAA,CAAAlK,IAAA,EAAA4J,OAAAA,CAAA,CAAAsB,MAAA,GAAA,OAAA,EAAAtB,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAAwB,QAAA,GAAAE,IAAAA,EAAAA,CAAA,MAAAlB,CAAA,GAAAF,CAAA,CAAAiB,GAAA,CAAA,CAAA,OAAAf,CAAA,GAAAA,CAAA,CAAAa,IAAA,IAAArB,CAAA,CAAAF,CAAA,CAAAA,CAAA,CAAA,GAAAU,CAAA,CAAArK,KAAA,EAAA6J,CAAA,CAAAoD,IAAA,GAAAtD,CAAA,CAAAI,CAAA,EAAAF,QAAAA,KAAAA,CAAA,CAAAsB,MAAA,KAAAtB,CAAA,CAAAsB,MAAA,WAAAtB,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,CAAA,EAAAC,CAAA,CAAAwB,QAAA,SAAAE,CAAA,IAAAlB,CAAA,IAAAR,CAAA,CAAAsB,MAAA,GAAAtB,OAAAA,EAAAA,CAAA,CAAAuB,GAAA,GAAA,IAAA4B,SAAA,CAAAnD,kCAAAA,CAAAA,EAAAA,CAAA,CAAAwB,QAAA,GAAA,IAAA,EAAAE,CAAA,CAAA2B,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAtD,CAAA,EAAAuD,EAAAA,IAAAA,CAAAA,UAAA,CAAAC,IAAA,CAAAxD,CAAA,CAAAyD,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAA1D,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAF,CAAA,CAAAE,CAAAA,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,CAAA,CAAA5J,IAAA,GAAA,QAAA,EAAA4J,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAAD,CAAA,MAAAE,CAAA,CAAA,EAAA,CAAA,SAAAgC,QAAAjC,CAAA,EAAA,EAAA,IAAA,CAAAuD,UAAA,GAAAvD,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA6C,OAAA,CAAAS,CAAA,cAAAI,KAAA,CAAA,IAAA,CAAA,CAAA,EAAA,CAAA,SAAAhB,EAAA3C,CAAA,EAAA,EAAA,IAAA,IAAA,IAAAA,CAAA,EAAAE,EAAAA,IAAAA,CAAA,GAAAF,CAAA,CAAAQ,CAAA,CAAAN,CAAAA,CAAAA,IAAAA,CAAA,SAAAA,CAAA,CAAAiC,IAAA,CAAAnC,CAAA,CAAAA,CAAAA,CAAAA,IAAAA,UAAAA,IAAAA,OAAAA,CAAA,CAAAsD,IAAA,SAAAtD,CAAA,CAAA,CAAA,IAAA,CAAA4D,KAAA,CAAA5D,CAAA,CAAA6D,MAAA,CAAA,EAAA,EAAA,IAAAvD,CAAA,GAAAI,EAAAA,EAAAA,CAAA,YAAAR,CAAA,GAAA,EAAA,OAAA,EAAAI,CAAA,GAAAN,CAAA,CAAA6D,MAAA,GAAA,IAAAzD,CAAA,CAAA+B,IAAA,CAAAnC,CAAA,EAAAM,CAAA,UAAAJ,CAAA,CAAA7J,KAAA,GAAA2J,CAAA,CAAAM,CAAA,CAAA,EAAAJ,CAAA,CAAAqB,IAAA,UAAArB,CAAA,CAAA,CAAA,OAAAA,CAAA,CAAA7J,KAAA,GAAA4J,CAAA,EAAAC,CAAA,CAAAqB,IAAA,GAAA,IAAA,EAAArB,CAAA,CAAAQ,EAAAA,CAAAA,CAAAA,OAAAA,CAAA,CAAA4C,IAAA,GAAA5C,CAAA,CAAA,EAAA,EAAA,CAAA,MAAA,IAAA2C,SAAA,CAAAJ,SAAA,CAAAjD,CAAA,kCAAAqC,iBAAA,CAAAlC,SAAA,GAAAmC,0BAAA,EAAAxB,CAAA,CAAA8B,CAAA,iBAAAN,0BAAA,CAAA,EAAAxB,CAAA,CAAAwB,0BAAA,iBAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAyB,WAAA,GAAAhD,CAAA,CAAAwB,0BAAA,EAAA1B,CAAA,wBAAAZ,CAAA,CAAA+D,mBAAA,GAAA,UAAA9D,CAAA,EAAA,EAAA,IAAAD,CAAA,GAAAC,UAAAA,IAAAA,OAAAA,CAAA,IAAAA,CAAA,CAAA+D,WAAA,CAAAhE,CAAAA,OAAAA,CAAAA,CAAAA,CAAA,KAAAA,CAAA,KAAAqC,iBAAA,IAAArC,mBAAAA,MAAAA,CAAA,CAAA8D,WAAA,IAAA9D,CAAA,CAAA9J,IAAA,CAAA8J,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAAiE,IAAA,aAAAhE,CAAA,EAAA,EAAA,OAAA7I,MAAA,CAAA8M,cAAA,GAAA9M,MAAA,CAAA8M,cAAA,CAAAjE,CAAA,EAAAqC,0BAAA,CAAA,IAAArC,CAAA,CAAAkE,SAAA,GAAA7B,0BAAA,EAAAxB,CAAA,CAAAb,CAAA,EAAAW,CAAA,EAAAX,mBAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAAE,SAAA,GAAA/I,MAAA,CAAAiK,MAAA,CAAAuB,CAAA,CAAA3C,EAAAA,CAAA,KAAAD,CAAA,CAAAoE,KAAA,GAAAnE,UAAAA,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,EAAA,CAAA,EAAA,EAAA4C,CAAA,CAAAG,aAAA,CAAA7C,SAAA,GAAAW,CAAA,CAAAkC,aAAA,CAAA7C,SAAA,EAAAO,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,EAAA,CAAA,EAAAV,CAAA,CAAAgD,aAAA,GAAAA,aAAA,EAAAhD,CAAA,CAAAqE,KAAA,GAAApE,UAAAA,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA8D,OAAA,OAAA5D,CAAA,GAAA,IAAAsC,aAAA,CAAA7B,CAAA,CAAAlB,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,CAAAE,EAAAA,CAAA,UAAAR,CAAA,CAAA+D,mBAAA,CAAA7D,CAAA,IAAAQ,CAAA,GAAAA,CAAA,CAAA4C,IAAA,GAAAF,IAAA,CAAA,UAAAnD,CAAA,EAAAA,EAAAA,OAAAA,CAAA,CAAAsB,IAAA,GAAAtB,CAAA,CAAA5J,KAAA,GAAAqK,CAAA,CAAA4C,IAAA,WAAAT,CAAA,CAAAD,CAAA,CAAA,EAAA9B,CAAA,CAAA8B,CAAA,EAAAhC,CAAA,gBAAAE,CAAA,CAAA8B,CAAA,EAAApC,CAAA,EAAAM,YAAAA,EAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA8B,CAAA,6DAAA5C,CAAA,CAAAuE,IAAA,GAAAtE,UAAAA,CAAA,QAAAD,CAAA,GAAA5I,MAAA,CAAA6I,CAAA,GAAAC,CAAA,GAAA,EAAA,CAAA,CAAA,KAAA,IAAAE,CAAA,IAAAJ,CAAA,EAAAE,CAAA,CAAAsE,OAAA,CAAApE,CAAA,CAAA,CAAA,CAAA,OAAA,SAAAH,IAAAC,EAAAA,OAAAA,CAAA,CAAA2D,MAAA,GAAA,IAAA,CAAAzD,CAAA,GAAAF,CAAA,CAAAuE,GAAA,EAAAzE,KAAAA,CAAA,SAAAC,CAAA,CAAA5J,KAAA,GAAA+J,CAAA,EAAAH,CAAA,CAAAsB,IAAA,GAAA,KAAA,EAAAtB,CAAA,CAAA,CAAA,OAAAA,CAAA,CAAAsB,IAAA,SAAAtB,CAAA,CAAA,EAAA,CAAA,EAAA,EAAAD,CAAA,CAAA0E,MAAA,GAAA/B,CAAA,EAAAT,OAAA,CAAA/B,SAAA,KAAA6D,WAAA,EAAA9B,OAAA,EAAAyB,KAAA,EAAAA,SAAAA,KAAAA,CAAA3D,CAAA,EAAA,EAAA,IAAA,IAAA,CAAA2E,IAAA,GAAArB,IAAAA,CAAAA,IAAA,WAAAzB,IAAA,GAAA,IAAA,CAAAC,KAAA,GAAA7B,CAAA,EAAAsB,IAAAA,CAAAA,IAAA,GAAAG,KAAAA,EAAAA,IAAAA,CAAAA,QAAA,cAAAF,MAAA,GAAA,MAAA,EAAA,IAAA,CAAAC,GAAA,GAAAxB,CAAA,OAAAuD,UAAA,CAAAV,OAAA,CAAAY,CAAA,CAAA,EAAA,CAAA1D,CAAA,EAAAE,KAAAA,IAAAA,CAAA,kBAAAA,CAAA,CAAA0E,MAAA,CAAAxE,CAAAA,CAAAA,IAAAA,CAAA,CAAA+B,IAAA,CAAA,IAAA,EAAAjC,CAAA,CAAA0D,IAAAA,CAAAA,KAAA,EAAA1D,CAAA,CAAA2E,KAAA,CAAA3E,CAAAA,CAAAA,CAAAA,KAAAA,IAAAA,CAAAA,CAAA,CAAAD,GAAAA,CAAA,CAAA6E,CAAAA,EAAAA,EAAAA,IAAA,WAAAA,IAAA,GAAA,EAAA,IAAA,CAAAvD,IAAA,GAAAtB,IAAAA,CAAAA,CAAAA,IAAAA,CAAA,QAAAuD,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,OAAA,KAAAvD,CAAA,CAAA3J,IAAA,QAAA2J,CAAA,CAAAwB,GAAA,CAAAsD,CAAAA,OAAAA,IAAAA,CAAAA,IAAA,KAAAhD,iBAAA,EAAA,SAAAA,iBAAA/B,CAAAA,CAAA,EAAAuB,EAAAA,IAAAA,IAAAA,CAAAA,IAAA,QAAAvB,CAAA,CAAA,CAAA,IAAAE,CAAA,GAAAE,IAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAH,CAAA,EAAAS,EAAAA,CAAA,CAAApK,IAAA,GAAA,OAAA,EAAAoK,CAAA,CAAAe,GAAA,GAAAzB,CAAA,EAAAE,CAAA,CAAAoD,IAAA,GAAArD,CAAA,CAAAK,EAAAA,CAAAA,KAAAA,IAAAA,CAAA,GAAAJ,CAAA,CAAAsD,UAAA,CAAAK,MAAA,MAAAvD,CAAA,IAAA,CAAA,EAAA,EAAAA,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAA,IAAA,CAAAgD,UAAA,CAAAlD,CAAA,GAAAI,CAAA,GAAAF,CAAA,CAAAI,CAAAA,CAAAA,EAAAA,CAAA,GAAA+D,IAAAA,CAAAA,IAAA,EAAA7D,CAAA,GAAAN,CAAA,CAAA,CAAA,CAAA,EAAAW,CAAA,GAAAX,CAAA,gBAAAA,CAAA,CAAA,CAAA,CAAA,EAAA,OAAAJ,CAAA,CAAAU,KAAAA,CAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAA,KAAAK,CAAA,EAAA,MAAAG,KAAA,CAAAd,wCAAAA,CAAAA,CAAAA,CAAAA,IAAAA,IAAAA,IAAAA,CAAA,OAAAA,CAAA,CAAA,CAAA,CAAA,IAAAI,CAAA,EAAA,EAAA,IAAAA,CAAA,GAAAE,CAAA,EAAAU,OAAAA,IAAAA,CAAAA,MAAA,gBAAAC,GAAA,GAAAxB,CAAA,EAAAG,CAAA,CAAAU,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,IAAAF,CAAA,GAAAO,CAAA,SAAAf,CAAA,CAAAe,CAAA,CAAAa,EAAAA,KAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAAA,MAAA,EAAAA,SAAAA,MAAAA,CAAA/B,CAAA,EAAAD,CAAA,EAAAE,EAAAA,KAAAA,IAAAA,CAAA,QAAAsD,UAAA,CAAAK,MAAA,GAAA3D,CAAAA,EAAAA,CAAA,SAAAA,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAoD,IAAAA,CAAAA,UAAA,CAAAtD,CAAA,CAAA,CAAA,CAAA,IAAAE,CAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,IAAAA,CAAA,CAAAuE,CAAAA,CAAAA,IAAAA,IAAAA,CAAAA,IAAA,IAAAA,IAAAA,CAAAA,IAAA,GAAAvE,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAF,CAAA,aAAAE,CAAA,KAAA,OAAA,KAAAL,CAAA,IAAA,UAAA,KAAAA,CAAA,CAAA,IAAAK,CAAA,CAAAN,CAAAA,CAAAA,IAAAA,CAAA,IAAAA,CAAA,IAAAM,CAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAA,GAAAE,IAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,OAAAE,CAAA,CAAAlK,IAAA,GAAA2J,CAAA,EAAAO,CAAA,CAAAiB,GAAA,GAAAzB,CAAA,EAAAM,CAAA,IAAAkB,IAAAA,CAAAA,MAAA,gBAAA8B,IAAA,GAAAhD,CAAA,CAAA,CAAA,CAAA,EAAAsB,CAAA,IAAA,IAAA,CAAAoD,QAAA,CAAAxE,CAAA,MAAAwE,QAAA,EAAA,SAAAA,SAAA/E,CAAA,EAAAD,CAAA,EAAAC,EAAAA,IAAAA,OAAAA,KAAAA,CAAA,CAAA3J,IAAA,EAAA,MAAA2J,CAAA,CAAAwB,GAAA,qBAAAxB,CAAA,CAAA3J,IAAA,IAAA,UAAA,KAAA2J,CAAA,CAAA3J,IAAA,GAAAgN,IAAAA,CAAAA,IAAA,GAAArD,CAAA,CAAAwB,GAAA,GAAAxB,QAAAA,KAAAA,CAAA,CAAA3J,IAAA,IAAA,IAAA,CAAAyO,IAAA,GAAAtD,IAAAA,CAAAA,GAAA,GAAAxB,CAAA,CAAAwB,GAAA,EAAAD,IAAAA,CAAAA,MAAA,GAAA8B,QAAAA,EAAAA,IAAAA,CAAAA,IAAA,GAAArD,KAAAA,IAAAA,QAAAA,KAAAA,CAAA,CAAA3J,IAAA,IAAA0J,CAAA,KAAAsD,IAAAA,CAAAA,IAAA,GAAAtD,CAAA,CAAA,EAAA4B,CAAA,CAAA,EAAA,EAAAqD,MAAA,EAAA,SAAAA,OAAAhF,CAAA,EAAA,EAAA,KAAA,IAAAD,CAAA,GAAAwD,IAAAA,CAAAA,UAAA,CAAAK,MAAA,GAAA,CAAA,EAAA7D,CAAA,IAAA,CAAA,EAAA,EAAAA,CAAA,EAAA,EAAA,IAAAE,CAAA,GAAAsD,IAAAA,CAAAA,UAAA,CAAAxD,CAAA,CAAA,CAAA,CAAA,IAAAE,CAAA,CAAAD,CAAAA,CAAAA,KAAAA,CAAA,cAAA+E,QAAA,CAAA9E,CAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAwD,CAAA,CAAAxD,CAAA,CAAA0B,EAAAA,CAAA,CAAAsD,EAAAA,EAAAA,EAAAA,OAAAA,EAAAA,SAAAA,MAAAA,CAAAjF,CAAA,EAAA,EAAA,KAAA,IAAAD,CAAA,GAAAwD,IAAAA,CAAAA,UAAA,CAAAK,MAAA,GAAA,CAAA,EAAA7D,CAAA,IAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAAE,EAAAA,IAAAA,CAAA,GAAAsD,IAAAA,CAAAA,UAAA,CAAAxD,CAAA,CAAA,CAAA,CAAA,IAAAE,CAAA,CAAAD,CAAAA,CAAAA,KAAAA,CAAA,QAAAG,CAAA,GAAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,OAAA,KAAAE,CAAA,CAAA9J,IAAA,EAAAgK,EAAAA,IAAAA,CAAA,GAAAF,CAAA,CAAAqB,GAAA,CAAAiC,CAAAA,CAAA,CAAAxD,CAAA,CAAA,CAAA,EAAA,CAAA,OAAAI,CAAA,CAAAgB,EAAAA,EAAAA,CAAAA,MAAAA,KAAA,8BAAA6D,aAAA,EAAA,SAAAA,cAAAnF,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAsB,QAAA,GAAAlB,EAAAA,CAAA,EAAAmC,CAAA,CAAA3C,CAAA,CAAAA,EAAAA,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAA,CAAA,EAAA,EAAA,MAAA,KAAA,IAAA,CAAAoB,MAAA,KAAAC,IAAAA,CAAAA,GAAA,GAAAxB,CAAA,CAAA,EAAA2B,CAAA,CAAA,EAAA,EAAA,EAAA5B,CAAA,CAAA;AAAA,SAAAoF,kBAAAA,CAAAhF,CAAA,EAAAH,CAAA,EAAAC,CAAA,EAAAF,CAAA,EAAAM,CAAA,EAAAI,CAAA,EAAAI,CAAA,EAAA,EAAA,IAAA,EAAA,IAAAN,CAAA,GAAAJ,CAAA,CAAAM,CAAA,CAAAI,CAAAA,CAAA,CAAAF,EAAAA,CAAA,GAAAJ,CAAA,CAAAnK,KAAA,CAAA,EAAA,CAAA,OAAA+J,CAAA,EAAA,EAAA,OAAA,KAAAF,CAAA,CAAAE,CAAA,CAAAI,CAAAA,EAAAA,CAAAA,CAAA,CAAAe,IAAA,GAAAtB,CAAA,CAAAW,CAAA,CAAA,GAAA0D,OAAA,CAAApB,OAAA,CAAAtC,CAAA,CAAA,CAAAwC,IAAA,CAAApD,CAAA,EAAAM,CAAA,CAAA,CAAA;AAAA,SAAA+E,iBAAAA,CAAAjF,CAAA,EAAA,EAAA,OAAA,YAAA,EAAA,IAAAH,CAAA,GAAA,IAAA,EAAAC,CAAA,GAAAoF,SAAA,CAAA,CAAA,OAAA,IAAAhB,OAAA,CAAA,UAAAtE,CAAA,EAAAM,CAAA,EAAA,EAAA,IAAAI,CAAA,GAAAN,CAAA,CAAAzE,KAAA,CAAAsE,CAAA,EAAAC,CAAA,CAAA,CAAA,CAAA,SAAAqF,KAAAnF,CAAAA,CAAA,EAAAgF,EAAAA,kBAAA,CAAA1E,CAAA,EAAAV,CAAA,EAAAM,CAAA,EAAAiF,KAAA,EAAAC,MAAA,EAAApF,MAAAA,EAAAA,CAAA,CAAAoF,CAAAA,EAAAA,CAAAA,SAAAA,MAAAA,CAAApF,CAAA,EAAA,EAAAgF,kBAAA,CAAA1E,CAAA,EAAAV,CAAA,EAAAM,CAAA,EAAAiF,KAAA,EAAAC,MAAA,EAAA,OAAA,EAAApF,CAAA,CAAA,CAAA,EAAA,CAAAmF,KAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA;AAiBA,eAAe;AACXrP,EAAAA,IAAI,EAAE,UAAU;AAChBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;AAChMnG,EAAAA,KAAK,EAAE;AACHqP,IAAAA,OAAO,EAAE;AACLnP,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqF,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsO,IAAAA,SAAS,EAAE;AACPpP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2O,IAAAA,QAAQ,EAAE;AACNrP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACD+F,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgP,IAAAA,aAAa,EAAE;AACXtP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD6O,IAAAA,QAAQ,EAAE;AACNvP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD8O,IAAAA,OAAO,EAAE;AACLxP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD+O,IAAAA,WAAW,EAAE;AACTzP,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0C,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuP,IAAAA,2BAA2B,EAAE;AACzB1P,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6O,IAAAA,YAAY,EAAE;AACV3P,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDP,IAAAA,IAAI,EAAE;AACFI,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoF,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;AACb;GACH;AACD8O,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,mBAAmB,EAAE,IAAI;EACzBnI,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHoI,SAAS,EAAE,IAAI,CAACR,OAAO;AACvBS,MAAAA,WAAW,EAAE;KAChB;GACJ;AACDC,EAAAA,KAAK,EAAE;AACHV,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACW,QAAQ,EAAE;MACd,IAAI,CAACH,SAAQ,GAAIG,QAAQ;KAC5B;AACD,IAAA,iBAAiB,EAAE,SAAnBC,cAAiBA,CAAYD,QAAQ,EAAE;AACnC,MAAA,IAAI,CAACzI,KAAK,CAAC,qBAAqB,EAAE;QAAEE,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAEkB,KAAK,EAAE,IAAI,CAACA,KAAM,IAAA,QAAA,CAAAjJ,MAAA,CAAY,IAAI,CAACf,KAAK,CAAE;QAAEA,KAAK,EAAE,IAAI,CAACgJ,QAAQ;AAAEG,QAAAA,OAAO,EAAEW;AAAS,OAAC,CAAC;AAClJ;GACH;EACDG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AAAA,IAAA,IAAAC,KAAA,GAAA,IAAA;AACN,IAAA,IAAI,IAAI,CAACH,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;IAEA,IAAI,IAAI,CAACR,SAAQ,KAAM,IAAI,CAACxM,QAAO,KAAM,MAAK,IAAM,IAAI,CAACA,QAAO,KAAM,KAAM,IAAG,IAAI,CAAC+M,UAAU,CAAC,WAAW,CAAE,CAAC,EAAE;AAC3GI,MAAAA,UAAU,CAAC,YAAM;AACb,QAAA,IAAMC,cAAcC,wBAAwB,CAACH,KAAI,CAACI,GAAG,CAAC;AAEtDF,QAAAA,WAAU,IAAKA,WAAW,CAACG,KAAK,EAAE;OACrC,EAAE,CAAC,CAAC;AACT;GACH;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,IAAI,CAAClB,oBAAoB,EAAE;MAC3BmB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC;GACH;AACDxJ,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACjL,MAAM,EAAEgL,IAAI,CAAC;KACzC;AACD5K,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAA6K,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAM7K,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBhC,UAAAA,IAAI,GAAAgN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,MAAA,IAAA,IAAAsL,qBAAA,KAArCA,MAAAA,GAAAA,MAAAA,GAAAA,qBAAA,CAAuChN,IAAI;AACjDH,UAAAA,aAAa,GAAAoN,sBAAA,GAAE,IAAI,CAACvL,eAAe,cAAAuL,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBvL,eAAe,cAAAuL,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,sBAAA,CAAuCpN;AAC1D;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAElG,SAAS;KACtF;IACDkQ,gBAAgB,EAAA,SAAhBA,kBAAgBA,GAAG;MACf,OAAOA,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACkB,KAAK,CAAC;KACpD;AACDmB,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC/J,KAAK,EAAE;AACb,MAAA,IAAI,CAACC,KAAK,CAAC,YAAY,EAAE;AACrBC,QAAAA,aAAa,EAAEF,KAAK;QACpBG,IAAI,EAAE,IAAI,CAACuH;AACf,OAAC,CAAC;KACL;AACDsC,IAAAA,kBAAkB,WAAlBA,kBAAkBA,CAAChK,KAAK,EAAEpB,KAAK,EAAE;AAC7B,MAAA,IAAI,CAACqB,KAAK,CAAC,cAAc,EAAE;QAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEtB,QAAAA,KAAK,EAAEA,KAAK;QAAEuB,IAAI,EAAEH,KAAK,CAACG;AAAK,OAAC,CAAC;KACrG;AACD8J,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAACjK,KAAK,EAAEpB,KAAK,EAAE;AAChC,MAAA,IAAI,CAACqB,KAAK,CAAC,iBAAiB,EAAE;QAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEtB,QAAAA,KAAK,EAAEA,KAAK;QAAEuB,IAAI,EAAEH,KAAK,CAACG;AAAK,OAAC,CAAC;KACxG;IACD+J,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACxL,MAAM,CAACyL,QAAO,IAAK,IAAI,CAACzL,MAAM,CAACyL,QAAQ,CAACC,MAAO,IAAG,IAAI;KACrE;IACDC,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACnC,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAqB,GAAE,UAACnI,KAAK,EAAK;AACnCsK,UAAAA,MAAI,CAAClC,YAAYkC,MAAI,CAACjB,GAAI,IAAGiB,MAAI,CAACjB,GAAG,CAACkB,QAAQ,CAACvK,KAAK,CAACwK,MAAM,CAAC;UAE5D,IAAIF,MAAI,CAAChC,mBAAmB,EAAE;AAC1BmC,YAAAA,YAAY,CAACH,MAAI,CAAChC,mBAAmB,CAAC;AAC1C;AAEA,UAAA,IAAI,CAACgC,MAAI,CAAClC,SAAS,EAAE;AACjBkC,YAAAA,MAAI,CAAChC,mBAAoB,GAAEY,UAAU,CAAC,YAAM;AACxCoB,cAAAA,MAAI,CAACI,YAAY,CAAC1K,KAAK,EAAE,SAAS,CAAC;aACtC,EAAE,CAAC,CAAC;AACT;SACH;QAED2K,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACzC,oBAAoB,CAAC;AACrE;KACH;IACD0C,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAAC1C,oBAAoB,EAAE;QAC3BwC,QAAQ,CAACG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC3C,oBAAoB,CAAC;QACpE,IAAI,CAACA,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACC,SAAU,GAAE,KAAK;QAEtB,IAAI,IAAI,CAACE,mBAAmB,EAAE;AAC1BmC,UAAAA,YAAY,CAAC,IAAI,CAACnC,mBAAmB,CAAC;UACtC,IAAI,CAACA,mBAAkB,GAAI,IAAI;AACnC;AACJ;KACH;IACDyC,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,CAACxC,SAAU,GAAE,KAAK;MACtB,IAAI,CAACsC,0BAA0B,EAAE;MACjCrB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;KACnC;AACD2C,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAAChL,KAAK,EAAE;AAAA,MAAA,IAAAiL,MAAA,GAAA,IAAA;MACX,IAAI,IAAI,CAAClP,QAAO,KAAM,MAAK,IAAK,IAAI,CAACmO,UAAU,EAAE,EAAE;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC3B,SAAS,EAAE;UACjB,IAAI,CAACA,SAAQ,GAAI,IAAI;UACrB,IAAI,CAAC8B,wBAAwB,EAAE;AAC/B,UAAA,IAAI,CAACpK,KAAK,CAAC,gBAAgB,EAAE;AAAEC,YAAAA,aAAa,EAAEF,KAAK;YAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;YAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;YAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,WAAC,CAAC;AAEnH,UAAA,IAAI,CAACS,oBAAmB,GAAI,UAAClG,CAAC,EAAK;AAC/B8I,YAAAA,MAAI,CAAC7C,SAAU,GAAE6C,MAAI,CAAC5B,GAAI,IAAG4B,MAAI,CAAC5B,GAAG,CAACkB,QAAQ,CAACpI,CAAC,CAACqI,MAAM,CAAC;WAC3D;UAEDhB,eAAe,CAAC0B,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC7C,oBAAoB,CAAC;AAClE;AACJ;KACH;AACDqC,IAAAA,YAAY,WAAZA,YAAYA,CAAC1K,KAAK,EAAEzH,IAAI,EAAE;AACtB,MAAA,IAAM4S,gBAAgB;AAClBjL,QAAAA,aAAa,EAAEF,KAAK;QACpBG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAClB0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAC5B/S,KAAK,EAAE,IAAI,CAACoP,OAAO,CAAC,IAAI,CAACkB,KAAK,CAAC;QAC/BF,QAAQ,EAAE,IAAI,CAAC2C,cAAc,CAAC,IAAI,CAACzC,KAAK,CAAC;QACzCA,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBhK,KAAK,EAAE,IAAI,CAACgJ,QAAQ;AACpBrP,QAAAA,IAAI,EAAEA,IAAI;AACV+S,QAAAA,gBAAgB,EAAE,KAAK;AACvBC,QAAAA,cAAc,EAAE,SAAhBA,cAAcA,GAAc;UACxB,IAAI,CAACD,mBAAmB,IAAI;AAChC;OACH;AAED,MAAA,IAAI,CAACrL,KAAK,CAAC,oBAAoB,EAAEkL,aAAa,CAAC;AAE/C,MAAA,IAAI,CAACA,aAAa,CAACG,gBAAgB,EAAE;QACjC,IAAI,CAACP,oBAAoB,EAAE;AAC/B;KACH;AACDS,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACxL,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAACjE,QAAO,KAAM,MAAM,EAAE;QAC1B,QAAQiE,KAAK,CAACyL,IAAI;AACd,UAAA,KAAK,OAAO;AACZ,UAAA,KAAK,aAAa;AACd,YAAA,IAAI,CAACf,YAAY,CAAC1K,KAAK,EAAE,OAAO,CAAC;AACjC,YAAA;AAEJ,UAAA,KAAK,QAAQ;YACT,IAAI,CAAC+K,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC9K,KAAK,CAAC,kBAAkB,EAAE;AAAEC,cAAAA,aAAa,EAAEF,KAAK;cAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;cAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;cAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,aAAC,CAAC;AACrH,YAAA;AAEJ,UAAA,KAAK,KAAK;AACN,YAAA,IAAI,CAAC8C,YAAY,CAAC1K,KAAK,EAAE,KAAK,CAAC;AAE/B,YAAA,IAAIA,KAAK,CAAC0L,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAAC3L,KAAK,CAAC,CAAA,KAC7C,IAAI,CAAC4L,cAAc,CAAC5L,KAAK,CAAC;AAC/B,YAAA;AAIR;AACJ;KACH;AACK2L,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC3L,KAAK,EAAE;AAAA,MAAA,IAAA6L,MAAA,GAAA,IAAA;AAAA,MAAA,OAAAvE,iBAAA,cAAAtF,mBAAA,EAAAkE,CAAAA,IAAA,UAAA4F,OAAA,GAAA;QAAA,IAAAC,WAAA,EAAAC,UAAA;AAAA,QAAA,OAAAhK,mBAAA,EAAA,CAAAqC,IAAA,CAAA,SAAA4H,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAtF,IAAA,GAAAsF,QAAA,CAAA3G,IAAA;AAAA,YAAA,KAAA,CAAA;cACxBwG,WAAY,GAAEF,MAAI,CAACM,QAAQ,CAACnM,KAAK,CAACwK,MAAM,CAAC;AACzCwB,cAAAA,UAAW,GAAEH,MAAI,CAACO,0BAA0B,CAACL,WAAW,CAAC;AAAA,cAAA,IAAA,CAEzDC,UAAU,EAAA;AAAAE,gBAAAA,QAAA,CAAA3G,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAAA2G,cAAAA,QAAA,CAAA3G,IAAA,GAAA,CAAA;AAAA,cAAA,OACJsG,MAAI,CAACQ,SAAS,EAAE;AAAA,YAAA,KAAA,CAAA;AACtBC,cAAAA,mBAAmB,CAACN,UAAU,EAAE,OAAO,CAAC;cACxChM,KAAK,CAACuL,cAAc,EAAE;AAAA,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAW,QAAA,CAAAnF,IAAA,EAAA;AAAA;AAAA,SAAA,EAAA+E,OAAA,CAAA;AAAA,OAAA,CAAA,CAAA,EAAA;KAE7B;AACKF,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC5L,KAAK,EAAE;AAAA,MAAA,IAAAuM,MAAA,GAAA,IAAA;AAAA,MAAA,OAAAjF,iBAAA,cAAAtF,mBAAA,EAAAkE,CAAAA,IAAA,UAAAsG,QAAA,GAAA;QAAA,IAAAT,WAAA,EAAAC,UAAA;AAAA,QAAA,OAAAhK,mBAAA,EAAA,CAAAqC,IAAA,CAAA,SAAAoI,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9F,IAAA,GAAA8F,SAAA,CAAAnH,IAAA;AAAA,YAAA,KAAA,CAAA;cACpBwG,WAAY,GAAEQ,MAAI,CAACJ,QAAQ,CAACnM,KAAK,CAACwK,MAAM,CAAC;AACzCwB,cAAAA,UAAS,GAAIO,MAAI,CAACI,sBAAsB,CAACZ,WAAW,CAAC;AAAA,cAAA,IAAA,CAErDC,UAAU,EAAA;AAAAU,gBAAAA,SAAA,CAAAnH,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAAAmH,cAAAA,SAAA,CAAAnH,IAAA,GAAA,CAAA;AAAA,cAAA,OACJgH,MAAI,CAACF,SAAS,EAAE;AAAA,YAAA,KAAA,CAAA;AACtBC,cAAAA,mBAAmB,CAACN,UAAU,EAAE,OAAO,CAAC;cACxChM,KAAK,CAACuL,cAAc,EAAE;AAAA,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAmB,SAAA,CAAA3F,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAyF,QAAA,CAAA;AAAA,OAAA,CAAA,CAAA,EAAA;KAE7B;AACDL,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACS,OAAO,EAAE;AACd,MAAA,IAAIA,OAAO,EAAE;QACT,IAAIC,IAAG,GAAID,OAAO;QAElB,OAAOC,IAAK,IAAG,CAACC,YAAY,CAACD,IAAI,EAAE,qBAAqB,CAAC,EAAE;UACvDA,IAAK,GAAEA,IAAI,CAACE,aAAa;AAC7B;AAEA,QAAA,OAAOF,IAAI;AACf,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDT,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAACS,IAAI,EAAE;AAC7B,MAAA,IAAIG,QAAO,GAAIH,IAAI,CAACI,sBAAsB;MAE1C,IAAI,CAACD,QAAQ,EAAE;AACX,QAAA,IAAIE,cAAcL,IAAI,CAACE,aAAa,CAACE,sBAAsB;AAE3D,QAAA,IAAIC,WAAW,EAAE;UACbF,QAAO,GAAIE,WAAW,CAACC,gBAAgB;AAC3C;AACJ;AAEA,MAAA,IAAIH,QAAQ,EAAE;AACV,QAAA,IAAIF,YAAY,CAACE,QAAQ,EAAE,wBAAwB,CAAC,EAAE,OAAOA,QAAQ,CAAA,KAChE,OAAO,IAAI,CAACZ,0BAA0B,CAACY,QAAQ,CAAC;AACzD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDL,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACE,IAAI,EAAE;AACzB,MAAA,IAAIO,QAAS,GAAEP,IAAI,CAACQ,kBAAkB;MAEtC,IAAI,CAACD,QAAQ,EAAE;AACX,QAAA,IAAIE,OAAQ,GAAET,IAAI,CAACE,aAAa,CAACM,kBAAkB;AAEnD,QAAA,IAAIC,OAAO,EAAE;UACTF,QAAO,GAAIE,OAAO,CAACC,iBAAiB;AACxC;AACJ;AAEA,MAAA,IAAIH,QAAQ,EAAE;AACV,QAAA,IAAIN,YAAY,CAACM,QAAQ,EAAE,wBAAwB,CAAC,EAAE,OAAOA,QAAQ,CAAA,KAChE,OAAO,IAAI,CAACT,sBAAsB,CAACS,QAAQ,CAAC;AACrD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDI,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACxN,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACnJ;AACD6F,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACzN,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACnJ;AACD8F,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC1N,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACrJ;AACD+F,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC3N,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACnJ;AACDgG,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC5N,KAAK,EAAE;AACtB,MAAA,IAAI,IAAI,CAACjE,QAAS,KAAI,KAAK,EAAE;AACzB,QAAA,IAAI,CAACkE,KAAK,CAAC,eAAe,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;UAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;UAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,SAAC,CAAC;AACpJ,OAAE,MAAK;AACH,QAAA,IAAI,CAAC8C,YAAY,CAAC1K,KAAK,EAAE,OAAO,CAAC;AACrC;KACH;AACD6N,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAAC7N,KAAK,EAAE;AACxB,MAAA,IAAI,IAAI,CAACjE,QAAS,KAAI,KAAK,EAAE;AACzB,QAAA,IAAI,CAACkE,KAAK,CAAC,iBAAiB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;UAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;UAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,SAAC,CAAC;AACtJ,OAAE,MAAK;QACH,IAAI,CAACmD,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC9K,KAAK,CAAC,kBAAkB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;UAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEhK,KAAK,EAAE,IAAI,CAACgJ;AAAS,SAAC,CAAC;AACzH;KACH;IACDmB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIgF,KAAM,GAAE,IAAI,CAAChF,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAIgF,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIxI,IAAK,GAAEyI,qBAAqB,CAAC,IAAI,CAAC3E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAI9D,IAAI,EAAE;AACNwI,YAAAA,GAAE,GAAIE,aAAa,CAAC1I,IAAI,IAAI2I,UAAU,CAAC3I,IAAI,CAACrH,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC2F,cAAe,GAAEJ,GAAE,GAAI,IAAI;AAChD,SAAE,MAAK;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAInH,IAAK,GAAEwH,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAIzC,IAAI,EAAE;AACNmH,YAAAA,IAAE,GAAIE,aAAa,CAACrH,IAAI,CAAA,GAAIsH,UAAU,CAACtH,IAAI,CAAC1I,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC6F,gBAAiB,GAAEN,IAAE,GAAI,IAAI;AAClD;AACJ;KACH;AACDO,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACC,MAAM,EAAE;MAC3B,OAAO,IAAI,CAACtG,2BAA4B,GAAE,IAAI,CAACA,2BAA2B,CAACsG,MAAM,CAAA,GAAI,IAAI;AAC7F;GACH;AACDnO,EAAAA,QAAQ,EAAE;IACNiL,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,IAAI,CAACrD,WAAW,CAAC,IAAI,CAACJ,QAAQ,CAAA,GAAI,IAAI,CAACI,WAAW,CAAC,IAAI,CAACJ,QAAQ,CAAC,CAACzH,OAAO,IAAI,CAACuH,OAAO;KAC/F;IACDkB,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAO,IAAI,CAACE,UAAU,CAAC,OAAO,CAAC;KAClC;IACD0F,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAC1F,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC2F,EAAE,CAAC,UAAU,CAAC,CAAC;KACvF;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,YAAY,IAAI,CAAC7F,UAAU,CAAC,WAAW,CAAC;AAC5C,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAE,GAAE,CAAC8F,WAAW,EAAED,SAAS,EAAE,IAAI,CAACnG,WAAW,CAAA,GAAI,CAACoG,WAAW,EAAED,SAAS,CAAC;KAC3G;IACDjV,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,MAAA,OAAO,IAAI,CAAC4U,sBAAsB,CAAC,SAAS,CAAC;KAChD;IACDO,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAMC,gBAAiB,GAAE,IAAI,CAACR,sBAAsB,CAAC,kBAAkB,CAAC;AAExE,MAAA,OACIQ,oBACAA,gBAAgB,CAAC,IAAI,CAAClH,QAAQ,EAAE;QAC5BmH,SAAS,EAAE,IAAI,CAACnQ,KAAK;AACrBoQ,QAAAA,SAAS,EAAE,IAAI,CAACpQ,KAAM,KAAI,CAAC;AAC3BqQ,QAAAA,QAAQ,EAAE,IAAI,CAACrQ,KAAM,KAAI,IAAI,CAAC0P,sBAAsB,CAAC,SAAS,CAAC,CAACxI,MAAK,GAAI,CAAC;AAC1EoJ,QAAAA,QAAQ,EAAE,IAAI,CAACtQ,KAAI,GAAI,CAAE,KAAI,CAAC;AAC9BuQ,QAAAA,OAAO,EAAE,IAAI,CAACvQ,KAAI,GAAI,CAAE,KAAI,CAAC;QAC7BF,MAAM,EAAE,IAAI,CAACA,MAAM;QACnBkK,KAAK,EAAE,IAAI,CAACA;AAChB,OAAC,CAAA;KAER;IACDwG,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAAC9O,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAK,IAAI,CAACoH,aAAY,GAAI,IAAI,CAACvH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC4O,YAAY,IAAI,CAAC/O,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC6O,WAAW,GAAI1V,SAAS;KAC5K;IACD2V,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAACjP,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAI,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC+O,UAAU5V,SAAS;KACnG;IACD6V,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAACnP,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAK,GAAE,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACiP,WAAW9V,SAAS;KACpG;IACD+V,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,OAAO,IAAI,CAACrP,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACmP,aAAahW,SAAS;AACvG;GACH;AACDgH,EAAAA,UAAU,EAAE;AACRiP,IAAAA,aAAa,EAAEC,QAAc;AAC7BC,IAAAA,UAAU,EAAEC,QAAW;AACvBC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,UAAU,EAAVA,UAAU;AACVxP,IAAAA,SAAS,EAATA,SAAS;AACTyP,IAAAA,SAAQ,EAARA;GACH;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC;AACZ;AACJ,CAAC;;;;;;;;;;;;;;;;;;SChlBarP,QAAO,CAAA1H,OAAA,IAAjB+H,SAAA,EAAA,EAAAiP,kBAAA,CAEI,MAFJ7O,UAEI,CAAA;;IAFgB3D,KAAK,EAAEkD,QAAc,CAAAsN,cAAA;IAAG,OAAOtN,EAAAA,QAAc,CAAAoN,cAAA;AAAEmC,IAAAA,IAAI,EAAC;AAAoB,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAxP,QAAA,CAAAtC,WAAW,SAAasC,EAAAA,QAAW,CAAAtC,WAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,EAC3H2C,SAAA,EAAA,EAAAV,WAAA,CAAoKW,uBAApJ,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACzQ,OAAO,CAAA,EAAA;IAAGyG,IAAI,EAAEhB,MAAO,CAAAuI,OAAA;IAAGhJ,MAAM,EAAES,MAAM,CAAAT,MAAA;IAAGkK,KAAK,EAAExH,QAAK,CAAAwH,KAAA;IAAGhK,KAAK,EAAEO,MAAQ,CAAAyI,QAAA;IAAGD,SAAS,EAAExI,MAAS,CAAAwI,SAAA;IAAGkH,cAAc,EAAEzN,QAAc,CAAAyN;8FAErKpN,SAAA,EAAA,EAAAiP,kBAAA,CA+HI,MA/HJ7O,UA+HI,CAAA;;IA7HC3D,KAAK,EAAEkD,QAAc,CAAAsN,cAAA;IACrB,OAAOtN,EAAAA,QAAc,CAAAoN,cAAA;AACrBqC,IAAAA,OAAO,EAAEzP,QAAU,CAAA0H,UAAA,CAAA,SAAA,CAAA;AACnBgI,IAAAA,OAAO,EAAE1P,QAAU,CAAA0H,UAAA,CAAA,SAAA,CAAA;IACnBkC,OAAK;aAAE5J,QAAO,CAAA4J,OAAA,IAAA5J,QAAA,CAAA4J,OAAA,CAAApN,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACdwJ,SAAO;aAAE3P,QAAS,CAAAoK,SAAA,IAAApK,QAAA,CAAAoK,SAAA,CAAA5N,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;AACnBoJ,IAAAA,IAAI,EAAC;AACQ,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAAxP,EAAAA,EAAAA,QAAA,CAAAtC,WAAW,WAAasC,QAAW,CAAAtC,WAAA,CAAA,UAAA,CAAA,CAAA,EAAA;IAC/C,yBAAuB,EAAEsC,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA,IAAA,IAAA;AACnC,IAAA,wBAAsB,EAAE1H,QAAU,CAAA8I,UAAA,EAAA;IAClC,qBAAmB,EAAE7K,KAAS,CAAAkJ,SAAA;AAC9B,IAAA,sBAAoB,EAAEnH,QAAU,CAAA0H,UAAA,CAAA,QAAA;OAGvB3J,MAAM,CAAAT,MAAA,CAACyL,YAAYhL,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAAC6G,IAAK,IAAA,CAAI3R,KAAS,CAAAkJ,SAAA,IAD/D9G,SAAA,EAAA,EAAAV,WAAA,CAUCW,uBARQ,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAAC6G,IAAI,CAAA,EAAA;;IACxB7Q,IAAI,EAAEhB,MAAO,CAAAuI,OAAA;IACbhJ,MAAM,EAAES,MAAM,CAAAT,MAAA;IACdkK,KAAK,EAAExH,QAAK,CAAAwH,KAAA;IACZhK,KAAK,EAAEO,MAAQ,CAAAyI,QAAA;IACfD,SAAS,EAAExI,MAAS,CAAAwI,SAAA;IACpBgG,kBAAkB,EAAEvM,QAAkB,CAAAuM,kBAAA;IACtCsD,kBAAkB,EAAE7P,QAAS,CAAA2I;gHAGnB5K,MAAM,CAAAT,MAAA,CAACyL,QAAO,IAAKhL,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACC,MAAK,IAAK/K,KAAS,CAAAkJ,SAAA,IADrE9G,SAAA,EAAA,EAAAV,WAAA,CAUCW,uBARQ,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACC,MAAM,CAAA,EAAA;;IAC1BjK,IAAI,EAAEiB,QAAc,CAAAiK,cAAA;IACpB3M,MAAM,EAAES,MAAM,CAAAT,MAAA;IACdkK,KAAK,EAAExH,QAAK,CAAAwH,KAAA;IACZhK,KAAK,EAAEO,MAAQ,CAAAyI,QAAA;IACfD,SAAS,EAAExI,MAAS,CAAAwI,SAAA;IACpBiG,kBAAkB,EAAExM,QAAkB,CAAAwM,kBAAA;IACtCC,oBAAoB,EAAEzM,QAAoB,CAAAyM;kHAEzB1O,MAAA,CAAAT,MAAM,CAACyL,QAAO,IAAKhL,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAAC6G,IAAG,IAAA,CAAM7R,aAAM,CAACgL,QAAQ,CAACC,UAAU/K,KAAS,CAAAkJ,SAAA,IAArG9G,SAAA,EAAA,EAAAV,WAAA,CAAmOW,uBAAvH,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAAC6G,IAAI,CAAA,EAAA;;IAAG7Q,IAAI,EAAEiB,QAAc,CAAAiK,cAAA;IAAG3M,MAAM,EAAES,MAAM,CAAAT,MAAA;IAAGkK,KAAK,EAAExH,QAAK,CAAAwH,KAAA;IAAGhK,KAAK,EAAEO,MAAQ,CAAAyI,QAAA;IAAGD,SAAS,EAAExI,MAAS,CAAAwI;oEAC3MvG,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA,iBAA/B4H,kBAcU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAbeqC,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA,KAAA,QAAA,iBAA/B/H,WAA+N,CAAAoQ,wBAAA,EAAA;;IAA/J7Y,KAAK,EAAE6G,MAAO,CAAAuI,OAAA;IAAGvP,IAAI,EAAEgH,MAAI,CAAAhH,IAAA;IAAGsG,OAAO,EAAEU,MAAQ,CAAA2I,QAAA;AAAG/H,IAAAA,QAAM,EAAEqR,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;MAAA,OAAAjQ,QAAA,CAAA4I,kBAAkB,CAACqH,MAAM,EAAElS,MAAQ,CAAAyI,QAAA,CAAA;AAAA,KAAA,CAAA;IAAIlJ,MAAM,EAAES,MAAM,CAAAT,MAAA;IAAGE,KAAK,EAAEO,MAAK,CAAAP,KAAA;IAAGyC,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAAGvB,EAAE,EAAEqB,IAAE,CAAArB;oFAE7MsB,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA,KAAA,UAAA,iBADzB/H,WAWC,CAAAuQ,qBAAA,EAAA;;IATIhZ,KAAK,EAAE6G,MAAO,CAAAuI,OAAA;IACdjJ,OAAO,EAAEU,MAAQ,CAAA2I,QAAA;AACjBnJ,IAAAA,uBAAuB,EAAEQ,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACoH,eAAe;AAC3E,IAAA,eAAa,EAAEpS,MAAO,CAAA2I,QAAA,GAAA,IAAA,GAAWlO,SAAS;AAC1CmG,IAAAA,QAAM,EAAEqR,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;MAAA,OAAAjQ,QAAA,CAAA6I,qBAAqB,CAACoH,MAAM,EAAElS,MAAQ,CAAAyI,QAAA,CAAA;AAAA,KAAA,CAAA;IAC9ClJ,MAAM,EAAES,MAAM,CAAAT,MAAA;IACdE,KAAK,EAAEO,MAAK,CAAAP,KAAA;IACZyC,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClBvB,EAAE,EAAEqB,IAAE,CAAArB;8JAGMsB,QAAU,CAAA0H,UAAA,CAAA,YAAA,CAAA,iBAA/B4H,kBAIU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAHWI,MAAA,CAAAT,MAAM,CAACyL,YAAYhL,aAAM,CAACgL,QAAQ,CAACqH,cAAc,IAAlE/P,SAAA,EAAA,EAAAV,WAAA,CAA8IW,uBAArE,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACqH,cAAc,CAAA,EAAA;;AAAG,IAAA,OAAA,iBAAOrQ,IAAE,CAAAsN,EAAA,CAAA,sBAAA,CAAA;4BACrGrN,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA,IAAxBrH,SAAA,EAAA,EAAAiP,kBAAA,CAA8J,KAA9J7O,UAA8J,CAAA;;AAAjH,IAAA,OAAA,EAAK,CAAGV,IAAE,CAAAsN,EAAA,CAAA,sBAAA,CAAA,EAA0BrN,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA;KAA6B1H,QAAW,CAAAtC,WAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KACnI2C,SAAA,EAAA,EAAAV,WAAA,CAAmG0Q,qBAAnG5P,UAAmG,CAAA;;AAAjF,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,sBAAA;KAAkCrN,QAAW,CAAAtC,WAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,UAEvDsC,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA,GAC3B4I,cAAA,EAAAjQ,SAAA,EAAA,EAAAiP,kBAAA,CAqBQ,UArBR7O,UAqBQ,CAAA;;AAnBH,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,iBAAA,CAAA;AACVlW,IAAAA,IAAI,EAAC,QAAO;IACX,eAAa,EAAE4G,MAAa,CAAA0I,aAAA;IAC5B,eAAa,EAAE1I,MAAY,CAAA+I,YAAA;IAC3B,YAAU,EAAE9G,QAAqB,CAAAgO,qBAAA;IACjCpE,OAAK;aAAE5J,QAAS,CAAA2I,SAAA,IAAA3I,QAAA,CAAA2I,SAAA,CAAAnM,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;AACjB,IAAA,iBAAe,EAAC;KACRnG,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA,EAAA;AACnB,IAAA,uBAAqB,EAAC;AAAgB,GAAA,CAAA,EAAA,CAErBK,MAAA,CAAAT,MAAM,CAACyL,YAAYhL,aAAM,CAACgL,QAAQ,CAACwH,aAAa,IAAjElQ,SAAA,EAAA,EAAAV,WAAA,CAAkKW,uBAA1F,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACwH,aAAa,CAAA,EAAA;;IAAG,wBAAOxQ,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,CAAA;IAAoBmD,WAAW,EAAEzS,MAAa,CAAA0I;2CAEzI1I,MAAA,CAAAT,MAAM,CAACyL,QAAS,IAAGhL,aAAM,CAACgL,QAAQ,CAAC0H,cAAc,IAAvEpQ,SAAA,EAAA,EAAAV,WAAA,CAAyKW,uBAA3F,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAAC0H,cAAc,CAAA,EAAA;;IAAG,wBAAO1Q,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,CAAA;IAAoBmD,WAAW,EAAEzS,MAAa,CAAA0I;yDACtK6I,kBAKU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAJMI,MAAA,CAAA0I,iBAAiB1I,MAAe,CAAA5D,eAAA,iBAA5CmV,kBAA+F,CAAA,MAAA,EAAA;;AAAhD,IAAA,OAAA,EAAK/O,cAAA,CAAA,CAAGR,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,EAAmBtP,MAAe,CAAA5D,eAAA,CAAA;iBAC/D4D,MAAA,CAAA0I,aAAY,KAAM1I,MAAe,CAAA5D,eAAA,IAA7DkG,SAAA,EAAA,EAAAV,WAAA,CAAmI+Q,4BAAnIjQ,UAAmI,CAAA;;AAAnE,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,eAAA;KAA2BrN,QAAW,CAAAtC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAC7F,CAAAK,MAAA,CAAA0I,iBAAiB1I,MAAgB,CAAA3D,gBAAA,iBAAnDkV,kBAAuG,CAAA,MAAA,EAAA;;AAAjD,IAAA,OAAA,EAAK/O,cAAA,CAAA,CAAGR,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,EAAmBtP,MAAgB,CAAA3D,gBAAA,CAAA;iBACrE,CAAA2D,MAAA,CAAA0I,aAAc,KAAI1I,MAAgB,CAAA3D,gBAAA,IAAhEiG,SAAA,EAAA,EAAAV,WAAA,CAAsIgR,6BAAtIlQ,UAAsI,CAAA;;AAAnE,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,eAAA;KAA2BrN,QAAW,CAAAtC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,uFAIzGK,MAAA,CAAApD,QAAS,cAAaqF,QAAU,CAAA0H,UAAA,CAAA,WAAA,CAAA,iBAArD4H,kBA2CU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,EAzCKM,KAAS,CAAAkJ,SAAA,IADpB9G,SAAA,EAAA,EAAAV,WAAA,CAaQiR,mBAbRnQ,UAaQ,CAAA;;AAXH,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,iBAAA,CAAA;IACT,YAAU,EAAErN,QAAmB,CAAAmO,mBAAA;IAC/BlO,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClB2J,OAAK,EAAE5J,QAAa,CAAAoM;AACb,GAAA,EAAArO,MAAA,CAAArB,eAAe,CAACC,IAAI,EAAA;AAC3B+B,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAkKC,SAD5I,EAAA;MAAA,OAAA,eACtBT,WAAkK,CAAAW,uBAAA,CAAjJvC,MAAM,CAAAT,MAAA,CAACyL,YAAYhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC8H,iBAAiB,IAAA,YAAA,CAAA,EAArEpQ,UAAkK,CAAA;AAAzE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;gGAIlIO,KAAS,CAAAkJ,SAAA,IADnB9G,SAAA,EAAA,EAAAV,WAAA,CAaQiR,mBAbRnQ,UAaQ,CAAA;;AAXH,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,iBAAA,CAAA;IACT,YAAU,EAAErN,QAAmB,CAAAqO,mBAAA;IAC/BpO,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClB2J,OAAK,EAAE5J,QAAa,CAAAqM;AACb,GAAA,EAAAtO,MAAA,CAAArB,eAAe,CAACE,IAAI,EAAA;AAC3B8B,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAiKC,SAD3I,EAAA;MAAA,OAAA,eACtBT,WAAiK,CAAAW,uBAAA,CAAhJvC,MAAM,CAAAT,MAAA,CAACyL,QAAS,IAAGhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC+H,iBAAiB,IAAA,WAAA,CAAA,EAArErQ,UAAiK,CAAA;AAAzE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;gGAIjIO,KAAS,CAAAkJ,SAAA,IADnB9G,SAAA,EAAA,EAAAV,WAAA,CAaQiR,mBAbRnQ,UAaQ,CAAA;;AAXH,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,mBAAA,CAAA;IACT,YAAU,EAAErN,QAAqB,CAAAuO,qBAAA;IACjCtO,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClB2J,OAAK,EAAE5J,QAAe,CAAAsM;AACf,GAAA,EAAAvO,MAAA,CAAArB,eAAe,CAACG,MAAM,EAAA;AAC7B6B,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,mBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAqKC,SAD/I,EAAA;MAAA,OAAA,eACtBT,WAAqK,CAAAW,uBAAA,CAApJvC,MAAM,CAAAT,MAAA,CAACyL,YAAYhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACgI,mBAAmB,IAAA,WAAA,CAAA,EAAvEtQ,UAAqK,CAAA;AAA3E,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,mBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;sHAIjJ4R,kBAAmD,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;GAAA,EAAA,iCAA/BqC,QAAgB,CAAA0I,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;AC3B5C,eAAe;AACX3R,EAAAA,IAAI,EAAE,SAAS;AACfoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CACH,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,qBAAoB,CACvB;AACDnG,EAAAA,KAAK,EAAE;AACHqP,IAAAA,OAAO,EAAE;AACLnP,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDP,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD4Z,IAAAA,OAAO,EAAE;AACL7Z,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDoP,IAAAA,SAAS,EAAE;AACPpP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoZ,IAAAA,KAAK,EAAE;AACH9Z,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDwC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDM,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDJ,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACD4C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4C,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDiZ,IAAAA,aAAa,EAAE;AACX/Z,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDkC,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDkC,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4C,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD2D,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDga,IAAAA,mBAAmB,EAAE;AACjBha,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDwD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDga,IAAAA,cAAc,EAAE;AACZja,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDyP,IAAAA,WAAW,EAAE;AACTzP,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoZ,IAAAA,SAAS,EAAE;AACPla,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD4D,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD6E,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4O,IAAAA,2BAA2B,EAAE;AACzB1P,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqZ,IAAAA,yBAAyB,EAAE;AACvBna,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD0Z,IAAAA,aAAa,EAAE;AACXpa,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDka,IAAAA,qBAAqB,EAAE;AACnBra,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;AACb;GACH;EACDyH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH0S,MAAAA,aAAa,EAAE;KAClB;GACJ;AACDpK,EAAAA,KAAK,EAAE;AACHnN,IAAAA,YAAY,EAAE;AACVwX,MAAAA,IAAI,EAAE,IAAI;AACVC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACtK,QAAQ,EAAE;AAAA,QAAA,IAAAO,KAAA,GAAA,IAAA;AACd,QAAA,IAAI,CAAC4J,aAAc,GAAE,IAAI,CAACpa,OAAM,GAAI,CAAAiQ,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,MAAAA,GAAAA,MAAAA,GAAAA,QAAQ,CAAGoB,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAC,CAAA,MAAMmB,YAAY8O,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,MAAAA,GAAAA,MAAAA,GAAAA,QAAQ,CAAEuK,IAAI,CAAC,UAACrP,CAAC,EAAA;UAAA,OAAKqF,KAAI,CAACiK,MAAM,CAACjK,KAAI,CAACvB,OAAO,EAAE9D,CAAC,CAAC;SAAC,CAAA;AACpK;AACJ;GACH;AACD/E,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACD;AACA5K,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnBC,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;AAChB;OACH;MAED,OAAOI,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;AAAe,OAAC,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACkJ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE/J,GAAG,EAAEC,cAAc,CAAC,CAAC;KACjL;AACD;AACAoU,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACrU,GAAG,EAAE;AAAA,MAAA,IAAA6K,qBAAA;AACrB,MAAA,IAAMyJ,SAAU,GAAA,CAAAzJ,qBAAA,GAAE,IAAI,CAACtL,eAAe,MAAA,IAAA,IAAAsL,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsBtL,eAAe;AAEvD,MAAA,OAAO,IAAI,CAACoB,GAAG,CAACX,GAAG,EAAE;AACjBO,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACgJ,QAAQ;AACpB0L,UAAAA,UAAU,EAAE,CAAAD,SAAS,KAATA,IAAAA,IAAAA,SAAS,uBAATA,SAAS,CAAEtY,QAAS,MAAGsY,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,MAAAA,GAAAA,MAAAA,GAAAA,SAAS,CAAE5Y,aAAa,CAAA;UAC3DqN,QAAQ,EAAE,IAAI,CAACyL,UAAU;UACzB7W,WAAW,EAAE,CAAA2W,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,MAAAA,GAAAA,MAAAA,GAAAA,SAAS,CAAE3W,WAAY,KAAG;AAC3C;AACJ,OAAC,CAAC;KACL;AACD8W,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAAC9U,MAAM,EAAE;MACzB,IAAM+U,QAAS,GAAE,IAAI,CAAC3K,UAAU,CAACpK,MAAM,EAAE,QAAQ,CAAC;AAElD,MAAA,IAAI,IAAI,CAACjD,YAAW,IAAK,CAACgY,QAAQ,EAAE;QAChC,IAAM7K,KAAI,GAAI,IAAI,CAACE,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC;AAE9C,QAAA,IAAI,IAAI,CAACjD,YAAa,KAAI,WAAW,EAAE;AACnC,UAAA,OAAO,IAAI,CAACC,WAAY,KAAIkN,KAAK;AACrC,SAAA,MAAO,IAAI,IAAI,CAACnN,YAAa,KAAI,SAAS,EAAE;AACxC,UAAA,IAAI,IAAI,CAACiY,SAAS,CAAChV,MAAM,CAAC,EAAE;YACxB,IAAIiV,WAAY,GAAE,IAAI,CAACrb,KAAK,CAAC,IAAI,CAACsP,QAAS,GAAE,CAAC,CAAC;AAE/C,YAAA,IAAI+L,WAAW,EAAE;AACb,cAAA,IAAMC,mBAAkB,GAAI9J,gBAAgB,CAAC,IAAI,CAACxR,KAAK,CAAC,IAAI,CAACsP,QAAQ,CAAC,EAAEgB,KAAK,CAAC;AAC9E,cAAA,IAAMiL,oBAAqB,GAAE/J,gBAAgB,CAAC6J,WAAW,EAAE/K,KAAK,CAAC;cAEjE,OAAOgL,wBAAwBC,oBAAoB;AACvD,aAAE,MAAK;AACH,cAAA,OAAO,IAAI;AACf;AACJ,WAAE,MAAK;AACH,YAAA,OAAO,IAAI;AACf;AACJ;AACJ,OAAE,MAAK;AACH,QAAA,OAAO,CAACJ,QAAQ;AACpB;KACH;AACDK,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAACpV,MAAM,EAAE;AAC1B,MAAA,IAAI,IAAI,CAACgV,SAAS,CAAChV,MAAM,CAAC,EAAE;AACxB,QAAA,IAAIE,KAAI,GAAI,IAAI,CAACgJ,QAAQ;QACzB,IAAMgB,KAAI,GAAI,IAAI,CAACE,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC;AAC9C,QAAA,IAAMkV,mBAAkB,GAAI9J,gBAAgB,CAAC,IAAI,CAACxR,KAAK,CAACsG,KAAK,CAAC,EAAEgK,KAAK,CAAC;QACtE,IAAImL,gBAAe,GAAIH,mBAAmB;QAC1C,IAAII,YAAW,GAAI,CAAC;AAEpB,QAAA,IAAI,IAAI,CAACnB,aAAa,EAAEmB,YAAY,EAAE;QAEtC,OAAOJ,mBAAkB,KAAMG,gBAAgB,EAAE;AAC7CC,UAAAA,YAAY,EAAE;UACd,IAAIC,WAAU,GAAI,IAAI,CAAC3b,KAAK,CAAC,EAAEsG,KAAK,CAAC;AAErC,UAAA,IAAIqV,WAAW,EAAE;AACbF,YAAAA,gBAAiB,GAAEjK,gBAAgB,CAACmK,WAAW,EAAErL,KAAK,CAAC;AAC3D,WAAE,MAAK;AACH,YAAA;AACJ;AACJ;AAEA,QAAA,OAAOoL,iBAAiB,CAAA,GAAI,IAAG,GAAIA,YAAY;AACnD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDN,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAChV,MAAM,EAAE;MACd,IAAMkK,KAAI,GAAI,IAAI,CAACE,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC;AAE9C,MAAA,IAAI,IAAI,CAAChD,WAAY,IAAGkN,KAAK,EAAE;AAC3B,QAAA,IAAIpQ,KAAK,CAAC0b,OAAO,CAAC,IAAI,CAACxY,WAAW,CAAC,EAAE,OAAO,IAAI,CAACA,WAAW,CAACyY,OAAO,CAACvL,KAAK,CAAE,GAAE,EAAE,CAAA,KAC3E,OAAO,IAAI,CAAClN,WAAU,KAAMkN,KAAK;AAC1C,OAAE,MAAK;AACH,QAAA,OAAO,KAAK;AAChB;KACH;AACDwL,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAACjU,IAAI,EAAE;MACvB,OAAO,IAAI,CAACkU,SAAS,CAAClU,IAAI,EAAE,IAAI,CAAC3F,SAAS,CAAC;KAC9C;AACD6Z,IAAAA,SAAS,WAATA,SAASA,CAAClU,IAAI,EAAEmU,UAAU,EAAE;MACxB,IAAI1V,KAAI,GAAI,EAAE;AAEd,MAAA,IAAI0V,UAAS,IAAKA,UAAU,CAACxO,MAAM,EAAE;AACjC,QAAA,KAAK,IAAIrD,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAI6R,UAAU,CAACxO,MAAM,EAAErD,CAAC,EAAE,EAAE;UACxC,IAAI,IAAI,CAACyQ,MAAM,CAAC/S,IAAI,EAAEmU,UAAU,CAAC7R,CAAC,CAAC,CAAC,EAAE;AAClC7D,YAAAA,KAAI,GAAI6D,CAAC;AACT,YAAA;AACJ;AACJ;AACJ;AAEA,MAAA,OAAO7D,KAAK;KACf;AACDsU,IAAAA,MAAM,WAANA,QAAMA,CAACqB,KAAK,EAAEC,KAAK,EAAE;AACjB,MAAA,OAAO,IAAI,CAAC9Z,kBAAiB,KAAM,QAAO,GAAI6Z,UAAUC,KAAI,GAAItB,MAAM,CAACqB,KAAK,EAAEC,KAAK,EAAE,IAAI,CAAC/b,OAAO,CAAC;KACrG;AACDgc,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACzU,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH;AAAQ,OAAC,CAAC;KAC9E;AACDgN,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC1U,KAAK,EAAE;AACd,MAAA,IAAI,CAACC,KAAK,CAAC,WAAW,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE9I,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KAC9F;AACD+M,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC3U,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE9I,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACjG;AACDgN,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC5U,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE9I,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KACnG;AACDiN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC7U,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAED,KAAK,CAAC;KACpC;AACD8U,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC9U,KAAK,EAAE;AAChB,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACuH,OAAO;QAAE9I,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KAChG;AACDmN,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC/U,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDgV,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAChV,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEpB,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KAC9E;AACDqN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACjV,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEpB,KAAK,EAAE,IAAI,CAACgJ;AAAS,OAAC,CAAC;KAC7E;AACDsN,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAClV,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDmV,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACnV,KAAK,EAAE;AAChB,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAED,KAAK,CAAC;KACnC;AACDoV,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACpV,KAAK,EAAE;AACb,MAAA,IAAI,CAACC,KAAK,CAAC,UAAU,EAAED,KAAK,CAAC;KAChC;AACDqV,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACrV,KAAK,EAAE;AACf,MAAA,IAAI,CAAC6S,aAAc,GAAE,CAAC,IAAI,CAACA,aAAa;MAExC,IAAI,CAAC5S,KAAK,CAAC,YAAY,EAAA2Q,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAO5Q,KAAK,CAAA,EAAA,EAAA,EAAA;QAAEsV,QAAQ,EAAE,IAAI,CAACzC;AAAY,OAAA,CAAG,CAAC;KACvE;AACD0C,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACvV,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAED,KAAK,CAAC;KACpC;AACDwV,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACxV,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACDyV,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACzV,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAED,KAAK,CAAC;KACtC;AACD0V,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC1V,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;AACD2V,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC3V,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAED,KAAK,CAAC;KACxC;AACDwN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACxN,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDyN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACzN,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACD0N,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC1N,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACD4V,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC5V,KAAK,EAAE;AACvB,MAAA,IAAI,CAACC,KAAK,CAAC,qBAAqB,EAAED,KAAK,CAAC;KAC3C;AACDsO,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACC,MAAM,EAAEsH,OAAO,EAAE;AACpCA,MAAAA,OAAQ,GAAEA,WAAW,IAAI,CAAC5N,2BAA2B;AAErD,MAAA,OAAO4N,OAAQ,GAAEA,OAAO,CAACtH,MAAM,CAAE,GAAE,IAAI;AAC3C;GACH;AACDnO,EAAAA,QAAQ,EAAE;IACNwH,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAMkO,cAAa,GAAI,IAAI,CAACxH,sBAAsB,CAAC,gBAAgB,CAAC;AAEpE,MAAA,OAAOwH,cAAe,GAAEA,cAAc,CAAC,IAAI,CAAClX,KAAK,CAAC,CAACA,KAAM,GAAE,IAAI,CAACA,KAAK;KACxE;IACDmX,SAAS,EAAA,SAATA,SAASA,GAAG;AAAA,MAAA,IAAAC,cAAA;AACR,MAAA,OAAA,CAAAA,cAAA,GAAO,IAAI,CAAC9Z,QAAQ,cAAA8Z,cAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,cAAA,CAAA5R,IAAA,CAAI,IAAA,EAAY,IAAI,CAACsD,OAAO,CAAC;KACvC;IACDuO,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,IAAIC,aAAc,GAAE,EAAE;MACtB,IAAIC,mBAAkB,GAAI,IAAI;MAE9B,IAAI,IAAI,CAACla,QAAQ,EAAE;QACf,IAAIma,aAAY,GAAI,IAAI,CAACna,QAAQ,CAAC,IAAI,CAACyL,OAAO,CAAC;AAE/C,QAAA,IAAI0O,aAAa,EAAE;AACfF,UAAAA,aAAa,CAACxQ,IAAI,CAAC0Q,aAAa,CAAC;AACrC;AACJ;MAEA,IAAI,IAAI,CAAChE,OAAO,EAAE;AAAA,QAAA,IAAAiE,SAAA,GAAAC,4BAAA,CACE,IAAI,CAAClE,OAAO,CAAA;UAAAmE,KAAA;AAAA,QAAA,IAAA;UAA5B,KAAAF,SAAA,CAAAnS,CAAA,EAAAqS,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAhU,CAAA,EAAAmB,EAAAA,IAAA,GAA8B;AAAA,YAAA,IAArB2P,GAAE,GAAAoD,KAAA,CAAAje,KAAA;YACP,IAAIke,cAAe,GAAE,IAAI,CAAC1N,UAAU,CAACqK,GAAG,EAAE,eAAe,CAAC;AAE1D,YAAA,IAAIsD,UAAU,CAACD,cAAc,CAAC,EAAE;AAC5BL,cAAAA,mBAAkB,GAAIK,cAAc;AACpC,cAAA;AACJ;AACJ;AAAA,SAAA,CAAA,OAAAE,GAAA,EAAA;UAAAL,SAAA,CAAAlU,CAAA,CAAAuU,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAL,UAAAA,SAAA,CAAAxS,CAAA,EAAA;AAAA;AACJ;AAEA,MAAA,OAAO,CAAC,IAAI,CAAC4K,EAAE,CAAC,KAAK,EAAE;QAAE/G,OAAO,EAAE,IAAI,CAACA,OAAO;QAAE9I,KAAK,EAAE,IAAI,CAACgJ,QAAQ;AAAEuO,QAAAA,mBAAoB,EAApBA;OAAqB,CAAC,EAAED,aAAa,CAAC;KAC/G;IACDS,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAI,IAAI,CAACnc,cAAc,IAAG,KAAM,IAAI,CAACC,aAAY,KAAM,QAAO,IAAK,IAAI,CAACA,aAAc,KAAI,UAAU,CAAC,EAAE;QACnG,OAAO,IAAI,CAACmN,QAAO,KAAM,CAAA,GAAI,CAAA,GAAI,EAAE;AACvC;AAEA,MAAA,OAAO,EAAE;KACZ;IACDgP,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAI,IAAI,CAAClP,WAAW,IAAI,CAAC1L,WAAW,EAAE;QAClC,IAAI,IAAI,CAACvD,OAAO,EAAE,OAAO,IAAI,CAAC+Z,cAAe,GAAE,IAAI,CAACA,cAAc,CAAC1I,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAC,CAAE,KAAImB,SAAU,GAAE,KAAK,CAAA,KACjI,OAAO,IAAI,CAACya,SAAS,CAAC,IAAI,CAAC3M,OAAO,EAAE,IAAI,CAAC1L,WAAW,CAAA,GAAI,EAAE;AACnE;AAEA,MAAA,OAAO,KAAK;KACf;IACD6a,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAI,IAAI,CAAClb,uBAAuB,IAAI,CAACC,iBAAiB,EAAE;QACpD,IAAMkb,eAAc,GAAIhN,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAChM,WAAW,CAAC;QAExE,OAAO,IAAI,CAACE,iBAAiB,CAACuY,OAAO,CAAC2C,eAAe,CAAA,GAAI,EAAE;AAC/D;AAEA,MAAA,OAAO,KAAK;KACf;IACDvD,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,IAAI,IAAI,CAAC7L,OAAQ,IAAG,IAAI,CAAClN,SAAS,EAAE;QAChC,IAAI,IAAI,CAAC/B,OAAO,EAAE;UACd,OAAO,IAAI,CAAC6Z,aAAY,GAAI,IAAI,CAACA,aAAa,CAACxI,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAC,CAAE,KAAImB,SAAQ,GAAI,KAAK;AACtH,SAAE,MAAK;AACH,UAAA,IAAI,IAAI,CAACY,qBAAqBhC,KAAK,EAAE,OAAO,IAAI,CAAC4b,oBAAoB,CAAC,IAAI,CAAC1M,OAAO,CAAE,GAAE,EAAE,CAAA,KACnF,OAAO,IAAI,CAACwL,MAAM,CAAC,IAAI,CAACxL,OAAO,EAAE,IAAI,CAAClN,SAAS,CAAC;AACzD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;IACDuc,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,IAAI,IAAI,CAACrP,OAAM,IAAK,IAAI,CAAC7M,oBAAoB,EAAE;AAC3C,QAAA,OAAO,IAAI,CAACqY,MAAM,CAAC,IAAI,CAACxL,OAAO,EAAE,IAAI,CAAC7M,oBAAoB,EAAE,IAAI,CAACpC,OAAO,CAAC;AAC7E;AAEA,MAAA,OAAO,KAAK;KACf;IACDue,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAMpD,sBAAsB9J,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAChM,WAAW,CAAC;MAC5E,IAAMiY,WAAU,GAAI,IAAI,CAACrb,KAAK,CAAC,IAAI,CAACsP,QAAS,GAAE,CAAC,CAAC;AAEjD,MAAA,IAAI+L,WAAW,EAAE;QACb,IAAME,oBAAqB,GAAE/J,gBAAgB,CAAC6J,WAAW,EAAE,IAAI,CAACjY,WAAW,CAAC;QAE5E,OAAOkY,wBAAwBC,oBAAoB;AACvD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;IACDoD,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACtb,mBAAkB,IAAK,CAAC,IAAI,CAACkb,kBAAkB,EAAE;AACtD,QAAA,OAAO,KAAK;AAChB,OAAE,MAAK;QACH,IAAIjD,mBAAoB,GAAE9J,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAChM,WAAW,CAAC;QAC1E,IAAIuY,WAAY,GAAE,IAAI,CAAC3b,KAAK,CAAC,IAAI,CAACsP,QAAS,GAAE,CAAC,CAAC;AAE/C,QAAA,IAAIqM,WAAW,EAAE;UACb,IAAIF,gBAAiB,GAAEjK,gBAAgB,CAACmK,WAAW,EAAE,IAAI,CAACvY,WAAW,CAAC;UAEtE,OAAOkY,wBAAwBG,gBAAgB;AACnD,SAAE,MAAK;AACH,UAAA,OAAO,IAAI;AACf;AACJ;KACH;IACDmD,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAA5M,MAAA,GAAA,IAAA;MACZ,IAAI,IAAI,CAAC8H,OAAO,EAAE;QACd,IAAI+E,eAAc,GAAI,CAAC;AAEvB,QAAA,IAAI,CAAC/E,OAAO,CAACrN,OAAO,CAAC,UAACrG,MAAM,EAAK;UAC7B,IAAI4L,MAAI,CAACxB,UAAU,CAACpK,MAAM,EAAE,QAAQ,CAAC,EAAEyY,eAAe,EAAE;AAC5D,SAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC/E,OAAO,CAACtM,MAAK,GAAIqR,eAAe;AAChD;AAEA,MAAA,OAAO,CAAC;AACZ;GACH;AACDvW,EAAAA,UAAU,EAAE;AACRwW,IAAAA,UAAU,EAAEC,QAAQ;AACpBnH,IAAAA,eAAe,EAAEA,eAAe;AAChCC,IAAAA,gBAAgB,EAAEA;AACtB;AACJ,CAAC;;;;;;;;;;;;;;;;;;UCrlBoBhR,MAAK,CAAAkT,KAAA,iBAAtB3B,kBAqFU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CApFII,MAAS,CAAAsT,SAAA,CAAA,aAAA,CAAA,IAAmBtT,MAAa,CAAA1D,YAAA,KAAA,WAAA,IAAmB2F,QAA0B,CAAA4V,0BAAA,IAAhGvV,SAAA,EAAA,EAAAiP,kBAAA,CAaI,MAbJ7O,UAaI,CAAA;;AAb+F,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,gBAAA,CAAA;IAAqBvQ,KAAK,EAAEiB,MAAmB,CAAAoT,mBAAA;AAAE5B,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAC/K4X,kBAAA,CAWI,MAXJzV,UAWI,CAAA;AAXCgP,IAAAA,OAAO,EAAEzP,QAAY,CAAA8V,aAAA,GAAA;AAAoB,GAAA,EAAAtG,eAAA,CAAAA,eAAA,KAAAxP,QAAA,CAAAtC,WAAW,eAAiBqC,IAAG,CAAAzB,GAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAA,CAC3DP,MAAmB,CAAAxD,mBAAA,IAAjC8F,SAAA,EAAA,EAAAiP,kBAAA,CAQQ,UARR7O,UAQQ,CAAA;;AAR4B,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,iBAAA,CAAA;IAAsBzD,OAAK;aAAE5J,QAAgB,CAAAqT,gBAAA,IAAArT,QAAA,CAAAqT,gBAAA,CAAA7W,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;AAAEhP,IAAAA,IAAI,EAAC;KAAiB4I,IAAG,CAAAzB,GAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,CAChGP,MAAA,CAAAsT,SAAS,qBAAqBtT,MAAS,CAAAsT,SAAA,CAAA,qBAAA,CAAA,iBAAxD1R,WAAsL,CAAAW,uBAAA,CAAhGvC,MAAS,CAAAsT,SAAA,CAAA,eAAA,CAAA,IAAqBtT,MAAS,CAAAsT,SAAA,CAAA,qBAAA,CAAA,CAAA,EAAA;;IAA0B6C,QAAQ,EAAElU,QAAkB,CAAAyV;6CACnLnG,kBAKU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAJMqC,QAAA,CAAAyV,kBAAmB,IAAG1X,MAAe,CAAA5D,eAAA,IAAjDkG,SAAA,EAAA,EAAAiP,kBAAA,CAAkI,QAAlI7O,UAAkI,CAAA;;IAA9E,OAAK,EAAA,CAAGV,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,EAAmBtP,MAAe,CAAA5D,eAAA;KAAW4F,IAAG,CAAAzB,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAClF0B,QAAA,CAAAyV,kBAAiB,KAAM1X,MAAe,CAAA5D,eAAA,IAAlEkG,SAAA,EAAA,EAAAV,WAAA,CAAgI+Q,4BAAhIjQ,UAAgI,CAAA;;AAA3D,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,eAAA;KAA2BtN,IAAG,CAAAzB,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAC1F,CAAA0B,QAAA,CAAAyV,kBAAmB,IAAG1X,MAAgB,CAAA3D,gBAAA,IAAxDiG,SAAA,EAAA,EAAAiP,kBAAA,CAA0I,QAA1I7O,UAA0I,CAAA;;IAA/E,OAAK,EAAA,CAAGV,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,EAAmBtP,MAAgB,CAAA3D,gBAAA;KAAW2F,IAAG,CAAAzB,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IACxF,CAAA0B,QAAA,CAAAyV,kBAAmB,KAAI1X,MAAgB,CAAA3D,gBAAA,IAArEiG,SAAA,EAAA,EAAAV,WAAA,CAAmIgR,6BAAnIlQ,UAAmI,CAAA;;AAA3D,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,eAAA;KAA2BtN,IAAG,CAAAzB,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,gFAGvH+B,SAAA,EAAA,EAAAV,WAAA,CAA6EW,wBAA7DvC,MAAS,CAAAsT,SAAA,CAAA,aAAA,CAAA,CAAA,EAAA;IAAkBtS,IAAI,EAAEhB,MAAO,CAAAuI,OAAA;IAAG9I,KAAK,EAAEwC,QAAQ,CAAAwG;6FAIxE,CAAAzI,MAAA,CAAAxD,sBAAsByF,uCADhCK,SAAA,EAAA,EAAAiP,kBAAA,CA2DI,MA3DJ7O,UA2DI,CAAA;;IAzDC,OAAOT,EAAAA,QAAU,CAAA6U,UAAA;IACjB/X,KAAK,EAAEkD,QAAS,CAAA2U,SAAA;IAChBwB,QAAQ,EAAEnW,QAAW,CAAAuV,WAAA;AACtBhG,IAAAA,IAAI,EAAC,KAAI;IACR,eAAa,EAAExR,uBAAgBiC,QAAS,CAAAmS,UAAA,GAAA,IAAA;IACxCvI,OAAK;aAAE5J,QAAU,CAAAsT,UAAA,IAAAtT,QAAA,CAAAsT,UAAA,CAAA9W,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACjBiQ,UAAQ;aAAEpW,QAAa,CAAAuT,aAAA,IAAAvT,QAAA,CAAAuT,aAAA,CAAA/W,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACvBkQ,aAAW;aAAErW,QAAe,CAAAwT,eAAA,IAAAxT,QAAA,CAAAwT,eAAA,CAAAhX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IAC5BmQ,UAAQ;aAAEtW,QAAa,CAAAyT,aAAA,IAAAzT,QAAA,CAAAyT,aAAA,CAAAjX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;AACvBwJ,IAAAA,SAAO;aAAO3P,QAAY,CAAA0T,YAAA,IAAA1T,QAAA,CAAA0T,YAAA,CAAAlX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAC1BoQ,WAAS;aAAEvW,QAAc,CAAA2T,cAAA,IAAA3T,QAAA,CAAA2T,cAAA,CAAAnX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACzBqQ,WAAS;aAAExW,QAAc,CAAA4T,cAAA,IAAA5T,QAAA,CAAA4T,cAAA,CAAApX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACzBsQ,UAAQ;aAAEzW,QAAa,CAAA6T,aAAA,IAAA7T,QAAA,CAAA6T,aAAA,CAAArX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACvBuQ,WAAS;aAAE1W,QAAc,CAAA8T,cAAA,IAAA9T,QAAA,CAAA8T,cAAA,CAAAtX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACzBwQ,SAAO;aAAE3W,QAAY,CAAA+T,YAAA,IAAA/T,QAAA,CAAA+T,YAAA,CAAAvX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACrByQ,MAAI;aAAE5W,QAAS,CAAAgU,SAAA,IAAAhU,QAAA,CAAAgU,SAAA,CAAAxX,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;KAAA;KACRnG,QAAmB,CAAAgS,mBAAA,CAAA,SAAA,CAAA,EAAA;IAC1B,cAAY,EAAEhS,QAAQ,CAAAwG,QAAA;AACtB,IAAA,uBAAqB,EAAEzI;AACvB,IAAA,iBAAe,EAAEA,oBAAaiC,QAAU,CAAAmS,UAAA;AACxC,IAAA,6BAA2B,EAAEpU,MAAmB,CAAAtE,oBAAA,IAAKuG,QAAyB,CAAA2V;QAE/EtV,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAkCUQ,QAlCmB,EAAA,IAAA,EAAA+G,UAAA,CAAA9Y,MAAA,CAAAiT,OAAO,EAAlB,UAAAe,GAAG,EAAE1Q,CAAC,EAAA;4DAEVrB,QAAA,CAAAoS,oBAAoB,CAACL,GAAG,CAAA,iBADlCpS,WAgCC,CAAAmX,qBAAA,EAAA;AA9BInZ,MAAAA,GAAG,EAAEqC,mBAAU,CAAC+R,GAAG,kBAAkB/R,QAAU,CAAA0H,UAAA,CAACqK,GAAG,EAAA,OAAA,CAAA,IAAc1Q,CAAC;MAClEiF,OAAO,EAAEvI,MAAO,CAAAuI,OAAA;AAChBhJ,MAAAA,MAAM,EAAEyU,GAAG;MACXvL,QAAQ,EAAExG,QAAQ,CAAAwG,QAAA;AAClBhJ,MAAAA,KAAK,EAAE6D,CAAC;MACRqF,QAAQ,EAAE1G,QAAU,CAAAmS,UAAA;MACpB5L,SAAS,EAAExI,MAAS,CAAAwI,SAAA;AACpBmJ,MAAAA,OAAO,EAAE3R,MAAA,CAAA1D,YAAW,KAAkB,SAAA,GAAA2F,QAAA,CAAA0S,qBAAqB,CAACX,GAAG,CAAA,GAAA,IAAA;MAC/DpX,QAAQ,EAAEoD,MAAQ,CAAApD,QAAA;MAClBgM,OAAO,EAAE5I,6BAAsBiC,QAAY,CAAAwV,YAAA;MAC3C5O,WAAW,EAAE7I,MAAW,CAAA6I,WAAA;MACxBC,2BAA2B,EAAE9I,MAA2B,CAAA8I,2BAAA;MACxDC,YAAY,EAAE/I,6BAAsBiC,QAAO,CAAAwG,QAAA,GAAA,YAAA;MAC3CzP,IAAI,EAAEgH,MAAqB,CAAAyT,qBAAA;MAC3B/K,aAAa,EAAExI,KAAa,CAAAwT,aAAA;MAC5BtX,eAAe,EAAE4D,MAAe,CAAA5D,eAAA;MAChCC,gBAAgB,EAAE2D,MAAgB,CAAA3D,gBAAA;MAClCsC,eAAe,EAAEqB,MAAe,CAAArB,eAAA;MAChCyX,aAAY,EAAEnU,QAAa,CAAAmU,aAAA;MAC3BC,gBAAe,EAAEpU,QAAgB,CAAAoU,gBAAA;MACjCH,WAAU,EAAEjU,QAAW,CAAAiU,WAAA;MACvBI,cAAc,EAAErU,QAAc,CAAAqU,cAAA;MAC9BC,kBAAkB,EAAEtU,QAAkB,CAAAsU,kBAAA;MACtCC,gBAAgB,EAAEvU,QAAgB,CAAAuU,gBAAA;MAClCnI,aAAa,EAAEpM,QAAa,CAAAoM,aAAA;MAC5BC,aAAa,EAAErM,QAAa,CAAAqM,aAAA;MAC5BC,eAAe,EAAEtM,QAAe,CAAAsM,eAAA;MAChCkI,mBAAmB,EAAExU,QAAmB,CAAAwU,mBAAA;MACxCvU,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;MAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;iEAITX,MAAS,CAAAsT,SAAA,CAAA,WAAA,CAAA,IAAiBtT,uBAAgBE,KAAa,CAAAwT,aAAA,IAAjEpR,SAAA,EAAA,EAAAiP,kBAAA,CAII,MAJJ7O,UAII,CAAA;;IAJgEsW,EAAE,EAAEhZ,MAAY,CAAAwT,aAAA,GAAA,GAAA,GAAUvR,QAAO,CAAAwG,QAAA,GAAA,YAAA;AAAmB,IAAA,OAAA,EAAOzG,IAAE,CAAAsN,EAAA,CAAA,cAAA,CAAA;AAAkBkC,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,CACrK4X,kBAEI,CAAA,IAAA,EAFJzV,WAEI;IAFCgP,OAAO,EAAEzP,QAAa,CAAA8V;AAAA,GAAA,EAAAtG,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAexP,QAAW,CAAAtC,WAAA,CAAA,UAAA,CAAA,CAAiBqC,EAAAA,IAAG,CAAAzB,GAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,EACrE+B,SAAA,EAAA,EAAAV,WAAA,CAA2EW,wBAA3DvC,MAAS,CAAAsT,SAAA,CAAA,WAAA,CAAA,CAAA,EAAA;IAAgBtS,IAAI,EAAEhB,MAAO,CAAAuI,OAAA;IAAG9I,KAAK,EAAEwC,QAAQ,CAAAwG;uGAGtEzI,MAAS,CAAAsT,SAAA,CAAA,aAAA,CAAA,IAAmBtT,uCAAgCiC,QAA0B,CAAA6V,0BAAA,IAAhGxV,SAAA,EAAA,EAAAiP,kBAAA,CAII,MAJJ7O,UAII,CAAA;;AAJ+F,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,gBAAA,CAAA;AAAoBkC,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAClJ4X,kBAAA,CAEI,MAFJzV,UAEI,CAAA;AAFCgP,IAAAA,OAAO,EAAEzP,QAAY,CAAA8V,aAAA,GAAA;AAAoB,GAAA,EAAAtG,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAxP,QAAA,CAAAtC,WAAW,aAAiBqC,EAAAA,IAAG,CAAAzB,GAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAA,EACzE+B,SAAA,EAAA,EAAAV,WAAA,CAA6EW,wBAA7DvC,MAAS,CAAAsT,SAAA,CAAA,aAAA,CAAA,CAAA,EAAA;IAAkBtS,IAAI,EAAEhB,MAAO,CAAAuI,OAAA;IAAG9I,KAAK,EAAEwC,QAAQ,CAAAwG;oGAItFnG,SAAA,EAAA,EAAAiP,kBAAA,CAII,MAJJ7O,UAII,CAAA;;AAJQ,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,cAAA,CAAA;AAAkBkC,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,CACzD4X,kBAEI,CAAA,IAAA,EAFJzV,WAEI;IAFCgP,OAAO,EAAEzP,QAAa,CAAA8V;AAAA,GAAA,EAAAtG,eAAA,CAAAA,eAAA,CAAexP,EAAAA,EAAAA,QAAW,CAAAtC,WAAA,CAAA,UAAA,CAAA,CAAA,EAAiBqC,IAAG,CAAAzB,GAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,CACpDP,MAAA,CAAAsT,SAAS,CAACJ,KAAK,iBAAhCtR,WAAyD,CAAAW,uBAAA,CAAlBvC,MAAS,CAAAsT,SAAA,CAACJ,KAAK,CAAA,EAAA;AAAAtT,IAAAA,GAAA,EAAA;AAAA,GAAA,CAAA;;;;;ACXlE,eAAe;AACX5G,EAAAA,IAAI,EAAE,WAAW;AACjBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CACH,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,qBAAoB,CACvB;AACDnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD4Z,IAAAA,OAAO,EAAE;AACL7Z,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDoP,IAAAA,SAAS,EAAE;AACPpP,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoZ,IAAAA,KAAK,EAAE;AACH9Z,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDwC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDM,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDJ,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACD4C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4C,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAS,EAAA;KACZ;AACDiZ,IAAAA,aAAa,EAAE;AACX/Z,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDkC,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqC,IAAAA,QAAQ,EAAE;AACNxC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD2B,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4C,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD2D,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDwD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDga,IAAAA,cAAc,EAAE;AACZja,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDyP,IAAAA,WAAW,EAAE;AACTzP,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoZ,IAAAA,SAAS,EAAE;AACPla,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD4D,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD6E,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4O,IAAAA,2BAA2B,EAAE;AACzB1P,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqZ,IAAAA,yBAAyB,EAAE;AACvBna,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;AACb;GACH;EACDkH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHiY,MAAAA,yBAAyB,EAAE;KAC9B;GACJ;EACDvP,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAAClB,SAAS,EAAE;MAChB,IAAI,CAAC0Q,6BAA6B,EAAE;AACxC;IAEA,IAAI,IAAI,CAAClc,UAAW,IAAG,IAAI,CAACV,YAAW,KAAM,WAAW,EAAE;MACtD,IAAI,CAAC6c,wCAAwC,EAAE;AACnD;GACH;EACDtP,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAACrB,SAAS,EAAE;MAChB,IAAI,CAAC0Q,6BAA6B,EAAE;AACxC;IAEA,IAAI,IAAI,CAAClc,UAAW,IAAG,IAAI,CAACV,YAAW,KAAM,WAAW,EAAE;MACtD,IAAI,CAAC6c,wCAAwC,EAAE;AACnD;GACH;AACDzZ,EAAAA,OAAO,EAAE;AACL0Z,IAAAA,SAAS,WAATA,SAASA,CAAC7Q,OAAO,EAAEE,QAAQ,EAAE;AACzB,MAAA,OAAO,IAAI,CAACnP,OAAM,GAAIqR,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAE,GAAEmP,QAAQ;KAC3E;IACDyQ,6BAA6B,EAAA,SAA7BA,6BAA6BA,GAAG;AAC5B,MAAA,IAAI,CAAChP,GAAG,CAACnL,KAAK,CAACsa,GAAI,GAAEC,cAAc,CAAC,IAAI,CAACpP,GAAG,CAAC4D,sBAAsB,CAAE,GAAE,IAAI;KAC9E;IACDqL,wCAAwC,EAAA,SAAxCA,wCAAwCA,GAAG;MACvC,IAAII,iBAAgB,GAAID,cAAc,CAAC,IAAI,CAACpP,GAAG,CAAC4D,sBAAsB,CAAC;AAEvE,MAAA,IAAI,CAACmL,yBAAyB,CAACI,GAAI,GAAEE,iBAAgB,GAAI,IAAI;KAChE;AACDpK,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACC,MAAM,EAAEsH,OAAO,EAAE;AACpCA,MAAAA,OAAQ,GAAEA,WAAW,IAAI,CAAC5N,2BAA2B;AAErD,MAAA,OAAO4N,OAAQ,GAAEA,OAAO,CAACtH,MAAM,CAAE,GAAE,IAAI;KAC1C;AACDoK,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACC,EAAE,EAAE;AACR;AACA,MAAA,IAAMC,UAAW,GAAE,IAAI,CAACvK,sBAAsB,CAAC,YAAY,CAAC;AAE5DuK,MAAAA,UAAW,IAAGA,UAAU,CAACD,EAAE,CAAC;AAChC;GACH;AACDxY,EAAAA,QAAQ,EAAE;IACNmS,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACpW,UAAU,EAAE;QACjB,OAAO;AAAEqc,UAAAA,GAAG,EAAE,IAAI,CAACJ,yBAAyB,CAACI;SAAK;AACtD;AAEA,MAAA,OAAO,IAAI;KACd;IACDM,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAACxK,sBAAsB,CAAC,cAAc,CAAC;KACrD;IACDyK,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAnP,qBAAA;MACd,OAAO;AACHtK,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAAyN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzN;AACvD;OACH;KACJ;IACD6c,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAOC,EAAE,CAAC;AACNC,QAAAA,SAAS,EAAE,IAAI,CAACne,QAAO,IAAK,IAAI,CAACN,aAAa;QAC9C0e,MAAM,EAAE,IAAI,CAACxR;AACjB,OAAC,CAAC;AACN;GACH;AACD/G,EAAAA,UAAU,EAAE;AACRwY,IAAAA,SAAS,EAAEC;AACf;AACJ,CAAC;;;;;EClTG,OAAA5X,SAAA,EAAA,EAAAiP,kBAAA,CAmEO,SAnEP7O,UAmEO,CAAA;IAnECyX,GAAG,EAAElY,QAAO,CAAAuX,OAAA;AAAG,IAAA,OAAA,EAAOxX,IAAE,CAAAsN,EAAA,CAAA,OAAA,CAAA;AAAWkC,IAAAA,IAAI,EAAC,UAAS;IAAGzS,KAAK,EAAEkD,QAAgB,CAAA0X,gBAAA;IAAG,QAAM,EAAE1X,QAAK,CAAA4X;GAAU,EAAA7X,IAAA,CAAAzB,GAAG,UAAU0B,QAAe,CAAA2X,eAAA,CAAA,CAAA,EAAA,EACpH5Z,MAAK,CAAAkT,KAAA,IAClB5Q,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CA8DUQ,QA9D8B,EAAA;AAAAnS,IAAAA,GAAA,EAAA;GAAA,EAAAkZ,UAAA,CAAA9Y,MAAA,CAAA7G,KAAK,EAA3B,UAAAoP,OAAO,EAAEE,QAAQ,EAAA;wBAC/B7G,WA4DC,CAAAwY,oBAAA,EAAA;WA7DgDnY,QAAS,CAAAmX,SAAA,CAAC7Q,OAAO,EAAEE,QAAQ,CAAA;AAEvEF,MAAAA,OAAO,EAAEA,OAAO;AAChB9I,MAAAA,KAAK,EAAEgJ,QAAQ;MACftP,KAAK,EAAE6G,MAAK,CAAA7G,KAAA;MACZ8Z,OAAO,EAAEjT,MAAO,CAAAiT,OAAA;MAChBzK,SAAS,EAAExI,MAAS,CAAAwI,SAAA;MACpB0K,KAAK,EAAElT,MAAK,CAAAkT,KAAA;MACZvZ,KAAK,EAAEqG,MAAK,CAAArG,KAAA;MACZL,OAAO,EAAE0G,MAAO,CAAA1G,OAAA;MAChB+B,SAAS,EAAE2E,MAAS,CAAA3E,SAAA;MACpB8X,aAAa,EAAEnT,MAAa,CAAAmT,aAAA;MAC5B7X,aAAa,EAAE0E,MAAa,CAAA1E,aAAA;MAC5BG,WAAW,EAAEuE,MAAW,CAAAvE,WAAA;MACxBC,oBAAoB,EAAEsE,MAAoB,CAAAtE,oBAAA;MAC1CY,YAAY,EAAE0D,MAAY,CAAA1D,YAAA;MAC1BC,WAAW,EAAEyD,MAAW,CAAAzD,WAAA;MACxBC,mBAAmB,EAAEwD,MAAmB,CAAAxD,mBAAA;MACxCM,QAAQ,EAAEkD,MAAQ,CAAAlD,QAAA;MAClBC,QAAQ,EAAEiD,MAAQ,CAAAjD,QAAA;MAClBH,QAAQ,EAAEoD,MAAQ,CAAApD,QAAA;MAClBrB,kBAAkB,EAAEyE,MAAkB,CAAAzE,kBAAA;MACtCyB,UAAU,EAAEgD,MAAU,CAAAhD,UAAA;MACtBZ,eAAe,EAAE4D,MAAe,CAAA5D,eAAA;MAChCC,gBAAgB,EAAE2D,MAAgB,CAAA3D,gBAAA;MAClCF,YAAY,EAAE6D,MAAY,CAAA7D,YAAA;MAC1BM,iBAAiB,EAAEuD,MAAiB,CAAAvD,iBAAA;MACpCI,WAAW,EAAEmD,MAAW,CAAAnD,WAAA;MACxBwW,cAAc,EAAErT,MAAc,CAAAqT,cAAA;MAC9BC,SAAS,EAAEtT,MAAS,CAAAsT,SAAA;MACpB3U,eAAe,EAAEqB,MAAe,CAAArB,eAAA;MAChCmK,2BAA2B,EAAE9I,MAA2B,CAAA8I,2BAAA;MACxDyK,yBAAyB,EAAEvT,MAAyB,CAAAuT,yBAAA;MACpD1K,WAAW,EAAE7I,MAAW,CAAA6I,WAAA;MACxBuK,mBAAmB,EAAEnR,QAAmB,CAAAmR,mBAAA;MACxCI,aAAa,EAAExR,IAAG,CAAAqY,GAAA;MAClB5G,qBAAqB,EAAEzR,IAAa,CAAAsY,aAAA;AACpCC,MAAAA,gBAAe,EAAAtI,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDqD,MAAAA,UAAS,EAAAtD,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,WAAA,EAAcoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACpCsI,MAAAA,aAAY,EAAAvI,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CuI,MAAAA,eAAc,EAAAxI,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9CwI,MAAAA,aAAY,EAAAzI,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CyI,MAAAA,YAAW,EAAA1I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACxC0I,MAAAA,cAAa,EAAA3I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C2I,MAAAA,cAAa,EAAA5I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C4I,MAAAA,aAAY,EAAA7I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1C6I,MAAAA,cAAa,EAAA9I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C8I,MAAAA,YAAW,EAAA/I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACxC+D,MAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,UAAA,EAAaoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClCgE,MAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,YAAA,EAAeoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACtCkE,MAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CmE,MAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDoE,MAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9CqE,MAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,oBAAA,EAAuBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACtDsE,MAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClD7D,MAAAA,aAAa,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C5D,MAAAA,aAAa,EAAA2D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C3D,MAAAA,eAAe,EAAA0D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDuE,MAAAA,mBAAmB,EAAAxE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,qBAAA,EAAwBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MACxDhQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;MAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;4BAInBiB,WAA0G,CAAAwY,oBAAA,EAAA;;IAAvFlH,KAAK,EAAElT,MAAK,CAAAkT,KAAA;IAAGD,OAAO,EAAEjT,MAAO,CAAAiT,OAAA;IAAGK,SAAS,EAAEtT,MAAS,CAAAsT,SAAA;IAAGpR,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAAGvB,EAAE,EAAEqB,IAAE,CAAArB;;;;;;ACtD/G,eAAe;AACX3H,EAAAA,IAAI,EAAE,YAAY;AAClBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;AACb;GACH;EACDsH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHqI,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACDlK,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACjL,MAAM,EAAEgL,IAAI,CAAC;KACzC;AACD5K,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAA6K,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAM7K,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBhC,UAAAA,IAAI,GAAAgN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,MAAA,IAAA,IAAAsL,qBAAA,KAArCA,MAAAA,GAAAA,MAAAA,GAAAA,qBAAA,CAAuChN,IAAI;UACjDH,aAAa,EAAE,EAAAoN,sBAAA,GAAA,IAAI,CAACvL,eAAe,MAAA,IAAA,IAAAuL,sBAAA,KAAAA,MAAAA,IAAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBvL,eAAe,MAAAuL,IAAAA,IAAAA,sBAAA,uBAArCA,sBAAA,CAAuCpN,kBAAiB;AAC3E;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAElG,SAAS;KACtF;IACDmP,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIgF,KAAM,GAAE,IAAI,CAAChF,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAIgF,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIxI,IAAK,GAAEyI,qBAAqB,CAAC,IAAI,CAAC3E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAI9D,IAAI,EAAE;AACNwI,YAAAA,GAAE,GAAIE,aAAa,CAAC1I,IAAI,IAAI2I,UAAU,CAAC3I,IAAI,CAACrH,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC2F,cAAe,GAAEJ,GAAE,GAAI,IAAI;AAChD,SAAE,MAAK;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAInH,IAAK,GAAEwH,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAIzC,IAAI,EAAE;AACNmH,YAAAA,IAAE,GAAIE,aAAa,CAACrH,IAAI,CAAA,GAAIsH,UAAU,CAACtH,IAAI,CAAC1I,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC6F,gBAAiB,GAAEN,IAAE,GAAI,IAAI;AAClD;AACJ;AACJ;GACH;AACD3N,EAAAA,QAAQ,EAAE;IACNoO,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAC1F,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC2F,EAAE,CAAC,YAAY,CAAC,CAAC;KAC3F;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,SAAQ,GAAI,IAAI,CAAC7F,UAAU,CAAC,aAAa,CAAC;AAC9C,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAE,GAAE,CAAC8F,WAAW,EAAED,SAAS,EAAE,IAAI,CAACnG,WAAW,CAAA,GAAI,CAACoG,WAAW,EAAED,SAAS,CAAC;AAC5G;AACJ;AACJ,CAAC;;;;;;;;;;ECtGG,OAAAlN,SAAA,EAAA,EAAAiP,kBAAA,CAGI,MAHJ7O,UAGI,CAAA;IAHC3D,KAAK,EAAEkD,QAAc,CAAAsN,cAAA;IAAG,OAAOtN,EAAAA,QAAc,CAAAoN,cAAA;AAAEmC,IAAAA,IAAI,EAAC,MAAK;AAAGE,IAAAA,OAAO,EAAEzP,QAAU,CAAA0H,UAAA,CAAA,SAAA,CAAA;AAAcgI,IAAAA,OAAO,EAAE1P,QAAU,CAAA0H,UAAA,CAAA,SAAA;AAA0B,GAAA,EAAA8H,eAAA,CAAAA,eAAA,CAAAxP,EAAAA,EAAAA,QAAA,CAAAtC,WAAW,WAAasC,QAAW,CAAAtC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AAAmB,IAAA,sBAAoB,EAAEsC,QAAU,CAAA0H,UAAA,CAAA,QAAA;OAChN3J,MAAA,CAAAT,MAAM,CAACyL,YAAYhL,aAAM,CAACgL,QAAQ,CAACiQ,MAAM,IAA1D3Y,SAAA,EAAA,EAAAV,WAAA,CAA2GW,uBAA1C,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACiQ,MAAM,CAAA,EAAA;;IAAG1b,MAAM,EAAES,MAAM,CAAAT;2DAC5F0C,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA,IAAtBrH,SAAA,EAAA,EAAAiP,kBAAA,CAAmI,QAAnI7O,UAAmI,CAAA;;AAAhG,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,cAAA;AAA0B,GAAA,EAAArN,QAAA,CAAAtC,WAAW,mCAAqBsC,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA;;;;;;;;AC4BxH,eAAe;AACX3Q,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHgiB,IAAAA,WAAW,EAAE;AACT9hB,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD6Z,IAAAA,OAAO,EAAE;AACL7Z,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;AACb;GACH;EACD+E,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACHkc,KAAK,EAAE,IAAI,CAACC,YAAY;MACxBC,QAAQ,EAAE,IAAI,CAACC;KAClB;GACJ;EACDta,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHoa,YAAY,EAAE,IAAIG,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;AAAM,OAAC,CAAC;MAC5CkiB,eAAe,EAAE,IAAIC,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;OAAU;KACpD;GACJ;EACDgR,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,IAAA,IAAI,CAACgR,YAAY,CAAC/c,KAAK,EAAE;AACzB,IAAA,IAAI,CAACid,eAAe,CAACjd,KAAK,EAAE;GAC/B;AACDqB,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDiR,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC5b,GAAG,EAAE;AAClB,MAAA,IAAM6b,mBAAkB,GAAI;AACxBviB,QAAAA,KAAK,EAAE,IAAI,CAACwiB,mBAAmB,EAAE;AACjC5b,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACL/G,UAAAA,IAAI,EAAE,QAAQ;AACd4D,UAAAA,UAAU,EAAE,IAAI,CAAC2e,eAAe,CAACxb,OAAO,CAACnD;AAC7C;OACH;MAED,OAAOsD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,cAAAA,CAAAA,MAAA,CAAgBZ,GAAG,CAAI,EAAA;AAAEsb,QAAAA,WAAW,EAAEO;OAAqB,CAAC,EAAE,IAAI,CAAClb,GAAG,CAAAC,cAAAA,CAAAA,MAAA,CAAgBZ,GAAG,CAAI6b,EAAAA,mBAAmB,CAAC,EAAE,IAAI,CAAChb,IAAI,CAAC,IAAI,CAACib,mBAAmB,EAAE,EAAE9b,GAAG,EAAE6b,mBAAmB,CAAC,CAAC;KAChN;IACDC,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAACR,WAAU,IAAK,IAAI,CAACA,WAAW,CAAChiB,KAAI,IAAK,IAAI,CAACgiB,WAAW,CAAChiB,KAAK,CAACyH,KAAK,IAAI,CAACua,WAAW,CAAChiB,KAAK,CAACyH,EAAG,GAAElG,SAAS,CAAE;KAC3H;IACDmhB,QAAQ,EAAA,SAARA,QAAQA,CAACC,GAAG,EAAEjc,GAAG,EAAEH,KAAK,EAAE;AACtB,MAAA,IAAMqc,cAAc;QAChB5iB,KAAK,EAAE2iB,GAAG,CAAC3iB,KAAK;AAChB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,MAAAA,CAAAA,MAAA,CAAQZ,GAAG,CAAI,EAAA;AAAEic,QAAAA,GAAG,EAAEC;AAAY,OAAC,CAAC,EAAE,IAAI,CAACvb,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAIkc,WAAW,CAAC,EAAE,IAAI,CAACrb,IAAI,CAAC,IAAI,CAACsb,UAAU,CAACF,GAAG,CAAC,EAAEjc,GAAG,EAAEkc,WAAW,CAAC,CAAC;KAC1J;AACDC,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACF,GAAG,EAAE;AACZ,MAAA,OAAOA,GAAG,CAAC3iB,SAAS2iB,GAAG,CAAC3iB,KAAK,CAACyH,EAAC,GAAIkb,GAAG,CAAC3iB,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAE;KAChE;IACDuhB,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAC,kBAAA;MACZ,OAAAA,CAAAA,kBAAA,GAAO,IAAI,CAACb,YAAY,MAAAa,IAAAA,IAAAA,kBAAA,uBAAjBA,kBAAA,CAAmBC,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAE,IAAI,CAACA,WAAW,CAAClQ,QAAQ,CAAC;KAC7E;AACDmR,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACN,GAAG,EAAE;AAAA,MAAA,IAAAO,qBAAA;AAClB,MAAA,OAAA,CAAAA,qBAAA,GAAO,IAAI,CAACd,eAAe,cAAAc,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsBF,GAAG,CAACL,GAAG,EAAEA,GAAG,CAAC7Q,QAAQ,CAAC;AACvD;GACH;AACD/J,EAAAA,QAAQ,EAAE;IACNob,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIA,YAAY,KAAK;MAErB,IAAI,IAAI,CAACnB,WAAW,EAAE;AAClBmB,QAAAA,SAAQ,GAAI,IAAI;AACpB,OAAA,MAAO,IAAI,IAAI,CAACpJ,OAAO,EAAE;AAAA,QAAA,IAAAiE,SAAA,GAAAC,4BAAA,CACL,IAAI,CAAClE,OAAO,CAAA;UAAAmE,KAAA;AAAA,QAAA,IAAA;UAA5B,KAAAF,SAAA,CAAAnS,CAAA,EAAAqS,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAhU,CAAA,EAAAmB,EAAAA,IAAA,GAA8B;AAAA,YAAA,IAArB2P,GAAE,GAAAoD,KAAA,CAAAje,KAAA;AACP,YAAA,IAAI,IAAI,CAACwQ,UAAU,CAACqK,GAAG,EAAE,QAAQ,CAAA,IAAMA,GAAG,CAAChJ,QAAS,IAAGgJ,GAAG,CAAChJ,QAAQ,CAACiQ,MAAO,EAAE;AACzEoB,cAAAA,SAAQ,GAAI,IAAI;AAChB,cAAA;AACJ;AACJ;AAAA,SAAA,CAAA,OAAA9E,GAAA,EAAA;UAAAL,SAAA,CAAAlU,CAAA,CAAAuU,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAL,UAAAA,SAAA,CAAAxS,CAAA,EAAA;AAAA;AACJ;AAEA,MAAA,OAAO2X,SAAS;KACnB;IACDV,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAlR,qBAAA;MACd,OAAO;AACHtK,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAAyN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzN;AACvD;OACH;AACL;GACH;AACDyE,EAAAA,UAAU,EAAE;AACR6a,IAAAA,YAAY,EAAEC;AAClB;AACJ,CAAC;;;;;;;;;;;;SCvIata,QAAS,CAAAoa,SAAA,IADnB/Z,SAAA,EAAA,EAAAiP,kBAAA,CAqBO,SArBP7O,UAqBO,CAAA;;AAnBF,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,OAAA,CAAA;AACTvQ,IAAAA,KAAK,EAAEiD,IAAE,CAAAwa,EAAA,CAAA,OAAA,CAAA;AACVhL,IAAAA,IAAI,EAAC;KACGxR,MAAY,CAAAkb,WAAA,GAAAzJ,eAAA,CAAAA,eAAA,CAAOzP,EAAAA,EAAAA,QAAG,CAAU,OAAA,EAAAC,QAAA,CAAA0Z,eAAe,IAAM1Z,QAAgB,CAAAuZ,gBAAA,CAAA,MAAA,CAAA,CAAaxZ,GAAAA,IAAG,CAAAzB,GAAA,CAAA,OAAA,EAAU0B,QAAe,CAAA0Z,eAAA,CAAA,EAAA;AACrH,IAAA,mBAAiB,GAAAc,oBAAA,GAAEza,IAAA,CAAA7C,eAAe,cAAAsd,oBAAA,KAAA,MAAA,IAAA,CAAAA,oBAAA,GAAfA,oBAAA,CAAiBtd,eAAe,MAAA,IAAA,IAAAsd,oBAAA,KAAhCA,MAAAA,GAAAA,MAAAA,GAAAA,oBAAA,CAAkCzf,UAAU;AAChE,IAAA,iBAAe,EAAC;QAELgD,MAAW,CAAAkb,WAAA,IAAtB5Y,SAAA,EAAA,EAAAiP,kBAAA,CAII,MAJJ7O,UAII,CAAA;;AAJoB8O,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAC1C+B,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAEUQ,QAFmB,EAAA,IAAA,EAAA+G,UAAA,CAAA9Y,MAAA,CAAAiT,OAAO,EAAlB,UAAAe,GAAG,EAAE1Q,CAAC,EAAA;;AAAoB1D,MAAAA,GAAA,EAAAqC,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkB/R,mBAAU,CAAC+R,GAAG,cAAc1Q;QAC/E,CAAArB,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,iBAAnCpS,WAAwE,CAAA8a,uBAAA,EAAA;;AAAvBnd,MAAAA,MAAM,EAAEyU,GAAG;MAAGrT,EAAE,EAAEqB,IAAE,CAAArB;;sBAIzE2B,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAIIQ,QAJmB,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAAkZ,UAAA,CAAA7W,QAAA,CAAA+Z,aAAa,EAAxB,EAAA,UAAAH,GAAG,EAAEvY,CAAC,EAAA;IAAlB,OAAAhB,SAAA,EAAA,EAAAiP,kBAAA,CAII,MAJJ7O,UAII,CAAA;AAJqC9C,MAAAA,GAAG,EAAE0D,CAAC;AAAEkO,MAAAA,IAAI,EAAC,KAAM;;KAAa,EAAAC,eAAA,CAAAA,eAAA,KAAAzP,IAAA,CAAAzB,GAAG,CAAkB,WAAA,CAAA,GAAA0B,QAAA,CAAA2Z,QAAQ,CAACC,GAAG,UAAUvY,CAAC,CAAA,CAAA,CAAA,EAAA,EACjHhB,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAEUQ,2BAFmB9P,QAAgB,CAAAka,gBAAA,CAACN,GAAG,CAA/B,EAAA,UAAA7H,GAAG,EAAE2I,CAAC,EAAA;;AAAkC/c,QAAAA,GAAA,EAAAqC,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkB/R,mBAAU,CAAC+R,GAAG,cAAc2I;UAC7F,CAAA1a,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,iBAAnCpS,WAAmF,CAAA8a,uBAAA,EAAA;;AAAlCnd,QAAAA,MAAM,EAAEyU,GAAG;AAAGvU,QAAAA,KAAK,EAAE6D,CAAC;QAAG3C,EAAE,EAAEqB,IAAE,CAAArB;;;;;;;;;;;;;;ACqKpG,eAAe;AACX3H,EAAAA,IAAI,EAAE,cAAc;AACpBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC;AACrJnG,EAAAA,KAAK,EAAE;AACHuQ,IAAAA,KAAK,EAAE;AACHrQ,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDH,IAAAA,IAAI,EAAE;AACFA,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqjB,IAAAA,OAAO,EAAE;AACLxjB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsjB,IAAAA,QAAQ,EAAE;AACNzjB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDgjB,IAAAA,SAAS,EAAE;AACP1jB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDwjB,IAAAA,YAAY,EAAE;AACV3jB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDkjB,IAAAA,eAAe,EAAE;AACb5jB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDmjB,IAAAA,eAAe,EAAE;AACb7jB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDojB,IAAAA,cAAc,EAAE;AACZ9jB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDqjB,IAAAA,aAAa,EAAE;AACX/jB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDsjB,IAAAA,gBAAgB,EAAE;AACdhkB,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDgkB,IAAAA,cAAc,EAAE;AACZjkB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4jB,IAAAA,aAAa,EAAE;AACXlkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACD+jB,IAAAA,oBAAoB,EAAE;AAClBnkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDgkB,IAAAA,oBAAoB,EAAE;AAClBpkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDikB,IAAAA,mBAAmB,EAAE;AACjBrkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDkkB,IAAAA,mBAAmB,EAAE;AACjBtkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDmkB,IAAAA,kBAAkB,EAAE;AAChBvkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDokB,IAAAA,qBAAqB,EAAE;AACnBxkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDqkB,IAAAA,wBAAwB,EAAE;AACtBzkB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDskB,IAAAA,uBAAuB,EAAE;AACrB1kB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;KACZ;AACDyB,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6jB,IAAAA,YAAY,EAAE;AACV3kB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD8jB,IAAAA,eAAe,EAAE;AACb5kB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0kB,IAAAA,eAAe,EAAE;AACb7kB,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDyE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDmG,IAAAA,MAAM,EAAE;GACX;EACDyB,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHkd,MAAAA,cAAc,EAAE,KAAK;AACrBC,MAAAA,gBAAgB,EAAE,IAAI;AACtBC,MAAAA,eAAe,EAAE;KACpB;GACJ;AACDC,EAAAA,OAAO,EAAE,IAAI;AACbpV,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,oBAAoB,EAAE,IAAI;EAC1BkB,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,IAAI,CAAClB,oBAAoB,EAAE;MAC3BmB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC;IAEA,IAAI,IAAI,CAACmV,OAAO,EAAE;AACdC,MAAAA,MAAM,CAACjgB,KAAK,CAAC,IAAI,CAACggB,OAAO,CAAC;MAC1B,IAAI,CAACE,aAAa,EAAE;AACxB;GACH;EACD7U,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACzO,OAAM,IAAK,IAAI,CAACA,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,EAAE;MAC1C,IAAI+U,eAAe,IAAI,CAACvjB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC;MAE3C,IAAI+U,YAAY,CAACC,QAAQ,EAAE;QACvB,IAAI,CAACN,gBAAe,GAAIK,YAAY,CAACE,WAAW,CAAC,CAAC,CAAC,CAAC5B,SAAS;AAC7D,QAAA,IAAI,CAACsB,eAAgB,GAAEI,YAAY,CAACC,QAAQ;AAChD,OAAE,MAAK;AACH,QAAA,IAAI,CAACN,gBAAiB,GAAE,IAAI,CAACljB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACqT,SAAS;AAC9D;AACJ;GACH;AACDpd,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,WAAXA,WAAWA,CAACC,GAAG,EAAE+e,MAAM,EAAE;MACrB,IAAM9e;AACF3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;AAChB;AAAC,OAAA,EACEye,MAAK,CACX;MAED,OAAOre,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAElG,SAAS;KACtF;AACDmkB,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAAC9B,SAAS,EAAE;MAClC,OAAO;AACH3c,QAAAA,OAAO,EAAE;UACL0e,WAAW,EAAE/B,SAAU,IAAG,IAAI,CAACgC,sBAAsB,CAAChC,SAAS,CAAC3jB,KAAK;AACzE;OACH;KACJ;IACD4lB,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAIC,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;MAElC,IAAI+jB,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACgV,QAAQ,EAAE;QAC/BO,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACiV,WAAW,CAACO,MAAM,CAAC,CAAC,CAAC;QAC1CD,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACgV,WAAW,IAAI,CAACL,eAAe;QACpDY,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACiV,WAAW,CAAC,CAAC,IAAI;AAAEvlB,UAAAA,KAAK,EAAE,IAAI;UAAE2jB,SAAS,EAAE,IAAI,CAACqB;SAAkB;AAC3F,OAAE,MAAK;QACHa,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACtQ,KAAM,GAAE,IAAI;QACjC6lB,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACqT,YAAY,IAAI,CAACqB,gBAAgB;AAC1D;AAEA,MAAA,IAAI,CAACrd,KAAK,CAAC,cAAc,CAAC;AAC1B,MAAA,IAAI,CAACA,KAAK,CAAC,eAAe,EAAEke,QAAQ,CAAC;AACrC,MAAA,IAAI,CAACle,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACoe,IAAI,EAAE;KACd;IACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAI,CAACre,KAAK,CAAC,aAAa,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEiV,QAAAA,WAAW,EAAE,IAAI,CAACzjB,OAAO,CAAC,IAAI,CAACwO,KAAK;AAAE,OAAC,CAAC;AACvF,MAAA,IAAI,CAAC3I,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACoe,IAAI,EAAE;KACd;IACDE,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,IAAI,CAACrB,YAAY,EAAE;QACnB,IAAIsB,cAAc,IAAI,CAACtB,YAAY,CAAC,IAAI,CAACtU,KAAK,CAAC;AAE/C,QAAA,IAAI4V,WAAW,EAAE;AACb,UAAA,IAAIA,WAAW,CAACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,CAACa,aAAa,CAACD,WAAW,CAACX,WAAW,CAAC,CAAC,CAAC,CAACvlB,KAAK,CAAC,CAAA,KACjF,OAAO,CAAC,IAAI,CAACmmB,aAAa,CAACD,WAAW,CAAClmB,KAAK,CAAC;AACtD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;IACDomB,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,OAAO,IAAI,CAACtkB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAA,IAAK,CAAC,IAAI,CAAC6V,aAAa,CAAC,IAAI,CAACrkB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACtQ,KAAK,CAAC;KACzF;AACDmmB,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACthB,MAAM,EAAE;AAClB,MAAA,IAAIA,MAAO,KAAI,QAAQA,MAAO,KAAIvD,SAAS,EAAE;AACzC,QAAA,IAAK,OAAOuD,MAAO,KAAI,YAAYA,MAAM,CAACwhB,IAAI,EAAE,CAAC7Y,MAAK,IAAK,CAAC,IAAM3I,MAAK,YAAa3E,KAAM,IAAG2E,MAAM,CAAC2I,MAAK,IAAK,CAAE,EAAE,OAAO,IAAI,CAAA,KACxH,OAAO,KAAK;AACrB;AAEA,MAAA,OAAO,IAAI;KACd;AACD8Y,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC5e,KAAK,EAAE;AACd,MAAA,IAAI,CAACqd,cAAe,GAAE,CAAC,IAAI,CAACA,cAAc;MAE1Crd,KAAK,CAACuL,cAAc,EAAE;KACzB;AACDsT,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC7e,KAAK,EAAE;MACzB,QAAQA,KAAK,CAACyL,IAAI;AACd,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAACmT,UAAU,CAAC5e,KAAK,CAAC;AAEtB,UAAA;AAEJ,QAAA,KAAK,QAAQ;UACT,IAAI,CAACqd,cAAa,GAAI,KAAK;AAC3B,UAAA;AACR;KACH;AACDyB,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAAC7C,SAAS,EAAE;AAC5B,MAAA,IAAIkC,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;MAElC+jB,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACqT,SAAQ,GAAIA,SAAS;AAC1C,MAAA,IAAI,CAAChc,KAAK,CAAC,kBAAkB,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEqT,QAAAA,SAAS,EAAEA;AAAU,OAAC,CAAC;AAC3E,MAAA,IAAI,CAAChc,KAAK,CAAC,eAAe,EAAEke,QAAQ,CAAC;AACrC,MAAA,IAAI,CAACle,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACoe,IAAI,EAAE;KACd;AACDU,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC/e,KAAK,EAAE;AACzB,MAAA,IAAIgf,IAAG,GAAIhf,KAAK,CAACwK,MAAM;MAEvB,QAAQxK,KAAK,CAACyL,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAIwT,QAAS,GAAE,IAAI,CAACC,YAAY,CAACF,IAAI,CAAC;AAEtC,UAAA,IAAIC,QAAQ,EAAE;AACVD,YAAAA,IAAI,CAACG,eAAe,CAAC,UAAU,CAAC;YAChCF,QAAQ,CAACG,WAAW,GAAG;YACvBH,QAAQ,CAAC3V,KAAK,EAAE;AACpB;UAEAtJ,KAAK,CAACuL,cAAc,EAAE;AACtB,UAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAI8T,QAAS,GAAE,IAAI,CAACC,YAAY,CAACN,IAAI,CAAC;AAEtC,UAAA,IAAIK,QAAQ,EAAE;AACVL,YAAAA,IAAI,CAACG,eAAe,CAAC,UAAU,CAAC;YAChCE,QAAQ,CAACD,WAAW,GAAG;YACvBC,QAAQ,CAAC/V,KAAK,EAAE;AACpB;UAEAtJ,KAAK,CAACuL,cAAc,EAAE;AACtB,UAAA;AACR;KACH;AACD0S,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAAChC,SAAS,EAAE;MAC9B,OAAO,IAAI,CAAC7hB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACqT,cAAcA,SAAS;KAC1D;AACDsD,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACjnB,KAAK,EAAE;AACpB,MAAA,IAAI6lB,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;MAElC+jB,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACgV,WAAWtlB,KAAK;AACrC,MAAA,IAAI,CAAC2H,KAAK,CAAC,eAAe,EAAEke,QAAQ,CAAC;AAErC,MAAA,IAAI,CAACle,KAAK,CAAC,iBAAiB,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEgV,QAAAA,QAAQ,EAAEtlB;AAAM,OAAC,CAAC;AAErE,MAAA,IAAI,CAAC,IAAI,CAAC8jB,eAAe,EAAE;AACvB,QAAA,IAAI,CAACnc,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;AACDuf,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAAClnB,KAAK,EAAEsG,KAAK,EAAE;AAChC,MAAA,IAAIuf,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;AAElC+jB,MAAAA,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACiV,WAAW,CAACjf,KAAK,CAAC,CAACqd,SAAU,GAAE3jB,KAAK;AACzD,MAAA,IAAI,CAAC2H,KAAK,CAAC,kBAAkB,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEqT,QAAAA,SAAS,EAAE3jB,KAAK;AAAEsG,QAAAA,KAAK,EAAEA;AAAM,OAAC,CAAC;AAErF,MAAA,IAAI,CAAC,IAAI,CAACwd,eAAe,EAAE;AACvB,QAAA,IAAI,CAACnc,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;IACDwf,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,IAAItB,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;AAClC,MAAA,IAAIslB,aAAY,GAAI;AAAEpnB,QAAAA,KAAK,EAAE,IAAI;QAAE2jB,SAAS,EAAE,IAAI,CAACqB;OAAkB;MAErEa,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACiV,WAAW,CAACnY,IAAI,CAACga,aAAa,CAAC;AACpD,MAAA,IAAI,CAACzf,KAAK,CAAC,gBAAgB,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAE+W,QAAAA,UAAU,EAAED;AAAc,OAAC,CAAC;AAC9E,MAAA,IAAI,CAACzf,KAAK,CAAC,eAAe,EAAEke,QAAQ,CAAC;AAErC,MAAA,IAAI,CAAC,IAAI,CAAC/B,eAAe,EAAE;AACvB,QAAA,IAAI,CAACnc,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;AACD2f,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAChhB,KAAK,EAAE;AACpB,MAAA,IAAIuf,QAAS,GAAAvN,eAAA,KAAO,IAAI,CAACxW,OAAM,CAAG;AAClC,MAAA,IAAIylB,iBAAgB,GAAI1B,QAAQ,CAAC,IAAI,CAACvV,KAAK,CAAC,CAACiV,WAAW,CAACO,MAAM,CAACxf,KAAK,EAAE,CAAC,CAAC;AAEzE,MAAA,IAAI,CAACqB,KAAK,CAAC,mBAAmB,EAAE;QAAE2I,KAAK,EAAE,IAAI,CAACA,KAAK;AAAE+W,QAAAA,UAAU,EAAEE;AAAkB,OAAC,CAAC;AACrF,MAAA,IAAI,CAAC5f,KAAK,CAAC,eAAe,EAAEke,QAAQ,CAAC;AAErC,MAAA,IAAI,CAAC,IAAI,CAAC/B,eAAe,EAAE;AACvB,QAAA,IAAI,CAACnc,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;IACD6f,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAI,CAAC7f,KAAK,CAAC,cAAc,CAAC;KAC7B;AACDif,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACF,IAAI,EAAE;AACf,MAAA,IAAIC,QAAS,GAAED,IAAI,CAAC3R,kBAAkB;MAEtC,IAAI4R,QAAQ,EAAE,OAAOnS,YAAY,CAACmS,QAAQ,EAAE,iBAAiB,CAAA,KAAM,2BAA0B,GAAI,IAAI,CAACC,YAAY,CAACD,QAAQ,CAAA,GAAIA,QAAQ,CAAA,KAClI,OAAOD,IAAI,CAACjS,aAAa,CAACQ,iBAAiB;KACnD;AACD+R,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACN,IAAI,EAAE;AACf,MAAA,IAAIK,QAAO,GAAIL,IAAI,CAAC/R,sBAAsB;MAE1C,IAAIoS,QAAQ,EAAE,OAAOvS,YAAY,CAACuS,QAAQ,EAAE,iBAAiB,CAAA,KAAM,2BAA0B,GAAI,IAAI,CAACC,YAAY,CAACD,QAAQ,CAAA,GAAIA,QAAQ,CAAA,KAClI,OAAOL,IAAI,CAACjS,aAAa,CAACI,gBAAgB;KAClD;IACDkR,IAAI,EAAA,SAAJA,IAAIA,GAAG;MACH,IAAI,CAAChB,cAAa,GAAI,KAAK;AAE3B,MAAA,IAAI,CAAC0C,cAAe,IAAGzW,KAAK,CAAC,IAAI,CAAC0W,KAAK,CAAC1e,IAAI,CAAC+H,GAAG,CAAC;KACpD;AACD4W,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACjgB,KAAK,EAAE;MAClB,IAAI,CAACoI,SAAQ,GAAI,IAAI;AAErBoB,MAAAA,eAAe,CAAC0W,IAAI,CAAC,eAAe,EAAE;AAClChgB,QAAAA,aAAa,EAAEF,KAAK;QACpBwK,MAAM,EAAE,IAAI,CAACgT;AACjB,OAAC,CAAC;KACL;IACD2C,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,CAAC/X,SAAQ,GAAI,IAAI;KACxB;AACDgY,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxH,EAAE,EAAE;AAAA,MAAA,IAAA3P,KAAA,GAAA,IAAA;MACf,IAAI,IAAI,CAACmU,eAAe,EAAE;QACtBiD,QAAQ,CAAC,IAAI,CAAC7C,OAAO,EAAE,IAAI,CAACJ,eAAe,CAAC;AAChD;AAEAK,MAAAA,MAAM,CAAC6C,GAAG,CAAC,SAAS,EAAE1H,EAAE,EAAE,IAAI,CAACtY,SAAS,CAACC,MAAM,CAACggB,MAAM,CAAC/C,OAAO,CAAC;MAC/D6C,QAAQ,CAACzH,EAAE,EAAE;AAAE4H,QAAAA,QAAQ,EAAE,UAAU;AAAEhI,QAAAA,GAAG,EAAE;AAAI,OAAC,CAAC;AAChDiI,MAAAA,gBAAgB,CAAC,IAAI,CAACjD,OAAO,EAAE,IAAI,CAACwC,KAAK,CAAC1e,IAAI,CAAC+H,GAAG,CAAC;MACnD,IAAI,CAACqX,wBAAwB,EAAE;MAC/B,IAAI,CAACC,kBAAkB,EAAE;MACzB,IAAI,CAACC,kBAAkB,EAAE;AAEzB,MAAA,IAAI,CAACvY,oBAAmB,GAAI,UAAClG,CAAC,EAAK;QAC/B,IAAI,CAAC8G,KAAI,CAAC4X,gBAAgB,CAAC1e,CAAC,CAACqI,MAAM,CAAC,EAAE;UAClCvB,KAAI,CAACb,SAAQ,GAAI,IAAI;AACzB;OACH;MAEDoB,eAAe,CAAC0B,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC7C,oBAAoB,CAAC;KACjE;IACDyY,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAAA,MAAA,IAAAC,aAAA;AAClB,MAAA,CAAAA,aAAA,GAAI,IAAA,CAACvD,OAAO,MAAAuD,IAAAA,IAAAA,aAAA,gBAAAA,aAAA,GAAZA,aAAA,CAAcC,UAAU,cAAAD,aAAA,KAAA,MAAA,IAAxBA,aAAA,CAA0BE,SAAS,EAAE;KACxC;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAACxD,aAAa,EAAE;KACvB;AACDyD,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACvI,EAAE,EAAE;AACpB6E,MAAAA,MAAM,CAACjgB,KAAK,CAACob,EAAE,CAAC;KACnB;IACD8E,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAAC0D,0BAA0B,EAAE;MACjC,IAAI,CAACC,oBAAoB,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;MAC3B,IAAI,CAAC9D,OAAQ,GAAE,IAAI;MACnBhU,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;KACnC;AACDkZ,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC3I,EAAE,EAAE;MACX,IAAI,CAAC4E,OAAQ,GAAE5E,EAAE;KACpB;AACDiI,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACrW,MAAM,EAAE;AACrB,MAAA,OAAO,CAAC,IAAI,CAACgX,eAAe,CAAChX,MAAM,CAAA,IAAK,IAAI,CAACgT,OAAQ,IAAG,EAAE,IAAI,CAACA,OAAO,CAACiE,UAAU,CAACjX,MAAM,CAAE,IAAG,IAAI,CAACgT,OAAO,CAACjT,QAAQ,CAACC,MAAM,CAAC,CAAC;KAC9H;AACDgX,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAChX,MAAM,EAAE;AACpB,MAAA,OAAO,IAAI,CAACwV,KAAK,CAAC1e,IAAK,KAAI,IAAI,CAAC0e,KAAK,CAAC1e,IAAI,CAAC+H,GAAG,CAACoY,UAAU,CAACjX,MAAM,CAAE,IAAG,IAAI,CAACwV,KAAK,CAAC1e,IAAI,CAAC+H,GAAG,CAACkB,QAAQ,CAACC,MAAM,CAAC,CAAC;KAC7G;IACDkW,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAApW,MAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACoX,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAqB,GAAE,UAAC1hB,KAAK,EAAK;AACnC,UAAA,IAAIsK,MAAI,CAAC+S,cAAe,IAAG,CAAC/S,MAAI,CAAClC,SAAU,IAAGkC,MAAI,CAACuW,gBAAgB,CAAC7gB,KAAK,CAACwK,MAAM,CAAC,EAAE;YAC/EF,MAAI,CAAC+S,cAAa,GAAI,KAAK;AAC/B;UAEA/S,MAAI,CAAClC,SAAU,GAAE,KAAK;SACzB;QAEDuC,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC8W,oBAAoB,EAAE,IAAI,CAAC;AACvE;KACH;IACDN,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACM,oBAAoB,EAAE;QAC3B/W,QAAQ,CAACG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC4W,oBAAoB,EAAE,IAAI,CAAC;QACtE,IAAI,CAACA,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACtZ,SAAU,GAAE,KAAK;AAC1B;KACH;IACDuY,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA1V,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAC0W,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIC,6BAA6B,CAAC,IAAI,CAAC5B,KAAK,CAAC1e,IAAI,CAAC+H,GAAG,EAAE,YAAM;UAC9E,IAAI4B,MAAI,CAACoS,cAAc,EAAE;YACrBpS,MAAI,CAACoT,IAAI,EAAE;AACf;AACJ,SAAC,CAAC;AACN;AAEA,MAAA,IAAI,CAACsD,aAAa,CAAChB,kBAAkB,EAAE;KAC1C;IACDW,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACK,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAACL,oBAAoB,EAAE;AAC7C;KACH;IACDV,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA/U,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACgW,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIhW,MAAI,CAACwR,cAAa,IAAK,CAACyE,aAAa,EAAE,EAAE;YACzCjW,MAAI,CAACwS,IAAI,EAAE;AACf;SACH;QAED0D,MAAM,CAACnX,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACiX,cAAc,CAAC;AAC1D;KACH;IACDR,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACQ,cAAc,EAAE;QACrBE,MAAM,CAACjX,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC+W,cAAc,CAAC;QACzD,IAAI,CAACA,iBAAiB,IAAI;AAC9B;AACJ;GACH;AACDzhB,EAAAA,QAAQ,EAAE;IACN2f,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC/D,QAAO,KAAM,IAAI,CAACD,OAAQ,KAAI,QAAQ,IAAI,CAACxjB,IAAK,KAAI,SAAQ,GAAI,IAAI,CAAC;KACpF;IACDypB,SAAS,EAAA,SAATA,SAASA,GAAG;AACR,MAAA,OAAO,IAAI,CAACxI,GAAI,GAAE,UAAU;KAC/B;IACDyI,UAAU,EAAA,SAAVA,UAAUA,GAAG;AAAA,MAAA,IAAA1V,MAAA,GAAA,IAAA;MACT,OACI,IAAI,CAACgQ,oBACL,IAAI,CAACjc,SAAS,CAACC,MAAM,CAAC2hB,sBAAsB,CAAC,IAAI,CAAC3pB,IAAI,CAAC,CAAC4pB,GAAG,CAAC,UAACpjB,GAAG,EAAK;QACjE,OAAO;UAAEqjB,KAAK,EAAE7V,MAAI,CAACjM,SAAS,CAACC,MAAM,CAACC,MAAM,CAACzB,GAAG,CAAC;AAAEzG,UAAAA,KAAK,EAAEyG;SAAK;AACnE,OAAC,CAAA;KAER;IACDsjB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC9pB,IAAG,KAAM,SAAQ,IAAK,IAAI,CAAC8jB,cAAe,IAAG,IAAI,CAAC4F,UAAU;KAC3E;IACDK,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,CACH;QAAEF,KAAK,EAAE,IAAI,CAAC9hB,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC+hB,QAAQ;QAAEjqB,KAAK,EAAEkqB,cAAc,CAACC;AAAI,OAAC,EAC3E;QAAEL,KAAK,EAAE,IAAI,CAAC9hB,SAAS,CAACC,MAAM,CAACC,MAAM,CAACkiB,QAAQ;QAAEpqB,KAAK,EAAEkqB,cAAc,CAACG;AAAG,OAAA,CAC5E;KACJ;IACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,OAAO,IAAI,CAACtiB,SAAS,CAACC,MAAM,CAACC,MAAO,GAAE,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACqiB,QAAO,GAAIjpB,SAAS;KAC1F;IACDkpB,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC5G,YAAW,IAAK,IAAI,CAAC9hB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACgV,QAAQ;KAChE;IACDA,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,OAAO,IAAI,CAACxjB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACgV,QAAQ;KAC3C;IACDmF,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;MACf,OAAO,IAAI,CAAC3oB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACiV,eAAe,CAAC,IAAI,CAACzjB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAAC;KAC5E;IACDoa,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAACD,gBAAgB,CAACjd,MAAK,GAAI,CAAC;KAC1C;IACDmd,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAAC3iB,SAAS,CAACC,MAAM,CAACC,SAAS,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC7C,UAAS,GAAI/D,SAAS;KAC5F;IACDspB,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,OAAO,IAAI,CAAC5iB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC9C,OAAM,GAAI9D,SAAS;KACzF;IACDupB,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC7G,aAAc,IAAG,IAAI,CAACliB,OAAO,CAAC,IAAI,CAACwO,KAAK,CAAC,CAACgV,QAAO,IAAK,IAAI,CAACmF,gBAAe,IAAK,IAAI,CAACA,gBAAgB,CAACjd,MAAO,GAAE,IAAI,CAAC0W,cAAc;KAChJ;IACD4G,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC9iB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAChD,KAAI,GAAI5D,SAAS;KACvF;IACDypB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC/iB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC5C,KAAI,GAAIhE,SAAS;KACvF;IACD0pB,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,OAAO,IAAI,CAAChjB,SAAS,CAACC,MAAM,CAACC,MAAO,GAAG,IAAI,CAAC6c,iBAAiB,IAAI,CAAC/c,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC+iB,iBAAiB,IAAI,CAACjjB,SAAS,CAACC,MAAM,CAACC,MAAM,CAACgjB,cAAc,GAAI5pB,SAAS;KACtK;IACD6pB,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAACnjB,SAAS,CAACC,MAAM,CAACC,MAAO,GAAE,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACkjB,iBAAiB9pB,SAAS;KAChG;IACD+pB,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAACrjB,SAAS,CAACC,MAAM,CAACC,SAAS,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACojB,mBAAmBhqB,SAAS;KAClG;IACDiqB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,OAAO;AACHvkB,QAAAA,OAAO,EAAE;AACLwkB,UAAAA,MAAM,EAAE,IAAI,CAACpF,YAAY;AAC7B;OACH;KACJ;IACDqF,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO;AACHzkB,QAAAA,OAAO,EAAE;UACL+d,cAAc,EAAE,IAAI,CAACA,cAAc;AACnC2G,UAAAA,MAAM,EAAE,IAAI,CAACzF,SAAS;AAC1B;OACH;AACL;GACH;AACD3d,EAAAA,UAAU,EAAE;AACRqjB,IAAAA,MAAM,EAANA,MAAM;AACNhU,IAAAA,MAAM,EAANA,MAAM;AACNiU,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,cAAc,EAAdA,cAAc;AACdC,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;GACH;AACDhU,EAAAA,UAAU,EAAE;AACRiU,IAAAA,SAAS,EAAEC;AACf;AACJ,CAAC;;;;;;;;;;;;;;;ECxtBG,OAAAhjB,SAAA,EAAA,EAAAiP,kBAAA,CAiKK,OAjKL7O,UAiKK,CAAA;AAjKC,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,QAAA;KAAoBrN,QAAW,CAAAtC,WAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CAC/BK,MAAQ,CAAA4c,OAAA,KAAA,KAAA,IAAnBta,SAAA,EAAA,EAAAiP,kBAAA,CAEK,OAFL7O,UAEK,CAAA;;AAF0B,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,wBAAA;AAAyC,GAAA,EAAAmC,eAAA,CAAAA,eAAA,CAAAzR,EAAAA,EAAAA,MAAA,CAAAnC,gBAAgB,CAAKoE,EAAAA,QAAW,CAAAtC,WAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAA,EAC7G2C,SAAA,EAAA,EAAAV,WAAA,CAA8GW,wBAA9FvC,MAAa,CAAAsd,aAAA,CAAA,EAAA;IAAG7T,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;IAAG8b,WAAW,EAAEvlB,MAAO,CAAA/E,OAAA,CAAC+E,MAAK,CAAAyJ,KAAA,CAAA;IAAIkX,cAAc,EAAE1e,QAAc,CAAA0e;kGAGrG1e,QAAc,CAAA2e,cAAA,IADxBte,SAAA,EAAA,EAAAV,WAAA,CAgBQiR,mBAhBRnQ,UAgBQ,CAAA;;AAdJyX,IAAAA,GAAG,EAAC,MAAK;IACR,YAAU,EAAElY,QAA2B,CAAAkiB,2BAAA;AACxC,IAAA,eAAa,EAAC,MAAK;IAClB,eAAa,EAAEjkB,KAAc,CAAAge,cAAA;IAC7B,eAAa,EAAEjc,QAAS,CAAA4gB,SAAA;AACxB,IAAA,OAAA,EAAO7gB,IAAE,CAAAsN,EAAA,CAAA,sBAAA,CAAA;IACTpN,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClB2J,IAAAA,OAAK,EAAAoG,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjQ,QAAU,CAAAwd,UAAA,CAACvN,MAAM,CAAA;AAAA,KAAA,CAAA;AACxBN,IAAAA,SAAO,EAAAK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjQ,QAAqB,CAAAyd,qBAAA,CAACxN,MAAM,CAAA;KAAA;GACzB,EAAAT,eAAA,CAAAA,eAAA,KAAAxP,QAAA,CAAAtC,WAAW,CAAyB,sBAAA,EAAAsC,QAAA,CAAA2iB,mBAAmB,CAAM,CAAA,EAAA5kB,MAAA,CAAAlC,iBAAiB,CAACE,MAAK,CAAA,CAAA,EAAA;AAEtFmE,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAwJC,SADlI,EAAA;MAAA,OAAA,EACtBC,SAAA,EAAA,EAAAV,WAAA,CAAwJW,uBAAxI,CAAAvC,MAAA,CAAA2d,uBAAuB1b,QAAA,CAAAmd,SAAS,wCAAhD1c,UAAwJ,CAAA;AAAhE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;iHAIjIK,0BAAmBA,MAAM,CAAA4c,OAAA,KAAA,KAAA,IAAe3a,QAAY,CAAAsd,YAAA,EAAA,IAD9Djd,SAAA,EAAA,EAAAV,WAAA,CAUQiR,mBAVRnQ,UAUQ,CAAA;;AARH,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,2BAAA,CAAA;IACTpN,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClB2J,IAAAA,OAAK;aAAE5J,QAAW,CAAA8c,WAAA,EAAA;KAAA;GACN,EAAAtN,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAxP,QAAA,CAAAtC,WAAW,8BAA8BsC,QAA0B,CAAAyiB,0BAAA,CAAA,CAAM1kB,EAAAA,wBAAiB,CAAC5B,MAAM,CAACC,KAAI,CAAA,CAAA,EAAA;AAExG8D,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAgIC,SAD1G,EAAA;AAAA,MAAA,OAAA,eACtBT,WAAgI,CAAAW,uBAAA,CAAhHvC,MAAwB,CAAA8d,uBAAA,IAAA,iBAAA,CAAA,EAAxCpb,UAAgI,CAAA;AAAjE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;iEAGlH6lB,WAgIQ,CAAAC,iBAAA,EAAA,IAAA,EAAA;uBA/HJ,YAAA;AAAA,MAAA,OA8HY,CA9HZD,WAAA,CA8HYE,YA9HZhjB,UA8HY,CAAA;AA9HA1J,QAAAA,IAAI,EAAC;QAAuB2sB,OAAK,EAAE1jB,QAAc,CAAAgf,cAAA;QAAG2E,YAAW,EAAE3jB,QAAmB,CAAA0f,mBAAA;QAAGkE,OAAK,EAAE5jB,QAAc,CAAA8f,cAAA;QAAG+D,YAAW,EAAE7jB,QAAmB,CAAA+f;SAAU/f,QAAW,CAAAtC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;2BAC5K,YAAA;AAAA,UAAA,OA4HK,CA3HKO,KAAc,CAAAge,cAAA,GADxB3L,cAAA,EAAAjQ,SAAA,EAAA,EAAAiP,kBAAA,CA4HK,OA5HL7O,UA4HK,CAAA;;YA1HAyX,GAAG,EAAElY,QAAU,CAAAmgB,UAAA;YACfpJ,EAAE,EAAE/W,QAAS,CAAA4gB,SAAA;YAEb,YAAU,EAAE3iB,KAAc,CAAAge,cAAA;AAC3B1M,YAAAA,IAAI,EAAC,QAAO;YACX,OAAK,EAAA,CAAGxP,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA,EAAmBtP,MAAe,CAAAge,eAAA,CAAA;AAC5CpM,YAAAA,SAAO;qBAAS3P,QAAI,CAAAid,IAAA,IAAAjd,QAAA,CAAAid,IAAA,CAAAzgB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,aAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA;YACpByD,OAAK;qBAAE5J,QAAc,CAAA6e,cAAA,IAAA7e,QAAA,CAAA6e,cAAA,CAAAriB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,aAAA,CAAA;YACrBoQ,WAAS;qBAAEvW,QAAkB,CAAA+e,kBAAA,IAAA/e,QAAA,CAAA+e,kBAAA,CAAAviB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;aAAA;aACtBnG,QAAW,CAAAtC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,EAEnB2C,SAAA,EAAA,EAAAV,WAAA,CAAqHW,wBAArGvC,MAAoB,CAAAud,oBAAA,CAAA,EAAA;YAAG9T,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;YAAG8b,WAAW,EAAEvlB,MAAO,CAAA/E,OAAA,CAAC+E,MAAK,CAAAyJ,KAAA,CAAA;YAAIkX,cAAc,EAAE1e,QAAc,CAAA0e;oEAClG3gB,MAAQ,CAAA4c,OAAA,KAAA,KAAA,IACpBta,SAAA,EAAA,EAAAiP,kBAAA,CAiBI,MAjBJ7O,UAiBI,CAAA;;AAjBC,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,sBAAA;aAAkCrN,QAAW,CAAAtC,WAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,EACvD2C,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAWIQ,QAVyB,EAAA,IAAA,EAAA+G,UAAA,CAAA7W,QAAA,CAAA6gB,UAAU,EAA3B,UAAAhG,SAAS,EAAExZ,CAAC,EAAA;YADxB,OAAAhB,SAAA,EAAA,EAAAiP,kBAAA,CAWI,MAXJ7O,UAWI,CAAA;cATC9C,GAAG,EAAEkd,SAAS,CAACmG,KAAK;AACpB,cAAA,OAAA,EAAOjhB,IAAE,CAAAsN,EAAA,CAAA,kBAAA,EAAA;AAAuBwN,gBAAAA,SAAQ,EAARA;AAAQ,eAAA,CAAA;AACxCjR,cAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAEqG,MAAA,EAAA;AAAA,gBAAA,OAAAjQ,QAAA,CAAA0d,oBAAoB,CAAC7C,SAAS,CAAC3jB,KAAK,CAAA;eAAA;AAC3CyY,cAAAA,SAAO,EAAA,CAAEK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,gBAAA,OAAAjQ,QAAA,CAAA2d,qBAAqB,CAAC1N,MAAM,CAAA;AAAA,eAAA,CAAA;uBACdjQ,QAAoB,CAAA0d,oBAAA,CAAC7C,SAAS,CAAC3jB,KAAK,CAAA;eAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA;AAC3Dif,cAAAA,QAAQ,EAAE9U,CAAA,KAAA,CAAA,GAAA,GAAA,GAAA,IAAA;;aACH,EAAArB,QAAA,CAAAtC,WAAW,qBAAqBsC,QAA0B,CAAA2c,0BAAA,CAAC9B,SAAS,CAEzE,CAAA,CAAA,EAAAiJ,eAAA,CAAAjJ,SAAS,CAACmG;qBAEjB9K,kBAAA,CAAmG,MAAnGzV,UAAmG,CAAA;AAA9F,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,2BAAA;aAAuCrN,QAAW,CAAAtC,WAAA,CAAA,2BAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAChEwY,kBAAA,CAEI,MAFJzV,UAEI,CAAA;AAFC,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,kBAAA,CAAA;AAAuBzD,YAAAA,OAAK;qBAAE5J,QAAW,CAAA8c,WAAA,EAAA;AAAA,aAAA,CAAA;AAAKnN,YAAAA,SAAO,EAAA,CAAEK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAAjQ,QAAA,CAAA2d,qBAAqB,CAAC1N,MAAM,CAAA;AAAA,aAAA,CAAA;qBAAmBlQ,IAAmB,CAAAgkB,mBAAA,EAAA;AAAA,aAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAY,WAAA,EAAA/jB,QAAA,CAAAtC,WAAW,uCACvJsC,oDAIfsP,kBAwFU,CAAAQ,QAAA,EAAA;AAAAnS,YAAAA,GAAA,EAAA;AAAA,WAAA,EAAA,CAvFKqC,QAAc,CAAA0hB,cAAA,IAAzBrhB,SAAA,EAAA,EAAAiP,kBAAA,CAYK,OAZL7O,UAYK,CAAA;;AAZuB,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,gBAAA;aAA4BrN,QAAW,CAAAtC,WAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CACxE6lB,WAUS,CAAAS,iBAAA,EAAA;YATJvP,OAAO,EAAEzU,QAAe,CAAAkhB,eAAA;YACxBrhB,UAAU,EAAEG,QAAQ,CAAAwc,QAAA;YACpB,YAAU,EAAExc,QAAuB,CAAAqiB,uBAAA;YACnC,wBAAOtiB,IAAE,CAAAsN,EAAA,CAAA,0BAAA,CAAA,CAAA;AACV4W,YAAAA,WAAW,EAAC,OAAM;AAClBC,YAAAA,WAAW,EAAC,OAAM;AACjB,YAAA,qBAAiB,EAAAlU,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjQ,QAAgB,CAAAme,gBAAA,CAAClO,MAAM,CAAA;AAAA,aAAA,CAAA;YAC1ChQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClBvB,YAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,0BAAA;iIAGxBwY,kBAAA,CA+BK,OA/BLzV,UA+BK,CAAA;AA/BC,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,gBAAA;aAA4BrN,QAAW,CAAAtC,WAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,EAClD2C,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CA6BKQ,QA7B+B,EAAA,IAAA,EAAA+G,UAAA,CAAA7W,QAAA,CAAA2hB,gBAAgB,EAAvC,UAAAwC,eAAe,EAAE9iB,CAAC,EAAA;YAA/B,OAAAhB,SAAA,EAAA,EAAAiP,kBAAA,CA6BK,OA7BL7O,UA6BK,CAAA;AA7BkD9C,cAAAA,GAAG,EAAE0D,CAAC;AAAG,cAAA,OAAA,EAAOtB,IAAE,CAAAsN,EAAA,CAAA,YAAA,CAAA;;eAAwBrN,QAAW,CAAAtC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAE9FsC,QAAgB,CAAAihB,gBAAA,iBAD1BthB,WAWS,CAAAqkB,iBAAA,EAAA;;cATJvP,OAAO,EAAEzU,QAAU,CAAA6gB,UAAA;cACnBhhB,UAAU,EAAEskB,eAAe,CAACtJ,SAAS;cACrC,wBAAO9a,IAAE,CAAAsN,EAAA,CAAA,4BAAA,CAAA,CAAA;AACV4W,cAAAA,WAAW,EAAC,OAAM;AAClBC,cAAAA,WAAW,EAAC,OAAM;cACjB,YAAU,EAAElkB,QAAmB,CAAAuiB,mBAAA;AAC/B,cAAA,qBAAiB,EAAE,SAAnB6B,kBAAiBA,CAAEnU,MAAA,EAAA;AAAA,gBAAA,OAAAjQ,QAAA,CAAAoe,qBAAqB,CAACnO,MAAM,EAAE5O,CAAC,CAAA;eAAA;cAClDpB,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClBvB,cAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,4BAAA;oJAEHK,MAAM,CAAA4c,OAAA,KAAA,MAAA,IAAvBta,SAAA,EAAA,EAAAV,WAAA,CAAoKW,wBAA1HvC,MAAa,CAAAsd,aAAA,CAAA,EAAA;;cAAG7T,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;AAAG8b,cAAAA,WAAW,EAAEa,eAAe;cAAGzF,cAAc,EAAE1e,QAAc,CAAA0e,cAAA;cAAGxB,WAAW,EAAEld,QAAW,CAAAkd;oHACtJld,QAAc,CAAA4hB,cAAA,IAAzBvhB,SAAA,EAAA,EAAAiP,kBAAA,CAcK,OAdL7O,UAcK,CAAA;;;eAd8BT,QAAW,CAAAtC,WAAA,CAAA,cAAA,CAAA,CAAA,EAAA,CAC1C6lB,WAAA,CAYQ3S,mBAZRnQ,UAYQ,CAAA;AAXJtJ,cAAAA,IAAI,EAAC,QAAO;AACX,cAAA,OAAA,EAAO4I,IAAE,CAAAsN,EAAA,CAAA,0BAAA,CAAA;AACTzD,cAAAA,OAAK,EAAA,SAALA,OAAKA,CAAAqG,MAAA,EAAA;AAAA,gBAAA,OAAEjQ,QAAgB,CAAAwe,gBAAA,CAACnd,CAAC,CAAA;eAAA;cACzB2f,KAAK,EAAEhhB,QAAqB,CAAA6hB,qBAAA;cAC5B5hB,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;;eACXlC,MAAiB,CAAAlC,iBAAA,CAACQ,OAAO,CAACE,UAAU,EAAA;AAC3CmC,cAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,0BAAA;;AAELwC,cAAAA,IAAI,EAAAC,OAAA,CACX,UAA4IkkB,SADtH,EAAA;AAAA,gBAAA,OAAA,eACtB1kB,WAA4I,CAAAW,uBAAA,CAA5HvC,MAAuB,CAAA6d,wBAAA,IAAA,WAAA,CAAA,EAAvCnb,UAA4I,CAAA;AAAlF,kBAAA,OAAA,EAAO4jB,SAAS,CAAM,OAAA,CAAA;;mBAAUrkB,QAAW,CAAAtC,WAAA,CAAA,0BAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;;2BAM9GsC,QAAmB,CAAA+hB,mBAAA,IAA9B1hB,SAAA,EAAA,EAAAiP,kBAAA,CAeK;;aAfmCtP,QAAW,CAAAtC,WAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAA,CAC/C6lB,WAAA,CAaQ3S,mBAbRnQ,UAaQ,CAAA;AAZJtJ,YAAAA,IAAI,EAAC,QAAO;YACX6pB,KAAK,EAAEhhB,QAAkB,CAAA8hB,kBAAA;AAC1BwC,YAAAA,OAAO,EAAC,MAAK;AACZ,YAAA,OAAA,EAAOvkB,IAAE,CAAAsN,EAAA,CAAA,uBAAA,CAAA;AACTzD,YAAAA,OAAK;qBAAE5J,QAAa,CAAAqe,aAAA,EAAA;AAAA,aAAA,CAAA;YACpBpe,QAAQ,EAAEF,IAAQ,CAAAE;aACXlC,MAAiB,CAAAlC,iBAAA,CAACQ,OAAO,CAACC,OAAO,EAAA;AACxCoC,YAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,uBAAA;;AAELwC,YAAAA,IAAI,EAAAC,OAAA,CACX,UAAqIkkB,SAD/G,EAAA;AAAA,cAAA,OAAA,eACtB1kB,WAAqI,CAAAW,uBAAA,CAArHvC,MAAsB,CAAA4d,qBAAA,IAAA,UAAA,CAAA,EAAtClb,UAAqI,CAAA;AAA/E,gBAAA,OAAA,EAAO4jB,SAAS,CAAA,OAAA;iBAAgBrkB,QAAW,CAAAtC,WAAA,CAAA,uBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;8FAI7GwY,kBAAA,CAyBK,OAzBLzV,UAyBK,CAAA;AAzBC,YAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,iBAAA;aAA6BrN,QAAW,CAAAtC,WAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,CAExC,CAAAK,MAAA,CAAAyd,mBAAkB,IAAKzd,MAAe,CAAAgd,eAAA,IADjD1a,SAAA,EAAA,EAAAV,WAAA,CASSiR,mBATTnQ,UASS,CAAA;;AAPLtJ,YAAAA,IAAI,EAAC,QAAO;AACX,YAAA,OAAA,EAAO4I,IAAE,CAAAsN,EAAA,CAAA,qBAAA,CAAA;YACT2T,KAAK,EAAEhhB,QAAgB,CAAAgiB,gBAAA;YACvBpY,OAAK,EAAE5J,QAAW,CAAA8c,WAAA;YAClB7c,QAAQ,EAAEF,IAAQ,CAAAE;aACXlC,MAAiB,CAAAlC,iBAAA,CAACQ,OAAO,CAACD,KAAK,EAAA;AACtCsC,YAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,qBAAA;6EAEpB2C,SAAA,EAAA,EAAAV,WAAA,CAAwHW,wBAAjGvC,MAAmB,CAAAyd,mBAAA,CAAA,EAAA;;YAAGhU,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;YAAG8b,WAAW,EAAEvlB,MAAO,CAAA/E,OAAA,CAAC+E,MAAK,CAAAyJ,KAAA,CAAA;YAAIkX,cAAc,EAAE1e,QAAW,CAAA8c;oEACrG/e,MAAe,CAAAid,eAAA,iBAA/B1L,kBAYU,CAAAQ,QAAA,EAAA;AAAAnS,YAAAA,GAAA,EAAA;AAAA,WAAA,EAAA,EAVKI,MAAmB,CAAA0d,mBAAA,IAD9Bpb,SAAA,EAAA,EAAAV,WAAA,CASSiR,mBATTnQ,UASS,CAAA;;AAPLtJ,YAAAA,IAAI,EAAC,QAAO;AACX,YAAA,OAAA,EAAO4I,IAAE,CAAAsN,EAAA,CAAA,qBAAA,CAAA;YACT2T,KAAK,EAAEhhB,QAAgB,CAAAiiB,gBAAA;AACvBrY,YAAAA,OAAK;qBAAE5J,QAAW,CAAAkd,WAAA,EAAA;AAAA,aAAA,CAAA;YAClBjd,QAAQ,EAAEF,IAAQ,CAAAE;aACXlC,MAAiB,CAAAlC,iBAAA,CAACQ,OAAO,CAACG,KAAK,EAAA;AACtCkC,YAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,qBAAA;kEAEpB2C,SAAA,EAAA,EAAAV,WAAA,CAAwHW,wBAAjGvC,MAAmB,CAAA0d,mBAAA,CAAA,EAAA;;YAAGjU,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;YAAG8b,WAAW,EAAEvlB,MAAO,CAAA/E,OAAA,CAAC+E,MAAK,CAAAyJ,KAAA,CAAA;YAAIkX,cAAc,EAAE1e,QAAW,CAAAkd;wHAIjI7c,SAAA,EAAA,EAAAV,WAAA,CAAqHW,wBAArGvC,MAAoB,CAAAwd,oBAAA,CAAA,EAAA;YAAG/T,KAAK,EAAEzJ,MAAK,CAAAyJ,KAAA;YAAG8b,WAAW,EAAEvlB,MAAO,CAAA/E,OAAA,CAAC+E,MAAK,CAAAyJ,KAAA,CAAA;YAAIkX,cAAc,EAAE1e,QAAc,CAAA0e;;;;;;;;;;;;AC/ItI,eAAe;AACX3nB,EAAAA,IAAI,EAAE,gBAAgB;AACtBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHoG,IAAAA,OAAO,EAAE,IAAI;AACbc,IAAAA,QAAQ,EAAE,IAAI;AACdb,IAAAA,MAAM,EAAE,IAAI;AACZinB,IAAAA,0BAA0B,EAAE;AACxBptB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAS,EAAA;AACb;GACH;AACDkG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLb,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBc,QAAQ,EAAE,IAAI,CAACA;AACnB;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAE;AACjBC,QAAAA,aAAa,EAAEF,KAAK;QACpBvB,OAAO,EAAE,CAAC,IAAI,CAACA;AACnB,OAAC,CAAC;AACN;GACH;AACD2B,EAAAA,QAAQ,EAAE;IACNwlB,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAACtlB,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAK,GAAG,IAAI,CAAChC,OAAQ,GAAE,IAAI,CAAC6B,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC3F,SAAU,GAAE,IAAI,CAACwF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAColB,WAAW,GAAIjsB,SAAS;AACvK;GACH;AACDgH,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;AACJ;AACJ,CAAC;;;;sBChEGC,WAKU,CAAAC,mBAAA,EAAA;IALCC,UAAU,EAAE9B,MAAO,CAAAV,OAAA;AAAGyC,IAAAA,MAAM,EAAE,IAAI;IAAG3B,QAAQ,EAAEJ,MAAQ,CAAAI,QAAA;IAAG,YAAU,EAAE6B,QAAuB,CAAAwkB,uBAAA;IAAG7lB,QAAM,EAAEqB,QAAQ,CAAArB,QAAA;IAAGsB,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAAGvB,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,kBAAA;;;;;;AC0DtK,eAAe;AACX3G,EAAAA,IAAI,EAAE,kBAAkB;AACxBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACxJnG,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDitB,IAAAA,eAAe,EAAE;AACbvtB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoZ,IAAAA,KAAK,EAAE;AACH9Z,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD8iB,IAAAA,OAAO,EAAE;AACLxjB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6jB,IAAAA,YAAY,EAAE;AACV3kB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDqE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;AACb;GACH;EACD4H,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHqI,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACDlK,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACjL,MAAM,EAAEgL,IAAI,CAAC;KACzC;AACD5K,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAI,CAAC,IAAI,CAACL,MAAM,EAAE,OAAO,IAAI;AAE7B,MAAA,IAAMM,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA;AAChB;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAE,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAElG,SAAS,CAAE;KACxF;IACDmP,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIgF,KAAM,GAAE,IAAI,CAAChF,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAIgF,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIxI,IAAK,GAAEyI,qBAAqB,CAAC,IAAI,CAAC3E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAI9D,IAAI,EAAE;AACNwI,YAAAA,GAAE,GAAIE,aAAa,CAAC1I,IAAI,IAAI2I,UAAU,CAAC3I,IAAI,CAACrH,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC2F,cAAe,GAAEJ,GAAE,GAAI,IAAI;AAChD,SAAE,MAAK;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAInH,IAAK,GAAEwH,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAIzC,IAAI,EAAE;AACNmH,YAAAA,IAAE,GAAIE,aAAa,CAACrH,IAAI,CAAA,GAAIsH,UAAU,CAACtH,IAAI,CAAC1I,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC6F,gBAAiB,GAAEN,IAAE,GAAI,IAAI;AAClD;AACJ;AACJ;GACH;AACD3N,EAAAA,QAAQ,EAAE;IACN2lB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,OAAO,CAAC,IAAI,CAACtX,EAAE,CAAC,YAAY,EAAE;QAAE/P,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC,EAAE,IAAI,CAACoK,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1H;IACDkd,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,OAAO,IAAI,CAACld,UAAU,CAAC,QAAQ,CAAE,GAAE,CAAC,IAAI,CAACA,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAACN,WAAW,CAAA,GAAI,CAAC,IAAI,CAACM,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5L;GACH;AACDlI,EAAAA,UAAU,EAAE;AACRqlB,IAAAA,gBAAgB,EAAEC,QAAc;AAChCC,IAAAA,cAAc,EAAEC;AACpB;AACJ,CAAC;;;;;;;;;;;;ACzLc,EAAA,OAAA,CAAAhlB,QAAA,CAAA0H,UAAU,CAAe,QAAA,CAAA,KAAA3J,MAAA,CAAA1D,YAAa,KAAmB,WAAA,IAAA0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAU,CAAA0H,UAAA,CAAA,OAAA,CAAA,CAAA,IAD9FrH,SAAA,EAAA,EAAAiP,kBAAA,CA+CI,MA/CJ7O,UA+CI,CAAA;;IA7CC3D,KAAK,EAAEkD,QAA0B,CAAA4kB,0BAAA;AACjC,IAAA,OAAA,EAAO5kB,QAA0B,CAAA2kB;AACrB,GAAA,EAAAnV,eAAA,CAAAA,eAAA,CAAAxP,EAAAA,EAAAA,QAAA,CAAAtC,WAAW,WAAasC,QAAW,CAAAtC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AAC/C,IAAA,sBAAoB,EAAEsC,QAAU,CAAA0H,UAAA,CAAA,QAAA;OAET1H,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA,KAAA,UAAA,iBAAlC/H,WAA4M,CAAAslB,2BAAA,EAAA;;IAAvI5nB,OAAO,EAAEU,MAAe,CAAA2mB,eAAA;IAAGvmB,QAAQ,EAAEJ,MAAK,CAAAkT,KAAA;AAAGtS,IAAAA,QAAM,EAAAqR,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,KAAA,CAAA;IAAI3S,MAAM,EAAES,MAAM,CAAAT,MAAA;IAAG2C,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAAGvB,EAAE,EAAEqB,IAAE,CAAArB;oGAE/LX,MAAA,CAAAT,MAAM,CAACyL,QAAS,IAAGhL,aAAM,CAACgL,QAAQ,CAAChN,MAAM,iBADnD4D,WAsCC,CAAAulB,yBAAA,EAAA;;AApCI1d,IAAAA,KAAK,EAAExH,QAAU,CAAA0H,UAAA,CAAA,aAAA,CAAA,IAAmB1H,QAAU,CAAA0H,UAAA,CAAA,OAAA,CAAA;AAC9CvQ,IAAAA,IAAI,EAAE6I,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA;AACjBiT,IAAAA,OAAO,EAAC,KAAI;AACXC,IAAAA,QAAQ,EAAE5a,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA;AACpB2T,IAAAA,aAAa,EAAEtd,aAAM,CAACgL,QAAS,IAAGhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAChN,MAAM;AACxDuf,IAAAA,oBAAoB,EAAEvd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACoc,YAAY;AACrE5J,IAAAA,oBAAoB,EAAExd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACqc,YAAY;AACrE5J,IAAAA,mBAAmB,EAAEzd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACsc,WAAW;AACnE5J,IAAAA,mBAAmB,EAAE1d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACuc,WAAW;AACnE5J,IAAAA,kBAAkB,EAAE3d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACwc,UAAU;AACjE5J,IAAAA,qBAAqB,EAAE5d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACyc,aAAa;AACvE5J,IAAAA,wBAAwB,EAAE7d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC0c,gBAAgB;AAC7E5J,IAAAA,uBAAuB,EAAE9d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC2c,eAAe;IAC3E1sB,OAAO,EAAE+E,MAAO,CAAA/E,OAAA;IAChB8iB,YAAY,EAAE/d,MAAY,CAAA+d,YAAA;IAC1BlgB,gBAAgB,EAAEmC,MAAgB,CAAAnC,gBAAA;IAClCC,iBAAiB,EAAEkC,MAAiB,CAAAlC,iBAAA;AACpC8pB,IAAAA,cAAa,EAAA3V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAC5C2V,IAAAA,aAAY;aAAE7lB,IAAK,CAAAlB,KAAA,CAAA,cAAA,CAAA;AAAA,KAAA,CAAA;AACnBmd,IAAAA,eAAe,EAAEhc,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BqU,IAAAA,eAAe,EAAE/b,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BoT,IAAAA,YAAY,EAAE9a,QAAU,CAAA0H,UAAA,CAAA,oBAAA,CAAA;AACxBqT,IAAAA,eAAe,EAAE/a,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BsT,IAAAA,eAAe,EAAEhb,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BuT,IAAAA,cAAc,EAAEjb,QAAU,CAAA0H,UAAA,CAAA,sBAAA,CAAA;AAC1BwT,IAAAA,aAAa,EAAElb,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA;AACzByT,IAAAA,gBAAgB,EAAEnb,QAAU,CAAA0H,UAAA,CAAA,wBAAA,CAAA;AAC5B0T,IAAAA,cAAc,EAAEpb,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA;AAC1ByW,IAAAA,gBAAe,EAAAnO,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAChD4V,IAAAA,iBAAgB,EAAA7V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAClD6V,IAAAA,eAAc,EAAA9V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAC9C8V,IAAAA,kBAAiB,EAAA/V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,mBAAA,EAAsBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AACpD+V,IAAAA,YAAW,EAAAhW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,KAAA,CAAA;IACxC3S,MAAM,EAAES,MAAM,CAAAT,MAAA;IACd2C,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;;;;;ACmDnB,eAAe;AACX3H,EAAAA,IAAI,EAAE,YAAY;AAClBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAY,CACf;AACDnG,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDyC,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDuB,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD2uB,IAAAA,iBAAiB,EAAE;AACf9uB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDkB,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDstB,IAAAA,eAAe,EAAE;AACbvtB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoZ,IAAAA,KAAK,EAAE;AACH9Z,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6jB,IAAAA,YAAY,EAAE;AACV3kB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDiuB,IAAAA,YAAY,EAAE;AACV/uB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoC,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD+D,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;AACb;GACH;EACD4H,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHqI,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACDlK,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACjL,MAAM,EAAEgL,IAAI,CAAC;KACzC;AACD5K,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAA6K,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAM7K,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjB2oB,UAAAA,QAAQ,EAAE,IAAI,CAACze,UAAU,CAAC,UAAU,CAAE,KAAI,EAAC,IAAK,IAAI,CAACA,UAAU,CAAC,UAAU,CAAC;AAC3E0e,UAAAA,MAAM,EAAE,IAAI,CAACC,cAAc,EAAE;UAC7BC,SAAS,EAAE,IAAI,CAACvsB,gBAAgB;AAChCyB,UAAAA,IAAI,GAAAgN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,MAAA,IAAA,IAAAsL,qBAAA,KAArCA,MAAAA,GAAAA,MAAAA,GAAAA,qBAAA,CAAuChN,IAAI;UACjDH,aAAa,EAAE,EAAAoN,sBAAA,GAAA,IAAI,CAACvL,eAAe,MAAA,IAAA,IAAAuL,sBAAA,KAAAA,MAAAA,IAAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBvL,eAAe,MAAAuL,IAAAA,IAAAA,sBAAA,uBAArCA,sBAAA,CAAuCpN,kBAAiB;AAC3E;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIC,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDoR,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAAChL,KAAK,EAAE;AACX,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC5E;AACD8M,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACxL,KAAK,EAAE;AACb,MAAA,IAAI,CAACA,KAAK,CAACyL,IAAG,KAAM,OAAQ,IAAGzL,KAAK,CAACyL,IAAG,KAAM,aAAc,IAAGzL,KAAK,CAACyL,IAAG,KAAM,OAAO,KAAKzL,KAAK,CAAC2nB,aAAa,CAACC,QAAO,KAAM,IAAK,IAAG9a,YAAY,CAAC9M,KAAK,CAAC2nB,aAAa,EAAE,wBAAwB,CAAC,EAAE;AAC5L,QAAA,IAAI,CAAC1nB,KAAK,CAAC,cAAc,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,SAAC,CAAC;QACzEsB,KAAK,CAACuL,cAAc,EAAE;AAC1B;KACH;AACDsc,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAAC7nB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDopB,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAAC9nB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDqpB,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC/nB,KAAK,EAAE;AACd,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC/E;AACDspB,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAAChoB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDsZ,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAAChY,KAAK,EAAE;AACV,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC3E;AACDupB,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACjoB,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;IACDkoB,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AAAA,MAAA,IAAAjf,KAAA,GAAA,IAAA;AACpB,MAAA,OAAO,IAAI,CAAChP,aAAa,CAACoa,SAAS,CAAC,UAAC8T,IAAI,EAAA;QAAA,OAAKA,IAAI,CAACvf,KAAM,KAAIK,KAAI,CAACH,UAAU,CAAC,OAAO,CAAE,IAAGqf,IAAI,CAACvf,KAAM,KAAIK,KAAI,CAACH,UAAU,CAAC,WAAW,CAAC;OAAC,CAAA;KACxI;IACDsf,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,IAAIxpB,KAAI,GAAI,IAAI,CAACspB,qBAAqB,EAAE;MAExC,OAAO,IAAI,CAACxsB,WAAY,IAAG,IAAI,CAACA,WAAY,KAAI,IAAI,CAAC2rB,qBAAqBzoB,KAAI,GAAI,EAAC,GAAIA,KAAI,GAAIA,KAAI,GAAI,CAAC;KAC3G;IACDypB,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnuB,QAAS,KAAI,UAAS,IAAK,IAAI,CAAC4O,UAAU,CAAC,UAAU,CAAE,IAAG,IAAI,CAACof,qBAAqB,EAAG,GAAE,EAAE;KAC1G;IACDT,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAACvtB,QAAO,KAAM,QAAS,GAAE,IAAI,CAACL,SAAU,KAAI,IAAI,CAACA,cAAc,IAAI,CAACiP,UAAU,CAAC,OAAO,CAAA,IAAK,IAAI,CAACjP,SAAU,KAAI,IAAI,CAACiP,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAACuf,aAAa,EAAE;KAChL;IACDtf,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIgF,KAAM,GAAE,IAAI,CAAChF,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAIgF,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIxI,IAAK,GAAEyI,qBAAqB,CAAC,IAAI,CAAC3E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAI9D,IAAI,EAAE;AACNwI,YAAAA,GAAE,GAAIE,aAAa,CAAC1I,IAAI,IAAI2I,UAAU,CAAC3I,IAAI,CAACrH,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC2F,cAAe,GAAEJ,GAAE,GAAI,IAAI;AAChD,SAAE,MAAK;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAInH,IAAK,GAAEwH,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAIzC,IAAI,EAAE;AACNmH,YAAAA,IAAE,GAAIE,aAAa,CAACrH,IAAI,CAAA,GAAIsH,UAAU,CAACtH,IAAI,CAAC1I,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAACsK,WAAW,CAAC6F,gBAAiB,GAAEN,IAAE,GAAI,IAAI;AAClD;QAEA,IAAIua,SAAU,GAAE,IAAI,CAACjf,GAAG,CAAC0D,aAAa,CAACM,kBAAkB;AAEzD,QAAA,IAAIib,SAAS,EAAE;AACX,UAAA,IAAI1pB,KAAM,GAAE2pB,QAAQ,CAAC,IAAI,CAAClf,GAAG,CAAC;AAE9B,UAAA,IAAIif,SAAS,CAACne,QAAQ,CAACvL,KAAK,CAAC,EAAE;AAC3B0pB,YAAAA,SAAS,CAACne,QAAQ,CAACvL,KAAK,CAAC,CAACV,KAAK,CAAC,oBAAoB,CAAE,GAAE,IAAI,CAACsK,WAAW,CAAC,oBAAoB,CAAC;AAC9F8f,YAAAA,SAAS,CAACne,QAAQ,CAACvL,KAAK,CAAC,CAACV,KAAK,CAAC,kBAAkB,CAAE,GAAE,IAAI,CAACsK,WAAW,CAAC,kBAAkB,CAAC;AAC9F;AACJ;AACJ;KACH;AACDggB,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACxoB,KAAK,EAAE;AAC1B,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;AACxC;GACH;AACDI,EAAAA,QAAQ,EAAE;IACNoO,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,CAAC,IAAI,CAACC,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC6Y,YAAa,GAAE,IAAI,CAACxe,UAAU,CAAC,mBAAmB,CAAE,GAAE,IAAI,CAACA,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;KACtJ;IACD4F,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAI+Z,WAAU,GAAI,IAAI,CAACnB,YAAa,GAAE,IAAI,CAACxe,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAACA,UAAU,CAAC,aAAa,CAAC;AAC3G,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,IAAI,CAAC8F,WAAW,EAAE6Z,WAAW,EAAE,IAAI,CAACjgB,WAAW,CAAE,GAAE,CAACoG,WAAW,EAAE6Z,WAAW,CAAC;KAC/G;IACDC,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIlB,MAAK,GAAI,KAAK;MAClB,IAAI1tB,SAAU,GAAE,IAAI;AAEpB,MAAA,IAAI,IAAI,CAACI,QAAS,KAAI,QAAQ,EAAE;QAC5BstB,MAAK,GAAI,IAAI,CAAC3tB,cAAc,IAAI,CAACA,SAAU,KAAI,IAAI,CAACiP,UAAU,CAAC,OAAO,CAAE,IAAG,IAAI,CAACjP,SAAQ,KAAM,IAAI,CAACiP,UAAU,CAAC,WAAW,CAAC,CAAC;AAC3HhP,QAAAA,SAAQ,GAAI0tB,MAAK,GAAI,IAAI,CAAC1tB,SAAQ,GAAI,CAAC;AAC3C,OAAA,MAAO,IAAI,IAAI,CAACI,QAAO,KAAM,UAAU,EAAE;AACrC,QAAA,IAAIyuB,YAAY,IAAI,CAACT,qBAAqB,EAAE;AAE5C,QAAA,IAAIS,SAAQ,GAAI,EAAE,EAAE;AAChBnB,UAAAA,SAAS,IAAI;UACb1tB,SAAU,GAAE,IAAI,CAACG,aAAa,CAAC0uB,SAAS,CAAC,CAACC,KAAK;AACnD;AACJ;MAEA,OAAO;AACHpB,QAAAA,MAAM,EAANA,MAAM;AACN1tB,QAAAA,SAAQ,EAARA;OACH;KACJ;IACD+uB,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAAC,eAAA,GAA8B,IAAI,CAACJ,SAAS;QAApClB,MAAM,GAAAsB,eAAA,CAANtB,MAAM;QAAE1tB,4BAAAA;MAEhB,IAAI,CAAC0tB,MAAM,EAAE,OAAOuB,WAAW,CAAA,KAC1B,IAAIvB,UAAU1tB,SAAQ,GAAI,CAAC,EAAE,OAAOkvB,mBAAmB,CAAA,KACvD,IAAIxB,UAAU1tB,SAAU,GAAE,CAAC,EAAE,OAAOmvB,kBAAkB;AAE3D,MAAA,OAAO,IAAI;KACd;IACDC,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAI,IAAI,CAACpgB,UAAU,CAAC,UAAU,CAAC,EAAE;AAC7B,QAAA,IAAAqgB,gBAAA,GAA8B,IAAI,CAACT,SAAS;UAApClB,MAAM,GAAA2B,gBAAA,CAAN3B,MAAM;UAAE1tB,6BAAAA;QAEhB,IAAI0tB,MAAK,IAAK1tB,SAAQ,GAAI,CAAC,EAAE,OAAO,YAAY,CAAA,KAC3C,IAAI0tB,MAAK,IAAK1tB,SAAQ,GAAI,CAAC,EAAE,OAAO,WAAW,CAAA,KAC/C,OAAO,MAAM;AACtB,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;AACJ;GACH;AACD8G,EAAAA,UAAU,EAAE;AACRwoB,IAAAA,KAAK,EAALA,KAAK;AACLnD,IAAAA,gBAAgB,EAAEC,QAAc;AAChCC,IAAAA,cAAc,EAAEC,QAAY;AAC5B2C,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxCC,IAAAA,kBAAkB,EAAEA;AACxB;AACJ,CAAC;;;;;;;;;;;;;ECvXG,OAAAxnB,SAAA,EAAA,EAAAiP,kBAAA,CAiFI,MAjFJ7O,UAiFI,CAAA;IAhFC3D,KAAK,EAAEkD,QAAc,CAAAsN,cAAA;IACrB,OAAOtN,EAAAA,QAAc,CAAAoN,cAAA;IACrB+I,QAAQ,EAAEnW,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA,GAAA,GAAA,GAAA,IAAA;AACrB6H,IAAAA,IAAI,EAAC,cAAa;AACjBE,IAAAA,OAAO,EAAEzP,QAAU,CAAA0H,UAAA,CAAA,SAAA,CAAA;AACnBgI,IAAAA,OAAO,EAAE1P,QAAU,CAAA0H,UAAA,CAAA,SAAA,CAAA;IACnB,WAAS,EAAE1H,QAAQ,CAAA8nB,QAAA;IACnBle,OAAK;aAAE5J,QAAO,CAAA4J,OAAA,IAAA5J,QAAA,CAAA4J,OAAA,CAAApN,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACdwJ,SAAO;aAAE3P,QAAS,CAAAoK,SAAA,IAAApK,QAAA,CAAAoK,SAAA,CAAA5N,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IAClBoQ,WAAS;aAAEvW,QAAW,CAAAymB,WAAA,IAAAzmB,QAAA,CAAAymB,WAAA,CAAAjqB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACtBqQ,WAAS;aAAExW,QAAW,CAAA0mB,WAAA,IAAA1mB,QAAA,CAAA0mB,WAAA,CAAAlqB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACtBsQ,UAAQ;aAAEzW,QAAU,CAAA2mB,UAAA,IAAA3mB,QAAA,CAAA2mB,UAAA,CAAAnqB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACpBuQ,WAAS;aAAE1W,QAAW,CAAA4mB,WAAA,IAAA5mB,QAAA,CAAA4mB,WAAA,CAAApqB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;AAAA,KAAA,CAAA;IACtByQ,MAAI;aAAE5W,QAAM,CAAA4W,MAAA,IAAA5W,QAAA,CAAA4W,MAAA,CAAApa,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;KAAA;AACA,GAAA,EAAAqJ,eAAA,CAAAA,eAAA,CAAAxP,EAAAA,EAAAA,QAAA,CAAAtC,WAAW,WAAasC,QAAW,CAAAtC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AAC/C,IAAA,wBAAsB,EAAEsC,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA;IAClC,yBAAuB,EAAE3J,MAAgB,CAAAhE,gBAAA;AACzC,IAAA,eAAa,EAAEiG,QAAc,CAAAqmB,cAAA,EAAA;IAC7B,sBAAoB,EAAEtoB,MAAY,CAAAmoB,YAAA;AAClC,IAAA,sBAAoB,EAAElmB,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA;IAChC,2BAAyB,EAAE3J,MAAkB,CAAA9D;OAElC8D,MAAA,CAAAhE,gBAAiB,KAAIiG,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA,IAA3CrH,SAAA,EAAA,EAAAiP,kBAAA,CAA2J,QAA3J7O,UAA2J,CAAA;;AAAnG,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,eAAA,CAAA;IAAoBkJ,WAAS;aAAEvW,QAAa,CAAA6mB,aAAA,IAAA7mB,QAAA,CAAA6mB,aAAA,CAAArqB,KAAA,CAAAwD,QAAA,EAAAmG,SAAA,CAAA;KAAA;KAAUnG,QAAW,CAAAtC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAClIwY,kBAAA,CAwDK,OAxDLzV,UAwDK,CAAA;AAxDC,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,qBAAA;KAAiCrN,QAAW,CAAAtC,WAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,CACtCK,MAAA,CAAAT,MAAM,CAACyL,YAAYhL,aAAM,CAACgL,QAAQ,CAACkf,MAAM,IAA1D5nB,SAAA,EAAA,EAAAV,WAAA,CAA2GW,uBAA1C,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACkf,MAAM,CAAA,EAAA;;IAAG3qB,MAAM,EAAES,MAAM,CAAAT;2DAC5F0C,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA,IAAtBrH,SAAA,EAAA,EAAAiP,kBAAA,CAAiI,QAAjI7O,UAAiI,CAAA;;AAA9F,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,aAAA;GAAyB,EAAArN,QAAA,CAAAtC,WAAW,kCAAoBsC,QAAU,CAAA0H,UAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA,kCAClG1H,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA,IAAtBrH,SAAA,EAAA,EAAAiP,kBAAA,CAEM;;KAFsCtP,QAAW,CAAAtC,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,EACnD2C,SAAA,EAAA,EAAAV,WAAA,CAA2MW,uBAA1L,CAAAvC,MAAA,CAAAT,MAAM,CAACyL,QAAS,IAAGhL,MAAA,CAAAT,MAAM,CAACyL,QAAQ,CAACmf,QAAQ,IAAKloB,QAAA,CAAAynB,kBAAkB,GAAnFhnB,UAA2M,CAAA;AAArH2lB,IAAAA,MAAM,EAAEpmB,QAAS,CAAAsnB,SAAA,CAAClB,MAAM;AAAG1tB,IAAAA,SAAS,EAAEsH,QAAS,CAAAsnB,SAAA,CAAC5uB,SAAS;AAAG,IAAA,OAAA,EAAOqH,IAAE,CAAAsN,EAAA,CAAA,UAAA;KAAsBrN,QAAW,CAAAtC,WAAA,CAAA,UAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,OAAA,CAAA,CAAA,yCAEnLsC,QAAa,CAAAinB,aAAA,EAAA,iBAA1BtnB,WAAiI,CAAAwoB,gBAAA,EAAA;;IAAlG,wBAAOpoB,IAAE,CAAAsN,EAAA,CAAA,aAAA,CAAA,CAAA;AAAkB3O,IAAAA,EAAE,EAAEsB,QAAW,CAAAtC,WAAA,CAAA,aAAA,CAAA;AAAkBxG,IAAAA,KAAK,EAAE8I,QAAa,CAAAgnB,aAAA,EAAA;AAAIxrB,IAAAA,IAAI,EAAC;yEAE9GwE,QAAA,CAAA0H,UAAU,oCAAoC3J,MAAY,CAAA9E,aAAA,KAAA,KAAA,iBADpE0G,WASC,CAAAslB,2BAAA,EAAA;;IAPI5nB,OAAO,EAAEU,MAAe,CAAA2mB,eAAA;IACxB/lB,QAAM,EAAEqB,QAAsB,CAAAonB,sBAAA;IAC9BjpB,QAAQ,EAAEJ,MAAK,CAAAkT,KAAA;AACfsT,IAAAA,0BAA0B,EAAExmB,aAAM,CAACgL,QAAS,IAAGhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACqf,kBAAkB;IACjF9qB,MAAM,EAAES,MAAM,CAAAT,MAAA;IACd2C,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClBvB,EAAE,EAAEqB,IAAE,CAAArB;8IAGDX,MAAc,CAAA9E,aAAA,KAAA,MAAA,IAAc8E,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAChN,MAAM,iBAD/E4D,WAsCC,CAAAulB,yBAAA,EAAA;;AApCI1d,IAAAA,KAAK,EAAExH,QAAU,CAAA0H,UAAA,CAAA,aAAA,CAAA,IAAmB1H,QAAU,CAAA0H,UAAA,CAAA,OAAA,CAAA;AAC9CvQ,IAAAA,IAAI,EAAE6I,QAAU,CAAA0H,UAAA,CAAA,UAAA,CAAA;AACjBiT,IAAAA,OAAO,EAAC,MAAK;AACZC,IAAAA,QAAQ,EAAE5a,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA;AACpB2T,IAAAA,aAAa,EAAEtd,aAAM,CAACgL,QAAS,IAAGhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAChN,MAAM;AACxDuf,IAAAA,oBAAoB,EAAEvd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACoc,YAAY;AACrE5J,IAAAA,oBAAoB,EAAExd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACqc,YAAY;AACrE5J,IAAAA,mBAAmB,EAAEzd,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACsc,WAAW;AACnE5J,IAAAA,mBAAmB,EAAE1d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACuc,WAAW;AACnE5J,IAAAA,kBAAkB,EAAE3d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACwc,UAAU;AACjE5J,IAAAA,qBAAqB,EAAE5d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAACyc,aAAa;AACvE5J,IAAAA,wBAAwB,EAAE7d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC0c,gBAAgB;AAC7E5J,IAAAA,uBAAuB,EAAE9d,aAAM,CAACgL,QAAO,IAAKhL,MAAM,CAAAT,MAAA,CAACyL,QAAQ,CAAC2c,eAAe;IAC3E1sB,OAAO,EAAE+E,MAAO,CAAA/E,OAAA;IAChB8iB,YAAY,EAAE/d,MAAY,CAAA+d,YAAA;IAC1BlgB,gBAAgB,EAAEmC,MAAgB,CAAAnC,gBAAA;IAClCC,iBAAiB,EAAEkC,MAAiB,CAAAlC,iBAAA;AACpC8pB,IAAAA,cAAa,EAAA3V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAC5C2V,IAAAA,aAAY;aAAE7lB,IAAK,CAAAlB,KAAA,CAAA,cAAA,CAAA;AAAA,KAAA,CAAA;AACnBmd,IAAAA,eAAe,EAAEhc,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BqU,IAAAA,eAAe,EAAE/b,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BoT,IAAAA,YAAY,EAAE9a,QAAU,CAAA0H,UAAA,CAAA,oBAAA,CAAA;AACxBqT,IAAAA,eAAe,EAAE/a,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BsT,IAAAA,eAAe,EAAEhb,QAAU,CAAA0H,UAAA,CAAA,iBAAA,CAAA;AAC3BuT,IAAAA,cAAc,EAAEjb,QAAU,CAAA0H,UAAA,CAAA,sBAAA,CAAA;AAC1BwT,IAAAA,aAAa,EAAElb,QAAU,CAAA0H,UAAA,CAAA,eAAA,CAAA;AACzByT,IAAAA,gBAAgB,EAAEnb,QAAU,CAAA0H,UAAA,CAAA,wBAAA,CAAA;AAC5B0T,IAAAA,cAAc,EAAEpb,QAAU,CAAA0H,UAAA,CAAA,gBAAA,CAAA;AAC1ByW,IAAAA,gBAAe,EAAAnO,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAChD4V,IAAAA,iBAAgB,EAAA7V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAClD6V,IAAAA,eAAc,EAAA9V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AAC9C8V,IAAAA,kBAAiB,EAAA/V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,mBAAA,EAAsBoR,MAAM,CAAA;AAAA,KAAA,CAAA;AACpD+V,IAAAA,YAAW,EAAAhW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,KAAA,CAAA;IACxC3S,MAAM,EAAES,MAAM,CAAAT,MAAA;IACd2C,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;IAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;;;;;AC2CvB,eAAe;AACX3H,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAY,CACf;AACDnG,EAAAA,KAAK,EAAE;AACHgiB,IAAAA,WAAW,EAAE;AACT9hB,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD6Z,IAAAA,OAAO,EAAE;AACL7Z,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACDkD,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAS,EAAA;KACZ;AACDwC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACD6sB,IAAAA,eAAe,EAAE;AACbvtB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDoZ,IAAAA,KAAK,EAAE;AACH9Z,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDiB,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD2uB,IAAAA,iBAAiB,EAAE;AACf9uB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDkB,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACD6B,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACD6jB,IAAAA,YAAY,EAAE;AACV3kB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAS,EAAA;KACZ;AACDH,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDmE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA;AACb;GACH;EACD6F,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACHkc,KAAK,EAAE,IAAI,CAACmP,YAAY;MACxBjP,QAAQ,EAAE,IAAI,CAACkP;KAClB;GACJ;EACDvpB,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHspB,YAAY,EAAE,IAAI/O,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;AAAM,OAAC,CAAC;MAC5CmxB,eAAe,EAAE,IAAIhP,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;OAAU;KACpD;GACJ;EACDgR,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,IAAA,IAAI,CAACkgB,YAAY,CAACjsB,KAAK,EAAE;AACzB,IAAA,IAAI,CAACksB,eAAe,CAAClsB,KAAK,EAAE;GAC/B;AACDqB,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDiR,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC5b,GAAG,EAAE;AAAA,MAAA,IAAA6K,qBAAA;AAClB,MAAA,IAAMgR,mBAAkB,GAAI;AACxBviB,QAAAA,KAAK,EAAE,IAAI,CAACwiB,mBAAmB,EAAE;AACjC5b,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACL/G,UAAAA,IAAI,EAAE,QAAQ;AACd4D,UAAAA,UAAU,GAAAyN,qBAAA,GAAE,IAAI,CAACtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBtL,eAAe,cAAAsL,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzN;AACvD;OACH;MAED,OAAOsD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,cAAAA,CAAAA,MAAA,CAAgBZ,GAAG,CAAI,EAAA;AAAEsb,QAAAA,WAAW,EAAEO;OAAqB,CAAC,EAAE,IAAI,CAAClb,GAAG,CAAAC,cAAAA,CAAAA,MAAA,CAAgBZ,GAAG,CAAI6b,EAAAA,mBAAmB,CAAC,EAAE,IAAI,CAAChb,IAAI,CAAC,IAAI,CAACib,mBAAmB,EAAE,EAAE9b,GAAG,EAAE6b,mBAAmB,CAAC,CAAC;KAChN;IACDC,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAACR,WAAU,IAAK,IAAI,CAACA,WAAW,CAAChiB,KAAI,IAAK,IAAI,CAACgiB,WAAW,CAAChiB,KAAK,CAACyH,KAAK,IAAI,CAACua,WAAW,CAAChiB,KAAK,CAACyH,EAAG,GAAElG,SAAS,CAAE;KAC3H;IACDmhB,QAAQ,EAAA,SAARA,QAAQA,CAACC,GAAG,EAAEjc,GAAG,EAAEH,KAAK,EAAE;AACtB,MAAA,IAAMqc,cAAc;QAChB5iB,KAAK,EAAE2iB,GAAG,CAAC3iB,KAAK;AAChB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,MAAAA,CAAAA,MAAA,CAAQZ,GAAG,CAAI,EAAA;AAAEic,QAAAA,GAAG,EAAEC;AAAY,OAAC,CAAC,EAAE,IAAI,CAACvb,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAIkc,WAAW,CAAC,EAAE,IAAI,CAACrb,IAAI,CAAC,IAAI,CAACsb,UAAU,CAACF,GAAG,CAAC,EAAEjc,GAAG,EAAEkc,WAAW,CAAC,CAAC;KAC1J;AACDC,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACF,GAAG,EAAE;AACZ,MAAA,OAAOA,GAAG,CAAC3iB,SAAS2iB,GAAG,CAAC3iB,KAAK,CAACyH,EAAC,GAAIkb,GAAG,CAAC3iB,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAE;KAChE;IACDkF,WAAW,EAAA,SAAXA,WAAWA,CAACJ,MAAM,EAAEK,GAAG,EAAEH,KAAK,EAAE;AAC5B,MAAA,IAAMI,iBAAiB;QACnB3G,KAAK,EAAEqG,MAAM,CAACrG,KAAK;AACnB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEL,QAAAA,MAAM,EAAEM;AAAe,OAAC,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,CAACnB,MAAM,CAAC,EAAEK,GAAG,EAAEC,cAAc,CAAC,CAAC;KAClL;AACDa,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACnB,MAAM,EAAE;AAClB,MAAA,OAAOA,MAAM,CAACrG,KAAI,IAAKqG,MAAM,CAACrG,KAAK,CAACyH,EAAG,GAAEpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KACvE;AACDmsB,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAACrnB,MAAM,EAAE;AAC/B,MAAA,OAAO,CAAC,IAAI,CAAC+P,EAAE,CAAC,YAAY,EAAE;AAAE/P,QAAAA,MAAK,EAALA;AAAO,OAAC,CAAC,EAAE,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7H;AACDsnB,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAACtnB,MAAM,EAAE;AAC/B,MAAA,OAAO,CAAC,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1F;IACDirB,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAC,kBAAA;MACZ,OAAAA,CAAAA,kBAAA,GAAO,IAAI,CAACH,YAAY,MAAAG,IAAAA,IAAAA,kBAAA,uBAAjBA,kBAAA,CAAmBvO,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAE,IAAI,CAACA,WAAW,CAAClQ,QAAQ,CAAC;KAC7E;AACD0f,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC7O,GAAG,EAAE;AAAA,MAAA,IAAA8O,qBAAA;AAClB,MAAA,OAAA,CAAAA,qBAAA,GAAO,IAAI,CAACJ,eAAe,cAAAI,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsBzO,GAAG,CAACL,GAAG,EAAEA,GAAG,CAAC7Q,QAAQ,CAAC;AACvD;GACH;AACD/J,EAAAA,QAAQ,EAAE;IACN2pB,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAlgB,sBAAA;MACd,OAAO;AACHvK,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAA0N,sBAAA,GAAE,IAAI,CAACvL,eAAe,cAAAuL,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBvL,eAAe,cAAAuL,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,sBAAA,CAAuC1N;AACvD;OACH;AACL;GACH;AACDyE,EAAAA,UAAU,EAAE;AACRopB,IAAAA,YAAY,EAAEC,QAAU;AACxBC,IAAAA,kBAAkB,EAAEC;AACxB;AACJ,CAAC;;;;;;;;;;;;;EClUG,OAAA1oB,SAAA,EAAA,EAAAiP,kBAAA,CA+GO,SA/GP7O,UA+GO,CAAA;AA9GF,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,OAAA,CAAA;AACTvQ,IAAAA,KAAK,EAAEiD,IAAE,CAAAwa,EAAA,CAAA,OAAA,CAAA;AACVhL,IAAAA,IAAI,EAAC;KACGxR,MAAY,CAAAkb,WAAA,GAAAzJ,eAAA,CAAAA,eAAA,CAAOzP,EAAAA,EAAAA,QAAG,CAAU,OAAA,EAAAC,QAAA,CAAA2oB,eAAe,IAAM3oB,QAAgB,CAAAuZ,gBAAA,CAAA,MAAA,CAAA,CAAaxZ,GAAAA,IAAG,CAAAzB,GAAA,CAAA,OAAA,EAAU0B,QAAe,CAAA2oB,eAAA,CAAA,EAAA;AACrH,IAAA,mBAAiB,GAAAnO,oBAAA,GAAEza,IAAA,CAAA7C,eAAe,cAAAsd,oBAAA,KAAA,MAAA,IAAA,CAAAA,oBAAA,GAAfA,oBAAA,CAAiBtd,eAAe,MAAA,IAAA,IAAAsd,oBAAA,KAAhCA,MAAAA,GAAAA,MAAAA,GAAAA,oBAAA,CAAkCzf,UAAU;AAChE,IAAA,iBAAe,EAAC;QAECgD,MAAW,CAAAkb,WAAA,IACxB5Y,SAAA,EAAA,EAAAiP,kBAAA,CAyCI,MAzCJ7O,UAyCI,CAAA;;AAzCA8O,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EACtB+B,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAuCUQ,QAvCmB,EAAA,IAAA,EAAA+G,UAAA,CAAA9Y,MAAA,CAAAiT,OAAO,EAAlB,UAAAe,GAAG,EAAE1Q,CAAC,EAAA;;AAAoB1D,MAAAA,GAAA,EAAAqC,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkB/R,mBAAU,CAAC+R,GAAG,cAAc1Q;SAEzFrB,QAAU,CAAA0H,UAAA,CAACqK,GAAG,EAAgB,QAAA,CAAA,KAAAhU,MAAA,CAAA1D,YAAW,oBAAqB0D,MAAU,CAAAzD,WAAA,KAAM0F,QAAU,CAAA0H,UAAA,CAACqK,GAAG,EAAA,OAAA,CAAA,CAAA,iBADvGpS,WAqCC,CAAAqpB,uBAAA,EAAA;;AAnCI1rB,MAAAA,MAAM,EAAEyU,GAAG;AACXvU,MAAAA,KAAK,EAAE6D,CAAC;AACR4nB,MAAAA,aAAY,EAAAjZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CiZ,MAAAA,iBAAgB,EAAAlZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDkZ,MAAAA,iBAAgB,EAAAnZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDmZ,MAAAA,gBAAe,EAAApZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDoZ,MAAAA,iBAAgB,EAAArZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDqZ,MAAAA,YAAW,EAAAtZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MACxC3V,WAAW,EAAEyD,MAAW,CAAAzD,WAAA;MACxB2rB,iBAAiB,EAAEloB,MAAiB,CAAAkoB,iBAAA;MACpChsB,kBAAkB,EAAE8D,MAAkB,CAAA9D,kBAAA;MACtCF,gBAAgB,EAAEgE,MAAgB,CAAAhE,gBAAA;AAClCwvB,MAAAA,mBAAkB,EAAAvZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,oBAAA,EAAuBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MACtDnX,QAAQ,EAAEiF,MAAQ,CAAAjF,QAAA;MAClBL,SAAS,EAAEsF,MAAS,CAAAtF,SAAA;MACpBC,SAAS,EAAEqF,MAAS,CAAArF,SAAA;MACpBG,aAAa,EAAEkF,MAAa,CAAAlF,aAAA;MAC5B6rB,eAAe,EAAE3mB,MAAe,CAAA2mB,eAAA;MAChCzT,KAAK,EAAElT,MAAK,CAAAkT,KAAA;AACZmD,MAAAA,gBAAe,EAAApE,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MAChDjX,OAAO,EAAE+E,MAAO,CAAA/E,OAAA;MAChBC,aAAa,EAAE8E,MAAa,CAAA9E,aAAA;MAC5B6iB,YAAY,EAAE/d,MAAY,CAAA+d,YAAA;MAC1BlgB,gBAAgB,EAAEmC,MAAgB,CAAAnC,gBAAA;MAClCC,iBAAiB,EAAEkC,MAAiB,CAAAlC,iBAAA;MACpCnE,KAAK,EAAEqG,MAAK,CAAArG,KAAA;AACZiuB,MAAAA,cAAa,EAAA3V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C2V,MAAAA,aAAY;eAAE7lB,IAAK,CAAAlB,KAAA,CAAA,cAAA,CAAA;AAAA,OAAA,CAAA;AACnBsf,MAAAA,gBAAe,EAAAnO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChD4V,MAAAA,iBAAgB,EAAA7V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClD6V,MAAAA,eAAc,EAAA9V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9C8V,MAAAA,kBAAiB,EAAA/V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,mBAAA,EAAsBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACpD+V,MAAAA,YAAW,EAAAhW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MACxChQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;MAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;sBAMnB2B,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CA8BIQ,QA9BmB,EAAA;AAAAnS,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAAkZ,UAAA,CAAA7W,QAAA,CAAAuoB,aAAa,EAAxB,EAAA,UAAA3O,GAAG,EAAEvY,CAAC,EAAA;IAAlB,OAAAhB,SAAA,EAAA,EAAAiP,kBAAA,CA8BI,MA9BJ7O,UA8BI,CAAA;AA9BqC9C,MAAAA,GAAG,EAAE0D,CAAC;AAAEkO,MAAAA,IAAI,EAAC,KAAM;;KAAa,EAAAC,eAAA,CAAAA,eAAA,KAAAzP,IAAA,CAAAzB,GAAG,CAAkB,WAAA,CAAA,GAAA0B,QAAA,CAAA2Z,QAAQ,CAACC,GAAG,UAAUvY,CAAC,CAAA,CAAA,CAAA,EAAA,EACjHhB,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CA4BUQ,2BA5BmB9P,QAAgB,CAAAyoB,gBAAA,CAAC7O,GAAG,CAA/B,EAAA,UAAA7H,GAAG,EAAE2I,CAAC,EAAA;;AAAkC/c,QAAAA,GAAA,EAAAqC,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkB/R,mBAAU,CAAC+R,GAAG,cAAc2I;UAEvG,CAAA1a,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAgB,QAAA,CAAA,KAAAhU,MAAA,CAAA1D,YAAW,KAAqB,WAAA,IAAA0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAsB,OAAA,CAAA,CAAA,IAAA,OAAAA,GAAG,CAAChJ,QAAS,KAAA,QAAA,iBAD1IpJ,WA0BC,CAAAqpB,uBAAA,EAAA;;AAxBI1rB,QAAAA,MAAM,EAAEyU,GAAG;AACXkX,QAAAA,aAAY,EAAAjZ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,cAAA,EAAiBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1CiZ,QAAAA,iBAAgB,EAAAlZ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,SAAA,CAAA;QAClD3V,WAAW,EAAEyD,MAAW,CAAAzD,WAAA;QACxB2rB,iBAAiB,EAAEloB,MAAiB,CAAAkoB,iBAAA;QACpCntB,QAAQ,EAAEiF,MAAQ,CAAAjF,QAAA;QAClBL,SAAS,EAAEsF,MAAS,CAAAtF,SAAA;QACpBC,SAAS,EAAEqF,MAAS,CAAArF,SAAA;QACpBG,aAAa,EAAEkF,MAAa,CAAAlF,aAAA;QAC5B6rB,eAAe,EAAE3mB,MAAe,CAAA2mB,eAAA;QAChCzT,KAAK,EAAElT,MAAK,CAAAkT,KAAA;AACZmD,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,SAAA,CAAA;QAChDjX,OAAO,EAAE+E,MAAO,CAAA/E,OAAA;QAChBC,aAAa,EAAE8E,MAAa,CAAA9E,aAAA;QAC5B6iB,YAAY,EAAE/d,MAAY,CAAA+d,YAAA;AAC1B6J,QAAAA,cAAa,EAAA3V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5C2V,QAAAA,aAAY;iBAAE7lB,IAAK,CAAAlB,KAAA,CAAA,cAAA,CAAA;AAAA,SAAA,CAAA;AACnBsf,QAAAA,gBAAe,EAAAnO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AAChD4V,QAAAA,iBAAgB,EAAA7V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AAClD6V,QAAAA,eAAc,EAAA9V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9C8V,QAAAA,kBAAiB,EAAA/V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,mBAAA,EAAsBoR,MAAM,CAAA;AAAA,SAAA,CAAA;AACpD+V,QAAAA,YAAW,EAAAhW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,SAAA,CAAA;QACxChQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;QAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;;aAKbX,MAAY,CAAA9E,aAAA,KAAA,KAAA,IAAtBoH,SAAA,EAAA,EAAAiP,kBAAA,CAyBI,MAzBJ7O,UAyBI,CAAA;;AAzB+B8O,IAAAA,IAAI,EAAC;KAAcxP,IAAG,CAAAzB,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EACrD+B,SAAA,CAAA,IAAA,CAAA,EAAAiP,kBAAA,CAuBUQ,QAvBmB,EAAA,IAAA,EAAA+G,UAAA,CAAA9Y,MAAA,CAAAiT,OAAO,EAAlB,UAAAe,GAAG,EAAE1Q,CAAC,EAAA;;AAAoB1D,MAAAA,GAAA,EAAAqC,QAAA,CAAA0H,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkB/R,mBAAU,CAAC+R,GAAG,cAAc1Q;SAEzFrB,QAAU,CAAA0H,UAAA,CAACqK,GAAG,EAAgB,QAAA,CAAA,KAAAhU,MAAA,CAAA1D,YAAW,oBAAqB0D,MAAU,CAAAzD,WAAA,KAAM0F,QAAU,CAAA0H,UAAA,CAACqK,GAAG,EAAA,OAAA,CAAA,CAAA,iBADvGpS,WAqBC,CAAA6pB,6BAAA,EAAA;;AAnBIlsB,MAAAA,MAAM,EAAEyU,GAAG;AACXvU,MAAAA,KAAK,EAAE6D,CAAC;MACRqjB,eAAe,EAAE3mB,MAAe,CAAA2mB,eAAA;MAChCzT,KAAK,EAAElT,MAAK,CAAAkT,KAAA;AACb0J,MAAAA,OAAO,EAAC,KAAI;MACX3hB,OAAO,EAAE+E,MAAO,CAAA/E,OAAA;MAChB8iB,YAAY,EAAE/d,MAAY,CAAA+d,YAAA;MAC1BlgB,gBAAgB,EAAEmC,MAAgB,CAAAnC,gBAAA;MAClCC,iBAAiB,EAAEkC,MAAiB,CAAAlC,iBAAA;AACpC8pB,MAAAA,cAAa,EAAA3V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,eAAA,EAAkBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C2V,MAAAA,aAAY;eAAE7lB,IAAK,CAAAlB,KAAA,CAAA,cAAA,CAAA;AAAA,OAAA,CAAA;AACnBsf,MAAAA,gBAAe,EAAAnO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAChD4V,MAAAA,iBAAgB,EAAA7V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,kBAAA,EAAqBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAClD6V,MAAAA,eAAc,EAAA9V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,gBAAA,EAAmBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9C8V,MAAAA,kBAAiB,EAAA/V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,mBAAA,EAAsBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACpD+V,MAAAA,YAAW,EAAAhW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,aAAA,EAAgBoR,MAAM,CAAA;AAAA,OAAA,CAAA;AACxCmE,MAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAElQ,IAAK,CAAAlB,KAAA,CAAA,iBAAA,EAAoBoR,MAAM,CAAA;AAAA,OAAA,CAAA;MAChDhQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;MAClBvB,EAAE,EAAEqB,IAAE,CAAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACyP3B,aAAe;AACX3H,EAAAA,IAAI,EAAE,WAAW;AACjB,EAAA,SAAA,EAAS0yB,QAAa;AACtBC,EAAAA,YAAY,EAAE,KAAK;AACnBtsB,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,cAAc,EACd,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,iBAAgB,CACnB;EACDJ,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACHoc,QAAQ,EAAE,IAAI,CAACuQ,SAAS;MACxBC,aAAa,EAAE,IAAI,CAACC;KACvB;GACJ;EACD9qB,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACH+qB,OAAO,EAAE,IAAI,CAACpyB,KAAK;MACnBqyB,MAAM,EAAE,IAAI,CAACvyB,IAAI;MACjBwyB,WAAW,EAAE,IAAI,CAACvxB,SAAS;MAC3BwxB,WAAW,EAAE,IAAI,CAACvxB,SAAS;MAC3BwxB,eAAe,EAAE,IAAI,CAACtxB,aAAa;MACnCuxB,eAAe,EAAE,IAAI,CAACtxB,aAAY,GAAAuxB,kBAAA,CAAQ,IAAI,CAACvxB,aAAa,CAAA,GAAI,EAAE;AAClEwxB,MAAAA,mBAAmB,EAAE,IAAI;AACzBC,MAAAA,eAAe,EAAE,IAAI;AACrBC,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,gBAAgB,EAAE,IAAI;MACtBC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC3xB,OAAO,CAAC;MAC1C2wB,SAAS,EAAE,IAAIrQ,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;AAAS,OAAC,CAAC;MAC5C0yB,cAAc,EAAE,IAAIvQ,SAAS,CAAC;AAAEniB,QAAAA,IAAI,EAAE;OAAe;KACxD;GACJ;AACDyzB,EAAAA,UAAU,EAAE,KAAK;AACjBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,4BAA4B,EAAE,IAAI;AAClCC,EAAAA,+BAA+B,EAAE,IAAI;AACrCC,EAAAA,iBAAiB,EAAE,IAAI;AACvBC,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,cAAc,EAAE,KAAK;AACrBC,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,iBAAiB,EAAE,IAAI;AACvBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,oBAAoB,EAAE,KAAK;AAC3BxkB,EAAAA,KAAK,EAAE;AACH3P,IAAAA,KAAK,EAALA,SAAAA,KAAKA,CAAC4P,QAAQ,EAAE;MACZ,IAAI,CAACwiB,OAAQ,GAAExiB,QAAQ;KAC1B;AACD9P,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAAC8P,QAAQ,EAAE;MACX,IAAI,CAACyiB,MAAO,GAAEziB,QAAQ;KACzB;AACD7O,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC6O,QAAQ,EAAE;MAChB,IAAI,CAAC0iB,WAAY,GAAE1iB,QAAQ;KAC9B;AACD5O,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC4O,QAAQ,EAAE;MAChB,IAAI,CAAC2iB,WAAY,GAAE3iB,QAAQ;KAC9B;AACD1O,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC0O,QAAQ,EAAE;MACpB,IAAI,CAAC4iB,eAAc,GAAI5iB,QAAQ;KAClC;AACDzO,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACyO,QAAQ,EAAE;MACpB,IAAI,CAAC6iB,eAAc,GAAI7iB,QAAQ;KAClC;AACDlO,IAAAA,SAAS,EAAE;AACPuY,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACtK,QAAQ,EAAE;QACd,IAAI,IAAI,CAACjQ,OAAO,EAAE;AACd,UAAA,IAAI,CAACy0B,mBAAmB,CAACxkB,QAAQ,CAAC;AACtC;AACJ;KACH;AACD1M,IAAAA,WAAW,EAAE;AACT+W,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACtK,QAAQ,EAAE;QACd,IAAI,IAAI,CAACjQ,OAAO,EAAE;AACd,UAAA,IAAI,CAAC00B,oBAAoB,CAACzkB,QAAQ,CAAC;AACvC;AACJ;KACH;AACDtO,IAAAA,OAAO,EAAE;AACL0Y,MAAAA,IAAI,EAAE,IAAI;AACVE,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAYtK,QAAQ,EAAE;QACzB,IAAI,CAACojB,SAAU,GAAE,IAAI,CAACC,YAAY,CAACrjB,QAAQ,CAAC;AAChD;AACJ;GACH;EACDG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACukB,UAAU,EAAE,EAAE;MACnB,IAAI,CAACC,YAAY,EAAE;AAEnB,MAAA,IAAI,CAAClyB,gBAAiB,IAAG,IAAI,CAACmyB,mBAAmB,EAAE;AACvD;AAEA,IAAA,IAAI,IAAI,CAACvxB,QAAS,KAAI,KAAM,IAAG,IAAI,CAACtD,OAAQ,IAAG,CAAC,IAAI,CAACmzB,gBAAgB,EAAE;AACnE,MAAA,IAAI,CAACuB,oBAAoB,CAAC,IAAI,CAACnxB,WAAW,CAAC;AAC/C;GACH;EACDuN,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACgkB,wBAAwB,EAAE;IAC/B,IAAI,CAACC,mBAAmB,EAAE;AAE1B,IAAA,IAAI,CAACzC,SAAS,CAACvtB,KAAK,EAAE;AACtB,IAAA,IAAI,CAACytB,cAAc,CAACztB,KAAK,EAAE;GAC9B;EACDwL,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACokB,UAAU,EAAE,EAAE;MACnB,IAAI,CAACK,SAAS,EAAE;AACpB;AAEA,IAAA,IAAI,IAAI,CAAC1xB,QAAS,KAAI,KAAM,IAAG,IAAI,CAACtD,OAAQ,IAAG,CAAC,IAAI,CAACmzB,gBAAgB,EAAE;AACnE,MAAA,IAAI,CAACuB,oBAAoB,CAAC,IAAI,CAACnxB,WAAW,CAAC;AAC/C;GACH;AACD6C,EAAAA,OAAO,EAAE;AACLiK,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDgkB,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAAC1tB,KAAK,EAAE;AAAA,MAAA,IAAAiJ,KAAA,GAAA,IAAA;MACV,IAAI,CAAC0kB,oBAAoB,EAAE;AAE3B,MAAA,IAAI,CAACzC,OAAM,GAAIlrB,KAAK,CAAClH,KAAK;AAC1B,MAAA,IAAI,CAACqyB,MAAK,GAAInrB,KAAK,CAACpH,IAAI;AAExB,MAAA,IAAIg1B,SAAU,GAAE,IAAI,CAACC,mBAAmB,CAAC7tB,KAAK,CAAC;AAE/C4tB,MAAAA,SAAS,CAACE,SAAQ,GAAI9tB,KAAK,CAAC8tB,SAAS;AACrCF,MAAAA,SAAS,CAACG,IAAK,GAAE/tB,KAAK,CAAC+tB,IAAI;MAE3B,IAAI,CAAC9tB,KAAK,CAAC,cAAc,EAAE,IAAI,CAACirB,OAAO,CAAC;MACxC,IAAI,CAACjrB,KAAK,CAAC,aAAa,EAAE,IAAI,CAACkrB,MAAM,CAAC;AACtC,MAAA,IAAI,CAAClrB,KAAK,CAAC,MAAM,EAAE2tB,SAAS,CAAC;MAC7B,IAAI,CAACvhB,SAAS,CAAC,YAAM;QACjBpD,KAAI,CAAChJ,KAAK,CAAC,cAAc,EAAEgJ,KAAI,CAAC+kB,aAAa,CAAC;AAClD,OAAC,CAAC;KACL;AACDC,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC9rB,CAAC,EAAE;AAAA,MAAA,IAAAmI,MAAA,GAAA,IAAA;AACnB,MAAA,IAAMtK,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMxB,MAAO,GAAEyD,CAAC,CAACzD,MAAM;MAEvB,IAAI,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,UAAU,CAAC,EAAE;AACrC,QAAA,IAAMwvB,aAAaluB,KAAK,CAACwK,MAAM;AAC/B,QAAA,IAAM2jB,WAAY,GAAE,IAAI,CAACrlB,UAAU,CAACpK,MAAM,EAAE,WAAW,CAAE,IAAG,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC;AAE5F,QAAA,IACIoO,YAAY,CAACohB,UAAU,EAAE,wBAAwB,CAAE,KAAI,IAAG,IAC1DphB,YAAY,CAACohB,UAAU,EAAE,iBAAiB,CAAA,KAAM,aAAY,IAC5DphB,YAAY,CAACohB,UAAU,EAAE,iBAAiB,CAAE,KAAI,yBAChDphB,YAAY,CAACohB,UAAU,EAAE,iBAAiB,CAAA,KAAM,UAAS,IACzDphB,YAAY,CAACohB,UAAU,CAACnhB,aAAa,EAAE,iBAAiB,CAAE,KAAI,cAC9DD,YAAY,CAACohB,UAAU,CAACnhB,aAAa,CAACA,aAAa,EAAE,iBAAiB,CAAE,KAAI,cAC3EmhB,UAAU,CAACE,OAAO,CAAC,iCAAiC,CAAE,IAAG,CAACF,UAAU,CAACE,OAAO,CAAC,wCAAwC,CAAE,IAAG,CAACC,WAAW,CAACruB,KAAK,CAACwK,MAAM,CAAC,EACvJ;AACE8jB,UAAAA,cAAc,EAAE;AAEhB,UAAA,IAAI,IAAI,CAACp0B,QAAS,KAAI,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,CAACkxB,WAAU,KAAM+C,WAAW,EAAE;AAClC,cAAA,IAAI,IAAI,CAACh0B,aAAc,IAAG,IAAI,CAACkxB,WAAU,GAAI,EAAG,KAAI,IAAI,CAACtxB,gBAAgB,EAAE;gBACvE,IAAI,CAACsxB,WAAU,GAAI,IAAI;gBACvB,IAAI,CAACD,WAAU,GAAI,IAAI;AAC3B,eAAE,MAAK;gBACH,IAAI,CAACC,cAAc,IAAI,CAACA,WAAY,GAAE,EAAE;AAC5C;AACJ,aAAE,MAAK;AACH,cAAA,IAAI,CAACA,WAAU,GAAI,IAAI,CAACtxB,gBAAgB;cACxC,IAAI,CAACqxB,WAAY,GAAE+C,WAAW;AAClC;YAEA,IAAI,CAACluB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACmrB,WAAW,CAAC;YAChD,IAAI,CAACnrB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACorB,WAAW,CAAC;YAChD,IAAI,CAACkD,SAAS,EAAE;AACpB,WAAA,MAAO,IAAI,IAAI,CAACr0B,QAAO,KAAM,UAAU,EAAE;YACrC,IAAIs0B,OAAQ,GAAExuB,KAAK,CAACwuB,OAAM,IAAKxuB,KAAK,CAACyuB,OAAO;YAE5C,IAAI,CAACD,OAAO,EAAE;cACV,IAAI,CAACjD,eAAc,GAAI,IAAI,CAACA,eAAe,CAACpuB,MAAM,CAAC,UAACgrB,IAAI,EAAA;AAAA,gBAAA,OAAKA,IAAI,CAACvf,KAAI,KAAMulB,WAAW;eAAC,CAAA;AAC5F;AAEA,YAAA,IAAI,CAACO,iBAAiB,CAACP,WAAW,CAAC;YACnC,IAAI,CAACluB,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACsrB,eAAe,CAAC;AAC5D;UAEA,IAAI,CAACtrB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC4tB,mBAAmB,CAAC7tB,KAAK,CAAC,CAAC;UACnD,IAAI,CAACqM,SAAS,CAAC,YAAM;YACjB/B,MAAI,CAACrK,KAAK,CAAC,cAAc,EAAEqK,MAAI,CAAC0jB,aAAa,CAAC;AAClD,WAAC,CAAC;AACN;AACJ;KACH;AACDW,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACr2B,KAAK,EAAE;AAAA,MAAA,IAAA2S,MAAA,GAAA,IAAA;MACd,IAAI,CAAC0iB,oBAAoB,EAAE;MAE3B,IAAI,IAAI,CAACjyB,WAAY,IAAG,IAAI,CAACA,WAAU,KAAM,IAAI,CAAC7B,SAAS,EAAE;QACzD,IAAI,CAAC0xB,kBAAkB,CACnB;UAAE3iB,KAAK,EAAE,IAAI,CAAC/O,SAAS;AAAE+uB,UAAAA,KAAK,EAAE,IAAI,CAAC9uB,SAAU,IAAG,IAAI,CAACC;AAAiB,SAAC,EACzE;UAAE6O,KAAK,EAAE,IAAI,CAACwiB,WAAW;UAAExC,KAAK,EAAE,IAAI,CAACyC;AAAY,SAAA,CACtD;AAED,QAAA,OAAO,IAAI,CAACuD,YAAY,CAACt2B,KAAK,CAAC;AACnC;AAEA,MAAA,IAAI6H,0BAAW7H,KAAK,CAAC;AACrB,MAAA,IAAIu2B,iBAAgB,GAAI,IAAIC,GAAG,EAAE;AAAA,MAAA,IAAAzY,SAAA,GAAAC,0BAAA,CAEhBnW,IAAI,CAAA;QAAAoW,KAAA;AAAA,MAAA,IAAA;QAArB,KAAAF,SAAA,CAAAnS,CAAA,EAAAqS,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAhU,CAAA,EAAAmB,EAAAA,IAAA,GAAuB;AAAA,UAAA,IAAdwb,IAAG,GAAAzI,KAAA,CAAAje,KAAA;AACRu2B,UAAAA,iBAAiB,CAACvO,GAAG,CAACtB,IAAI,EAAElV,gBAAgB,CAACkV,IAAI,EAAE,IAAI,CAACoM,WAAW,CAAC,CAAC;AACzE;AAAA,OAAA,CAAA,OAAA1U,GAAA,EAAA;QAAAL,SAAA,CAAAlU,CAAA,CAAAuU,GAAA,CAAA;AAAA,OAAA,SAAA;AAAAL,QAAAA,SAAA,CAAAxS,CAAA,EAAA;AAAA;AAEA,MAAA,IAAMkrB,QAAO,GAAIC,gBAAgB,EAAE;AAEnC7uB,MAAAA,IAAI,CAAC8uB,IAAI,CAAC,UAAC1a,KAAK,EAAEC,KAAK,EAAK;AACxB,QAAA,IAAI0a,MAAK,GAAIL,iBAAiB,CAACxT,GAAG,CAAC9G,KAAK,CAAC;AACzC,QAAA,IAAI4a,MAAK,GAAIN,iBAAiB,CAACxT,GAAG,CAAC7G,KAAK,CAAC;AAEzC,QAAA,OAAOya,IAAI,CAACC,MAAM,EAAEC,MAAM,EAAElkB,MAAI,CAACogB,WAAW,EAAE0D,QAAQ,EAAE9jB,MAAI,CAACqgB,eAAe,CAAC;AACjF,OAAC,CAAC;AAEF,MAAA,OAAOnrB,IAAI;KACd;AACDyuB,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACt2B,KAAK,EAAE;AAAA,MAAA,IAAAuT,MAAA,GAAA,IAAA;MAChB,IAAI,CAAC8hB,oBAAoB,EAAE;MAE3B,IAAI,IAAI,CAACjyB,WAAU,KAAM,IAAI,CAAC+vB,mBAAoB,IAAI,IAAI,CAACF,eAAe,CAACzlB,MAAK,IAAK,IAAI,CAACpK,WAAU,KAAM,IAAI,CAAC6vB,eAAe,CAAC,CAAC,CAAC,CAAC3iB,KAAM,CAAC,EAAE;AACvI,QAAA,IAAMwmB,aAAY,GAAI,IAAI,CAAC7D,eAAe,CAAC,CAAC,CAAC;QAE7C,CAAC,IAAI,CAACE,mBAAoB,KAAI,IAAI,CAACA,mBAAkB,GAAI2D,aAAa,CAAC;QAEvE,IAAIA,aAAa,CAACxmB,KAAI,KAAM,IAAI,CAAC6iB,mBAAmB,CAAC7iB,KAAK,EAAE;AACxD,UAAA,IAAI,CAAC2iB,eAAgB,GAAG,CAAA,IAAI,CAACE,mBAAmB,CAAA,CAAA9rB,MAAA,CAAA6rB,kBAAA,CAAK,IAAI,CAACD,eAAe,CAAC,CAAA;AAC9E;AACJ;AAEA,MAAA,IAAIprB,0BAAW7H,KAAK,CAAC;AAErB6H,MAAAA,IAAI,CAAC8uB,IAAI,CAAC,UAAC1a,KAAK,EAAEC,KAAK,EAAK;QACxB,OAAO3I,MAAI,CAACwjB,cAAc,CAAC9a,KAAK,EAAEC,KAAK,EAAE,CAAC,CAAC;AAC/C,OAAC,CAAC;AAEF,MAAA,OAAOrU,IAAI;KACd;IACDkvB,cAAc,EAAA,SAAdA,cAAcA,CAAC9a,KAAK,EAAEC,KAAK,EAAE5V,KAAK,EAAE;AAChC,MAAA,IAAMswB,MAAK,GAAIplB,gBAAgB,CAACyK,KAAK,EAAE,IAAI,CAACgX,eAAe,CAAC3sB,KAAK,CAAC,CAACgK,KAAK,CAAC;AACzE,MAAA,IAAMumB,MAAK,GAAIrlB,gBAAgB,CAAC0K,KAAK,EAAE,IAAI,CAAC+W,eAAe,CAAC3sB,KAAK,CAAC,CAACgK,KAAK,CAAC;AACzE,MAAA,IAAMmmB,QAAO,GAAIC,gBAAgB,EAAE;MAEnC,IAAIE,MAAK,KAAMC,MAAM,EAAE;QACnB,OAAO,IAAI,CAAC5D,eAAe,CAACzlB,MAAK,GAAI,CAAE,GAAElH,KAAM,GAAE,IAAI,CAACywB,cAAc,CAAC9a,KAAK,EAAEC,KAAK,EAAE5V,KAAI,GAAI,CAAC,CAAA,GAAI,CAAC;AACrG;MAEA,OAAOqwB,IAAI,CAACC,MAAM,EAAEC,MAAM,EAAE,IAAI,CAAC5D,eAAe,CAAC3sB,KAAK,CAAC,CAACgqB,KAAK,EAAEmG,QAAQ,EAAE,IAAI,CAACzD,eAAe,CAAC;KACjG;AACDoD,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAAC9lB,KAAK,EAAE;MACrB,IAAIhK,KAAM,GAAE,IAAI,CAAC2sB,eAAe,CAAClX,SAAS,CAAC,UAAC8T,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAACvf,KAAM,KAAIA,KAAK;OAAC,CAAA;MAE1E,IAAIhK,KAAM,IAAG,CAAC,EAAE;AACZ,QAAA,IAAI,IAAI,CAACzE,aAAY,IAAK,IAAI,CAACoxB,eAAe,CAAC3sB,KAAK,CAAC,CAACgqB,KAAI,GAAI,EAAG,KAAI,IAAI,CAAC7uB,gBAAgB,EAAE,IAAI,CAACwxB,eAAe,CAACnN,MAAM,CAACxf,KAAK,EAAE,CAAC,CAAC,CAAA,KAC5H,IAAI,CAAC2sB,eAAe,CAAC3sB,KAAK,CAAE,GAAE;AAAEgK,UAAAA,KAAK,EAAEA,KAAK;UAAEggB,KAAK,EAAE,IAAI,CAAC2C,eAAe,CAAC3sB,KAAK,CAAC,CAACgqB,QAAQ;SAAI;AACtG,OAAE,MAAK;AACH,QAAA,IAAI,CAAC2C,eAAe,CAAC7lB,IAAI,CAAC;AAAEkD,UAAAA,KAAK,EAAEA,KAAK;UAAEggB,KAAK,EAAE,IAAI,CAAC7uB;AAAiB,SAAC,CAAC;AAC7E;MAEA,IAAI,CAACwxB,eAAc,GAAAC,kBAAA,CAAQ,IAAI,CAACD,eAAe,CAAC;KACnD;AACD+D,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACl1B,OAAO,EAAE;AACtB,MAAA,IAAMm1B,kBAAmB,GAAE,SAArBA,kBAAmBA,CAAAC,IAAA,EAAoB;AAAA,QAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAhBzwB,UAAAA,GAAG,GAAA0wB,KAAA,CAAA,CAAA,CAAA;AAAEn3B,UAAAA,KAAK,GAAAm3B,KAAA,CAAA,CAAA,CAAA;QACnC,IAAIn3B,KAAK,CAACulB,WAAW,EAAE;UACnB,IAAM8R,sBAAsBr3B,KAAK,CAACulB,WAAW,CAAC1gB,MAAM,CAAC,UAACwiB,UAAU,EAAA;AAAA,YAAA,OAAKA,UAAU,CAACrnB,KAAI,KAAM,IAAI;WAAC,CAAA;AAE/F,UAAA,IAAIq3B,mBAAmB,CAAC7pB,MAAO,GAAE,CAAC,EAAE;AAChC,YAAA,OAAO,CAAC/G,GAAG,EAAA6R,eAAA,CAAAA,eAAA,KAAOtY,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEulB,cAAAA,WAAW,EAAE8R;aAAsB,CAAA,CAAA;AAChE;AACJ,SAAE,MAAK,IAAIr3B,KAAK,CAACA,KAAM,KAAI,IAAI,EAAE;AAC7B,UAAA,OAAO,CAACyG,GAAG,EAAEzG,KAAK,CAAC;AACvB;AAEA,QAAA,OAAOsB,SAAS;OACnB;AAED,MAAA,IAAMg2B,kBAAiB,GAAI,SAArBA,kBAAiBA,CAAKC,KAAK,EAAA;QAAA,OAAKA,KAAI,KAAMj2B,SAAS;AAAA,OAAA;AACzD,MAAA,IAAMk2B,OAAM,GAAIz2B,MAAM,CAACy2B,OAAO,CAAC11B,OAAO,CAAC,CAAC+nB,GAAG,CAACoN,kBAAkB,CAAC,CAACpyB,MAAM,CAACyyB,kBAAkB,CAAC;AAE1F,MAAA,OAAOv2B,MAAM,CAAC02B,WAAW,CAACD,OAAO,CAAC;KACrC;AACD3yB,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAACgD,IAAI,EAAE;AAAA,MAAA,IAAAoM,MAAA,GAAA,IAAA;MACT,IAAI,CAACpM,IAAI,EAAE;AACP,QAAA;AACJ;MAEA,IAAI,CAACwtB,oBAAoB,EAAE;MAE3B,IAAIqC,aAAc,GAAE,IAAI,CAACV,gBAAgB,CAAC,IAAI,CAACl1B,OAAO,CAAC;AACvD,MAAA,IAAI61B,uBAAuB;AAE3B,MAAA,IAAID,aAAa,CAAC,QAAQ,CAAC,EAAE;AACzBC,QAAAA,0BAA0B,IAAI,CAAC31B,kBAAmB,IAAG,IAAI,CAAC8X,OAAO,CAAC+P,GAAG,CAAC,UAAChP,GAAG,EAAA;AAAA,UAAA,OAAK5G,MAAI,CAACzD,UAAU,CAACqK,GAAG,EAAE,aAAa,CAAE,IAAG5G,MAAI,CAACzD,UAAU,CAACqK,GAAG,EAAE,OAAO,CAAC;SAAC,CAAA;AACxJ;MAEA,IAAI+c,aAAc,GAAE,EAAE;AAEtB,MAAA,KAAK,IAAIztB,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAItC,IAAI,CAAC2F,MAAM,EAAErD,CAAC,EAAE,EAAE;QAClC,IAAI0tB,UAAW,GAAE,IAAI;QACrB,IAAIC,WAAY,GAAE,KAAK;QACvB,IAAIC,aAAc,GAAE,KAAK;AAEzB,QAAA,KAAK,IAAI3mB,IAAG,IAAKsmB,aAAa,EAAE;AAC5B,UAAA,IAAI32B,MAAM,CAAC+I,SAAS,CAACE,cAAc,CAAC8B,IAAI,CAAC4rB,aAAa,EAAEtmB,IAAI,CAAE,IAAGA,IAAG,KAAM,QAAQ,EAAE;AAChF2mB,YAAAA,aAAc,GAAE,IAAI;YACpB,IAAIC,WAAU,GAAI5mB,IAAI;AACtB,YAAA,IAAI6mB,UAAW,GAAEP,aAAa,CAACM,WAAW,CAAC;YAE3C,IAAIC,UAAU,CAAC3S,QAAQ,EAAE;AAAA,cAAA,IAAA4S,UAAA,GAAAla,0BAAA,CACQia,UAAU,CAAC1S,WAAW,CAAA;gBAAA4S,MAAA;AAAA,cAAA,IAAA;gBAAnD,KAAAD,UAAA,CAAAtsB,CAAA,EAAAusB,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAnuB,CAAA,EAAAmB,EAAAA,IAAA,GAAqD;AAAA,kBAAA,IAA5CogB,gBAAiB,GAAA6M,MAAA,CAAAn4B,KAAA;AACtB63B,kBAAAA,UAAS,GAAI,IAAI,CAACO,kBAAkB,CAACJ,WAAW,EAAEnwB,IAAI,CAACsC,CAAC,CAAC,EAAEmhB,gBAAgB,CAAC;kBAE5E,IAAK2M,UAAU,CAAC3S,QAAS,KAAI4E,cAAc,CAACG,MAAMwN,UAAU,IAAMI,UAAU,CAAC3S,QAAO,KAAM4E,cAAc,CAACC,GAAI,IAAG,CAAC0N,UAAW,EAAE;AAC1H,oBAAA;AACJ;AACJ;AAAA,eAAA,CAAA,OAAAzZ,GAAA,EAAA;gBAAA8Z,UAAA,CAAAruB,CAAA,CAAAuU,GAAA,CAAA;AAAA,eAAA,SAAA;AAAA8Z,gBAAAA,UAAA,CAAA3sB,CAAA,EAAA;AAAA;AACJ,aAAE,MAAK;AACHssB,cAAAA,UAAW,GAAE,IAAI,CAACO,kBAAkB,CAACJ,WAAW,EAAEnwB,IAAI,CAACsC,CAAC,CAAC,EAAE8tB,UAAU,CAAC;AAC1E;YAEA,IAAI,CAACJ,UAAU,EAAE;AACb,cAAA;AACJ;AACJ;AACJ;QAEA,IAAIA,UAAW,IAAGH,aAAa,CAAC,QAAQ,CAAE,IAAG,CAACI,eAAeH,uBAAuB,EAAE;AAClF,UAAA,KAAK,IAAInU,CAAA,GAAI,CAAC,EAAEA,IAAImU,uBAAuB,CAACnqB,MAAM,EAAEgW,CAAC,EAAE,EAAE;AACrD,YAAA,IAAI6U,iBAAgB,GAAIV,uBAAuB,CAACnU,CAAC,CAAC;AAElDsU,YAAAA,cAAcQ,aAAa,CAACx2B,OAAO,CAAC41B,aAAa,CAAC,QAAQ,CAAC,CAAC/T,aAAa4U,eAAe,CAACC,QAAQ,CAAC,CAAChnB,gBAAgB,CAAC3J,IAAI,CAACsC,CAAC,CAAC,EAAEkuB,iBAAiB,CAAC,EAAEX,aAAa,CAAC,QAAQ,CAAC,CAAC13B,KAAK,EAAE,IAAI,CAACiC,YAAY,CAAC;AAElM,YAAA,IAAI61B,WAAW,EAAE;AACb,cAAA;AACJ;AACJ;AACJ;AAEA,QAAA,IAAIW,OAAO,GAAA,MAAA;AAEX,QAAA,IAAIf,aAAa,CAAC,QAAQ,CAAC,EAAE;UACzBe,OAAQ,GAAEV,aAAY,GAAIA,aAAc,IAAGF,UAAS,IAAKC,WAAU,GAAIA,WAAW;AACtF,SAAE,MAAK;UACHW,OAAM,GAAIV,aAAc,IAAGF,UAAU;AACzC;AAEA,QAAA,IAAIY,OAAO,EAAE;AACTb,UAAAA,aAAa,CAACxqB,IAAI,CAACvF,IAAI,CAACsC,CAAC,CAAC,CAAC;AAC/B;AACJ;MAEA,IAAIytB,aAAa,CAACpqB,WAAW,IAAI,CAACxN,KAAK,CAACwN,MAAK,IAAKzM,MAAM,CAACmN,IAAI,CAACwpB,aAAa,CAAC,CAAClqB,UAAU,CAAC,EAAE;AACtFoqB,QAAAA,aAAc,GAAE/vB,IAAI;AACxB;AAEA,MAAA,IAAI6wB,WAAU,GAAI,IAAI,CAACnD,mBAAmB,EAAE;MAE5CmD,WAAW,CAACd,aAAc,GAAEA,aAAa;AACzC,MAAA,IAAI,CAACjwB,KAAK,CAAC,QAAQ,EAAE+wB,WAAW,CAAC;AACjC,MAAA,IAAI,CAAC/wB,KAAK,CAAC,cAAc,EAAEiwB,aAAa,CAAC;AAEzC,MAAA,OAAOA,aAAa;KACvB;IACDQ,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAAC9nB,KAAK,EAAElB,OAAO,EAAE6oB,UAAU,EAAE;AAC3C,MAAA,IAAIU,WAAY,GAAEV,UAAU,CAACj4B,KAAK;MAClC,IAAI44B,eAAc,GAAIX,UAAU,CAACtU,SAAU,IAAG4U,eAAe,CAACM,WAAW;AACzE,MAAA,IAAIC,cAAa,GAAItnB,gBAAgB,CAACpC,OAAO,EAAEkB,KAAK,CAAC;AACrD,MAAA,IAAIgb,gBAAe,GAAIgN,aAAa,CAACx2B,OAAO,CAAC82B,eAAe,CAAC;MAE7D,OAAOtN,gBAAgB,CAACwN,cAAc,EAAEH,WAAW,EAAE,IAAI,CAAC12B,YAAY,CAAC;KAC1E;AACDma,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACvS,CAAC,EAAE;AACV,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAM8Q,IAAK,GAAE,IAAI,CAACgP,KAAK,CAACrH,OAAQ,IAAG,IAAI,CAACqH,KAAK,CAACrH,OAAO,CAACtP,GAAG;AACzD,MAAA,IAAMgoB,WAAY,GAAEC,UAAU,CAACtgB,IAAI,EAAE,gDAAgD,CAAC;AAEtF,MAAA,IAAIqd,WAAW,CAACruB,KAAK,CAACwK,MAAM,CAAC,EAAE;AAC3B,QAAA;AACJ;AAEA,MAAA,IAAI,CAACvK,KAAK,CAAC,WAAW,EAAEkC,CAAC,CAAC;MAE1B,IAAI,IAAI,CAAC1H,aAAa,EAAE;AACpB,QAAA,IAAMiN,UAAUvF,CAAC,CAAChC,IAAI;QACtB,IAAMyH,QAAS,GAAE,IAAI,CAACsjB,OAAM,GAAI/oB,CAAC,CAACvD,KAAK;AAEvC,QAAA,IAAI,IAAI,CAAC2yB,uBAAuB,EAAC,IAAKvxB,KAAK,CAAC0L,QAAS,IAAG,IAAI,CAACugB,cAAa,IAAK,IAAI,EAAE;AACjFqC,UAAAA,cAAc,EAAE;UAChB,IAAI,CAACpC,aAAY,GAAItkB,QAAQ;AAC7B,UAAA,IAAI,CAAC4pB,WAAW,CAACxxB,KAAK,CAAC;AAC3B,SAAE,MAAK;AACH,UAAA,IAAM8H,QAAS,GAAE,IAAI,CAACyL,UAAU,CAAC7L,OAAO,CAAC;UACzC,IAAM+pB,aAAc,GAAE,IAAI,CAACzF,UAAW,GAAE,KAAM,GAAE,IAAI,CAACrxB,gBAAgB;UAErE,IAAI,CAACsxB,cAAa,GAAIrkB,QAAQ;UAC9B,IAAI,CAACskB,aAAY,GAAItkB,QAAQ;AAE7B,UAAA,IAAI6pB,aAAa,EAAE;YACf,IAAIjD,OAAQ,GAAExuB,KAAK,CAACwuB,OAAM,IAAKxuB,KAAK,CAACyuB,OAAO;YAE5C,IAAI3mB,YAAY0mB,OAAO,EAAE;AACrB,cAAA,IAAI,IAAI,CAACkD,qBAAqB,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAACzxB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACxC,eAAE,MAAK;AACH,gBAAA,IAAM0xB,cAAe,GAAE,IAAI,CAACvd,oBAAoB,CAAC1M,OAAO,CAAC;gBACzD,IAAMkqB,UAAS,GAAI,IAAI,CAACp3B,SAAS,CAAC2C,MAAM,CAAC,UAAC00B,GAAG,EAAEpvB,CAAC,EAAA;kBAAA,OAAKA,CAAE,IAAGkvB,cAAc;iBAAC,CAAA;AAEzE,gBAAA,IAAI,CAAC1xB,KAAK,CAAC,kBAAkB,EAAE2xB,UAAU,CAAC;AAC9C;AAEA,cAAA,IAAI,CAAC3xB,KAAK,CAAC,cAAc,EAAE;AAAEC,gBAAAA,aAAa,EAAEF,KAAK;AAAEG,gBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,gBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,gBAAAA,IAAI,EAAE;AAAM,eAAC,CAAC;AACrG,aAAE,MAAK;AACH,cAAA,IAAI,IAAI,CAACm5B,qBAAqB,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAACzxB,KAAK,CAAC,kBAAkB,EAAEyH,OAAO,CAAC;AAC3C,eAAA,MAAO,IAAI,IAAI,CAAC6pB,uBAAuB,EAAE,EAAE;gBACvC,IAAIK,cAAapD,OAAM,GAAI,IAAI,CAACh0B,aAAa,EAAG,GAAE,EAAE;gBAEpDo3B,WAAS,GAAA,EAAA,CAAAjyB,MAAA,CAAA6rB,kBAAA,CAAQoG,WAAU,CAAA,EAAA,CAAElqB,OAAO,CAAC,CAAA;AACrC,gBAAA,IAAI,CAACzH,KAAK,CAAC,kBAAkB,EAAE2xB,WAAU,CAAC;AAC9C;AAEA,cAAA,IAAI,CAAC3xB,KAAK,CAAC,YAAY,EAAE;AAAEC,gBAAAA,aAAa,EAAEF,KAAK;AAAEG,gBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,gBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,gBAAAA,IAAI,EAAE;AAAM,eAAC,CAAC;AACnG;AACJ,WAAE,MAAK;AACH,YAAA,IAAI,IAAI,CAACkC,aAAc,KAAI,QAAQ,EAAE;AACjC,cAAA,IAAIqN,QAAQ,EAAE;AACV,gBAAA,IAAI,CAAC7H,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpC,gBAAA,IAAI,CAACA,KAAK,CAAC,cAAc,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,kBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACrG,eAAE,MAAK;AACH,gBAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAEyH,OAAO,CAAC;AACvC,gBAAA,IAAI,CAACzH,KAAK,CAAC,YAAY,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,kBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACnG;AACJ,aAAA,MAAO,IAAI,IAAI,CAACkC,aAAc,KAAI,UAAU,EAAE;AAC1C,cAAA,IAAIqN,QAAQ,EAAE;AACV,gBAAA,IAAM6pB,eAAe,GAAE,IAAI,CAACvd,oBAAoB,CAAC1M,OAAO,CAAC;gBACzD,IAAMkqB,WAAS,GAAI,IAAI,CAACp3B,SAAS,CAAC2C,MAAM,CAAC,UAAC00B,GAAG,EAAEpvB,CAAC,EAAA;kBAAA,OAAKA,CAAE,IAAGkvB,eAAc;iBAAC,CAAA;AAEzE,gBAAA,IAAI,CAAC1xB,KAAK,CAAC,kBAAkB,EAAE2xB,WAAU,CAAC;AAC1C,gBAAA,IAAI,CAAC3xB,KAAK,CAAC,cAAc,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,kBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACrG,eAAE,MAAK;AACH,gBAAA,IAAMq5B,WAAW,GAAE,IAAI,CAACp3B,SAAU,GAAA,EAAA,CAAAmF,MAAA,CAAA6rB,kBAAA,CAAM,IAAI,CAAChxB,SAAS,CAAA,EAAA,CAAEkN,OAAO,CAAI,CAAA,GAAA,CAACA,OAAO,CAAC;AAE5E,gBAAA,IAAI,CAACzH,KAAK,CAAC,kBAAkB,EAAE2xB,WAAU,CAAC;AAC1C,gBAAA,IAAI,CAAC3xB,KAAK,CAAC,YAAY,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEuH,OAAO;AAAE9I,kBAAAA,KAAK,EAAEgJ,QAAQ;AAAErP,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACnG;AACJ;AACJ;AACJ;AACJ;MAEA,IAAI,CAACyzB,UAAW,GAAE,KAAK;AAEvB,MAAA,IAAIqF,WAAW,EAAE;QAAA,IAAAS,aAAA,EAAAC,oBAAA;AACb,QAAA,IAAI,EAAAD,aAAA,GAAA9xB,KAAK,CAACwK,MAAM,MAAAsnB,IAAAA,IAAAA,aAAA,KAAZA,MAAAA,GAAAA,MAAAA,GAAAA,aAAA,CAAchlB,YAAY,CAAC,iBAAiB,OAAM,eAAe,EAAE;AAEvE,QAAA,IAAMklB,SAAQ,GAAA,CAAAD,oBAAA,GAAI/xB,KAAK,CAAC2nB,aAAa,MAAAoK,IAAAA,IAAAA,oBAAA,uBAAnBA,oBAAA,CAAqB3D,OAAO,CAAC,kCAAkC,CAAC;QAElFiD,WAAW,CAACjS,WAAW,IAAI;AAC3B,QAAA,IAAI4S,SAAS,EAAEA,SAAS,CAAC5S,QAAO,GAAI,GAAG;AAC3C;KACH;AACDzK,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACxS,CAAC,EAAE;AACb,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAE7B,MAAA,IAAImuB,WAAW,CAACruB,KAAK,CAACwK,MAAM,CAAC,EAAE;AAC3B,QAAA;AACJ;AAEA,MAAA,IAAI,CAACvK,KAAK,CAAC,cAAc,EAAEkC,CAAC,CAAC;KAChC;AACDyS,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC5U,KAAK,EAAE;MACnB,IAAI,IAAI,CAACpF,WAAW,EAAE;AAClB0zB,QAAAA,cAAc,EAAE;AAChBtuB,QAAAA,KAAK,CAACE,aAAa,CAACsK,MAAM,CAAClB,KAAK,EAAE;AACtC;MAEA,IAAI,CAACrJ,KAAK,CAAC,6BAA6B,EAAED,KAAK,CAACG,IAAI,CAAC;AACrD,MAAA,IAAI,CAACF,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;IACD6U,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAACmX,UAAS,GAAI,IAAI;KACzB;AACDlX,IAAAA,YAAY,WAAZA,YAAYA,CAAC3S,CAAC,EAAEX,SAAS,EAAE;AACvB,MAAA,IAAMxB,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMwH,UAAUvF,CAAC,CAAChC,IAAI;AACtB,MAAA,IAAMyH,QAAO,GAAIzF,CAAC,CAACvD,KAAK;MACxB,IAAM4vB,UAAUxuB,KAAK,CAACwuB,WAAWxuB,KAAK,CAACyuB,OAAO;MAE9C,IAAI,IAAI,CAACh0B,aAAa,EAAE;AACpB,QAAA,IAAMugB,MAAMhb,KAAK,CAACwK,MAAM;QAExB,QAAQxK,KAAK,CAACyL,IAAI;AACd,UAAA,KAAK,WAAW;YACZ,IAAI,CAACwmB,cAAc,CAACjyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,CAAC;AACpD,YAAA;AAEJ,UAAA,KAAK,SAAS;YACV,IAAI,CAAC0wB,YAAY,CAAClyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,CAAC;AAClD,YAAA;AAEJ,UAAA,KAAK,MAAM;YACP,IAAI,CAAC2wB,SAAS,CAACnyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,CAAC;AAC/C,YAAA;AAEJ,UAAA,KAAK,KAAK;YACN,IAAI,CAAC4wB,QAAQ,CAACpyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,CAAC;AAC9C,YAAA;AAEJ,UAAA,KAAK,OAAO;AACZ,UAAA,KAAK,aAAa;YACd,IAAI,CAAC6wB,UAAU,CAACryB,KAAK,EAAE0H,OAAO,EAAEE,QAAQ,CAAC;AACzC,YAAA;AAEJ,UAAA,KAAK,OAAO;YACR,IAAI,CAAC0qB,UAAU,CAACtyB,KAAK,EAAE0H,OAAO,EAAEE,QAAQ,EAAEpG,SAAS,CAAC;AACpD,YAAA;AAEJ,UAAA,KAAK,KAAK;AACN,YAAA,IAAI,CAAC+wB,QAAQ,CAACvyB,KAAK,EAAE4H,QAAQ,CAAC;AAC9B,YAAA;AAEJ,UAAA;AACI,YAAA,IAAI5H,KAAK,CAACyL,IAAG,KAAM,MAAO,IAAG+iB,OAAQ,IAAG,IAAI,CAAC+C,uBAAuB,EAAE,EAAE;cACpE,IAAMpxB,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,cAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC;AACxC;YAEA,IAAMsyB,cAAe,GAAEzyB,KAAK,CAACyL,IAAG,KAAM,MAAK,IAAK+iB,OAAO;AAEvD,YAAA,IAAI,CAACiE,cAAc,EAAEzyB,KAAK,CAACuL,cAAc,EAAE;AAE3C,YAAA;AACR;AACJ;KACH;IACD0mB,cAAc,EAAA,SAAdA,cAAcA,CAACjyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,EAAE;AAC5C,MAAA,IAAM8L,OAAQ,GAAE,IAAI,CAAColB,qBAAqB,CAAC1X,GAAG,CAAC;MAE/C1N,WAAW,IAAI,CAACqlB,cAAc,CAAC3X,GAAG,EAAE1N,OAAO,CAAC;MAE5C,IAAItN,KAAK,CAAC0L,QAAQ,EAAE;QAChB,IAAMvL,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAMg6B,YAAa,GAAEhrB,QAAO,GAAI,CAAA,IAAKzH,IAAI,CAAC2F,MAAK,GAAI3F,IAAI,CAAC2F,MAAO,GAAE,CAAE,GAAE8B,QAAO,GAAI,CAAC;QAEjF,IAAI,CAAC8M,UAAU,CAAC;AAAExU,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEA,IAAI,CAACyyB,YAAY,CAAC;AAAEh0B,UAAAA,KAAK,EAAEg0B;AAAa,SAAC,CAAC;AAC5F;MAEA5yB,KAAK,CAACuL,cAAc,EAAE;KACzB;IACD2mB,YAAY,EAAA,SAAZA,YAAYA,CAAClyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,EAAE;AAC1C,MAAA,IAAMqxB,OAAQ,GAAE,IAAI,CAACC,qBAAqB,CAAC9X,GAAG,CAAC;MAE/C6X,WAAW,IAAI,CAACF,cAAc,CAAC3X,GAAG,EAAE6X,OAAO,CAAC;MAE5C,IAAI7yB,KAAK,CAAC0L,QAAQ,EAAE;QAChB,IAAMvL,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAMm6B,eAAenrB,QAAS,GAAE,KAAK,IAAI,CAAA,GAAIA,QAAO,GAAI,CAAC;QAEzD,IAAI,CAAC8M,UAAU,CAAC;AAAExU,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEA,IAAI,CAAC4yB,YAAY,CAAC;AAAEn0B,UAAAA,KAAK,EAAEm0B;AAAa,SAAC,CAAC;AAC5F;MAEA/yB,KAAK,CAACuL,cAAc,EAAE;KACzB;IACD4mB,SAAS,EAAA,SAATA,SAASA,CAACnyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,EAAE;AACvC,MAAA,IAAMwxB,WAAW,IAAI,CAACC,sBAAsB,EAAE;MAE9CD,YAAY,IAAI,CAACL,cAAc,CAAC3X,GAAG,EAAEgY,QAAQ,CAAC;AAE9C,MAAA,IAAIhzB,KAAK,CAACyuB,OAAM,IAAKzuB,KAAK,CAAC0L,QAAQ,EAAE;QACjC,IAAMvL,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,QAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC2G,KAAK,CAAC,CAAC,EAAEc,QAAS,GAAE,CAAC,CAAC,CAAC;AAC/D;MAEA5H,KAAK,CAACuL,cAAc,EAAE;KACzB;IACD6mB,QAAQ,EAAA,SAARA,QAAQA,CAACpyB,KAAK,EAAEgb,GAAG,EAAEpT,QAAQ,EAAEpG,SAAS,EAAE;AACtC,MAAA,IAAM0xB,UAAU,IAAI,CAACC,qBAAqB,EAAE;MAE5CD,WAAW,IAAI,CAACP,cAAc,CAAC3X,GAAG,EAAEkY,OAAO,CAAC;AAE5C,MAAA,IAAIlzB,KAAK,CAACyuB,OAAM,IAAKzuB,KAAK,CAAC0L,QAAQ,EAAE;QACjC,IAAMvL,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,QAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC2G,KAAK,CAACc,QAAQ,EAAEzH,IAAI,CAAC2F,MAAM,CAAC,CAAC;AACrE;MAEA9F,KAAK,CAACuL,cAAc,EAAE;KACzB;IACD8mB,UAAU,EAAA,SAAVA,UAAUA,CAACryB,KAAK,EAAE0H,OAAO,EAAEE,QAAQ,EAAE;MACjC,IAAI,CAAC8M,UAAU,CAAC;AAAExU,QAAAA,aAAa,EAAEF,KAAK;AAAEG,QAAAA,IAAI,EAAEuH,OAAO;AAAE9I,QAAAA,KAAK,EAAEgJ;AAAS,OAAC,CAAC;MACzE5H,KAAK,CAACuL,cAAc,EAAE;KACzB;IACD+mB,UAAU,EAAA,SAAVA,UAAUA,CAACtyB,KAAK,EAAE0H,OAAO,EAAEE,QAAQ,EAAEpG,SAAS,EAAE;MAC5C,IAAI,CAAC6wB,UAAU,CAACryB,KAAK,EAAE0H,OAAO,EAAEE,QAAQ,CAAC;MAEzC,IAAI5H,KAAK,CAAC0L,QAAO,IAAK,IAAI,CAAClR,SAAQ,KAAM,IAAI,EAAE;QAC3C,IAAM2F,IAAK,GAAE,IAAI,CAACqyB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAIgG,KAAK;AAET,QAAA,IAAI,IAAI,CAACpE,SAAS,CAACsL,MAAK,GAAI,CAAC,EAAE;UAC3B,IAAIstB,qBAAqB,EAAEC,oBAAoB;UAE/CD,qBAAsB,GAAEE,eAAe,CAAC,IAAI,CAAC94B,SAAS,CAAC,CAAC,CAAC,EAAE2F,IAAI,CAAC;AAChEkzB,UAAAA,oBAAmB,GAAIC,eAAe,CAAC,IAAI,CAAC94B,SAAS,CAAC,IAAI,CAACA,SAAS,CAACsL,MAAO,GAAE,CAAC,CAAC,EAAE3F,IAAI,CAAC;AAEvFvB,UAAAA,KAAM,GAAEgJ,QAAO,IAAKwrB,qBAAoB,GAAIC,uBAAuBD,qBAAqB;AAC5F,SAAE,MAAK;UACHx0B,QAAQ00B,eAAe,CAAC,IAAI,CAAC94B,SAAS,EAAE2F,IAAI,CAAC;AACjD;AAEA,QAAA,IAAMyxB,UAAS,GAAIhzB,KAAI,KAAMgJ,WAAWzH,IAAI,CAAC2G,KAAK,CAACysB,IAAI,CAACC,GAAG,CAAC50B,KAAK,EAAEgJ,QAAQ,CAAC,EAAE2rB,IAAI,CAACE,GAAG,CAAC70B,KAAK,EAAEgJ,QAAQ,CAAE,GAAE,CAAC,CAAA,GAAIF,OAAO;AAEtH,QAAA,IAAI,CAACzH,KAAK,CAAC,kBAAkB,EAAE2xB,UAAU,CAAC;AAC9C;KACH;AACDW,IAAAA,QAAQ,WAARA,QAAQA,CAACvyB,KAAK,EAAE4H,QAAQ,EAAE;AACtB,MAAA,IAAMoJ,IAAK,GAAE,IAAI,CAACgP,KAAK,CAACrH,OAAQ,IAAG,IAAI,CAACqH,KAAK,CAACrH,OAAO,CAACtP,GAAG;AACzD,MAAA,IAAMzQ,IAAG,GAAI86B,IAAI,CAAC1iB,IAAI,EAAE,kCAAkC,CAAC;AAE3D,MAAA,IAAIhR,KAAK,CAACyL,SAAS,KAAI,IAAK7S,QAAQA,IAAI,CAACkN,MAAO,GAAE,CAAC,EAAE;AACjD,QAAA,IAAM6tB,gBAAiB,GAAErC,UAAU,CAACtgB,IAAI,EAAE,4BAA4B,CAAC;AACvE,QAAA,IAAMqgB,WAAY,GAAEC,UAAU,CAACtgB,IAAI,EAAE,gDAAgD,CAAC;AAEtF,QAAA,IAAI2iB,gBAAgB,EAAE;UAClBA,gBAAgB,CAACvU,QAAS,GAAE,GAAG;UAC/BiS,WAAY,IAAGA,gBAAgBsC,qBAAqBtC,WAAW,CAACjS,WAAW,IAAI,CAAC;AACpF,SAAE,MAAK;AACHxmB,UAAAA,IAAI,CAAC,CAAC,CAAC,CAACwmB,WAAW,GAAG;AACtBiS,UAAAA,WAAY,KAAIz4B,IAAI,CAAC,CAAC,CAAE,KAAIA,IAAI,CAACgP,QAAQ,CAAC,CAACwX,QAAO,GAAI,IAAI,CAAC;AAC/D;AACJ;KACH;AACDsT,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC1X,GAAG,EAAE;AACvB,MAAA,IAAI1N,OAAQ,GAAE0N,GAAG,CAAC3N,kBAAkB;AAEpC,MAAA,IAAIC,OAAO,EAAE;AACT,QAAA,IAAIR,YAAY,CAACQ,OAAO,EAAE,uBAAuB,CAAE,KAAI,IAAI,EAAE,OAAOA,OAAO,CAAA,KACtE,OAAO,IAAI,CAAColB,qBAAqB,CAACplB,OAAO,CAAC;AACnD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDwlB,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC9X,GAAG,EAAE;AACvB,MAAA,IAAI6X,OAAM,GAAI7X,GAAG,CAAC/N,sBAAsB;AAExC,MAAA,IAAI4lB,OAAO,EAAE;AACT,QAAA,IAAI/lB,YAAY,CAAC+lB,OAAO,EAAE,uBAAuB,CAAE,KAAI,IAAI,EAAE,OAAOA,OAAO,CAAA,KACtE,OAAO,IAAI,CAACC,qBAAqB,CAACD,OAAO,CAAC;AACnD,OAAE,MAAK;AACH,QAAA,OAAO,IAAI;AACf;KACH;IACDI,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;MACrB,IAAMD,QAAO,GAAI1B,UAAU,CAAC,IAAI,CAACtR,KAAK,CAAC4T,KAAK,EAAE,kCAAkC,CAAC;AAEjF,MAAA,OAAOZ,QAAQ;KAClB;IACDG,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,IAAMv6B,IAAG,GAAI86B,IAAI,CAAC,IAAI,CAAC1T,KAAK,CAAC4T,KAAK,EAAE,kCAAkC,CAAC;MAEvE,OAAOh7B,IAAG,GAAIA,IAAI,CAACA,IAAI,CAACkN,MAAO,GAAE,CAAC,CAAE,GAAE,IAAI;KAC7C;AACD6sB,IAAAA,cAAc,WAAdA,cAAcA,CAACkB,iBAAiB,EAAEC,iBAAiB,EAAE;MACjDD,iBAAiB,CAACzU,QAAS,GAAE,IAAI;MACjC0U,iBAAiB,CAAC1U,QAAS,GAAE,GAAG;MAChC9V,KAAK,CAACwqB,iBAAiB,CAAC;KAC3B;AACD9pB,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAChK,KAAK,EAAE;AACtB,MAAA,IAAM0H,UAAU1H,KAAK,CAACG,IAAI;AAE1B,MAAA,IAAI,IAAI,CAACoT,UAAU,CAAC7L,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAI,CAACzH,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAACA,KAAK,CAAC,cAAc,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEuH,OAAO;UAAE9I,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAc,SAAC,CAAC;AAC9H,OAAE,MAAK;AACH,QAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAEyH,OAAO,CAAC;AACvC,QAAA,IAAI,CAACzH,KAAK,CAAC,YAAY,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEuH,OAAO;UAAE9I,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAc,SAAC,CAAC;AAC5H;KACH;AACD0R,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAACjK,KAAK,EAAE;AACzB,MAAA,IAAM0H,UAAU1H,KAAK,CAACG,IAAI;AAE1B,MAAA,IAAI,IAAI,CAACoT,UAAU,CAAC7L,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAMiqB,cAAe,GAAE,IAAI,CAACvd,oBAAoB,CAAC1M,OAAO,CAAC;QACzD,IAAMkqB,UAAS,GAAI,IAAI,CAACp3B,SAAS,CAAC2C,MAAM,CAAC,UAAC00B,GAAG,EAAEpvB,CAAC,EAAA;UAAA,OAAKA,CAAE,IAAGkvB,cAAc;SAAC,CAAA;AAEzE,QAAA,IAAI,CAAC1xB,KAAK,CAAC,kBAAkB,EAAE2xB,UAAU,CAAC;AAC1C,QAAA,IAAI,CAAC3xB,KAAK,CAAC,cAAc,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEuH,OAAO;UAAE9I,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAW,SAAC,CAAC;AAC3H,OAAE,MAAK;AACH,QAAA,IAAIq5B,cAAa,IAAI,CAACp3B,SAAQ,GAAAgxB,kBAAA,CAAQ,IAAI,CAAChxB,SAAS,CAAA,GAAI,EAAE;QAE1Do3B,WAAS,GAAA,EAAA,CAAAjyB,MAAA,CAAA6rB,kBAAA,CAAQoG,WAAU,CAAA,EAAA,CAAElqB,OAAO,CAAC,CAAA;AACrC,QAAA,IAAI,CAACzH,KAAK,CAAC,kBAAkB,EAAE2xB,WAAU,CAAC;AAC1C,QAAA,IAAI,CAAC3xB,KAAK,CAAC,YAAY,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEuH,OAAO;UAAE9I,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAW,SAAC,CAAC;AACzH;KACH;AACDw7B,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAAC/zB,KAAK,EAAE;AAC1B,MAAA,IAAI,IAAI,CAAClF,SAAQ,KAAM,IAAI,EAAE;AACzB,QAAA,IAAI,CAACmF,KAAK,CAAC,mBAAmB,EAAED,KAAK,CAAC;AAC1C,OAAE,MAAK;AACH,QAAA,IAAQE,aAAa,GAAcF,KAAK,CAAhCE,aAAa;UAAEzB,OAAQ,GAAIuB,KAAK,CAAjBvB,OAAQ;QAC/B,IAAImzB,UAAW,GAAE,EAAE;AAEnB,QAAA,IAAInzB,OAAO,EAAE;UACTmzB,UAAS,GAAI,IAAI,CAACt1B,WAAU,MAAAqD,MAAA,CAAA6rB,kBAAA,CAAQ,IAAI,CAAClvB,WAAW,CAAA,EAAAkvB,kBAAA,CAAK,IAAI,CAACwC,aAAa,CAAA,CAAA,GAAI,IAAI,CAACA,aAAa;AACjG,UAAA,IAAI,CAAC/tB,KAAK,CAAC,gBAAgB,EAAE;AAAEC,YAAAA,aAAa,EAAbA,aAAa;AAAEC,YAAAA,IAAI,EAAEyxB;AAAW,WAAC,CAAC;AACrE,SAAE,MAAK;AACH,UAAA,IAAI,CAAC3xB,KAAK,CAAC,kBAAkB,EAAE;AAAEC,YAAAA,aAAY,EAAZA;AAAc,WAAC,CAAC;AACrD;AAEA,QAAA,IAAI,CAACD,KAAK,CAAC,kBAAkB,EAAE2xB,UAAU,CAAC;AAC9C;KACH;IACDF,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACj3B,kBAAkB,QAAQ;KACzC;IACD82B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAAC92B,aAAc,KAAI,UAAU;KAC3C;AACD8Y,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC7L,OAAO,EAAE;AAChB,MAAA,IAAIA,OAAQ,IAAG,IAAI,CAAClN,SAAS,EAAE;QAC3B,IAAI,IAAI,CAAC/B,OAAO,EAAE;UACd,OAAO,IAAI,CAACizB,kBAAkB,IAAI,CAACA,eAAe,CAAC5hB,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAC,CAAE,KAAImB,SAAQ,GAAI,KAAK;AACrH,SAAE,MAAK;AACH,UAAA,IAAI,IAAI,CAACY,SAAU,YAAWhC,KAAK,EAAE,OAAO,IAAI,CAAC4b,oBAAoB,CAAC1M,OAAO,CAAE,GAAE,EAAE,CAAA,KAC9E,OAAO,IAAI,CAACwL,MAAM,CAACxL,OAAO,EAAE,IAAI,CAAClN,SAAS,CAAC;AACpD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;AACD4Z,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAAC1M,OAAO,EAAE;MAC1B,OAAO,IAAI,CAAC2M,SAAS,CAAC3M,OAAO,EAAE,IAAI,CAAClN,SAAS,CAAC;KACjD;AACD6Z,IAAAA,SAAS,WAATA,SAASA,CAAC3M,OAAO,EAAE4M,UAAU,EAAE;MAC3B,IAAI1V,KAAI,GAAI,EAAE;AAEd,MAAA,IAAI0V,UAAS,IAAKA,UAAU,CAACxO,MAAM,EAAE;AACjC,QAAA,KAAK,IAAIrD,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAI6R,UAAU,CAACxO,MAAM,EAAErD,CAAC,EAAE,EAAE;UACxC,IAAI,IAAI,CAACyQ,MAAM,CAACxL,OAAO,EAAE4M,UAAU,CAAC7R,CAAC,CAAC,CAAC,EAAE;AACrC7D,YAAAA,KAAI,GAAI6D,CAAC;AACT,YAAA;AACJ;AACJ;AACJ;AAEA,MAAA,OAAO7D,KAAK;KACf;AACDsuB,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC1yB,SAAS,EAAE;AAC3B,MAAA,IAAI,CAACkxB,eAAc,GAAI,EAAE;AAEzB,MAAA,IAAIlzB,KAAK,CAAC0b,OAAO,CAAC1Z,SAAS,CAAC,EAAE;AAAA,QAAA,IAAAw5B,UAAA,GAAA1d,0BAAA,CACT9b,SAAS,CAAA;UAAAy5B,MAAA;AAAA,QAAA,IAAA;UAA1B,KAAAD,UAAA,CAAA9vB,CAAA,EAAA+vB,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAA3xB,CAAA,EAAAmB,EAAAA,IAAA,GAA4B;AAAA,YAAA,IAAnBrD,IAAG,GAAA8zB,MAAA,CAAA37B,KAAA;AACR,YAAA,IAAI,CAACozB,eAAe,CAAChzB,MAAM,CAACoR,gBAAgB,CAAC3J,IAAI,EAAE,IAAI,CAAC1H,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC1E;AAAA,SAAA,CAAA,OAAAie,GAAA,EAAA;UAAAsd,UAAA,CAAA7xB,CAAA,CAAAuU,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAsd,UAAAA,UAAA,CAAAnwB,CAAA,EAAA;AAAA;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAAC6nB,eAAe,CAAChzB,MAAM,CAACoR,gBAAgB,CAACtP,SAAS,EAAE,IAAI,CAAC/B,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC/E;KACH;AACD00B,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAACnxB,WAAW,EAAE;AAC9B,MAAA,IAAIA,WAAU,IAAKA,WAAW,CAAC8J,MAAM,EAAE;AACnC,QAAA,IAAI,CAAC8lB,gBAAe,GAAI,EAAE;AAAA,QAAA,IAAAsI,UAAA,GAAA5d,0BAAA,CAETta,WAAW,CAAA;UAAAm4B,MAAA;AAAA,QAAA,IAAA;UAA5B,KAAAD,UAAA,CAAAhwB,CAAA,EAAAiwB,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAA7xB,CAAA,EAAAmB,EAAAA,IAAA,GAA8B;AAAA,YAAA,IAArBrD,IAAK,GAAAg0B,MAAA,CAAA77B,KAAA;AACV,YAAA,IAAI,CAACszB,gBAAgB,CAAClzB,MAAM,CAACoR,gBAAgB,CAAC3J,IAAI,EAAE,IAAI,CAAC1H,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC3E;AAAA,SAAA,CAAA,OAAAie,GAAA,EAAA;UAAAwd,UAAA,CAAA/xB,CAAA,CAAAuU,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAwd,UAAAA,UAAA,CAAArwB,CAAA,EAAA;AAAA;AACJ,OAAE,MAAK;QACH,IAAI,CAAC+nB,mBAAmB,IAAI;AAChC;KACH;AACD1Y,IAAAA,MAAM,WAANA,QAAMA,CAACqB,KAAK,EAAEC,KAAK,EAAE;AACjB,MAAA,OAAO,IAAI,CAAC9Z,kBAAiB,KAAM,QAAO,GAAI6Z,UAAUC,KAAI,GAAItB,MAAM,CAACqB,KAAK,EAAEC,KAAK,EAAE,IAAI,CAAC/b,OAAO,CAAC;KACrG;AACD+4B,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACxxB,KAAK,EAAE;MACf,IAAIo0B,UAAU,EAAEC,QAAQ;AAExB,MAAA,IAAI,IAAI,CAACnI,aAAY,GAAI,IAAI,CAACD,cAAc,EAAE;QAC1CmI,UAAW,GAAE,IAAI,CAACnI,cAAc;QAChCoI,QAAS,GAAE,IAAI,CAACnI,aAAa;OAC/B,MAAK,IAAI,IAAI,CAACA,aAAY,GAAI,IAAI,CAACD,cAAc,EAAE;QACjDmI,UAAS,GAAI,IAAI,CAAClI,aAAa;QAC/BmI,QAAO,GAAI,IAAI,CAACpI,cAAc;AAClC,OAAE,MAAK;QACHmI,UAAS,GAAI,IAAI,CAAClI,aAAa;QAC/BmI,QAAS,GAAE,IAAI,CAACnI,aAAa;AACjC;AAEA,MAAA,IAAI,IAAI,CAACzyB,IAAG,IAAK,IAAI,CAACT,SAAS,EAAE;QAC7Bo7B,UAAS,IAAK,IAAI,CAAClJ,OAAO;QAC1BmJ,QAAO,IAAK,IAAI,CAACnJ,OAAO;AAC5B;AAEA,MAAA,IAAM5yB,KAAI,GAAI,IAAI,CAAC01B,aAAa;MAChC,IAAI4D,UAAW,GAAE,EAAE;MAEnB,KAAK,IAAInvB,CAAA,GAAI2xB,UAAU,EAAE3xB,CAAE,IAAG4xB,QAAQ,EAAE5xB,CAAC,EAAE,EAAE;AACzC,QAAA,IAAI6xB,YAAW,GAAIh8B,KAAK,CAACmK,CAAC,CAAC;AAE3BmvB,QAAAA,UAAU,CAAClsB,IAAI,CAAC4uB,YAAY,CAAC;AAC7B,QAAA,IAAI,CAACr0B,KAAK,CAAC,YAAY,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEm0B,YAAY;AAAE/7B,UAAAA,IAAI,EAAE;AAAM,SAAC,CAAC;AACvF;AAEA,MAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAE2xB,UAAU,CAAC;KAC7C;AACD2C,IAAAA,SAAS,WAATA,WAASA,CAAC1e,OAAO,EAAE1V,IAAI,EAAE;AAAA,MAAA,IAAAq0B,MAAA,GAAA,IAAA;MACrB,IAAIC,GAAI,GAAE,QAAQ;MAElB,IAAI,CAACt0B,IAAI,EAAE;QACPA,IAAK,GAAE,IAAI,CAAC6tB,aAAa;AAEzB,QAAA,IAAInY,OAAQ,IAAGA,OAAO,CAAC6e,aAAa,EAAEv0B,IAAK,GAAE,IAAI,CAAC3F,SAAU,IAAG,EAAE,CAAA,KAC5D,IAAI,IAAI,CAAC8B,WAAW,EAAE6D,IAAK,GAAEA,IAAK,GAAA,EAAA,CAAAR,MAAA,CAAA6rB,kBAAA,CAAM,IAAI,CAAClvB,WAAW,GAAAkvB,kBAAA,CAAKrrB,IAAI,CAAI,CAAA,GAAA,IAAI,CAAC7D,WAAW;AAC9F;;AAEA;MACA,IAAIq4B,eAAc,GAAI,KAAK;AAE3B,MAAA,KAAK,IAAIlyB,CAAA,GAAI,CAAC,EAAEA,CAAE,GAAE,IAAI,CAAC2P,OAAO,CAACtM,MAAM,EAAErD,CAAC,EAAE,EAAE;AAC1C,QAAA,IAAI/D,MAAO,GAAE,IAAI,CAAC0T,OAAO,CAAC3P,CAAC,CAAC;AAE5B,QAAA,IAAI,IAAI,CAACqG,UAAU,CAACpK,MAAM,EAAE,YAAY,CAAE,KAAI,KAAI,IAAK,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC,EAAE;UACrF,IAAIi2B,eAAe,EAAEF,GAAE,IAAK,IAAI,CAACz5B,YAAY,CAAA,KACxC25B,kBAAkB,IAAI;AAE3BF,UAAAA,GAAI,IAAG,GAAE,IAAK,IAAI,CAAC3rB,UAAU,CAACpK,MAAM,EAAE,cAAc,CAAA,IAAK,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,QAAQ,CAAA,IAAK,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,OAAO,CAAC,CAAE,GAAE,GAAG;AACzI;AACJ;;AAEA;AACA,MAAA,IAAIyB,IAAI,EAAE;AACNA,QAAAA,IAAI,CAAC4E,OAAO,CAAC,UAAC6vB,MAAM,EAAK;AACrBH,UAAAA,GAAI,IAAG,IAAI;UACX,IAAII,YAAa,GAAE,KAAK;AAExB,UAAA,KAAK,IAAIpyB,EAAA,GAAI,CAAC,EAAEA,EAAE,GAAE+xB,MAAI,CAACpiB,OAAO,CAACtM,MAAM,EAAErD,EAAC,EAAE,EAAE;AAC1C,YAAA,IAAI/D,OAAO,GAAE81B,MAAI,CAACpiB,OAAO,CAAC3P,EAAC,CAAC;AAE5B,YAAA,IAAI+xB,MAAI,CAAC1rB,UAAU,CAACpK,OAAM,EAAE,YAAY,CAAE,KAAI,KAAI,IAAK81B,MAAI,CAAC1rB,UAAU,CAACpK,OAAM,EAAE,OAAO,CAAC,EAAE;cACrF,IAAIm2B,YAAY,EAAEJ,GAAE,IAAKD,MAAI,CAACx5B,YAAY,CAAA,KACrC65B,YAAW,GAAI,IAAI;AAExB,cAAA,IAAIC,QAAO,GAAIhrB,gBAAgB,CAAC8qB,MAAM,EAAEJ,MAAI,CAAC1rB,UAAU,CAACpK,OAAM,EAAE,OAAO,CAAC,CAAC;cAEzE,IAAIo2B,QAAO,IAAK,IAAI,EAAE;gBAClB,IAAIN,MAAI,CAACt5B,cAAc,EAAE;AACrB45B,kBAAAA,QAAO,GAAIN,MAAI,CAACt5B,cAAc,CAAC;AAC3BiF,oBAAAA,IAAI,EAAE20B,QAAQ;AACdlsB,oBAAAA,KAAK,EAAE4rB,MAAI,CAAC1rB,UAAU,CAACpK,OAAM,EAAE,OAAO;AAC1C,mBAAC,CAAC;AACN,iBAAE,MAAKo2B,QAAS,GAAEp8B,MAAM,CAACo8B,QAAQ,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;eAC1D,MAAOD,QAAS,GAAE,EAAE;AAEpBL,cAAAA,GAAI,IAAG,MAAMK,WAAW,GAAG;AAC/B;AACJ;AACJ,SAAC,CAAC;AACN;;AAEA;MACA,IAAIE,eAAc,GAAI,KAAK;AAE3B,MAAA,KAAK,IAAIvyB,GAAA,GAAI,CAAC,EAAEA,GAAE,GAAE,IAAI,CAAC2P,OAAO,CAACtM,MAAM,EAAErD,GAAC,EAAE,EAAE;AAC1C,QAAA,IAAI/D,QAAO,GAAE,IAAI,CAAC0T,OAAO,CAAC3P,GAAC,CAAC;AAE5B,QAAA,IAAIA,GAAA,KAAM,CAAC,EAAEgyB,OAAO,IAAI;AAExB,QAAA,IAAI,IAAI,CAAC3rB,UAAU,CAACpK,QAAM,EAAE,YAAY,MAAM,SAAS,IAAI,CAACoK,UAAU,CAACpK,QAAM,EAAE,cAAc,CAAC,EAAE;UAC5F,IAAIs2B,eAAe,EAAEP,GAAE,IAAK,IAAI,CAACz5B,YAAY,CAAA,KACxCg6B,kBAAkB,IAAI;AAE3BP,UAAAA,GAAI,IAAG,GAAE,IAAK,IAAI,CAAC3rB,UAAU,CAACpK,QAAM,EAAE,cAAc,CAAA,IAAK,IAAI,CAACoK,UAAU,CAACpK,QAAM,EAAE,QAAQ,CAAA,IAAK,IAAI,CAACoK,UAAU,CAACpK,QAAM,EAAE,OAAO,CAAC,CAAE,GAAE,GAAG;AACzI;AACJ;AAEA61B,MAAAA,SAAS,CAACE,GAAG,EAAE,IAAI,CAACx5B,cAAc,CAAC;KACtC;IACDszB,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,CAACrD,OAAQ,GAAE,CAAC;MAChB,IAAI,CAACjrB,KAAK,CAAC,cAAc,EAAE,IAAI,CAACirB,OAAO,CAAC;KAC3C;AACD+J,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACj1B,KAAK,EAAE;MACvB,IAAIk1B,aAAc,GAAEC,SAAS,CAAC,IAAI,CAAC9rB,GAAG,CAAC,CAAC+rB,IAAI;AAE5C,MAAA,IAAI,CAAC9I,mBAAoB,GAAEtsB,KAAK,CAACwK,MAAM,CAACuC,aAAa;MACrD,IAAI,CAACwf,iBAAiB,IAAI;AAC1B,MAAA,IAAI,CAACF,iBAAgB,GAAIrsB,KAAK,CAACq1B,KAAI,GAAIH,aAAY,GAAI,IAAI,CAAC7rB,GAAG,CAACisB,UAAU;MAE1E,IAAI,CAACC,sBAAsB,EAAE;KAChC;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACx1B,KAAK,EAAE;MAClB,IAAIk1B,aAAc,GAAEC,SAAS,CAAC,IAAI,CAAC9rB,GAAG,CAAC,CAAC+rB,IAAI;MAE5C,IAAI,CAAC/rB,GAAG,CAACosB,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC;MACzD,CAAC,IAAI,CAACC,UAAW,IAAGrV,QAAQ,CAAC,IAAI,CAAChX,GAAG,EAAE;AAAE,QAAA,aAAa,EAAE;AAAO,OAAC,CAAC;AACjE,MAAA,IAAI,CAAC2W,KAAK,CAAC2V,YAAY,CAACz3B,KAAK,CAAC03B,MAAO,GAAE,IAAI,CAACvsB,GAAG,CAACwsB,YAAa,GAAE,IAAI;MACnE,IAAI,CAAC7V,KAAK,CAAC2V,YAAY,CAACz3B,KAAK,CAACsa,MAAM,CAAA,GAAI,IAAI;MAC5C,IAAI,CAACwH,KAAK,CAAC2V,YAAY,CAACz3B,KAAK,CAACk3B,OAAOp1B,KAAK,CAACq1B,KAAM,GAAEH,aAAc,GAAE,IAAI,CAAC7rB,GAAG,CAACisB,UAAS,GAAI,IAAI;MAE7F,IAAI,CAACtV,KAAK,CAAC2V,YAAY,CAACz3B,KAAK,CAAC6d,OAAM,GAAI,OAAO;KAClD;IACD+Z,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,IAAIC,KAAM,GAAEC,KAAK,CAAC,IAAI,CAAC3sB,GAAG,CAAE,GAAE,IAAI,CAACgjB,iBAAgB,GAAI,IAAI,CAACrM,KAAK,CAAC2V,YAAY,CAACM,UAAS,GAAI,IAAI,CAACjW,KAAK,CAAC2V,YAAY,CAACM,UAAW,GAAE,IAAI,CAAC5J,iBAAiB;AACvJ,MAAA,IAAI6J,WAAY,GAAE,IAAI,CAAC5J,mBAAmB,CAAC6J,WAAW;AACtD,MAAA,IAAIC,cAAa,GAAIF,cAAcH,KAAK;MACxC,IAAIM,QAAO,GAAI,IAAI,CAAC/J,mBAAmB,CAACpuB,KAAK,CAACm4B,QAAS,IAAG,EAAE;MAE5D,IAAIH,WAAY,GAAEH,KAAM,GAAEO,QAAQ,CAACD,QAAQ,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAA,IAAI,IAAI,CAACj7B,gBAAiB,KAAI,KAAK,EAAE;AACjC,UAAA,IAAIm7B,UAAS,GAAI,IAAI,CAACjK,mBAAmB,CAACjf,kBAAkB;AAC5D,UAAA,IAAImpB,kBAAkBD,UAAU,CAACJ,WAAU,GAAIJ,KAAK;AAEpD,UAAA,IAAIK,cAAa,GAAI,EAAC,IAAKI,kBAAkB,EAAE,EAAE;AAC7C,YAAA,IAAI,CAACC,gBAAgB,CAACL,cAAc,EAAEI,eAAe,CAAC;AAC1D;AACJ,SAAA,MAAO,IAAI,IAAI,CAACp7B,qBAAqB,QAAQ,EAAE;AAC3C,UAAA,IAAMs7B,UAAW,GAAE,IAAI,CAAC1W,KAAK,CAAC4T,KAAK,CAACuC,WAAU,GAAIJ,KAAI,GAAI,IAAI;AAE9D,UAAA,IAAMY,gBAAe,GAAI,SAAnBA,gBAAeA,CAAK/d,EAAE,EAAK;AAC7B,YAAA,CAAC,CAACA,EAAG,KAAIA,EAAE,CAAC1a,KAAK,CAAC04B,KAAI,GAAIhe,EAAE,CAAC1a,KAAK,CAACm4B,WAAWK,UAAU,CAAC;WAC5D;;AAED;AACA,UAAA,IAAI,CAACD,gBAAgB,CAACL,cAAc,CAAC;AACrCO,UAAAA,gBAAgB,CAAC,IAAI,CAAC3W,KAAK,CAAC4T,KAAK,CAAC;AAElC,UAAA,IAAI,CAAC,IAAI,CAACiD,uBAAuB,EAAE;AAC/B,YAAA,IAAM7lB,IAAK,GAAE,IAAI,CAACgP,KAAK,CAACrH,OAAQ,IAAG,IAAI,CAACqH,KAAK,CAACrH,OAAO,CAACtP,GAAG;AACzD,YAAA,IAAMytB,aAAa,IAAI,CAAC9W,KAAK,CAAC+W,aAAc,IAAG,IAAI,CAAC/W,KAAK,CAAC+W,aAAa,CAAC1tB,GAAG;YAE3EstB,gBAAgB,CAAC3lB,IAAI,CAAC;YACtB2lB,gBAAgB,CAACG,UAAU,CAAC;AAChC;AACJ;AAEA,QAAA,IAAI,CAAC72B,KAAK,CAAC,mBAAmB,EAAE;UAC5B2M,OAAO,EAAE,IAAI,CAAC0f,mBAAmB;AACjCyJ,UAAAA,KAAK,EAAEA;AACX,SAAC,CAAC;AACN;MAEA,IAAI,CAAC/V,KAAK,CAAC2V,YAAY,CAACz3B,KAAK,CAAC6d,UAAU,MAAM;MAC9C,IAAI,CAACib,YAAW,GAAI,IAAI;AACxB,MAAA,IAAI,CAAC3tB,GAAG,CAAC8V,eAAe,CAAC,0BAA0B,CAAC;AACpD,MAAA,CAAC,IAAI,CAACuW,UAAW,KAAI,IAAI,CAACrsB,GAAG,CAACnL,KAAK,CAAC,aAAa,CAAE,GAAE,EAAE,CAAC;MAExD,IAAI,CAACqvB,wBAAwB,EAAE;AAE/B,MAAA,IAAI,IAAI,CAACH,UAAU,EAAE,EAAE;QACnB,IAAI,CAACK,SAAS,EAAE;AACpB;KACH;AACDgJ,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAACL,cAAc,EAAEI,eAAe,EAAE;AAC9C,MAAA,IAAIS,QAAO,GAAI1O,QAAQ,CAAC,IAAI,CAAC+D,mBAAmB,CAAC;MACjD,IAAI4K,MAAK,GAAI,EAAE;MACf,IAAIC,OAAM,GAAIzD,IAAI,CAAC,IAAI,CAAC1T,KAAK,CAAC4T,KAAK,EAAE,0CAA0C,CAAC;AAEhFuD,MAAAA,OAAO,CAACpyB,OAAO,CAAC,UAACskB,MAAM,EAAA;QAAA,OAAK6N,MAAM,CAACxxB,IAAI,CAACuI,aAAa,CAACob,MAAM,CAAC,CAAC;OAAC,CAAA;MAE/D,IAAI,CAACmE,mBAAmB,EAAE;MAC1B,IAAI,CAAC4J,kBAAkB,EAAE;MAEzB,IAAIC,SAAU,GAAE,EAAE;AAClB,MAAA,IAAIC,QAAO,GAAA33B,+BAAAA,CAAAA,MAAA,CAAkC,IAAI,CAAC8Z,aAAa,EAAA,2CAAA,CAAA,CAAA9Z,MAAA,CAA0C,IAAI,CAACk3B,uBAAsB,GAAI,EAAC,GAAI,oCAAoC,EAAmC,qCAAA,CAAA;AAEpNK,MAAAA,MAAM,CAACnyB,OAAO,CAAC,UAAC6xB,KAAK,EAAEh4B,KAAK,EAAK;AAC7B,QAAA,IAAI24B,QAAO,GAAI34B,KAAI,KAAMq4B,WAAWb,cAAa,GAAII,eAAc,IAAK53B,KAAI,KAAMq4B,WAAW,CAAA,GAAIT,eAAc,GAAII,KAAK;QACxH,IAAI14B,KAAI,aAAAyB,MAAA,CAAc43B,QAAQ,EAAA53B,4BAAAA,CAAAA,CAAAA,MAAA,CAA6B43B,QAAQ,EAAe,eAAA,CAAA;AAElFF,QAAAA,SAAU,IAAA13B,wBAAAA,CAAAA,MAAA,CACJ23B,QAAQ,8DAAA33B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAAe,0BAAAA,CAAAA,CAAAA,MAAA,CAC1E23B,QAAQ,8DAAA33B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,0BAAA,CAAA,CAAAe,MAAA,CAC1E23B,QAAQ,EAAA33B,0DAAAA,CAAAA,CAAAA,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,+BAAA,CAAA,CAAAe,MAAA,CACtEzB,KAAK,EAEd,2CAAA,CAAA;AACL,OAAC,CAAC;AAEF,MAAA,IAAI,CAACs5B,YAAY,CAACH,SAAU,GAAEA,SAAS;KAC1C;IACD9B,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AAAA,MAAA,IAAAkC,MAAA,GAAA,IAAA;AACrB,MAAA,IAAI,CAAC,IAAI,CAACtL,4BAA4B,EAAE;AACpC,QAAA,IAAI,CAACA,+BAA+B,UAACnsB,KAAK,EAAK;UAC3C,IAAIy3B,MAAI,CAAClL,cAAc,EAAE;AACrBkL,YAAAA,MAAI,CAACjC,cAAc,CAACx1B,KAAK,CAAC;AAC9B;SACH;QAED2K,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACuhB,4BAA4B,CAAC;AAC7E;AAEA,MAAA,IAAI,CAAC,IAAI,CAACC,+BAA+B,EAAE;QACvC,IAAI,CAACA,+BAA8B,GAAI,YAAM;UACzC,IAAIqL,MAAI,CAAClL,cAAc,EAAE;YACrBkL,MAAI,CAAClL,cAAa,GAAI,KAAK;YAC3BkL,MAAI,CAAC3B,iBAAiB,EAAE;AAC5B;SACH;QAEDnrB,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACwhB,+BAA+B,CAAC;AAC9E;KACH;IACDmB,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;MACvB,IAAI,IAAI,CAACpB,4BAA4B,EAAE;QACnCxhB,QAAQ,CAACG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACqhB,4BAA4B,CAAC;QAC3E,IAAI,CAACA,4BAA6B,GAAE,IAAI;AAC5C;MAEA,IAAI,IAAI,CAACC,+BAA+B,EAAE;QACtCzhB,QAAQ,CAACG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACshB,+BAA+B,CAAC;QAC9E,IAAI,CAACA,+BAA8B,GAAI,IAAI;AAC/C;KACH;AACDsL,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACv1B,CAAC,EAAE;AACvB,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMxB,MAAO,GAAEyD,CAAC,CAACzD,MAAM;AAEvB,MAAA,IAAI,IAAI,CAACrD,kBAAiB,IAAK,IAAI,CAACyN,UAAU,CAACpK,MAAM,EAAE,mBAAmB,CAAE,KAAI,KAAK,EAAE;AACnF,QAAA,IAAIsB,KAAK,CAACwK,MAAM,CAACod,QAAS,KAAI,WAAW5nB,KAAK,CAACwK,MAAM,CAACod,QAAO,KAAM,UAAW,IAAG9a,YAAY,CAAC9M,KAAK,CAACwK,MAAM,EAAE,mCAAmC,CAAC,EAAExK,KAAK,CAAC2nB,aAAa,CAACgQ,SAAU,GAAE,KAAK,CAAA,KAClL33B,KAAK,CAAC2nB,aAAa,CAACgQ,SAAU,GAAE,IAAI;AAC7C;KACH;AACDC,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACz1B,CAAC,EAAE;AACvB,MAAA,IAAuBnC,KAAK,GAAamC,CAAC,CAAlCjC,aAAa;QAASxB,MAAO,GAAIyD,CAAC,CAAZzD,MAAO;MAErC,IAAI,IAAI,CAAC6tB,cAAc,EAAE;QACrBvsB,KAAK,CAACuL,cAAc,EAAE;AAEtB,QAAA;AACJ;MAEA,IAAI,CAACihB,mBAAoB,GAAEqL,0BAA0B,CAAC,IAAI,CAAC7X,KAAK,CAAC8X,kBAAkB,CAAC;MACpF,IAAI,CAACrL,oBAAmB,GAAIsL,2BAA2B,CAAC,IAAI,CAAC/X,KAAK,CAAC8X,kBAAkB,CAAC;MAEtF,IAAI,CAACpL,aAAc,GAAEhuB,MAAM;MAC3B,IAAI,CAACiuB,oBAAqB,GAAE,IAAI,CAACqL,gBAAgB,CAACh4B,KAAK,CAACwK,MAAM,CAAC;MAC/DxK,KAAK,CAACi4B,YAAY,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE;KAC5C;AACDC,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACh2B,CAAC,EAAE;AACtB,MAAA,IAAuBnC,KAAK,GAAamC,CAAC,CAAlCjC,aAAa;QAASxB,MAAO,GAAIyD,CAAC,CAAZzD,MAAO;MACrC,IAAI05B,UAAW,GAAE,IAAI,CAACJ,gBAAgB,CAACh4B,KAAK,CAACwK,MAAM,CAAC;AAEpD,MAAA,IAAI,IAAI,CAACnP,kBAAmB,IAAG,IAAI,CAACsxB,oBAAmB,IAAKyL,UAAW,IAAG,CAAC,IAAI,CAACtvB,UAAU,CAACpK,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC1GsB,KAAK,CAACuL,cAAc,EAAE;AACtB,QAAA,IAAI8sB,eAAgB,GAAElD,SAAS,CAAC,IAAI,CAAC9rB,GAAG,CAAC;AACzC,QAAA,IAAIivB,gBAAiB,GAAEnD,SAAS,CAACiD,UAAU,CAAC;AAE5C,QAAA,IAAI,IAAI,CAACzL,oBAAqB,KAAIyL,UAAU,EAAE;UAC1C,IAAIG,UAAS,GAAID,gBAAgB,CAAClD,IAAG,GAAIiD,eAAe,CAACjD,IAAI;UAC7D,IAAIoD,YAAW,GAAIF,gBAAgB,CAAClD,IAAG,GAAIgD,UAAU,CAACjC,WAAY,GAAE,CAAC;UAErE,IAAI,CAACnW,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAACsa,GAAI,GAAE8f,gBAAgB,CAAC9f,GAAE,GAAI6f,eAAe,CAAC7f,GAAE,IAAK,IAAI,CAACiU,oBAAqB,GAAE,CAAC,CAAA,GAAI,IAAI;UAC7H,IAAI,CAACzM,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAACsa,GAAE,GAAI8f,gBAAgB,CAAC9f,GAAE,GAAI6f,eAAe,CAAC7f,GAAI,GAAE4f,UAAU,CAACvC,YAAW,GAAI,IAAI;AAEvH,UAAA,IAAI71B,KAAK,CAACq1B,KAAI,GAAImD,YAAY,EAAE;YAC5B,IAAI,CAACxY,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAACk3B,IAAK,GAAEmD,UAAW,GAAEH,UAAU,CAACjC,cAAc5C,IAAI,CAACmF,IAAI,CAAC,IAAI,CAAClM,mBAAoB,GAAE,CAAC,CAAA,GAAI,IAAI;YAC/H,IAAI,CAACxM,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAACk3B,IAAG,GAAImD,UAAS,GAAIH,UAAU,CAACjC,WAAY,GAAE5C,IAAI,CAACmF,IAAI,CAAC,IAAI,CAAClM,mBAAoB,GAAE,CAAC,CAAA,GAAI,IAAI;YACjI,IAAI,CAACmM,YAAW,GAAI,CAAC;AACzB,WAAE,MAAK;YACH,IAAI,CAAC3Y,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAACk3B,IAAK,GAAEmD,aAAahF,IAAI,CAACmF,IAAI,CAAC,IAAI,CAAClM,mBAAkB,GAAI,CAAC,CAAA,GAAI,IAAI;YACtG,IAAI,CAACxM,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAACk3B,OAAOmD,UAAW,GAAEhF,IAAI,CAACmF,IAAI,CAAC,IAAI,CAAClM,sBAAsB,CAAC,IAAI,IAAI;AACxG,YAAA,IAAI,CAACmM,YAAa,GAAE,EAAE;AAC1B;UAEA,IAAI,CAAC3Y,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAAC6d,OAAM,GAAI,OAAO;UACrD,IAAI,CAACiE,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAAC6d,OAAM,GAAI,OAAO;AAC3D;AACJ;KACH;AACD6c,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACz2B,CAAC,EAAE;AACvB,MAAA,IAAuBnC,KAAI,GAAMmC,CAAC,CAA1BjC,aAAa;AAErB,MAAA,IAAI,IAAI,CAAC7E,kBAAmB,IAAG,IAAI,CAACsxB,oBAAoB,EAAE;QACtD3sB,KAAK,CAACuL,cAAc,EAAE;QACtB,IAAI,CAACyU,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAAC6d,OAAQ,GAAE,MAAM;QACpD,IAAI,CAACiE,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAAC6d,OAAQ,GAAE,MAAM;AAC1D;KACH;AACD8c,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC12B,CAAC,EAAE;AAAA,MAAA,IAAA22B,MAAA,GAAA,IAAA;AAClB,MAAA,IAAuB94B,KAAK,GAAamC,CAAC,CAAlCjC,aAAa;QAASxB,MAAO,GAAIyD,CAAC,CAAZzD,MAAO;MAErCsB,KAAK,CAACuL,cAAc,EAAE;MAEtB,IAAI,IAAI,CAACohB,oBAAoB,EAAE;AAC3B,QAAA,IAAIoM,YAAYxQ,QAAQ,CAAC,IAAI,CAACoE,oBAAoB,CAAC;AACnD,QAAA,IAAIqM,SAAQ,GAAIzQ,QAAQ,CAAC,IAAI,CAACyP,gBAAgB,CAACh4B,KAAK,CAACwK,MAAM,CAAC,CAAC;AAC7D,QAAA,IAAIyuB,SAAQ,GAAIF,SAAU,KAAIC,SAAS;AAEvC,QAAA,IAAIC,SAAU,KAAKD,SAAU,GAAED,SAAQ,KAAM,CAAA,IAAK,IAAI,CAACJ,YAAW,KAAM,EAAE,IAAMK,SAAQ,GAAID,SAAQ,KAAM,EAAC,IAAK,IAAI,CAACJ,YAAW,KAAM,CAAE,CAAC,EAAE;AACvIM,UAAAA,SAAQ,GAAI,KAAK;AACrB;AAEA,QAAA,IAAIA,SAAS,EAAE;AACX,UAAA,IAAIC,eAAe,SAAfA,aAAgBC,IAAI,EAAEC,IAAI,EAAA;YAAA,OAC1BN,MAAI,CAAChwB,UAAU,CAACqwB,IAAI,EAAE,WAAW,CAAA,IAAKL,MAAI,CAAChwB,UAAU,CAACswB,IAAI,EAAE,WAAW,IAAIN,MAAI,CAAChwB,UAAU,CAACqwB,IAAI,EAAE,WAAW,CAAE,KAAIL,MAAI,CAAChwB,UAAU,CAACswB,IAAI,EAAE,WAAW,IAAIN,MAAI,CAAChwB,UAAU,CAACqwB,IAAI,EAAE,OAAO,CAAA,KAAML,MAAI,CAAChwB,UAAU,CAACswB,IAAI,EAAE,OAAO,CAAC;AAAA,WAAA;UAC5N,IAAIC,YAAW,GAAI,IAAI,CAACjnB,OAAO,CAACiC,SAAS,CAAC,UAACilB,KAAK,EAAA;AAAA,YAAA,OAAKJ,YAAY,CAACI,KAAK,EAAER,MAAI,CAACpM,aAAa,CAAC;WAAC,CAAA;UAC7F,IAAI6M,YAAW,GAAI,IAAI,CAACnnB,OAAO,CAACiC,SAAS,CAAC,UAACilB,KAAK,EAAA;AAAA,YAAA,OAAKJ,YAAY,CAACI,KAAK,EAAE56B,MAAM,CAAC;WAAC,CAAA;UACjF,IAAIw4B,MAAK,GAAI,EAAE;UACf,IAAIC,OAAQ,GAAEzD,IAAI,CAAC,IAAI,CAACrqB,GAAG,EAAE,0CAA0C,CAAC;AAExE8tB,UAAAA,OAAO,CAACpyB,OAAO,CAAC,UAACskB,MAAM,EAAA;YAAA,OAAK6N,MAAM,CAACxxB,IAAI,CAACuI,aAAa,CAACob,MAAM,CAAC,CAAC;WAAC,CAAA;UAC/D,IAAMmQ,SAAQ,GAAItC,MAAM,CAACxD,IAAI,CAAC,UAAC+F,CAAC,EAAE76B,KAAK,EAAA;YAAA,OAAKA,KAAM,KAAIy6B,YAAY;WAAC,CAAA;UACnE,IAAMK,cAAe,GAAExC,MAAM,CAAC/5B,MAAM,CAAC,UAACs8B,CAAC,EAAE76B,KAAK,EAAA;YAAA,OAAKA,KAAI,KAAMy6B,YAAY;WAAC,CAAA;UAC1E,IAAMM,eAAc,GAAAh6B,EAAAA,CAAAA,MAAA,CAAA6rB,kBAAA,CAAQkO,cAAc,CAAC5yB,KAAK,CAAC,CAAC,EAAEyyB,YAAY,CAAC,CAAA,EAAA,CAAEC,SAAS,CAAA,EAAAhO,kBAAA,CAAKkO,cAAc,CAAC5yB,KAAK,CAACyyB,YAAY,CAAC,CAAC,CAAA;AAEpH,UAAA,IAAI,CAACK,oBAAoB,CAACD,eAAe,CAAC;UAE1C,IAAIJ,YAAW,GAAIF,YAAa,IAAG,IAAI,CAACV,iBAAiB,CAAC,EAAE;AACxDY,YAAAA,YAAY,EAAE;AAClB;UAEA,IAAIA,YAAW,GAAIF,YAAa,IAAG,IAAI,CAACV,YAAW,KAAM,EAAE,EAAE;AACzDY,YAAAA,YAAY,EAAE;AAClB;UAEAM,YAAY,CAAC,IAAI,CAACznB,OAAO,EAAEinB,YAAY,EAAEE,YAAY,CAAC;UACtD,IAAI,CAACO,wBAAwB,EAAE;AAE/B,UAAA,IAAI,CAAC75B,KAAK,CAAC,gBAAgB,EAAE;AACzBC,YAAAA,aAAa,EAAEF,KAAK;AACpB+4B,YAAAA,SAAS,EAAEM,YAAY;AACvBL,YAAAA,SAAS,EAAEO;AACf,WAAC,CAAC;AACN;QAEA,IAAI,CAACvZ,KAAK,CAAC8X,kBAAkB,CAAC55B,KAAK,CAAC6d,OAAQ,GAAE,MAAM;QACpD,IAAI,CAACiE,KAAK,CAACyY,oBAAoB,CAACv6B,KAAK,CAAC6d,OAAQ,GAAE,MAAM;AACtD,QAAA,IAAI,CAAC4Q,oBAAoB,CAACgL,SAAU,GAAE,KAAK;QAC3C,IAAI,CAAChL,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACD,gBAAgB,IAAI;QACzB,IAAI,CAACiM,YAAW,GAAI,IAAI;AAC5B;KACH;AACDX,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACprB,OAAO,EAAE;AACtB,MAAA,IAAIA,OAAO,CAACgb,QAAS,KAAI,IAAI,EAAE;AAC3B,QAAA,OAAOhb,OAAO;AAClB,OAAE,MAAK;AACH,QAAA,IAAI3N,MAAK,GAAI2N,OAAO,CAACG,aAAa;AAElC,QAAA,OAAO9N,MAAM,CAAC2oB,QAAS,KAAI,IAAI,EAAE;UAC7B3oB,MAAK,GAAIA,MAAM,CAAC8N,aAAa;UAC7B,IAAI,CAAC9N,MAAM,EAAE;AACjB;AAEA,QAAA,OAAOA,MAAM;AACjB;KACH;AACD86B,IAAAA,eAAe,WAAfA,eAAeA,CAAC3nB,OAAO,EAAErT,GAAG,EAAE;AAC1B,MAAA,IAAIqT,OAAQ,IAAGA,OAAO,CAACtM,MAAM,EAAE;AAC3B,QAAA,KAAK,IAAIrD,CAAE,GAAE,CAAC,EAAEA,CAAE,GAAE2P,OAAO,CAACtM,MAAM,EAAErD,CAAC,EAAE,EAAE;AACrC,UAAA,IAAI/D,MAAO,GAAE0T,OAAO,CAAC3P,CAAC,CAAC;UAEvB,IAAI,IAAI,CAACqG,UAAU,CAACpK,MAAM,EAAE,WAAW,CAAE,KAAIK,GAAE,IAAK,IAAI,CAAC+J,UAAU,CAACpK,MAAM,EAAE,OAAO,MAAMK,GAAG,EAAE;AAC1F,YAAA,OAAOL,MAAM;AACjB;AACJ;AACJ;AAEA,MAAA,OAAO,IAAI;KACd;AACDqW,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC/U,KAAK,EAAE;AAClB,MAAA,IAAI8M,YAAY,CAAC9M,KAAK,CAACwK,MAAM,EAAE,iBAAiB,CAAA,KAAM,0BAA0BsC,YAAY,CAAC9M,KAAK,CAACwK,MAAM,CAACuC,aAAa,EAAE,iBAAiB,CAAA,KAAM,sBAAsB,EAAE/M,KAAK,CAAC2nB,aAAa,CAACgQ,YAAY,IAAI,CAAA,KACvM33B,KAAK,CAAC2nB,aAAa,CAACgQ,SAAU,GAAE,KAAK;KAC7C;AACD3iB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC7S,CAAC,EAAE;AACd,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMtB,KAAM,GAAEuD,CAAC,CAACvD,KAAK;MAErB,IAAI,CAACkuB,WAAU,GAAI,IAAI;MACvB,IAAI,CAACF,eAAc,GAAIhuB,KAAK;MAC5BoB,KAAK,CAACi4B,YAAY,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KAC1C;AACDjjB,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC9S,CAAC,EAAE;AACb,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMtB,KAAM,GAAEuD,CAAC,CAACvD,KAAK;MAErB,IAAI,IAAI,CAACkuB,eAAe,IAAI,CAACF,eAAc,KAAMhuB,KAAK,EAAE;AACpD,QAAA,IAAIo7B,UAAS,GAAIh6B,KAAK,CAAC2nB,aAAa;AACpC,QAAA,IAAIsS,IAAG,GAAI9E,SAAS,CAAC6E,UAAU,CAAC,CAACxhB,GAAG;AACpC,QAAA,IAAI0hB,QAAQl6B,KAAK,CAACk6B,KAAK;QACvB,IAAIC,OAAM,GAAIF,IAAK,GAAExhB,cAAc,CAACuhB,UAAU,CAAA,GAAI,CAAC;AACnD,QAAA,IAAII,cAAe,GAAEJ,UAAU,CAAC/sB,sBAAsB;QAEtD,IAAIitB,KAAI,GAAIC,OAAO,EAAE;AACjBH,UAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;UACrE,CAAC,IAAI,CAACC,UAAW,IAAG2E,WAAW,CAACL,UAAU,EAAE,8BAA8B,CAAC;UAE3E,IAAI,CAACnN,eAAc,GAAIjuB,KAAK;AAE5B,UAAA,IAAIw7B,cAAc,EAAE;AAChBA,YAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,MAAM,CAAC;YACxE,CAAC,IAAI,CAACC,UAAW,IAAG4E,QAAQ,CAACF,cAAc,EAAE,8BAA8B,CAAC;AAChF,WAAE,MAAK;AACHJ,YAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,MAAM,CAAC;YACjE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,2BAA2B,CAAC;AACzE;AACJ,SAAE,MAAK;AACH,UAAA,IAAII,cAAc,EAAE;AAChBA,YAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;YACzE,CAAC,IAAI,CAACC,cAAc2E,WAAW,CAACD,cAAc,EAAE,8BAA8B,CAAC;AACnF,WAAE,MAAK;AACHJ,YAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,MAAM,CAAC;YACjE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,2BAA2B,CAAC;AACzE;AAEA,UAAA,IAAI,CAACnN,eAAgB,GAAEjuB,KAAM,GAAE,CAAC;AAChCo7B,UAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,MAAM,CAAC;UACpE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,8BAA8B,CAAC;AAC5E;QAEAh6B,KAAK,CAACuL,cAAc,EAAE;AAC1B;KACH;AACD2J,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAClV,KAAK,EAAE;AAClB,MAAA,IAAIg6B,UAAS,GAAIh6B,KAAK,CAAC2nB,aAAa;AACpC,MAAA,IAAIyS,cAAe,GAAEJ,UAAU,CAAC/sB,sBAAsB;AAEtD,MAAA,IAAImtB,cAAc,EAAE;AAChBA,QAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;QACzE,CAAC,IAAI,CAACC,cAAc2E,WAAW,CAACD,cAAc,EAAE,8BAA8B,CAAC;AACnF;AAEAJ,MAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;MACrE,CAAC,IAAI,CAACC,UAAW,IAAG2E,WAAW,CAACL,UAAU,EAAE,8BAA8B,CAAC;AAC3EA,MAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,OAAO,CAAC;MAClE,CAAC,IAAI,CAACC,UAAS,IAAK2E,WAAW,CAACL,UAAU,EAAE,2BAA2B,CAAC;KAC3E;AACD7kB,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACnV,KAAK,EAAE;MAChB,IAAI,CAAC8sB,WAAY,GAAE,KAAK;MACxB,IAAI,CAACF,kBAAkB,IAAI;MAC3B,IAAI,CAACC,kBAAkB,IAAI;AAC3B7sB,MAAAA,KAAK,CAAC2nB,aAAa,CAACgQ,YAAY,KAAK;KACxC;AACDviB,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACpV,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAAC6sB,eAAc,IAAK,IAAI,EAAE;QAC9B,IAAImM,SAAQ,GAAI,IAAI,CAACpM,eAAgB,GAAE,IAAI,CAACC,eAAc,GAAI,IAAI,CAACA,eAAgB,GAAE,IAAI,CAACA,eAAc,KAAM,CAAA,GAAI,CAAA,GAAI,IAAI,CAACA,eAAgB,GAAE,CAAC;AAC9I,QAAA,IAAImB,aAAc,GAAAxC,kBAAA,CAAM,IAAI,CAACwC,aAAa,CAAC;AAE3C6L,QAAAA,YAAY,CAAC7L,aAAa,EAAE,IAAI,CAACpB,eAAc,GAAI,IAAI,CAAC1B,OAAO,EAAE8N,SAAU,GAAE,IAAI,CAAC9N,OAAO,CAAC;AAE1F,QAAA,IAAI,CAACjrB,KAAK,CAAC,aAAa,EAAE;AACtBC,UAAAA,aAAa,EAAEF,KAAK;UACpB+4B,SAAS,EAAE,IAAI,CAACnM,eAAe;AAC/BoM,UAAAA,SAAS,EAAEA,SAAS;AACpB1gC,UAAAA,KAAK,EAAE01B;AACX,SAAC,CAAC;AACN;;AAEA;AACA,MAAA,IAAI,CAAC9Y,cAAc,CAAClV,KAAK,CAAC;AAC1B,MAAA,IAAI,CAACmV,YAAY,CAACnV,KAAK,CAAC;MACxBA,KAAK,CAACuL,cAAc,EAAE;KACzB;AACDxB,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC/J,KAAK,EAAE;AAAA,MAAA,IAAAu6B,MAAA,GAAA,IAAA;AACb,MAAA,IAAQjlB,QAAQ,GAActV,KAAK,CAA3BsV,QAAQ;AAAKklB,QAAAA,IAAG,GAAAC,wBAAA,CAAMz6B,KAAK,EAAA06B,SAAA,CAAA;AACnC,MAAA,IAAMhzB,UAAU1H,KAAK,CAACG,IAAI;AAC1B,MAAA,IAAI7E,YAAY;MAEhB,IAAI,IAAI,CAAC7C,OAAO,EAAE;QACd,IAAMH,KAAM,GAAEwR,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAACjP,OAAO,CAAC;AAErD6C,QAAAA,YAAa,GAAE,IAAI,CAACA,YAAa,GAAAsV,eAAA,CAAO,EAAA,EAAA,IAAI,CAACtV,YAAa,CAAI,GAAA,EAAE;AAChEga,QAAAA,QAAO,GAAKha,YAAY,CAAChD,KAAK,CAAE,GAAE,IAAI,GAAI,OAAOgD,YAAY,CAAChD,KAAK,CAAC;AACxE,OAAE,MAAK;QACHgD,YAAa,GAAE,IAAI,CAACA,YAAa,GAAAkwB,kBAAA,CAAM,IAAI,CAAClwB,YAAY,CAAA,GAAI,EAAE;AAC9Dga,QAAAA,QAAO,GAAIha,YAAY,CAACoK,IAAI,CAACgC,OAAO,CAAA,GAAKpM,YAAa,GAAEA,YAAY,CAAC6B,MAAM,CAAC,UAACyG,CAAC,EAAA;UAAA,OAAK,CAAC22B,MAAI,CAACrnB,MAAM,CAACxL,OAAO,EAAE9D,CAAC,CAAC;SAAE,CAAA;AACjH;AAEA,MAAA,IAAI,CAAC3D,KAAK,CAAC,qBAAqB,EAAE3E,YAAY,CAAC;AAC/Cga,MAAAA,QAAO,GAAI,IAAI,CAACrV,KAAK,CAAC,YAAY,EAAEu6B,IAAI,CAAE,GAAE,IAAI,CAACv6B,KAAK,CAAC,cAAc,EAAEu6B,IAAI,CAAC;KAC/E;AACDG,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACx4B,CAAC,EAAE;AACd,MAAA,IAAMnC,KAAM,GAAEmC,CAAC,CAACjC,aAAa;AAC7B,MAAA,IAAMC,IAAK,GAAEgC,CAAC,CAAChC,IAAI;MACnB,IAAM2W,eAAc,GAAIhN,gBAAgB,CAAC3J,IAAI,EAAE,IAAI,CAACzE,WAAW,CAAC;AAChE,MAAA,IAAIk/B,kBAAmB,GAAE,IAAI,CAACh/B,uCAAwB,IAAI,CAACA,iBAAiB,CAAA,GAAI,EAAE;AAElF,MAAA,IAAI,IAAI,CAACib,kBAAkB,CAAC1W,IAAI,CAAC,EAAE;AAC/By6B,QAAAA,kBAAmB,GAAEA,kBAAkB,CAACz9B,MAAM,CAAC,UAAC09B,KAAK,EAAA;UAAA,OAAKA,KAAI,KAAM/jB,eAAe;SAAC,CAAA;AACpF,QAAA,IAAI,CAAC7W,KAAK,CAAC,0BAA0B,EAAE26B,kBAAkB,CAAC;AAC1D,QAAA,IAAI,CAAC36B,KAAK,CAAC,mBAAmB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAE2W;AAAgB,SAAC,CAAC;AACpF,OAAE,MAAK;AACH8jB,QAAAA,kBAAkB,CAACl1B,IAAI,CAACoR,eAAe,CAAC;AACxC,QAAA,IAAI,CAAC7W,KAAK,CAAC,0BAA0B,EAAE26B,kBAAkB,CAAC;AAC1D,QAAA,IAAI,CAAC36B,KAAK,CAAC,iBAAiB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAE2W;AAAgB,SAAC,CAAC;AAClF;KACH;AACDD,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACnP,OAAO,EAAE;AACxB,MAAA,IAAI,IAAI,CAAC/L,uBAAuB,IAAI,CAACC,iBAAiB,EAAE;QACpD,IAAIkb,eAAc,GAAIhN,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAAChM,WAAW,CAAC;QAEjE,OAAO,IAAI,CAACE,iBAAiB,CAACuY,OAAO,CAAC2C,eAAe,CAAA,GAAI,EAAE;AAC/D;AAEA,MAAA,OAAO,KAAK;KACf;IACDsW,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACtxB,QAAO,IAAK,IAAI;KAC/B;IACDg/B,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,QAAQ,IAAI,CAACj/B,YAAY;AACrB,QAAA,KAAK,OAAO;UACR,OAAOkmB,MAAM,CAACgZ,YAAY;AAE9B,QAAA,KAAK,SAAS;UACV,OAAOhZ,MAAM,CAACiZ,cAAc;AAEhC,QAAA;UACI,MAAM,IAAIz3B,KAAK,CAAC,IAAI,CAAC1H,YAAW,GAAI,0FAA0F,CAAC;AACvI;KACH;IACD4xB,SAAS,EAAA,SAATA,SAASA,GAAG;AACR,MAAA,IAAMwN,OAAQ,GAAE,IAAI,CAACH,UAAU,EAAE;MACjC,IAAI17B,KAAI,GAAI,EAAE;MAEd,IAAI,IAAI,CAACpG,SAAS,EAAE;AAChBoG,QAAAA,KAAK,CAACtG,KAAM,GAAE,IAAI,CAACoyB,OAAO;AAC1B9rB,QAAAA,KAAK,CAACxG,IAAK,GAAE,IAAI,CAACuyB,MAAM;AAC5B;MAEA,IAAI,IAAI,CAACC,WAAW,EAAE;AAClB;AACA,QAAA,IAAI,OAAO,IAAI,CAACA,WAAY,KAAI,UAAU,EAAEhsB,KAAK,CAACvF,SAAU,GAAE,IAAI,CAACuxB,WAAW;AAC9EhsB,QAAAA,KAAK,CAACtF,SAAU,GAAE,IAAI,CAACuxB,WAAW;AACtC;MAEA,IAAI,IAAI,CAACE,eAAe,EAAE;AACtBnsB,QAAAA,KAAK,CAACnF,aAAc,GAAE,IAAI,CAACsxB,eAAe;AAC9C;MAEA,IAAI,IAAI,CAAC2P,UAAU,EAAE;AACjB97B,QAAAA,KAAK,CAAChF,OAAM,GAAI,IAAI,CAACA,OAAO;AAChC;MAEA,IAAI,IAAI,CAACe,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAACggC,gBAAgB,CAAC/7B,KAAK,CAAC;AAChC;MAEA,IAAI,IAAI,CAAC/D,kBAAkB,EAAE;AACzB+D,QAAAA,KAAK,CAACg8B,WAAY,GAAE,IAAI,CAACzP,aAAa;AAC1C;MAEA,IAAI,IAAI,CAACrwB,YAAY,EAAE;AACnB8D,QAAAA,KAAK,CAAC9D,YAAW,GAAI,IAAI,CAACA,YAAY;AAC1C;MAEA,IAAI,IAAI,CAACM,iBAAiB,EAAE;AACxBwD,QAAAA,KAAK,CAACxD,iBAAgB,GAAI,IAAI,CAACA,iBAAiB;AACpD;MAEA,IAAI,IAAI,CAACpB,SAAS,EAAE;AAChB4E,QAAAA,KAAK,CAAC5E,SAAQ,GAAI,IAAI,CAACA,SAAS;AAChC4E,QAAAA,KAAK,CAACkT,aAAc,GAAE,IAAI,CAACoZ,eAAe;AAC9C;MAEA,IAAIryB,MAAM,CAACmN,IAAI,CAACpH,KAAK,CAAC,CAAC0G,MAAM,EAAE;AAC3Bm1B,QAAAA,OAAO,CAACI,OAAO,CAAC,IAAI,CAACv/B,QAAQ,EAAEw/B,IAAI,CAACC,SAAS,CAACn8B,KAAK,CAAC,CAAC;AACzD;AAEA,MAAA,IAAI,CAACa,KAAK,CAAC,YAAY,EAAEb,KAAK,CAAC;KAClC;IACDiuB,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAM4N,OAAQ,GAAE,IAAI,CAACH,UAAU,EAAE;MACjC,IAAMU,WAAY,GAAEP,OAAO,CAACQ,OAAO,CAAC,IAAI,CAAC3/B,QAAQ,CAAC;MAClD,IAAM4/B,UAAW,GAAE,4CAA4C;MAE/D,IAAMC,OAAQ,GAAE,SAAVA,OAAQA,CAAY58B,GAAG,EAAEzG,KAAK,EAAE;QAClC,IAAI,OAAOA,KAAM,KAAI,QAAO,IAAKojC,UAAU,CAACE,IAAI,CAACtjC,KAAK,CAAC,EAAE;AACrD,UAAA,OAAO,IAAIujC,IAAI,CAACvjC,KAAK,CAAC;AAC1B;AAEA,QAAA,OAAOA,KAAK;OACf;AAED,MAAA,IAAIwjC,WAAW;MACf,IAAI;QACAA,WAAY,GAAER,IAAI,CAACS,KAAK,CAACP,WAAW,EAAEG,OAAO,CAAC;AAClD,OAAA,CAAE,OAAOK,KAAK,EAAE;MAChB,IAAI,CAACF,eAAe52B,SAAA,CAAO42B,WAAY,CAAA,KAAI,QAAQ,EAAE;AACjDb,QAAAA,OAAO,CAACgB,UAAU,CAAC,IAAI,CAACngC,QAAQ,CAAC;AACjC,QAAA;AACJ;MAEA,IAAMogC,aAAc,GAAE,EAAE;MAExB,IAAI,IAAI,CAACljC,SAAS,EAAE;AAChB,QAAA,IAAI,OAAO8iC,WAAW,CAAChjC,KAAI,KAAM,QAAQ,EAAE;AACvC,UAAA,IAAI,CAACoyB,OAAQ,GAAE4Q,WAAW,CAAChjC,KAAK;UAChC,IAAI,CAACmH,KAAK,CAAC,cAAc,EAAE,IAAI,CAACirB,OAAO,CAAC;AACxCgR,UAAAA,aAAa,CAACpjC,KAAM,GAAE,IAAI,CAACoyB,OAAO;AACtC;AACA,QAAA,IAAI,OAAO4Q,WAAW,CAACljC,IAAG,KAAM,QAAQ,EAAE;AACtC,UAAA,IAAI,CAACuyB,MAAO,GAAE2Q,WAAW,CAACljC,IAAI;UAC9B,IAAI,CAACqH,KAAK,CAAC,aAAa,EAAE,IAAI,CAACkrB,MAAM,CAAC;AACtC+Q,UAAAA,aAAa,CAACtjC,IAAK,GAAE,IAAI,CAACuyB,MAAM;AACpC;AACJ;AAEA,MAAA,IAAI,OAAO2Q,WAAW,CAACjiC,cAAc,QAAQ,EAAE;AAC3C,QAAA,IAAI,CAACuxB,WAAU,GAAI0Q,WAAW,CAACjiC,SAAS;QACxC,IAAI,CAACoG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACmrB,WAAW,CAAC;AAChD8Q,QAAAA,aAAa,CAACriC,YAAY,IAAI,CAACuxB,WAAW;AAC9C;AAEA,MAAA,IAAI,OAAO0Q,WAAW,CAAChiC,cAAc,QAAQ,EAAE;AAC3C,QAAA,IAAI,CAACuxB,WAAU,GAAIyQ,WAAW,CAAChiC,SAAS;QACxC,IAAI,CAACmG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACorB,WAAW,CAAC;AAChD6Q,QAAAA,aAAa,CAACpiC,YAAY,IAAI,CAACuxB,WAAW;AAC9C;MAEA,IAAI7yB,KAAK,CAAC0b,OAAO,CAAC4nB,WAAW,CAAC7hC,aAAa,CAAC,EAAE;AAC1C,QAAA,IAAI,CAACsxB,eAAc,GAAIuQ,WAAW,CAAC7hC,aAAa;QAChD,IAAI,CAACgG,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACsrB,eAAe,CAAC;AACxD2Q,QAAAA,aAAa,CAACjiC,aAAY,GAAI,IAAI,CAACsxB,eAAe;AACtD;AAEA,MAAA,IAAI,IAAI,CAAC2P,cAAch2B,SAAA,CAAO42B,WAAW,CAAC1hC,aAAY,YAAY0hC,WAAW,CAAC1hC,OAAM,KAAM,IAAI,EAAE;QAC5F,IAAI,CAAC0xB,SAAU,GAAE,IAAI,CAACC,YAAY,CAAC+P,WAAW,CAAC1hC,OAAO,CAAC;QACvD,IAAI,CAAC6F,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC6rB,SAAS,CAAC;AAC5CoQ,QAAAA,aAAa,CAAC9hC,OAAQ,GAAE,IAAI,CAAC0xB,SAAS;AAC1C;MAEA,IAAI,IAAI,CAAC3wB,gBAAgB,EAAE;AACvB,QAAA,IAAI,OAAO2gC,WAAW,CAACK,YAAa,KAAI,QAAQ,EAAE;AAC9C,UAAA,IAAI,CAACpP,iBAAkB,GAAE+O,WAAW,CAACK,YAAY;AACjDD,UAAAA,aAAa,CAACC,YAAa,GAAE,IAAI,CAACpP,iBAAiB;AACvD;AACA,QAAA,IAAI,OAAO+O,WAAW,CAACpF,UAAW,KAAI,QAAQ,EAAE;AAC5C,UAAA,IAAI,CAAC1J,eAAgB,GAAE8O,WAAW,CAACpF,UAAU;AAC7CwF,UAAAA,aAAa,CAACxF,UAAW,GAAE,IAAI,CAAC1J,eAAe;AACnD;AACJ;AAEA,MAAA,IAAI,IAAI,CAAC3xB,kBAAiB,IAAK7C,KAAK,CAAC0b,OAAO,CAAC4nB,WAAW,CAACV,WAAW,CAAC,EAAE;AACnE,QAAA,IAAI,CAACzP,aAAY,GAAImQ,WAAW,CAACV,WAAW;AAC5Cc,QAAAA,aAAa,CAACd,cAAc,IAAI,CAACzP,aAAa;AAClD;AAEA,MAAA,IAAIzmB,SAAA,CAAO42B,WAAW,CAACxgC,YAAa,CAAA,KAAI,QAAO,IAAKwgC,WAAW,CAACxgC,YAAa,KAAI,IAAI,EAAE;QACnF,IAAI,CAAC2E,KAAK,CAAC,qBAAqB,EAAE67B,WAAW,CAACxgC,YAAY,CAAC;AAC3D4gC,QAAAA,aAAa,CAAC5gC,eAAewgC,WAAW,CAACxgC,YAAY;AACzD;MAEA,IAAI9C,KAAK,CAAC0b,OAAO,CAAC4nB,WAAW,CAAClgC,iBAAiB,CAAC,EAAE;QAC9C,IAAI,CAACqE,KAAK,CAAC,0BAA0B,EAAE67B,WAAW,CAAClgC,iBAAiB,CAAC;AACrEsgC,QAAAA,aAAa,CAACtgC,iBAAkB,GAAEkgC,WAAW,CAAClgC,iBAAiB;AACnE;AAEA,MAAA,IAAIsJ,SAAA,CAAO42B,WAAW,CAACthC,SAAU,CAAA,KAAI,QAAS,IAAGshC,WAAW,CAACthC,SAAU,KAAI,IAAI,EAAE;AAC7E,QAAA,IAAI0K,SAAA,CAAO42B,WAAW,CAACxpB,aAAY,CAAA,KAAM,QAAO,IAAKwpB,WAAW,CAACxpB,aAAY,KAAM,IAAI,EAAE;AACrF,UAAA,IAAI,CAACoZ,eAAc,GAAIoQ,WAAW,CAACxpB,aAAa;AAChD4pB,UAAAA,aAAa,CAAC5pB,aAAY,GAAI,IAAI,CAACoZ,eAAe;AACtD;QACA,IAAI,CAACzrB,KAAK,CAAC,kBAAkB,EAAE67B,WAAW,CAACthC,SAAS,CAAC;AACrD0hC,QAAAA,aAAa,CAAC1hC,YAAYshC,WAAW,CAACthC,SAAS;AACnD;AAEA,MAAA,IAAI,CAACyF,KAAK,CAAC,eAAe,EAAEi8B,aAAa,CAAC;KAC7C;AACDf,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC/7B,KAAK,EAAE;MACpB,IAAI83B,MAAK,GAAI,EAAE;MACf,IAAIC,OAAQ,GAAEzD,IAAI,CAAC,IAAI,CAACrqB,GAAG,EAAE,0CAA0C,CAAC;AAExE8tB,MAAAA,OAAO,CAACpyB,OAAO,CAAC,UAACskB,MAAM,EAAA;QAAA,OAAK6N,MAAM,CAACxxB,IAAI,CAACuI,aAAa,CAACob,MAAM,CAAC,CAAC;OAAC,CAAA;MAC/DjqB,KAAK,CAAC+8B,YAAa,GAAEjF,MAAM,CAACkF,IAAI,CAAC,GAAG,CAAC;AAErC,MAAA,IAAI,IAAI,CAAChhC,gBAAe,KAAM,QAAQ,EAAE;AACpCgE,QAAAA,KAAK,CAACs3B,UAAW,GAAEzoB,aAAa,CAAC,IAAI,CAAC+R,KAAK,CAAC4T,KAAK,IAAI,IAAI;AAC7D;KACH;AACDgG,IAAAA,oBAAoB,EAApBA,SAAAA,oBAAoBA,CAAC1C,MAAM,EAAE;MACzB,IAAI,CAACE,kBAAkB,EAAE;MAEzB,IAAIC,SAAU,GAAE,EAAE;AAClB,MAAA,IAAIC,QAAO,GAAA33B,+BAAAA,CAAAA,MAAA,CAAkC,IAAI,CAAC8Z,aAAa,EAAA,2CAAA,CAAA,CAAA9Z,MAAA,CAA0C,IAAI,CAACk3B,uBAAsB,GAAI,EAAC,GAAI,oCAAoC,EAAmC,qCAAA,CAAA;AAEpNK,MAAAA,MAAM,CAACnyB,OAAO,CAAC,UAAC6xB,KAAK,EAAEh4B,KAAK,EAAK;QAC7B,IAAIV,KAAM,aAAAyB,MAAA,CAAYi3B,KAAK,EAAAj3B,4BAAAA,CAAAA,CAAAA,MAAA,CAA6Bi3B,KAAK,EAAe,eAAA,CAAA;AAE5ES,QAAAA,SAAU,IAAA13B,YAAAA,CAAAA,MAAA,CAChB23B,QAAQ,8DAAA33B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAAe,cAAAA,CAAAA,CAAAA,MAAA,CAC1E23B,QAAQ,8DAAA33B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,cAAA,CAAA,CAAAe,MAAA,CAC1E23B,QAAQ,EAAA33B,0DAAAA,CAAAA,CAAAA,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,mBAAA,CAAA,CAAAe,MAAA,CACtEzB,KAAK,EAEd,mBAAA,CAAA;AACO,OAAC,CAAC;AAEF,MAAA,IAAI,CAACs5B,YAAY,CAACH,SAAU,GAAEA,SAAS;KAC1C;IACD/J,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACP,iBAAiB,EAAE;QACxB,IAAImK,MAAO,GAAE,IAAI,CAACnK,iBAAiB,CAACsP,KAAK,CAAC,GAAG,CAAC;QAE9C,IAAI,IAAI,CAACjhC,gBAAiB,KAAI,QAAS,IAAG,IAAI,CAAC4xB,eAAe,EAAE;UAC5D,IAAI,CAAChN,KAAK,CAAC4T,KAAK,CAAC11B,KAAK,CAAC04B,QAAQ,IAAI,CAAC5J,eAAe;UACnD,IAAI,CAAChN,KAAK,CAAC4T,KAAK,CAAC11B,KAAK,CAACm4B,QAAS,GAAE,IAAI,CAACrJ,eAAe;AAC1D;AAEA,QAAA,IAAIvW,UAAU,CAACygB,MAAM,CAAC,EAAE;AACpB,UAAA,IAAI,CAAC0C,oBAAoB,CAAC1C,MAAM,CAAC;AACrC;AACJ;KACH;AACDzhB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACzV,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAED,KAAK,CAAC;KACtC;AACD0V,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAAC1V,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;AACD2V,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC3V,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAED,KAAK,CAAC;KACxC;AACDwN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACxN,KAAK,EAAE;AACjB,MAAA,IAAIs8B,YAAa,GAAE,IAAI,CAACtgC,WAAY,GAAAwvB,kBAAA,CAAM,IAAI,CAACxvB,WAAW,CAAA,GAAI,EAAE;AAEhEsgC,MAAAA,YAAY,CAAC52B,IAAI,CAAC1F,KAAK,CAACG,IAAI,CAAC;AAC7B,MAAA,IAAI,CAACF,KAAK,CAAC,oBAAoB,EAAEq8B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACr8B,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDyN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACzN,KAAK,EAAE;AACjB,MAAA,IAAIs8B,YAAW,GAAA9Q,kBAAA,CAAQ,IAAI,CAACxvB,WAAW,CAAC;AAExCsgC,MAAAA,YAAY,CAACle,MAAM,CAAC,IAAI,CAAC/J,SAAS,CAACrU,KAAK,CAACG,IAAI,EAAEm8B,YAAY,CAAC,EAAE,CAAC,CAAC;AAChE,MAAA,IAAI,CAACr8B,KAAK,CAAC,oBAAoB,EAAEq8B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACr8B,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACD0N,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC1N,KAAK,EAAE;AACnB,MAAA,IAAIs8B,YAAW,GAAA9Q,kBAAA,CAAQ,IAAI,CAACxvB,WAAW,CAAC;AAExCsgC,MAAAA,YAAY,CAACle,MAAM,CAAC,IAAI,CAAC/J,SAAS,CAACrU,KAAK,CAACG,IAAI,EAAEm8B,YAAY,CAAC,EAAE,CAAC,CAAC;AAChE,MAAA,IAAI,CAACr8B,KAAK,CAAC,oBAAoB,EAAEq8B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACr8B,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACD4V,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC5V,KAAK,EAAE;AACvB,MAAA,IAAMG,IAAI,GAA4BH,KAAK,CAArCG,IAAI;QAAEyI,KAAK,GAAqB5I,KAAK,CAA/B4I,KAAK;QAAEhK,KAAK,GAAcoB,KAAK,CAAxBpB,KAAK;QAAEmJ,OAAM,GAAM/H,KAAK,CAAjB+H,OAAM;AAChC,MAAA,IAAIC,WAAU,GAAA4I,eAAA,KAAS,IAAI,CAACib,cAAe;AAC3C,MAAA,IAAI1D,OAAOngB,WAAW,CAACpJ,KAAK,CAAC;AAE7B,MAAA,IAAImJ,OAAO,EAAE;QACT,CAACogB,IAAK,KAAIA,IAAG,GAAIngB,WAAW,CAACpJ,KAAK,CAAE,GAAE;AAAEuB,UAAAA,IAAI,EAAAyQ,eAAA,CAAOzQ,EAAAA,EAAAA,IAAG,CAAG;AAAEo8B,UAAAA,MAAM,EAAE;AAAG,SAAC,CAAC;AACxEpU,QAAAA,IAAI,CAAC,QAAQ,CAAC,CAACziB,IAAI,CAACkD,KAAK,CAAC;OAC5B,MAAK,IAAIuf,IAAI,EAAE;QACb,IAAMoU,MAAK,GAAIpU,IAAI,CAAC,QAAQ,CAAC,CAAChrB,MAAM,CAAC,UAAC0G,CAAC,EAAA;UAAA,OAAKA,CAAA,KAAM+E,KAAK;SAAC,CAAA;AAExD,QAAA,CAAC2zB,MAAM,CAACz2B,MAAO,GAAE,OAAOkC,WAAW,CAACpJ,KAAK,CAAA,GAAKupB,IAAI,CAAC,QAAQ,CAAA,GAAIoU,MAAO;AAC1E;MAEA,IAAI,CAAC1Q,aAAc,GAAE7jB,WAAW;KACnC;IACD2lB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAAC5xB,QAAQ,EAAE;AACf,QAAA,IAAI,CAAC8vB,aAAc,GAAE,EAAE;AAC3B;KACH;AACDgC,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC7tB,KAAK,EAAE;MACvB,OAAO;AACHE,QAAAA,aAAa,EAAEF,KAAK;QACpBlH,KAAK,EAAE,IAAI,CAACoyB,OAAO;QACnBtyB,IAAI,EAAE,IAAI,CAACuyB,MAAM;QACjBtxB,SAAS,EAAE,IAAI,CAACuxB,WAAW;QAC3BtxB,SAAS,EAAE,IAAI,CAACuxB,WAAW;QAC3BpxB,aAAa,EAAE,IAAI,CAACsxB,eAAe;QACnCnxB,OAAO,EAAE,IAAI,CAAC0xB;OACjB;KACJ;IACD0Q,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACpiC,OAAQ,IAAGf,MAAM,CAAC+I,SAAS,CAACE,cAAc,CAAC8B,IAAI,CAAC,IAAI,CAAChK,OAAO,EAAE,QAAQ,CAAC;KACtF;AACD2sB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC3sB,OAAO,EAAE;MACpB,IAAI,CAAC0xB,SAAQ,GAAI1xB,OAAO;KAC3B;IACD4sB,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAACkE,OAAQ,GAAE,CAAC;MAChB,IAAI,CAACjrB,KAAK,CAAC,cAAc,EAAE,IAAI,CAACirB,OAAO,CAAC;MACxC,IAAI,CAACjrB,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC6rB,SAAS,CAAC;MAE5C,IAAI,IAAI,CAACryB,IAAI,EAAE;QACX,IAAI,CAACwG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC4tB,mBAAmB,EAAE,CAAC;AACpD;KACH;AACD9B,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC3xB,OAAO,EAAE;MAClB,IAAIqiC,MAAK,GAAI,EAAE;AAEf,MAAA,IAAIriC,OAAO,EAAE;QACTf,MAAM,CAACy2B,OAAO,CAAC11B,OAAO,CAAC,CAAC2K,OAAO,CAAC,UAAA23B,KAAA,EAAmB;AAAA,UAAA,IAAAC,KAAA,GAAAjN,cAAA,CAAAgN,KAAA,EAAA,CAAA,CAAA;AAAjBhzB,YAAAA,IAAI,GAAAizB,KAAA,CAAA,CAAA,CAAA;AAAErkC,YAAAA,KAAK,GAAAqkC,KAAA,CAAA,CAAA,CAAA;AACzCF,UAAAA,MAAM,CAAC/yB,IAAI,CAAE,GAAEpR,KAAK,CAACslB,QAAO,GACtB;YACIA,QAAQ,EAAEtlB,KAAK,CAACslB,QAAQ;YACxBC,WAAW,EAAEvlB,KAAK,CAACulB,WAAW,CAACsE,GAAG,CAAC,UAACxC,UAAU,EAAK;cAC/C,OAAA/O,eAAA,KAAY+O;aACf;AACL,WAAA,GAAA/O,eAAA,CACKtY,EAAAA,EAAAA,KAAI,CAAG;AACtB,SAAC,CAAC;AACN;AAEA,MAAA,OAAOmkC,MAAM;KAChB;IACD3C,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAA8C,MAAA,GAAA,IAAA;MACvB,IAAIxB,WAAY,GAAE,EAAE;AAEpB,MAAA,IAAI,CAAChpB,OAAO,CAACrN,OAAO,CAAC,UAACoO,GAAG,EAAA;QAAA,OAAKioB,WAAW,CAAC11B,IAAI,CAACk3B,MAAI,CAAC9zB,UAAU,CAACqK,GAAG,EAAE,WAAW,CAAE,IAAGypB,MAAI,CAAC9zB,UAAU,CAACqK,GAAG,EAAE,OAAO,CAAC,CAAC;OAAC,CAAA;MACnH,IAAI,CAACwY,aAAc,GAAEyP,WAAW;KACnC;IACDhE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAyF,eAAA;MACjB,IAAI,CAACrF,YAAW,GAAI7sB,QAAQ,CAACmyB,aAAa,CAAC,OAAO,CAAC;AACnD,MAAA,IAAI,CAACtF,YAAY,CAACj/B,IAAG,GAAI,UAAU;AACnCk9B,MAAAA,YAAY,CAAC,IAAI,CAAC+B,YAAY,EAAE,OAAO,EAAA,CAAAqF,eAAA,GAAE,IAAI,CAACv8B,SAAS,MAAAu8B,IAAAA,IAAAA,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBt8B,MAAM,MAAA,IAAA,IAAAs8B,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAtBA,eAAA,CAAwBE,GAAG,cAAAF,eAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,eAAA,CAA6BG,KAAK,CAAC;MAC5EryB,QAAQ,CAACsyB,IAAI,CAACC,WAAW,CAAC,IAAI,CAAC1F,YAAY,CAAC;KAC/C;IACDhK,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACgK,YAAY,EAAE;QACnB7sB,QAAQ,CAACsyB,IAAI,CAACE,WAAW,CAAC,IAAI,CAAC3F,YAAY,CAAC;QAC5C,IAAI,CAACA,YAAW,GAAI,IAAI;AAC5B;KACH;AACDhF,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACryB,IAAI,EAAE;AACf,MAAA,IAAMi9B,KAAI,GAAIj9B,QAAQ,IAAI,CAAC6tB,aAAa;AAExC,MAAA,IAAIoP,KAAI,IAAK,IAAI,CAACpkC,SAAS,EAAE;QACzB,IAAMF,KAAI,GAAI,IAAI,CAACW,IAAK,GAAE,CAAE,GAAE,IAAI,CAACyxB,OAAO;QAE1C,OAAOkS,KAAK,CAACt2B,KAAK,CAAChO,KAAK,EAAEA,KAAI,GAAI,IAAI,CAACqyB,MAAM,CAAC;AAClD;AAEA,MAAA,OAAOiS,KAAK;KACf;IACDC,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACrd,KAAK,CAACsd,eAAe;KACpC;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACr/B,KAAK,EAAE;MAClB,OAAOuY,UAAU,CAACvY,KAAK,CAAC;AAC5B;GACH;AACDkC,EAAAA,QAAQ,EAAE;IACNgS,OAAO,EAAA,SAAPA,OAAOA,GAAG;MACN,IAAMorB,IAAK,GAAE,IAAI,CAACzS,SAAS,CAAC1P,GAAG,CAAC,IAAI,CAAC;MAErC,IAAImiB,IAAK,IAAG,IAAI,CAACniC,kBAAmB,IAAG,IAAI,CAACswB,aAAa,EAAE;QACvD,IAAI8R,cAAe,GAAE,EAAE;AAAA,QAAA,IAAAC,UAAA,GAAApnB,0BAAA,CAED,IAAI,CAACqV,aAAa,CAAA;UAAAgS,MAAA;AAAA,QAAA,IAAA;UAAxC,KAAAD,UAAA,CAAAx5B,CAAA,EAAAy5B,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAr7B,CAAA,EAAAmB,EAAAA,IAAA,GAA0C;AAAA,YAAA,IAAjCo6B;YACL,IAAIl/B,SAAS,IAAI,CAACq7B,eAAe,CAACyD,IAAI,EAAEI,SAAS,CAAC;YAElD,IAAIl/B,MAAO,IAAG,CAAC,IAAI,CAACoK,UAAU,CAACpK,MAAM,EAAE,QAAQ,CAAC,EAAE;AAC9C++B,cAAAA,cAAc,CAAC/3B,IAAI,CAAChH,MAAM,CAAC;AAC/B;AACJ;AAAA,SAAA,CAAA,OAAAgY,GAAA,EAAA;UAAAgnB,UAAA,CAAAv7B,CAAA,CAAAuU,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAgnB,UAAAA,UAAA,CAAA75B,CAAA,EAAA;AAAA;QAEA,OAAAlE,EAAAA,CAAAA,MAAA,CAAW89B,cAAc,EAAAjS,kBAAA,CAAKgS,IAAI,CAACrgC,MAAM,CAAC,UAAC6hB,IAAI,EAAA;AAAA,UAAA,OAAKye,cAAc,CAACtpB,OAAO,CAAC6K,IAAI,IAAI,CAAC;SAAC,CAAA,CAAA,CAAA;AACzF;AAEA,MAAA,OAAOwe,IAAI;KACd;IACDK,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAC5S,cAAc,CAAC5P,GAAG,CAAC,IAAI,CAAC;KACvC;IACDyiB,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,kBAAA;QAAAC,MAAA,GAAA,IAAA;AAChB,MAAA,OAAA,CAAAD,kBAAA,GAAO,IAAI,CAACF,YAAY,MAAA,IAAA,IAAAE,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAmBrK,IAAI,CAAC,UAACmH,KAAK,EAAA;QAAA,OAAKmD,MAAI,CAACl1B,UAAU,CAAC+xB,KAAK,EAAE,MAAM,MAAM,QAAQ;OAAC,CAAA;KACzF;IACDoD,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,mBAAA;QAAAC,OAAA,GAAA,IAAA;AAChB,MAAA,OAAA,CAAAD,mBAAA,GAAO,IAAI,CAACL,YAAY,MAAA,IAAA,IAAAK,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,mBAAA,CAAmBxK,IAAI,CAAC,UAACmH,KAAK,EAAA;QAAA,OAAKsD,OAAI,CAACr1B,UAAU,CAAC+xB,KAAK,EAAE,MAAM,MAAM,QAAQ;OAAC,CAAA;KACzF;IACDK,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,OAAO,IAAI,CAAC9gC,OAAM,IAAKf,MAAM,CAACmN,IAAI,CAAC,IAAI,CAACpM,OAAO,CAAC,CAAC0L,MAAK,GAAI,CAAE,IAAG,IAAI,CAAC1L,OAAO,CAAC6L,WAAY,KAAI5M,MAAM;KACrG;IACD20B,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAoQ,qBAAA;AACZ,MAAA,IAAIj+B,IAAK,GAAE,IAAI,CAAC7H,SAAS,EAAE;AAE3B,MAAA,IAAI,CAAC,IAAI,CAACmB,QAAQ,GAAA2kC,qBAAA,GAAC,IAAI,CAAChiC,sBAAsB,MAAAgiC,IAAAA,IAAAA,qBAAA,eAA3BA,qBAAA,CAA6B3kC,IAAI,CAAE,EAAA;AAClD,QAAA,IAAI0G,IAAG,IAAKA,IAAI,CAAC2F,MAAM,EAAE;UACrB,IAAI,IAAI,CAACo1B,UAAU,EAAE;AACjB/6B,YAAAA,IAAK,GAAE,IAAI,CAAChD,MAAM,CAACgD,IAAI,CAAC;AAC5B;UAEA,IAAI,IAAI,CAACqnB,MAAM,EAAE;AACb,YAAA,IAAI,IAAI,CAACttB,QAAO,KAAM,QAAQ,EAAEiG,IAAG,GAAI,IAAI,CAACwuB,UAAU,CAACxuB,IAAI,CAAC,CAAA,KACvD,IAAI,IAAI,CAACjG,QAAS,KAAI,UAAU,EAAEiG,IAAK,GAAE,IAAI,CAACyuB,YAAY,CAACzuB,IAAI,CAAC;AACzE;AACJ;AACJ;AAEA,MAAA,OAAOA,IAAI;KACd;IACDk+B,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,IAAI,CAAC5kC,IAAI,EAAE;QACX,OAAO,IAAI,CAACV,YAAY;AAC5B,OAAE,MAAK;AACH,QAAA,IAAMoH,IAAK,GAAE,IAAI,CAAC6tB,aAAa;AAE/B,QAAA,OAAO7tB,IAAG,GAAIA,IAAI,CAAC2F,MAAO,GAAE,CAAC;AACjC;KACH;IACDuM,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,IAAMlS,IAAK,GAAE,IAAI,CAAC6tB,aAAa;AAE/B,MAAA,OAAO,CAAC7tB,IAAK,IAAGA,IAAI,CAAC2F,MAAO,KAAI,CAAC;KACpC;IACDw4B,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAACtlC,cAAc,IAAI,CAACE,iBAAgB,KAAM,QAAO,IAAK,IAAI,CAACA,sBAAsB,MAAM,CAAC;KACtG;IACDqlC,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACvlC,SAAU,KAAI,IAAI,CAACE,iBAAgB,KAAM,KAAM,IAAG,IAAI,CAACA,sBAAsB,MAAM,CAAC;KACnG;IACDsuB,MAAM,EAAA,SAANA,MAAMA,GAAG;AACL,MAAA,OAAO,IAAI,CAAC4D,WAAY,IAAI,IAAI,CAACG,eAAc,IAAK,IAAI,CAACA,eAAe,CAACzlB,MAAO,GAAE,CAAE;KACvF;IACDggB,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAA0Y,OAAA,GAAA,IAAA;AACd,MAAA,IAAI,IAAI,CAAC1jC,SAAQ,KAAM,IAAI,EAAE;QACzB,OAAO,IAAI,CAACA,SAAS;AACzB,OAAE,MAAK;QACH,IAAM+2B,MAAM,IAAI,CAACv1B,WAAY,GAAAqD,EAAAA,CAAAA,MAAA,CAAA6rB,kBAAA,CAAM,IAAI,CAAClvB,WAAW,CAAA,EAAAkvB,kBAAA,CAAK,IAAI,CAACwC,aAAa,CAAA,CAAA,GAAI,IAAI,CAACA,aAAa;QAEhG,OAAOvX,UAAU,CAACob,GAAG,CAAA,IAAK,IAAI,CAACr3B,SAAQ,IAAKhC,KAAK,CAAC0b,OAAO,CAAC,IAAI,CAAC1Z,SAAS,CAAA,IAAKq3B,GAAG,CAAC4M,KAAK,CAAC,UAAC55B,CAAC,EAAA;AAAA,UAAA,OAAK25B,OAAI,CAAChkC,SAAS,CAACyY,IAAI,CAAC,UAAC/O,CAAC,EAAA;AAAA,YAAA,OAAKs6B,OAAI,CAACtrB,MAAM,CAAChP,CAAC,EAAEW,CAAC,CAAC;WAAC,CAAA;SAAC,CAAA;AAChJ;KACH;IACDwiB,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAChB,OAAO,IAAI,CAACntB,QAAO,KAAM,WAAW,IAAI,CAACL,SAAU,GAAE,IAAI,CAAC4xB,mBAAoB,GAAE,IAAI,CAACA,mBAAmB,CAAC7iB,QAAQ,IAAI;KACxH;IACD81B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAA9tB,eAAA,CAAAA,eAAA,CAAA;AACIzT,QAAAA,MAAM,EAAE;AAAEC,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;AAAK;OACxD,EAAA,IAAI,CAACL,iBAAiB,CAAA,EAAA,EAAA,EAAA;AACzBM,QAAAA,MAAM,EAAAqT,eAAA,CAAA;AACFpT,UAAAA,KAAK,EAAE;AAAEJ,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;AAAK;AAAC,SAAA,EACxD,IAAI,CAACL,iBAAiB,CAACM,MAAK,CAClC;AACDE,QAAAA,OAAO,EAAAmT,eAAA,CAAA;AACHlT,UAAAA,OAAO,EAAE;AAAEN,YAAAA,QAAQ,EAAE,MAAM;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAET,YAAAA,IAAI,EAAE;WAAS;AACxDe,UAAAA,UAAU,EAAE;AAAEP,YAAAA,QAAQ,EAAE,QAAQ;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAET,YAAAA,IAAI,EAAE;WAAS;AAC7DgB,UAAAA,KAAK,EAAE;AAAEhB,YAAAA,IAAI,EAAE;WAAS;AACxBY,UAAAA,KAAK,EAAE;AAAEK,YAAAA,QAAQ,EAAE,IAAI;AAAEjB,YAAAA,IAAI,EAAE;AAAQ;AAAC,SAAA,EACrC,IAAI,CAACK,iBAAiB,CAACQ,OAAM;AACpC,OAAA,CAAA;KAEP;IACDkhC,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,OAAA/tB,eAAA,CAAAA,eAAA,CACO,EAAA,EAAA;AACC7S,QAAAA,IAAI,EAAE;AAAEX,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;SAAM;AAC1DU,QAAAA,IAAI,EAAE;AAAEZ,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;SAAM;AAC1DW,QAAAA,MAAM,EAAE;AAAEb,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;AAAK;OAC9D,CAAA,EACE,IAAI,CAACQ,eAAc,CAAA;KAE7B;IACD+4B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAO+H,OAAO,CAAC,IAAI,CAACxiC,sBAAsB,CAAE,IAAG,CAAC,IAAI,CAACD,UAAU;KAClE;IACD6c,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAOC,EAAE,CAAC;QACN9c,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3B,iBAAiB,EAAE,IAAI,CAACA,UAAS,IAAK,IAAI,CAACE,YAAa,KAAI;AAChE,OAAC,CAAC;AACN;GACH;AACDuE,EAAAA,UAAU,EAAE;AACRi+B,IAAAA,WAAW,EAAEC,SAAS;AACtBC,IAAAA,aAAa,EAAEC,QAAW;AAC1BC,IAAAA,WAAW,EAAEC,QAAS;AACtBC,IAAAA,aAAa,EAAEC,QAAW;AAC1BC,IAAAA,iBAAiB,EAAEC,eAAe;AAClCC,IAAAA,aAAa,EAAEA,aAAa;AAC5BC,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,WAAW,EAAEA;AACjB;AACJ,CAAC;;;;;;;;;;;;;;;;;ECtnEG,OAAAh+B,SAAA,EAAA,EAAAiP,kBAAA,CA8TK,OA9TL7O,UA8TK,CAAA;AA9TC,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,MAAA,CAAA;AAAU,IAAA,sBAAoB,EAAC,sBAAuB;IAAC,QAAM,EAAErN,QAAK,CAAA4X;KAAU7X,IAAI,CAAAu+B,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAC7FC,UAAY,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,SAAA,CAAA,EACDz+B,IAAO,CAAAzH,OAAA,IAAlB+H,SAAA,EAAA,EAAAiP,kBAAA,CAOK,OAPL7O,UAOK,CAAA;;AAPgB,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,MAAA;KAAkBtN,IAAG,CAAAzB,GAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CACnCyB,IAAA,CAAAy+B,MAAM,CAAClmC,OAAO,GAA1BimC,UAAiD,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,SAAA,EAAA;AAAA7gC,IAAAA,GAAA,EAAA;GAAA,CAAA,iBACjD2R,kBAIU,CAAAQ,QAAA,EAAA;AAAAnS,IAAAA,GAAA,EAAA;GAAA,EAAA,CAHWoC,IAAA,CAAAy+B,MAAM,CAACC,WAAW,iBAAnC9+B,WAA0F,CAAAW,uBAAA,CAAhDP,IAAM,CAAAy+B,MAAA,CAACC,WAAW,CAAA,EAAA;;AAAG,IAAA,OAAA,iBAAO1+B,IAAE,CAAAsN,EAAA,CAAA,aAAA,CAAA;4BAC1DtN,IAAW,CAAAxH,WAAA,IAAzB8H,SAAA,EAAA,EAAAiP,kBAAA,CAA6G,KAA7G7O,UAA6G,CAAA;;AAAjF,IAAA,OAAA,EAAK,CAAGV,IAAE,CAAAsN,EAAA,CAAA,aAAA,CAAA,EAAA,SAAA,EAA4BtN,IAAW,CAAAxH,WAAA;KAAWwH,IAAG,CAAAzB,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC3F+B,SAAA,EAAA,EAAAV,WAAA,CAAiF++B,wBAAjFj+B,UAAiF,CAAA;;AAA7Dk+B,IAAAA,IAAK,EAAL,EAAK;AAAC,IAAA,OAAA,EAAO5+B,IAAE,CAAAsN,EAAA,CAAA,aAAA;KAAyBtN,IAAG,CAAAzB,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,+CAG5DyB,IAAA,CAAAy+B,MAAM,CAACvW,MAAM,IAAxB5nB,SAAA,EAAA,EAAAiP,kBAAA,CAEK,OAFL7O,UAEK,CAAA;;AAFsB,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,QAAA;KAAoBtN,IAAG,CAAAzB,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDigC,UAA0B,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,QAAA,CAAA,wCAGpBx+B,QAAY,CAAAk9B,YAAA,iBADtBv9B,WA0Da,CAAAi/B,sBAAA,EAAA;;IAxDRpnC,IAAI,EAAEyG,KAAM,CAAA8rB,MAAA;IACZryB,KAAK,EAAEuG,KAAO,CAAA6rB,OAAA;IACdnyB,YAAY,EAAEqI,QAAkB,CAAAi9B,kBAAA;IAChC/kC,YAAY,EAAE6H,IAAY,CAAA7H,YAAA;IAC1B2mC,QAAQ,EAAE9+B,IAAiB,CAAA/H,iBAAA;IAC3BG,kBAAkB,EAAE4H,IAAkB,CAAA5H,kBAAA;IACtCC,yBAAyB,EAAE2H,IAAyB,CAAA3H,yBAAA;AACpD,IAAA,OAAA,iBAAO2H,IAAE,CAAAsN,EAAA,CAAA,aAAA,EAAA;AAAA+R,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AACTkN,IAAAA,MAAI,EAAAtc,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjQ,QAAM,CAAAssB,MAAA,CAACrc,MAAM,CAAA;AAAA,KAAA,CAAA;IACnB6uB,UAAU,EAAE/+B,IAAmB,CAAAhI,mBAAA;IAC/BkI,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClB,IAAA,YAAU,EAAE,IAAI;AAChBvB,IAAAA,EAAE,EAAEqB,IAAG,CAAAzB,GAAA,CAAA,aAAA;;;MAEQyB,IAAA,CAAAy+B,MAAM,CAACO,kBAAkB;UAAG,WAAS;AACjDC,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADmDC,SAAS,EAAA;MAAA,OAAA,CAC5Dm+B,UAeO,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,oBAAA,EAAA;QAbF9mC,KAAK,EAAE0I,SAAS,CAAC1I,KAAK;QACtBunC,IAAI,EAAE7+B,SAAS,CAAC6+B,IAAI;QACpBznC,IAAI,EAAE4I,SAAS,CAAC5I,IAAI;QACpBm1B,IAAI,EAAEvsB,SAAS,CAACusB,IAAI;QACpBD,SAAS,EAAEtsB,SAAS,CAACssB,SAAS;QAC9BwS,SAAS,EAAE9+B,SAAS,CAAC8+B,SAAS;QAC9BvnC,YAAY,EAAEyI,SAAS,CAACzI,YAAY;QACpCwnC,iBAAiB,EAAE/+B,SAAS,CAAC++B,iBAAiB;QAC9CC,gBAAgB,EAAEh/B,SAAS,CAACg/B,gBAAgB;QAC5CC,gBAAgB,EAAEj/B,SAAS,CAACi/B,gBAAgB;QAC5CC,gBAAgB,EAAEl/B,SAAS,CAACk/B,gBAAgB;QAC5CC,iBAAiB,EAAEn/B,SAAS,CAACm/B,iBAAiB;QAC9CC,kBAAkB,EAAEp/B,SAAS,CAACo/B;;;;iBAGvBz/B,IAAA,CAAAy+B,MAAM,CAACiB,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlClB,UAAkC,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,gBAAA,CAAA;;;iBAEtBz+B,IAAA,CAAAy+B,MAAM,CAACkB,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCnB,UAAgC,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,cAAA,CAAA;;;iBAEpBz+B,IAAA,CAAAy+B,MAAM,CAACmB,0BAA0B;UAAG,mBAAiB;AACjEX,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5Em+B,UAAuE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAEnDL,IAAA,CAAAy+B,MAAM,CAACoB,yBAAyB;UAAG,kBAAgB;AAC/DZ,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACqB,yBAAyB;UAAG,kBAAgB;AAC/Db,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACsB,yBAAyB;UAAG,kBAAgB;AAC/Dd,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACuB,+BAA+B;UAAG,wBAAsB;AAC3Ef,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFm+B,UAA4E,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAExDL,IAAA,CAAAy+B,MAAM,CAACwB,gCAAgC;UAAG,yBAAuB;AAC7EhB,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFm+B,UAA6E,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;qNAG7E8V,kBAAA,CAgLK,OAhLLzV,UAgLK,CAAA;AAhLC,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,gBAAA,CAAA;IAAqBvQ,KAAK,EAAG,CAAAiD,IAAA,CAAAwa,EAAE,CAAiC,gBAAA,CAAA,EAAA;MAAA0lB,SAAA,EAAAjgC,QAAA,CAAAy1B,uBAAsB,GAAI11B,IAAW,CAAA9E,YAAA,GAAA;AAAA,KAAA,CAAA;IAAY,QAAM,EAAE+E,QAAK,CAAA4X;KAAU7X,IAAG,CAAAzB,GAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CACtJilB,WAAA,CA8KmB2c,8BA9KnBz/B,UA8KmB,CAAA;AA7KfyX,IAAAA,GAAG,EAAC;KACInY,IAAsB,CAAA/E,sBAAA,EAAA;IAC7BmlC,KAAK,EAAEngC,QAAa,CAAA4sB,aAAA;IACpB5b,OAAO,EAAEhR,QAAO,CAAAgR,OAAA;AAChBlU,IAAAA,KAAK,EAAEiD,IAAA,CAAA9E,YAAW,KAAyB,MAAA,GAAA;MAAAu5B,MAAA,EAAAz0B,IAAA,CAAA9E;QAAiBzC,SAAS;IACrEyC,YAAY,EAAE8E,+BAA0BvH,SAAU,GAAA,MAAA;IAClD2F,QAAQ,EAAE6B,QAAuB,CAAAy1B,uBAAA;AAClC2K,IAAAA,cAAa,EAAb,EAAa;AACbjkC,IAAAA,MAAK,EAAL,EAAK;AACLkkC,IAAAA,QAAO,EAAP,EAAO;AACNC,IAAAA,UAAU,EAAE,KAAK;AACjB5hC,IAAAA,EAAE,EAAEqB,IAAG,CAAAzB,GAAA,CAAA,iBAAA;;AAEGiiC,IAAAA,OAAO,EAAApgC,OAAA,CACd,UA6JOC,SA9JkB,EAAA;AAAA,MAAA,OAAA,CACzB8V,kBAAA,CA6JO,SA7JPzV,UA6JO,CAAA;AA7JAyX,QAAAA,GAAG,EAAC,OAAM;AAAE3I,QAAAA,IAAI,EAAC,OAAQ;QAAC,OAAK,EAAA,CAAGxP,IAAE,CAAAsN,EAAA,CAAA,OAAA,CAAA,EAAWtN,IAAU,CAAArE,UAAA,CAAA;QAAIoB,KAAK,EAAG,CAAAiD,IAAA,CAAAtE,UAAU,EAAE2E,SAAS,CAACogC,WAAW;AAAgB,OAAA,EAAAhxB,aAAA,CAAAA,aAAA,CAAAzP,EAAAA,EAAAA,IAAA,CAAApE,UAAU,CAAKoE,EAAAA,IAAG,CAAAzB,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAEjIyB,IAAW,CAAA3E,WAAA,iBADrBuE,WAiCC,CAAA8gC,wBAAA,EAAA;;QA/BIxnB,WAAW,EAAEjZ,QAAiB,CAAA08B,iBAAA;QAC9B1rB,OAAO,EAAE5Q,SAAS,CAAC4Q,OAAO;QAC1B3W,YAAY,EAAE0F,IAAY,CAAA1F,YAAA;QAC1BC,WAAW,EAAEyF,IAAW,CAAAzF,WAAA;QACxB2rB,iBAAiB,EAAEjmB,QAAiB,CAAAimB,iBAAA;QACpChsB,kBAAkB,EAAE8F,IAAkB,CAAA9F,kBAAA;QACtCF,gBAAgB,EAAEgG,IAAgB,CAAAhG,gBAAA;QAClC2qB,eAAe,EAAE1kB,QAAe,CAAA0kB,eAAA;QAChCzT,KAAK,EAAEjR,QAAK,CAAAiR,KAAA;QACZnY,QAAQ,EAAEiH,IAAQ,CAAAjH,QAAA;QAClBL,SAAS,EAAEwF,KAAW,CAAA+rB,WAAA;QACtBtxB,SAAS,EAAEuF,KAAW,CAAAgsB,WAAA;QACtBpxB,aAAa,EAAEoF,KAAe,CAAAksB,eAAA;QAC9BnxB,OAAO,EAAEiF,KAAS,CAAAysB,SAAA;QAClB5O,YAAY,EAAE/b,IAAO,CAAA/G,OAAA;QACrBC,aAAa,EAAE8G,IAAa,CAAA9G,aAAA;QAC5B4C,iBAAiB,EAAEmE,QAAuB,CAAAs9B,uBAAA;QAC1C1hC,gBAAgB,EAAEmE,IAAgB,CAAAnE,gBAAA;QAClClE,KAAK,EAAEuG,KAAO,CAAA6rB,OAAA;AACdb,QAAAA,aAAY,EAAAjZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAmB,CAAA6sB,mBAAA,CAAC5c,MAAM,CAAA;AAAA,SAAA,CAAA;AACxCiZ,QAAAA,iBAAgB,EAAAlZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAuB,CAAAs2B,uBAAA,CAACrmB,MAAM,CAAA;AAAA,SAAA,CAAA;QAChD0V,cAAa,EAAE3lB,QAAc,CAAA2lB,cAAA;QAC7BC,aAAY,EAAE5lB,QAAa,CAAA4lB,aAAA;AAC3BuD,QAAAA,iBAAgB,EAAAnZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAuB,CAAAw2B,uBAAA,CAACvmB,MAAM,CAAA;AAAA,SAAA,CAAA;AAChDmZ,QAAAA,gBAAe,EAAApZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAsB,CAAA+2B,sBAAA,CAAC9mB,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9CoZ,QAAAA,iBAAgB,EAAArZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAuB,CAAAw3B,uBAAA,CAACvnB,MAAM,CAAA;AAAA,SAAA,CAAA;AAChDqZ,QAAAA,YAAW,EAAAtZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAkB,CAAAy3B,kBAAA,CAACxnB,MAAM,CAAA;AAAA,SAAA,CAAA;AACtCsZ,QAAAA,mBAAkB,EAAAvZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAmB,CAAA6zB,mBAAA,CAAC5jB,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9CmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAsB,CAAA2yB,sBAAA,CAAC1iB,MAAM,CAAA;AAAA,SAAA,CAAA;QAC9ChQ,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;QAClBvB,EAAE,EAAEqB,IAAE,CAAArB;mZAGDqB,IAAW,CAAA7E,WAAA,iBADrByE,WAwDC,CAAA+gC,sBAAA,EAAA;;AAtDGxoB,QAAAA,GAAG,EAAC,eAAc;QACjBhhB,KAAK,EAAE6I,IAAW,CAAA7E,WAAA;AAClBqL,QAAAA,SAAS,EAAE,IAAI;QACfyK,OAAO,EAAE5Q,SAAS,CAAC4Q,OAAO;QAC1BtZ,KAAK,EAAEuG,KAAO,CAAA6rB,OAAA;QACdzyB,OAAO,EAAE0I,IAAO,CAAA1I,OAAA;QAChB+B,SAAS,EAAE2G,IAAS,CAAA3G,SAAA;QACpB8X,aAAa,EAAEjT,KAAe,CAAAqsB,eAAA;QAC9BjxB,aAAa,EAAE0G,IAAa,CAAA1G,aAAA;QAC5BM,QAAQ,EAAEoG,IAAQ,CAAApG,QAAA;QAClBH,WAAW,EAAEuG,IAAW,CAAAvG,WAAA;QACxBC,oBAAoB,EAAEsG,IAAoB,CAAAtG,oBAAA;QAC1CY,YAAY,EAAE0F,IAAY,CAAA1F,YAAA;QAC1BC,WAAW,EAAEyF,IAAW,CAAAzF,WAAA;QACxBC,mBAAmB,EAAEwF,IAAmB,CAAAxF,mBAAA;QACxCM,QAAQ,EAAEkF,IAAQ,CAAAlF,QAAA;QAClBC,QAAQ,EAAEiF,IAAQ,CAAAjF,QAAA;QAClBH,QAAQ,EAAEoF,IAAQ,CAAApF,QAAA;QAClBrB,kBAAkB,EAAEyG,IAAkB,CAAAzG,kBAAA;QACtCyB,UAAU,EAAEgF,IAAU,CAAAhF,UAAA;QACtBZ,eAAe,EAAE4F,IAAe,CAAA5F,eAAA;QAChCC,gBAAgB,EAAE2F,IAAgB,CAAA3F,gBAAA;QAClCF,YAAY,EAAE6F,IAAY,CAAA7F,YAAA;QAC1BM,iBAAiB,EAAEuF,IAAiB,CAAAvF,iBAAA;QACpCI,WAAW,EAAEmF,IAAW,CAAAnF,WAAA;QACxBwW,cAAc,EAAEnT,KAAgB,CAAAusB,gBAAA;QAChCnZ,SAAS,EAAEtR,IAAM,CAAAy+B,MAAA;QACjB9hC,eAAe,EAAEsD,QAAkB,CAAAu9B,kBAAA;AACnCjsB,QAAAA,yBAAyB,EAAE,IAAI;QAC/BgH,gBAAe,EAAEtY,QAAc,CAAAu5B,cAAA;AAC/BjmB,QAAAA,UAAS,EAAAtD,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAU,CAAAsT,UAAA,CAACrD,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BsI,QAAAA,aAAY,EAAAvI,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAuT,aAAA,CAACtD,MAAM,CAAA;AAAA,SAAA,CAAA;AAClCuI,QAAAA,eAAc,EAAAxI,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAe,CAAAwT,eAAA,CAACvD,MAAM,CAAA;AAAA,SAAA,CAAA;QACtCwI,aAAY,EAAEzY,QAAa,CAAAyT,aAAA;QAC3BiF,YAAW,EAAE1Y,QAAY,CAAA0T,YAAA;QACzBiF,cAAa,EAAE3Y,QAAc,CAAA2T,cAAA;AAC7BiF,QAAAA,cAAa,EAAA5I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAA4T,cAAA,CAAC3D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC4I,QAAAA,aAAY,EAAA7I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAA6T,aAAA,CAAC5D,MAAM,CAAA;AAAA,SAAA,CAAA;AAClC6I,QAAAA,cAAa,EAAA9I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAA8T,cAAA,CAAC7D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC8I,QAAAA,YAAW,EAAA/I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAY,CAAA+T,YAAA,CAAC9D,MAAM,CAAA;AAAA,SAAA,CAAA;AAChC+D,QAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAS,CAAAgU,SAAA,CAAC/D,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1BgE,QAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAS,CAAA2I,SAAA,CAACsH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BkE,QAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAkB,CAAA4I,kBAAA,CAACqH,MAAM,CAAA;AAAA,SAAA,CAAA;AACvCmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAqB,CAAA6I,qBAAA,CAACoH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CoE,QAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAAqU,cAAA,CAACpE,MAAM,CAAA;AAAA,SAAA,CAAA;AACrCqE,QAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAkB,CAAAsU,kBAAA,CAACrE,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CsE,QAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAgB,CAAAuU,gBAAA,CAACtE,MAAM,CAAA;AAAA,SAAA,CAAA;AACzC7D,QAAAA,aAAa,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAoM,aAAA,CAAC6D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC5D,QAAAA,aAAa,EAAA2D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAqM,aAAA,CAAC4D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC3D,QAAAA,eAAe,EAAA0D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAe,CAAAsM,eAAA,CAAC2D,MAAM,CAAA;AAAA,SAAA,CAAA;QACvCrJ,WAAW,EAAE3I,KAAa,CAAAwsB,aAAA;QAC1BjW,mBAAmB,EAAExU,QAAmB,CAAAwU,mBAAA;QACxCvU,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;QAClBvB,EAAE,EAAEqB,IAAE,CAAArB;ykBAEX6kB,WAyDC,CAAAmd,sBAAA,EAAA;AAxDGxoB,QAAAA,GAAG,EAAC,SAAQ;QACXhhB,KAAK,EAAE8I,QAAA,CAAAoxB,YAAY,CAAChxB,SAAS,CAAC5I,IAAI,CAAA;AAClC,QAAA,OAAA,EAAK+I,cAAA,CAAEH,SAAS,CAACugC,UAAU,CAAA;QAC3B3vB,OAAO,EAAE5Q,SAAS,CAAC4Q,OAAO;QAC1BC,KAAK,EAAEjR,QAAK,CAAAiR,KAAA;QACZvZ,KAAK,EAAEuG,KAAO,CAAA6rB,OAAA;QACdzyB,OAAO,EAAE0I,IAAO,CAAA1I,OAAA;QAChB+B,SAAS,EAAE2G,IAAS,CAAA3G,SAAA;QACpB8X,aAAa,EAAEjT,KAAe,CAAAqsB,eAAA;QAC9BjxB,aAAa,EAAE0G,IAAa,CAAA1G,aAAA;QAC5BM,QAAQ,EAAEoG,IAAQ,CAAApG,QAAA;QAClBH,WAAW,EAAEuG,IAAW,CAAAvG,WAAA;QACxBC,oBAAoB,EAAEsG,IAAoB,CAAAtG,oBAAA;QAC1CY,YAAY,EAAE0F,IAAY,CAAA1F,YAAA;QAC1BC,WAAW,EAAEyF,IAAW,CAAAzF,WAAA;QACxBC,mBAAmB,EAAEwF,IAAmB,CAAAxF,mBAAA;QACxCM,QAAQ,EAAEkF,IAAQ,CAAAlF,QAAA;QAClBC,QAAQ,EAAEiF,IAAQ,CAAAjF,QAAA;QAClBH,QAAQ,EAAEoF,IAAQ,CAAApF,QAAA;QAClBrB,kBAAkB,EAAEyG,IAAkB,CAAAzG,kBAAA;QACtCyB,UAAU,EAAEgF,IAAU,CAAAhF,UAAA;QACtBZ,eAAe,EAAE4F,IAAe,CAAA5F,eAAA;QAChCC,gBAAgB,EAAE2F,IAAgB,CAAA3F,gBAAA;QAClCF,YAAY,EAAE6F,IAAY,CAAA7F,YAAA;QAC1BM,iBAAiB,EAAEuF,IAAiB,CAAAvF,iBAAA;QACpCI,WAAW,EAAEmF,IAAW,CAAAnF,WAAA;QACxBwW,cAAc,EAAEnT,KAAgB,CAAAusB,gBAAA;QAChCnZ,SAAS,EAAEtR,IAAM,CAAAy+B,MAAA;QACjB9hC,eAAe,EAAEsD,QAAkB,CAAAu9B,kBAAA;AACnC12B,QAAAA,2BAA2B,EAAEzG,SAAS;QACtCkR,yBAAyB,EAAEtR,QAAuB,CAAAy1B,uBAAA;QAClDnd,gBAAe,EAAEtY,QAAc,CAAAu5B,cAAA;AAC/BjmB,QAAAA,UAAS,EAAAtD,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAU,CAAAsT,UAAA,CAACrD,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BsI,QAAAA,aAAY,EAAAvI,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAuT,aAAA,CAACtD,MAAM,CAAA;AAAA,SAAA,CAAA;AAClCuI,QAAAA,eAAc,EAAAxI,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAe,CAAAwT,eAAA,CAACvD,MAAM,CAAA;AAAA,SAAA,CAAA;QACtCwI,aAAY,EAAEzY,QAAa,CAAAyT,aAAA;AAC3BiF,QAAAA,YAAW,EAAE,SAAbA,YAAWA,CAAEzI,MAAA,EAAA;AAAA,UAAA,OAAAjQ,QAAA,CAAA0T,YAAY,CAACzD,MAAM,EAAE7P,SAAS,CAAA;SAAA;QAC3CuY,cAAa,EAAE3Y,QAAc,CAAA2T,cAAA;AAC7BiF,QAAAA,cAAa,EAAA5I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAA4T,cAAA,CAAC3D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC4I,QAAAA,aAAY,EAAA7I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAA6T,aAAA,CAAC5D,MAAM,CAAA;AAAA,SAAA,CAAA;AAClC6I,QAAAA,cAAa,EAAA9I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAA8T,cAAA,CAAC7D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC8I,QAAAA,YAAW,EAAA/I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAY,CAAA+T,YAAA,CAAC9D,MAAM,CAAA;AAAA,SAAA,CAAA;AAChC+D,QAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAS,CAAAgU,SAAA,CAAC/D,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1BgE,QAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAS,CAAA2I,SAAA,CAACsH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BkE,QAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAkB,CAAA4I,kBAAA,CAACqH,MAAM,CAAA;AAAA,SAAA,CAAA;AACvCmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAqB,CAAA6I,qBAAA,CAACoH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CoE,QAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAc,CAAAqU,cAAA,CAACpE,MAAM,CAAA;AAAA,SAAA,CAAA;AACrCqE,QAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAkB,CAAAsU,kBAAA,CAACrE,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CsE,QAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAgB,CAAAuU,gBAAA,CAACtE,MAAM,CAAA;AAAA,SAAA,CAAA;AACzC7D,QAAAA,aAAa,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAoM,aAAA,CAAC6D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC5D,QAAAA,aAAa,EAAA2D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAa,CAAAqM,aAAA,CAAC4D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC3D,QAAAA,eAAe,EAAA0D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAEjQ,QAAe,CAAAsM,eAAA,CAAC2D,MAAM,CAAA;AAAA,SAAA,CAAA;QACvCrJ,WAAW,EAAE3I,KAAa,CAAAwsB,aAAA;QAC1BjW,mBAAmB,EAAExU,QAAmB,CAAAwU,mBAAA;QACxCvU,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;QAClBvB,EAAE,EAAEqB,IAAE,CAAArB;unBAGDsB,QAAc,CAAAm8B,cAAA,CAAC/7B,SAAS,CAACogC,WAAW,CAAA,IAD9CngC,SAAA,EAAA,EAAAiP,kBAAA,CAKQ,SALR7O,UAKQ,CAAA;;AAHH,QAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,uBAAA,CAAA;AACTvQ,QAAAA,KAAK,EAAoB;AAAA03B,UAAAA,MAAA,UAAAj2B,MAAA,CAAA6B,SAAS,CAACogC,WAAW,CAAChM,MAAM,EAAA,KAAA,CAAA,CAAAj2B,MAAA,CAAM6B,SAAS,CAAC5I,IAAI,CAACkN,MAAK,GAAItE,SAAS,CAACwgC,QAAQ,EAAA,KAAA;AAAA;SAC9F7gC,IAAG,CAAAzB,GAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAEfilB,WAAuF,CAAAsd,wBAAA,EAAA;QAAvE5nB,WAAW,EAAEjZ,QAAiB,CAAA68B,iBAAA;QAAG7rB,OAAO,EAAE5Q,SAAS,CAAC4Q,OAAO;QAAGtS,EAAE,EAAEqB,IAAE,CAAArB;;;;6FAM1FsB,QAAe,CAAAm9B,eAAA,iBADzBx9B,WA0Da,CAAAi/B,sBAAA,EAAA;;IAxDRpnC,IAAI,EAAEyG,KAAM,CAAA8rB,MAAA;IACZryB,KAAK,EAAEuG,KAAO,CAAA6rB,OAAA;IACdnyB,YAAY,EAAEqI,QAAkB,CAAAi9B,kBAAA;IAChC/kC,YAAY,EAAE6H,IAAY,CAAA7H,YAAA;IAC1B2mC,QAAQ,EAAE9+B,IAAiB,CAAA/H,iBAAA;IAC3BG,kBAAkB,EAAE4H,IAAkB,CAAA5H,kBAAA;IACtCC,yBAAyB,EAAE2H,IAAyB,CAAA3H,yBAAA;AACpD,IAAA,OAAA,iBAAO2H,IAAE,CAAAsN,EAAA,CAAA,aAAA,EAAA;AAAA+R,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AACTkN,IAAAA,MAAI,EAAAtc,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjQ,QAAM,CAAAssB,MAAA,CAACrc,MAAM,CAAA;AAAA,KAAA,CAAA;IACnB6uB,UAAU,EAAE/+B,IAAmB,CAAAhI,mBAAA;IAC/BkI,QAAQ,EAAEF,IAAQ,CAAAE,QAAA;AAClB,IAAA,eAAa,EAAE,IAAI;AACnBvB,IAAAA,EAAE,EAAEqB,IAAG,CAAAzB,GAAA,CAAA,aAAA;;;MAEQyB,IAAA,CAAAy+B,MAAM,CAACO,kBAAkB;UAAG,WAAS;AACjDC,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADmDC,SAAS,EAAA;MAAA,OAAA,CAC5Dm+B,UAeO,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,oBAAA,EAAA;QAbF9mC,KAAK,EAAE0I,SAAS,CAAC1I,KAAK;QACtBunC,IAAI,EAAE7+B,SAAS,CAAC6+B,IAAI;QACpBznC,IAAI,EAAE4I,SAAS,CAAC5I,IAAI;QACpBm1B,IAAI,EAAEvsB,SAAS,CAACusB,IAAI;QACpBD,SAAS,EAAEtsB,SAAS,CAACssB,SAAS;QAC9BwS,SAAS,EAAE9+B,SAAS,CAAC8+B,SAAS;QAC9BvnC,YAAY,EAAEyI,SAAS,CAACzI,YAAY;QACpCwnC,iBAAiB,EAAE/+B,SAAS,CAAC++B,iBAAiB;QAC9CC,gBAAgB,EAAEh/B,SAAS,CAACg/B,gBAAgB;QAC5CC,gBAAgB,EAAEj/B,SAAS,CAACi/B,gBAAgB;QAC5CC,gBAAgB,EAAEl/B,SAAS,CAACk/B,gBAAgB;QAC5CC,iBAAiB,EAAEn/B,SAAS,CAACm/B,iBAAiB;QAC9CC,kBAAkB,EAAEp/B,SAAS,CAACo/B;;;;iBAGvBz/B,IAAA,CAAAy+B,MAAM,CAACiB,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlClB,UAAkC,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,gBAAA,CAAA;;;iBAEtBz+B,IAAA,CAAAy+B,MAAM,CAACkB,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCnB,UAAgC,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,cAAA,CAAA;;;iBAEpBz+B,IAAA,CAAAy+B,MAAM,CAACmB,0BAA0B;UAAG,mBAAiB;AACjEX,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5Em+B,UAAuE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAEnDL,IAAA,CAAAy+B,MAAM,CAACoB,yBAAyB;UAAG,kBAAgB;AAC/DZ,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACqB,yBAAyB;UAAG,kBAAgB;AAC/Db,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACsB,yBAAyB;UAAG,kBAAgB;AAC/Dd,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Em+B,UAAsE,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAElDL,IAAA,CAAAy+B,MAAM,CAACuB,+BAA+B;UAAG,wBAAsB;AAC3Ef,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFm+B,UAA4E,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;iBAExDL,IAAA,CAAAy+B,MAAM,CAACwB,gCAAgC;UAAG,yBAAuB;AAC7EhB,IAAAA,EAAA,EAAA7+B,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFm+B,UAA6E,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAKj+B,EAAAA,cAAA,CAAEH,SAAS,CAAM,OAAA,CAAA;;;;qNAGlEL,IAAA,CAAAy+B,MAAM,CAACxlB,MAAM,IAAxB3Y,SAAA,EAAA,EAAAiP,kBAAA,CAEK,OAFL7O,UAEK,CAAA;;AAFsB,IAAA,OAAA,EAAOV,IAAE,CAAAsN,EAAA,CAAA,QAAA;KAAoBtN,IAAG,CAAAzB,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDigC,UAA0B,CAAAx+B,IAAA,CAAAy+B,MAAA,EAAA,QAAA,CAAA,wCAE9BtoB,kBAAA,CAA8H,OAA9HzV,UAA8H,CAAA;AAAzHyX,IAAAA,GAAG,EAAC,cAAe;AAAC,IAAA,OAAA,EAAOnY,IAAE,CAAAsN,EAAA,CAAA,uBAAA,CAAA;AAA2BvQ,IAAAA,KAAsB,EAAtB;AAAsB,MAAA,SAAA,EAAA;AAAA;KAAQiD,IAAG,CAAAzB,GAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAClFyB,IAAkB,CAAA9F,kBAAA,IAA9BoG,SAAA,EAAA,EAAAiP,kBAAA,CAEM,QAFN7O,UAEM,CAAA;;AAF0ByX,IAAAA,GAAG,EAAC,oBAAqB;AAAC,IAAA,OAAA,EAAOnY,IAAE,CAAAsN,EAAA,CAAA,uBAAA,CAAA;AAA2BvQ,IAAAA,KAA0C,EAA1C;AAA0C,MAAA,UAAA,EAAA,UAAA;AAAA,MAAA,SAAA,EAAA;AAAA;KAAQiD,IAAG,CAAAzB,GAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,EAC/I+B,SAAA,EAAA,EAAAV,WAAA,CAAuGW,wBAAvFP,IAAM,CAAAy+B,MAAA,CAACsC,yBAA0B,IAAG/gC,IAAA,CAAAy+B,MAAM,CAACuC,sBAAuB,IAAA,eAAA,CAAA,CAAA,yCAE1EhhC,IAAkB,CAAA9F,kBAAA,IAA9BoG,SAAA,EAAA,EAAAiP,kBAAA,CAEM,QAFN7O,UAEM,CAAA;;AAF0ByX,IAAAA,GAAG,EAAC,sBAAuB;AAAC,IAAA,OAAA,EAAOnY,IAAE,CAAAsN,EAAA,CAAA,yBAAA,CAAA;AAA6BvQ,IAAAA,KAA0C,EAA1C;AAA0C,MAAA,UAAA,EAAA,UAAA;AAAA,MAAA,SAAA,EAAA;AAAA;KAAQiD,IAAG,CAAAzB,GAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,EACnJ+B,SAAA,EAAA,EAAAV,WAAA,CAAyGW,wBAAzFP,IAAM,CAAAy+B,MAAA,CAACwC,2BAA0B,IAAKjhC,IAAA,CAAAy+B,MAAM,CAACyC,wBAAyB,IAAA,aAAA,CAAA,CAAA;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/datatable/BaseDataTable.vue","../../src/datatable/RowCheckbox.vue","../../src/datatable/RowCheckbox.vue?vue&type=template&id=737048ec&lang.js","../../src/datatable/RowRadioButton.vue","../../src/datatable/RowRadioButton.vue?vue&type=template&id=4c71d642&lang.js","../../src/datatable/BodyCell.vue","../../src/datatable/BodyCell.vue?vue&type=template&id=d2402954&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=fb011038&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=c76f1efc&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=dcaeafd8&lang.js","../../src/datatable/TableFooter.vue","../../src/datatable/TableFooter.vue?vue&type=template&id=2895da87&lang.js","../../src/datatable/ColumnFilter.vue","../../src/datatable/ColumnFilter.vue?vue&type=template&id=644bbc1f&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=2d543024&lang.js","../../src/datatable/FilterHeaderCell.vue","../../src/datatable/FilterHeaderCell.vue?vue&type=template&id=1923dfa4&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=11cfc911&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=13736116&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=314caba6&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\n\nexport default {\n name: 'BaseDataTable',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n rows: {\n type: Number,\n default: 0\n },\n first: {\n type: Number,\n default: 0\n },\n totalRecords: {\n type: Number,\n default: 0\n },\n paginator: {\n type: Boolean,\n default: false\n },\n paginatorPosition: {\n type: String,\n default: 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n default: true\n },\n paginatorTemplate: {\n type: [Object, String],\n default: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n default: 5\n },\n rowsPerPageOptions: {\n type: Array,\n default: null\n },\n currentPageReportTemplate: {\n type: String,\n default: '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n defaultSortOrder: {\n type: Number,\n default: 1\n },\n nullSortOrder: {\n type: Number,\n default: 1\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n removableSort: {\n type: Boolean,\n default: false\n },\n filters: {\n type: Object,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n globalFilterFields: {\n type: Array,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n selectAll: {\n type: Boolean,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n csvSeparator: {\n type: String,\n default: ','\n },\n exportFilename: {\n type: String,\n default: 'download'\n },\n exportFunction: {\n type: Function,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: undefined\n },\n collapsedRowIcon: {\n type: String,\n default: undefined\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n stateStorage: {\n type: String,\n default: 'session'\n },\n stateKey: {\n type: String,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n editingRows: {\n type: Array,\n default: null\n },\n rowClass: {\n type: Function,\n default: null\n },\n rowStyle: {\n type: Function,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n scrollHeight: {\n type: String,\n default: null\n },\n frozenValue: {\n type: Array,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n showHeaders: {\n type: Boolean,\n default: true\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n stripedRows: {\n type: Boolean,\n default: false\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n tableStyle: {\n type: null,\n default: null\n },\n tableClass: {\n type: [String, Object],\n default: null\n },\n tableProps: {\n type: Object,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: Object,\n default() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n default() {\n return {\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n };\n }\n }\n },\n style: DataTableStyle,\n provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox.icon')\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox.icon')\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click.stop=\"toggleRow\"\n data-p-selected=\"selected\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n editCompleteTimeout: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n this.selfClick = this.$el && this.$el.contains(e.target);\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click.stop=\"toggleRow\"\n data-p-selected=\"selected\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n editCompleteTimeout: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n this.selfClick = this.$el && this.$el.contains(e.target);\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n if (this.d_rowExpanded) groupRowSpan++;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n if (this.d_rowExpanded) groupRowSpan++;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" :data-p=\"dataP\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n dataP() {\n return cn({\n hoverable: this.rowHover || this.selectionMode,\n frozen: this.frozenRow\n });\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" :data-p=\"dataP\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n dataP() {\n return cn({\n hoverable: this.rowHover || this.selectionMode,\n frozen: this.frozenRow\n });\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <tfoot\n v-if=\"hasFooter\"\n :class=\"cx('tfoot')\"\n :style=\"sx('tfoot')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"tfoot\"\n >\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n }\n\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <tfoot\n v-if=\"hasFooter\"\n :class=\"cx('tfoot')\"\n :style=\"sx('tfoot')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"tfoot\"\n >\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n }\n\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || (hasFilter() ? 'FilterFillIcon' : 'FilterIcon')\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraint: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraint: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.$id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterFillIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || (hasFilter() ? 'FilterFillIcon' : 'FilterIcon')\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraint: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraint: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.$id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterFillIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <!--<template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>-->\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <!--<template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>-->\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n if (!this.column) return null;\n\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n if (!this.column) return null;\n\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <thead\n :class=\"cx('thead')\"\n :style=\"sx('thead')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"thead\"\n >\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTFilterHeaderCell: FilterHeaderCell\n }\n};\n</script>\n","<template>\n <thead\n :class=\"cx('thead')\"\n :style=\"sx('thead')\"\n role=\"rowgroup\"\n v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\"\n :data-p-scrollable=\"$parentInstance?.$parentInstance?.scrollable\"\n data-pc-section=\"thead\"\n >\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTFilterHeaderCell: FilterHeaderCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-top=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" :data-p=\"dataP\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-bottom=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns.get(),\n $columnGroups: this.d_columnGroups.get()\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$emit('value-change', filteredValue);\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n if (targetRow) targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && rows[rowIndex] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.d_first;\n rangeEnd -= this.d_first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n generateCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n return csv;\n },\n exportCSV(options, data) {\n const csv = this.generateCSV(options, data);\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n\n if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n };\n\n document.addEventListener('mousemove', this.documentColumnResizeListener);\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n };\n\n document.addEventListener('mouseup', this.documentColumnResizeEndListener);\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n // Functions can't be serialized, so don't attempt to save them\n if (typeof this.d_sortField !== 'function') state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n let parsedState;\n try {\n parsedState = JSON.parse(stateString, reviver);\n } catch (error) {}\n if (!parsedState || typeof parsedState !== 'object') {\n storage.removeItem(this.stateKey);\n return;\n }\n\n const restoredState = {};\n\n if (this.paginator) {\n if (typeof parsedState.first === 'number') {\n this.d_first = parsedState.first;\n this.$emit('update:first', this.d_first);\n restoredState.first = this.d_first;\n }\n if (typeof parsedState.rows === 'number') {\n this.d_rows = parsedState.rows;\n this.$emit('update:rows', this.d_rows);\n restoredState.rows = this.d_rows;\n }\n }\n\n if (typeof parsedState.sortField === 'string') {\n this.d_sortField = parsedState.sortField;\n this.$emit('update:sortField', this.d_sortField);\n restoredState.sortField = this.d_sortField;\n }\n\n if (typeof parsedState.sortOrder === 'number') {\n this.d_sortOrder = parsedState.sortOrder;\n this.$emit('update:sortOrder', this.d_sortOrder);\n restoredState.sortOrder = this.d_sortOrder;\n }\n\n if (Array.isArray(parsedState.multiSortMeta)) {\n this.d_multiSortMeta = parsedState.multiSortMeta;\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n restoredState.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters && typeof parsedState.filters === 'object' && parsedState.filters !== null) {\n this.d_filters = this.cloneFilters(parsedState.filters);\n this.$emit('update:filters', this.d_filters);\n restoredState.filters = this.d_filters;\n }\n\n if (this.resizableColumns) {\n if (typeof parsedState.columnWidths === 'string') {\n this.columnWidthsState = parsedState.columnWidths;\n restoredState.columnWidths = this.columnWidthsState;\n }\n if (typeof parsedState.tableWidth === 'string') {\n this.tableWidthState = parsedState.tableWidth;\n restoredState.tableWidth = this.tableWidthState;\n }\n }\n\n if (this.reorderableColumns && Array.isArray(parsedState.columnOrder)) {\n this.d_columnOrder = parsedState.columnOrder;\n restoredState.columnOrder = this.d_columnOrder;\n }\n\n if (typeof parsedState.expandedRows === 'object' && parsedState.expandedRows !== null) {\n this.$emit('update:expandedRows', parsedState.expandedRows);\n restoredState.expandedRows = parsedState.expandedRows;\n }\n\n if (Array.isArray(parsedState.expandedRowGroups)) {\n this.$emit('update:expandedRowGroups', parsedState.expandedRowGroups);\n restoredState.expandedRowGroups = parsedState.expandedRowGroups;\n }\n\n if (typeof parsedState.selection === 'object' && parsedState.selection !== null) {\n if (typeof parsedState.selectionKeys === 'object' && parsedState.selectionKeys !== null) {\n this.d_selectionKeys = parsedState.selectionKeys;\n restoredState.selectionKeys = this.d_selectionKeys;\n }\n this.$emit('update:selection', parsedState.selection);\n restoredState.selection = parsedState.selection;\n }\n\n this.$emit('state-restore', restoredState);\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters(filters) {\n let cloned = {};\n\n if (filters) {\n Object.entries(filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (cols && this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n\n return data;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex'\n });\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-top=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" :data-p=\"dataP\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :rowHover=\"rowHover\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :data-p-bottom=\"true\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </DTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns.get(),\n $columnGroups: this.d_columnGroups.get()\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$emit('value-change', filteredValue);\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n if (targetRow) targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && rows[rowIndex] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.d_first;\n rangeEnd -= this.d_first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n generateCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n return csv;\n },\n exportCSV(options, data) {\n const csv = this.generateCSV(options, data);\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n\n if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n };\n\n document.addEventListener('mousemove', this.documentColumnResizeListener);\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n };\n\n document.addEventListener('mouseup', this.documentColumnResizeEndListener);\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n // Functions can't be serialized, so don't attempt to save them\n if (typeof this.d_sortField !== 'function') state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n let parsedState;\n try {\n parsedState = JSON.parse(stateString, reviver);\n } catch (error) {}\n if (!parsedState || typeof parsedState !== 'object') {\n storage.removeItem(this.stateKey);\n return;\n }\n\n const restoredState = {};\n\n if (this.paginator) {\n if (typeof parsedState.first === 'number') {\n this.d_first = parsedState.first;\n this.$emit('update:first', this.d_first);\n restoredState.first = this.d_first;\n }\n if (typeof parsedState.rows === 'number') {\n this.d_rows = parsedState.rows;\n this.$emit('update:rows', this.d_rows);\n restoredState.rows = this.d_rows;\n }\n }\n\n if (typeof parsedState.sortField === 'string') {\n this.d_sortField = parsedState.sortField;\n this.$emit('update:sortField', this.d_sortField);\n restoredState.sortField = this.d_sortField;\n }\n\n if (typeof parsedState.sortOrder === 'number') {\n this.d_sortOrder = parsedState.sortOrder;\n this.$emit('update:sortOrder', this.d_sortOrder);\n restoredState.sortOrder = this.d_sortOrder;\n }\n\n if (Array.isArray(parsedState.multiSortMeta)) {\n this.d_multiSortMeta = parsedState.multiSortMeta;\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n restoredState.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters && typeof parsedState.filters === 'object' && parsedState.filters !== null) {\n this.d_filters = this.cloneFilters(parsedState.filters);\n this.$emit('update:filters', this.d_filters);\n restoredState.filters = this.d_filters;\n }\n\n if (this.resizableColumns) {\n if (typeof parsedState.columnWidths === 'string') {\n this.columnWidthsState = parsedState.columnWidths;\n restoredState.columnWidths = this.columnWidthsState;\n }\n if (typeof parsedState.tableWidth === 'string') {\n this.tableWidthState = parsedState.tableWidth;\n restoredState.tableWidth = this.tableWidthState;\n }\n }\n\n if (this.reorderableColumns && Array.isArray(parsedState.columnOrder)) {\n this.d_columnOrder = parsedState.columnOrder;\n restoredState.columnOrder = this.d_columnOrder;\n }\n\n if (typeof parsedState.expandedRows === 'object' && parsedState.expandedRows !== null) {\n this.$emit('update:expandedRows', parsedState.expandedRows);\n restoredState.expandedRows = parsedState.expandedRows;\n }\n\n if (Array.isArray(parsedState.expandedRowGroups)) {\n this.$emit('update:expandedRowGroups', parsedState.expandedRowGroups);\n restoredState.expandedRowGroups = parsedState.expandedRowGroups;\n }\n\n if (typeof parsedState.selection === 'object' && parsedState.selection !== null) {\n if (typeof parsedState.selectionKeys === 'object' && parsedState.selectionKeys !== null) {\n this.d_selectionKeys = parsedState.selectionKeys;\n restoredState.selectionKeys = this.d_selectionKeys;\n }\n this.$emit('update:selection', parsedState.selection);\n restoredState.selection = parsedState.selection;\n }\n\n this.$emit('state-restore', restoredState);\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters(filters) {\n let cloned = {};\n\n if (filters) {\n Object.entries(filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (cols && this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n\n return data;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex'\n });\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","dataKey","String","Function","rows","Number","first","totalRecords","paginator","Boolean","paginatorPosition","alwaysShowPaginator","paginatorTemplate","Object","pageLinkSize","rowsPerPageOptions","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","sortField","sortOrder","defaultSortOrder","nullSortOrder","multiSortMeta","sortMode","removableSort","filters","filterDisplay","globalFilterFields","filterLocale","selection","selectionMode","compareSelectionBy","metaKeySelection","contextMenu","contextMenuSelection","selectAll","rowHover","csvSeparator","exportFilename","exportFunction","resizableColumns","columnResizeMode","reorderableColumns","expandedRows","expandedRowIcon","collapsedRowIcon","rowGroupMode","groupRowsBy","expandableRowGroups","expandedRowGroups","stateStorage","stateKey","editMode","editingRows","rowClass","rowStyle","scrollable","virtualScrollerOptions","scrollHeight","frozenValue","breakpoint","showHeaders","showGridlines","stripedRows","highlightOnSelect","size","tableStyle","tableClass","tableProps","filterInputProps","filterButtonProps","default","filter","severity","text","rounded","inline","clear","popover","addRule","removeRule","apply","outlined","editButtonProps","init","save","cancel","style","DataTableStyle","provide","$pcDataTable","$parentInstance","hostName","emits","checked","column","rowCheckboxIconTemplate","index","methods","getColumnPT","key","columnMetaData","parent","instance","$props","state","$data","context","disabled","$attrs","mergeProps","ptm","concat","ptmo","getColumnProp","pt","onChange","event","$emit","originalEvent","data","computed","checkboxAriaLabel","$primevue","config","locale","aria","selectRow","unselectRow","components","CheckIcon","Checkbox","_createBlock","_component_Checkbox","modelValue","binary","_ctx","$options","unstyled","icon","_withCtx","slotProps","_openBlock","_resolveDynamicComponent","_normalizeClass","_component_CheckIcon","_mergeProps","RadioButton","_component_RadioButton","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","enumerable","configurable","writable","_invoke","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","_next","_throw","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","editCompleteTimeout","d_editing","styleObject","watch","newValue","$dataD_editing","field","mounted","columnProp","updateStickyPosition","updated","_this","setTimeout","focusableEl","getFirstFocusableElement","$el","focus","beforeUnmount","OverlayEventBus","off","prop","getVNodeProp","_this$$parentInstance","_this$$parentInstance2","resolveFieldData","toggleRow","toggleRowWithRadio","toggleRowWithCheckbox","isEditable","children","editor","bindDocumentEditListener","_this2","contains","target","clearTimeout","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","_this4","_callee","currentCell","targetCell","_context","findCell","findPreviousEditableColumn","$nextTick","invokeElementMethod","_this5","_callee2","_context2","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","pos","next","getNextElementSibling","getOuterWidth","parseFloat","insetInlineEnd","prev","getPreviousElementSibling","insetInlineStart","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","cellEven","cellOdd","expandButtonAriaLabel","expandRow","collapseRow","initButtonAriaLabel","editRow","saveButtonAriaLabel","saveEdit","cancelButtonAriaLabel","cancelEdit","DTRadioButton","RowRadioButton","DTCheckbox","RowCheckbox","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","directives","ripple","Ripple","_createElementBlock","role","_objectSpread","colspan","rowspan","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtoggleicon","rowExpanded","rowtogglericon","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","data1","data2","onRowGroupToggle","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","onRowToggle","expanded","onRadioChange","onCheckboxChange","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","options","getItemOptions","rowStyles","_this$rowStyle","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","push","_iterator","_createForOfIteratorHelper","_step","s","_selectionMode","isNotEmpty","err","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","forEach","DTBodyCell","BodyCell","_createElementVNode","tabindex","onDblclick","onContextmenu","onTouchend","onMousedown","onDragstart","onDragover","onDragleave","onDragend","onDrop","_renderList","_component_DTBodyCell","id","rowGroupHeaderStyleObject","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","getRowKey","top","getOuterHeight","tableHeaderHeight","bodyRef","el","contentRef","bodyContentStyle","ptmTBodyOptions","dataP","cn","hoverable","frozen","DTBodyRow","BodyRow","ref","_component_DTBodyRow","$id","$attrSelector","onRowgroupToggle","onRowDblclick","onRowRightclick","onRowTouchend","onRowKeydown","onRowMousedown","onRowDragstart","onRowDragover","onRowDragleave","onRowDragend","footer","columnGroup","$rows","d_footerRows","$columns","d_footerColumns","HelperSet","getColumnGroupPT","columnGroupMetaData","getColumnGroupProps","ptmTFootOptions","getRowPT","row","rowMetaData","getRowProp","getFooterRows","_this$d_footerRows","get","getFooterColumns","_this$d_footerColumns","hasFooter","DTFooterCell","FooterCell","sx","_ctx$$parentInstance","_component_DTFooterCell","ref_for","j","display","showMenu","matchMode","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filtersStore","filterMenuClass","filterMenuStyle","overlayVisible","defaultMatchMode","defaultOperator","overlay","ZIndex","onOverlayHide","fieldFilters","operator","constraints","params","ptmFilterConstraintOptions","highlighted","isRowMatchModeSelected","clearFilter","_filters","splice","hide","applyFilter","hasFilter","fieldFilter","isFilterBlank","hasRowFilter","trim","toggleMenu","onToggleButtonKeyDown","onRowMatchModeChange","onRowMatchModeKeyDown","item","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onOperatorChange","onMenuMatchModeChange","addConstraint","newConstraint","constraint","removeConstraint","removedConstraint","filterCallback","showMenuButton","$refs","onContentClick","emit","onContentMouseDown","onOverlayEnter","addStyle","set","zIndex","position","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","resizeListener","isTouchDevice","window","overlayId","matchModes","filterMatchModeOptions","map","label","isShowMatchModes","operatorOptions","matchAll","FilterOperator","AND","matchAny","OR","noFilterLabel","noFilter","isShowOperator","fieldConstraints","showRemoveIcon","removeRuleButtonLabel","addRuleButtonLabel","isShowAddConstraint","clearButtonLabel","applyButtonLabel","columnFilterButtonAriaLabel","showFilterMenu","hideFilterMenu","filterOperatorAriaLabel","filterOperator","filterRuleAriaLabel","filterConstraint","ptmHeaderFilterClearParams","hidden","ptmFilterMenuParams","active","Select","Portal","FilterSlashIcon","FilterFillIcon","FilterIcon","TrashIcon","PlusIcon","focustrap","FocusTrap","filterModel","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_toDisplayString","onRowClearItemClick","_component_Select","optionLabel","optionValue","fieldConstraint","onUpdateModelValue","iconProps","iconPos","headerCheckboxIconTemplate","headerCheckboxAriaLabel","unselectAll","allRowsSelected","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","_component_DTHeaderCheckbox","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","groupRowSortField","filterColumn","sortable","sorted","isColumnSorted","resizable","currentTarget","nodeName","onMouseDown","onDragStart","onDragOver","onDragLeave","onResizeStart","getMultiSortMetaIndex","meta","getBadgeValue","isMultiSorted","filterRow","getIndex","onHeaderCheckboxChange","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","Badge","header","sorticon","_component_Badge","headercheckboxicon","d_headerRows","d_headerColumns","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","DTFilterHeaderCell","FilterHeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","_component_DTFilterHeaderCell","BaseDataTable","inheritAttrs","d_columns","$columnGroups","d_columnGroups","d_first","d_rows","d_sortField","d_sortOrder","d_nullSortOrder","d_multiSortMeta","_toConsumableArray","d_groupRowsSortMeta","d_selectionKeys","d_columnOrder","d_editingRowKeys","d_editingMeta","d_filters","cloneFilters","rowTouched","anchorRowIndex","rangeRowIndex","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","columnResizing","colReorderIconWidth","colReorderIconHeight","draggedColumn","draggedColumnElement","draggedRowIndex","droppedRowIndex","rowDragging","columnWidthsState","tableWidthState","columnWidthsRestored","updateSelectionKeys","updateEditingRowKeys","isStateful","restoreState","restoreColumnWidths","unbindColumnResizeEvents","destroyStyleElement","saveState","onPage","clearEditingMetaData","pageEvent","createLazyLoadEvent","pageCount","page","processedData","onColumnHeaderClick","targetNode","columnField","closest","isClickable","clearSelection","resetPage","metaKey","ctrlKey","addMultiSortField","sortSingle","sortMultiple","resolvedFieldData","Map","comparer","localeComparator","sort","value1","value2","firstSortMeta","multisortField","getActiveFilters","removeEmptyFilters","_ref","_ref2","_slicedToArray","filteredConstraints","filterValidEntries","entry","entries","fromEntries","activeFilters","globalFilterFieldsArray","filteredValue","localMatch","globalMatch","localFiltered","hasOwnProperty","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","keys","filterEvent","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","focusedItem","findSingle","isMultipleSelectionMode","selectRange","metaSelection","isSingleSelectionMode","selectionIndex","_selection","val","_event$target","_event$currentTarget","targetRow","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","onTabKey","dataToRender","isCopyShortcut","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","slice","lastRow","findLastSelectableRow","firstSelectedRowIndex","lastSelectedRowIndex","findIndexInList","Math","min","max","find","firstSelectedRow","table","firstFocusableRow","currentFocusedRow","toggleRowsWithCheckbox","_iterator3","_step3","_iterator4","_step4","rangeStart","rangeEnd","rangeRowData","generateCSV","_this6","csv","selectionOnly","headerInitiated","record","rowInitiated","cellData","replace","footerInitiated","exportCSV","onColumnResizeStart","containerLeft","getOffset","left","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","resizeHelper","height","offsetHeight","onColumnResizeEnd","delta","isRTL","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","updateTableWidth","width","virtualScrollerDisabled","frozenBody","frozenBodyRef","resizeColumn","colIndex","widths","headers","createStyleElement","innerHTML","selector","colWidth","styleElement","_this7","onColumnHeaderMouseDown","draggable","onColumnHeaderDragStart","getHiddenElementOuterWidth","reorderIndicatorUp","getHiddenElementOuterHeight","findParentHeader","dataTransfer","setData","onColumnHeaderDragOver","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","ceil","dropPosition","onColumnHeaderDragLeave","onColumnHeaderDrop","_this8","dragIndex","dropIndex","allowDrop","isSameColumn","col1","col2","dragColIndex","child","dropColIndex","movedItem","_","remainingItems","reorderedWidths","addColumnWidthStyles","reorderArray","updateReorderableColumns","findColumnByKey","rowElement","rowY","pageY","rowMidY","prevRowElement","removeClass","addClass","_this9","rest","_objectWithoutProperties","_excluded","toggleRowGroup","_expandedRowGroups","group","getStorage","localStorage","sessionStorage","Error","storage","hasFilters","saveColumnWidths","columnOrder","setItem","JSON","stringify","stateString","getItem","dateFormat","reviver","test","Date","parsedState","parse","error","_typeof","removeItem","restoredState","columnWidths","join","split","_editingRows","fields","hasGlobalFilter","cloned","_ref3","_ref4","_this0","_this$$primevue","createElement","csp","nonce","head","appendChild","removeChild","_data","getVirtualScrollerRef","virtualScroller","hasSpacerStyle","cols","orderedColumns","_iterator5","_step5","columnKey","columnGroups","headerColumnGroup","_this$columnGroups","_this1","footerColumnGroup","_this$columnGroups2","_this10","constructor","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this11","every","headerFilterButtonProps","rowEditButtonProps","isEmpty","DTPaginator","Paginator","DTTableHeader","TableHeader","DTTableBody","TableBody","DTTableFooter","TableFooter","DTVirtualScroller","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon","ptmi","_renderSlot","$slots","loadingicon","_component_SpinnerIcon","spin","_component_DTPaginator","template","alwaysShow","paginatorcontainer","fn","last","pageLinks","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","changePageCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","maxHeight","_component_DTVirtualScroller","items","loaderDisabled","autoSize","showSpacer","content","spacerStyle","_component_DTTableHeader","_component_DTTableBody","styleClass","itemSize","_component_DTTableFooter","rowreorderindicatorupicon","reorderindicatorupicon","rowreorderindicatordownicon","reorderindicatordownicon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,eAAe;AACrB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDC,IAAAA,IAAI,EAAE;AACFL,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDC,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDE,IAAAA,YAAY,EAAE;AACVR,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDG,IAAAA,SAAS,EAAE;AACPT,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDC,IAAAA,iBAAiB,EAAE;AACfX,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDS,IAAAA,mBAAmB,EAAE;AACjBZ,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDG,IAAAA,iBAAiB,EAAE;AACfb,MAAAA,IAAI,EAAE,CAACc,MAAM,EAAEX,MAAM,CAAC;MACtB,SAAA,EAAS;KACZ;AACDY,IAAAA,YAAY,EAAE;AACVf,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDU,IAAAA,kBAAkB,EAAE;AAChBhB,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDgB,IAAAA,yBAAyB,EAAE;AACvBjB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDe,IAAAA,IAAI,EAAE;AACFlB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDS,IAAAA,OAAO,EAAE;AACLnB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDU,IAAAA,WAAW,EAAE;AACTpB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAASkB;KACZ;AACDC,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDkB,IAAAA,gBAAgB,EAAE;AACdxB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDmB,IAAAA,aAAa,EAAE;AACXzB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACD0B,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDyB,IAAAA,aAAa,EAAE;AACX5B,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDmB,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgB,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4B,IAAAA,kBAAkB,EAAE;AAChB/B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACD+B,IAAAA,YAAY,EAAE;AACVhC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAASkB;KACZ;AACDY,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDiC,IAAAA,gBAAgB,EAAE;AACdpC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2B,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDyB,IAAAA,SAAS,EAAE;AACPvC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD8B,IAAAA,QAAQ,EAAE;AACNxC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD+B,IAAAA,YAAY,EAAE;AACVzC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuC,IAAAA,cAAc,EAAE;AACZ1C,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDwC,IAAAA,cAAc,EAAE;AACZ3C,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDwC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDmC,IAAAA,gBAAgB,EAAE;AACd7C,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD2C,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDqC,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACDkC,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAASkB;KACZ;AACD4B,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAASkB;KACZ;AACD6B,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDqD,IAAAA,YAAY,EAAE;AACVtD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoD,IAAAA,QAAQ,EAAE;AACNvD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDyD,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDuD,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDwD,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDmD,IAAAA,sBAAsB,EAAE;AACpB7D,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,YAAY,EAAE;AACV9D,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4D,IAAAA,WAAW,EAAE;AACT/D,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACD+D,IAAAA,UAAU,EAAE;AACRhE,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8D,IAAAA,WAAW,EAAE;AACTjE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDwD,IAAAA,aAAa,EAAE;AACXlE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDyD,IAAAA,WAAW,EAAE;AACTnE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD0D,IAAAA,iBAAiB,EAAE;AACfpE,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2D,IAAAA,IAAI,EAAE;AACFrE,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDmE,IAAAA,UAAU,EAAE;AACRtE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDuE,IAAAA,UAAU,EAAE;AACRvE,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEW,MAAM,CAAC;MACtB,SAAA,EAAS;KACZ;AACD0D,IAAAA,UAAU,EAAE;AACRxE,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD2D,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAEc,MAAM;MAAA,SAAA,EAAA,SACZ6D,QAAOA,GAAG;QACN,OAAO;AACHC,UAAAA,MAAM,EAAE;AAAEC,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC5DC,UAAAA,MAAM,EAAE;AACJC,YAAAA,KAAK,EAAE;AAAEJ,cAAAA,QAAQ,EAAE,WAAW;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAEC,cAAAA,OAAO,EAAE;AAAK;WAC7D;AACDG,UAAAA,OAAO,EAAE;AACLC,YAAAA,OAAO,EAAE;AAAEN,cAAAA,QAAQ,EAAE,MAAM;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAET,cAAAA,IAAI,EAAE;aAAS;AACxDe,YAAAA,UAAU,EAAE;AAAEP,cAAAA,QAAQ,EAAE,QAAQ;AAAEC,cAAAA,IAAI,EAAE,IAAI;AAAET,cAAAA,IAAI,EAAE;aAAS;AAC7DgB,YAAAA,KAAK,EAAE;AAAEhB,cAAAA,IAAI,EAAE;aAAS;AACxBY,YAAAA,KAAK,EAAE;AAAEK,cAAAA,QAAQ,EAAE,IAAI;AAAEjB,cAAAA,IAAI,EAAE;AAAQ;AAC3C;SACH;AACL;KACH;AACDkB,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MAAA,SAAA,EAAA,SACZ6D,QAAOA,GAAG;QACN,OAAO;AACHa,UAAAA,IAAI,EAAE;AAAEX,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC1DU,UAAAA,IAAI,EAAE;AAAEZ,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;WAAM;AAC1DW,UAAAA,MAAM,EAAE;AAAEb,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;AAAK;SAC9D;AACL;AACJ;GACH;AACDY,EAAAA,KAAK,EAAEC,cAAc;EACrBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,eAAe,EAAE;KACpB;AACL;AACJ,CAAC;;ACxSD,eAAe;AACXnG,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,IAAI;AACXmG,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,uBAAuB,EAAE;AACrBpG,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDiG,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;AACb;GACH;AACDgG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;UACjBH,OAAO,EAAE,IAAI,CAACA,OAAO;AACrBc,UAAAA,QAAQ,EAAE,IAAI,CAACC,MAAM,CAACD;AAC1B;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAAC,IAAI,CAACR,MAAM,CAACD,QAAQ,EAAE;AACvB,QAAA,IAAI,CAACU,KAAK,CAAC,QAAQ,EAAE;AACjBC,UAAAA,aAAa,EAAEF,KAAK;UACpBG,IAAI,EAAE,IAAI,CAAC7H;AACf,SAAC,CAAC;AACN;AACJ;GACH;AACD8H,EAAAA,QAAQ,EAAE;IACNC,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACC,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAK,IAAI,CAAChC,OAAM,GAAI,IAAI,CAAC6B,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACC,SAAQ,GAAI,IAAI,CAACJ,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACE,WAAW,GAAI/G,SAAS;AACvK;GACH;AACDgH,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;AACJ;AACJ,CAAC;;;;;sBCvEGC,WAAA,CAKUC,mBAAA,EAAA;IALCC,UAAU,EAAE9B,MAAA,CAAAV,OAAO;AAAGyC,IAAAA,MAAM,EAAE,IAAI;AAAG3B,IAAAA,QAAQ,EAAE4B,IAAA,CAAA3B,MAAM,CAACD,QAAQ;IAAG,YAAU,EAAE6B,QAAA,CAAAf,iBAAiB;IAAGN,QAAM,EAAEqB,QAAA,CAAArB,QAAQ;IAAGsB,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAAGvB,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,eAAA;;AACpJwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAA+HC,SADzG,EAAA;AAAA,MAAA,OAAA,CACLrC,MAAA,CAAAR,uBAAuB,IAAxC8C,SAAA,EAAA,EAAAV,WAAA,CAA+HW,wBAAhFvC,MAAA,CAAAR,uBAAuB,CAAA,EAAA;;QAAGF,OAAO,EAAE+C,SAAS,CAAC/C,OAAO;QAAG,OAAA,EAAKkD,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;4CACrGrC,MAAA,CAAAR,uBAAsB,IAAK6C,SAAS,CAAC/C,OAAO,IAAnEgD,SAAA,EAAA,EAAAV,WAAA,CAA0Ia,sBAA1IC,UAAA,CAA0I;;AAApE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAA,CAAAtC,WAAW,CAAA,oBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;;;;;;ACK7H,eAAe;AACX3G,EAAAA,IAAI,EAAE,gBAAgB;AACtBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,IAAI;AACXmG,IAAAA,OAAO,EAAE,IAAI;AACbtG,IAAAA,IAAI,EAAE,IAAI;AACVuG,IAAAA,MAAM,EAAE,IAAI;AACZE,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;AACb;GACH;AACDgG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;UACjBH,OAAO,EAAE,IAAI,CAACA,OAAO;AACrBc,UAAAA,QAAQ,EAAE,IAAI,CAACC,MAAM,CAACD;AAC1B;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAAC,IAAI,CAACR,MAAM,CAACD,QAAQ,EAAE;AACvB,QAAA,IAAI,CAACU,KAAK,CAAC,QAAQ,EAAE;AACjBC,UAAAA,aAAa,EAAEF,KAAK;UACpBG,IAAI,EAAE,IAAI,CAAC7H;AACf,SAAC,CAAC;AACN;AACJ;GACH;AACDsI,EAAAA,UAAU,EAAE;AACRkB,IAAAA,WAAU,EAAVA;AACJ;AACJ,CAAC;;;;sBCxDGf,WAAA,CAA0KgB,sBAAA,EAAA;IAA5Jd,UAAU,EAAE9B,MAAA,CAAAV,OAAO;AAAGyC,IAAAA,MAAM,EAAE,IAAI;AAAG3B,IAAAA,QAAQ,EAAE4B,IAAA,CAAA3B,MAAM,CAACD,QAAQ;IAAGpH,IAAI,EAAEgH,MAAA,CAAAhH,IAAI;IAAG4H,QAAM,EAAEqB,QAAA,CAAArB,QAAQ;IAAGsB,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAAGvB,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,kBAAA;;;;;;ACsIvJ,SAAA,YAAA,GAAA,qKAAA,IAAAkD,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAC,EAAAN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAC,CAAA,GAAAL,CAAA,IAAAA,CAAA,CAAAM,SAAA,YAAAC,SAAA,GAAAP,CAAA,GAAAO,SAAA,EAAAC,CAAA,GAAAvJ,MAAA,CAAAwJ,MAAA,CAAAJ,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAI,mBAAA,CAAAF,CAAA,EAAA,SAAA,EAAA,UAAAV,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAG,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAV,CAAA,IAAA,EAAA,EAAAW,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAZ,CAAA,EAAA,CAAA,EAAAe,CAAA,EAAAnB,CAAA,EAAAoB,CAAA,EAAAC,CAAA,EAAAN,CAAA,EAAAM,CAAA,CAAAC,IAAA,CAAAtB,CAAA,EAAA,CAAA,CAAA,EAAAqB,CAAA,WAAAA,CAAAA,CAAApB,CAAA,EAAAC,CAAA,WAAAM,CAAA,GAAAP,CAAA,EAAAQ,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAZ,CAAA,EAAAkB,CAAA,CAAAd,CAAA,GAAAF,CAAA,EAAAkB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,SAAAC,EAAAnB,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAK,CAAA,GAAAP,CAAA,EAAAU,CAAA,GAAAR,CAAA,EAAAH,CAAA,OAAAgB,CAAA,IAAAF,CAAA,IAAA,CAAAT,CAAA,IAAAL,CAAA,GAAAe,CAAA,CAAAO,MAAA,EAAAtB,CAAA,UAAAK,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAf,CAAA,CAAA,EAAAoB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAQ,CAAA,GAAAhB,CAAA,KAAAN,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAkB,CAAA,KAAApB,CAAA,MAAAQ,CAAA,GAAAJ,CAAA,CAAA,CAAAC,CAAA,GAAAD,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAC,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAD,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAR,CAAA,IAAAQ,CAAA,CAAA,CAAA,CAAA,IAAAa,CAAA,KAAA,CAAAf,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAmB,CAAA,GAAAb,CAAA,CAAA,CAAA,CAAA,KAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAAf,CAAA,EAAAc,CAAA,CAAAd,CAAA,GAAAI,CAAA,CAAA,CAAA,CAAA,IAAAa,CAAA,GAAAG,CAAA,KAAAlB,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,IAAAA,CAAA,GAAAoB,CAAA,MAAAhB,CAAA,CAAA,CAAA,CAAA,GAAAN,CAAA,EAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,EAAAc,CAAA,CAAAd,CAAA,GAAAoB,CAAA,EAAAf,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAAH,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAkB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAb,CAAA,CAAA,EAAA,CAAA,OAAA,UAAAE,CAAA,EAAAU,CAAA,EAAAQ,CAAA,EAAA,EAAA,IAAAT,CAAA,GAAA,CAAA,EAAA,MAAAU,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAR,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAQ,CAAA,CAAA,EAAAf,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAY,CAAA,EAAA,CAAAvB,CAAA,GAAAQ,CAAA,GAAA,CAAA,GAAAT,CAAA,GAAAY,CAAA,KAAA,CAAAK,CAAA,GAAA,EAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAS,CAAA,CAAAd,CAAA,GAAA,EAAA,CAAA,EAAAiB,CAAA,CAAAZ,CAAA,EAAAG,CAAA,CAAA,IAAAM,CAAA,CAAAd,CAAA,GAAAQ,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAG,CAAA,GAAA,CAAA,EAAAP,CAAA,EAAA,EAAA,IAAAC,CAAA,KAAAH,CAAA,GAAA,MAAA,CAAA,EAAAL,CAAA,GAAAO,CAAA,CAAAF,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAAyB,IAAA,CAAAlB,CAAA,EAAAI,CAAA,CAAA,CAAA,EAAA,MAAAa,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAAxB,CAAA,CAAA0B,IAAA,EAAA,OAAA1B,CAAA,CAAA,CAAAW,CAAA,GAAAX,CAAA,CAAA3J,KAAA,EAAAmK,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,KAAAA,CAAA,KAAAR,CAAA,GAAAO,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAP,CAAA,CAAAyB,IAAA,CAAAlB,CAAA,CAAA,EAAAC,CAAA,SAAAG,CAAA,GAAAa,SAAA,CAAA,mCAAA,GAAAnB,CAAA,GAAA,UAAA,CAAA,EAAAG,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAD,CAAA,GAAAR,CAAA,CAAA,EAAA,MAAA,IAAA,CAAAC,CAAA,IAAAgB,CAAA,GAAAC,CAAA,CAAAd,CAAA,GAAA,CAAA,IAAAQ,CAAA,GAAAV,CAAA,CAAAwB,IAAA,CAAAtB,CAAA,EAAAc,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,EAAA,CAAA,OAAAnB,CAAA,EAAA,EAAAO,CAAA,GAAAR,CAAA,EAAAS,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAX,CAAA,CAAA,EAAA,SAAA,EAAAc,CAAA,GAAA,CAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAAzK,KAAA,EAAA2J,CAAA,EAAA0B,IAAA,EAAAV,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAAf,CAAA,EAAAI,CAAA,EAAAE,CAAA,CAAA,EAAA,IAAA,CAAA,EAAAI,CAAA,CAAA,EAAA,CAAA,IAAAQ,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAT,SAAAA,eAAAiB,iBAAAA,GAAA,EAAA,CAAA,SAAAC,0BAAAA,GAAA,EAAA,CAAA5B,CAAA,GAAA5I,MAAA,CAAAyK,cAAA,CAAA,CAAA,IAAArB,CAAA,GAAA,EAAA,CAAAL,CAAA,CAAA,GAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAU,mBAAA,CAAAb,CAAA,GAAA,EAAA,EAAAG,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,EAAA,CAAA,EAAAH,CAAA,GAAAW,CAAA,GAAAiB,0BAAA,CAAAnB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAArJ,MAAA,CAAAwJ,MAAA,CAAAJ,CAAA,CAAA,CAAA,CAAA,SAAAM,CAAAA,CAAAf,CAAA,WAAA3I,MAAA,CAAA0K,cAAA,GAAA1K,MAAA,CAAA0K,cAAA,CAAA/B,CAAA,EAAA6B,0BAAA,CAAA,IAAA7B,CAAA,CAAAgC,SAAA,GAAAH,0BAAA,EAAAf,mBAAA,CAAAd,CAAA,EAAAM,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAN,CAAA,CAAAU,SAAA,GAAArJ,MAAA,CAAAwJ,MAAA,CAAAD,CAAA,CAAA,EAAAZ,CAAA,CAAA,EAAA,CAAA,OAAA4B,iBAAA,CAAAlB,SAAA,GAAAmB,0BAAA,EAAAf,mBAAA,CAAAF,CAAA,iBAAAiB,0BAAA,CAAA,EAAAf,mBAAA,CAAAe,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAAnB,mBAAA,CAAAe,0BAAA,EAAAvB,CAAA,EAAA,mBAAA,CAAA,EAAAQ,mBAAA,CAAAF,CAAA,CAAA,EAAAE,mBAAA,CAAAF,CAAA,EAAAN,CAAA,EAAA,WAAA,CAAA,EAAAQ,mBAAA,CAAAF,CAAA,EAAAR,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,EAAA,CAAA,EAAAU,mBAAA,CAAAF,CAAA,8DAAAsB,YAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAAC,CAAA,EAAA3B,CAAA,EAAA4B,CAAA,EAAArB,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA;AAAA,SAAAD,mBAAAA,CAAAd,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,IAAAO,CAAA,GAAAnJ,MAAA,CAAAgL,cAAA,QAAA7B,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,OAAAR,CAAA,EAAA,EAAAQ,CAAA,GAAA,CAAA,CAAA,EAAA,CAAAM,mBAAA,GAAA,SAAAwB,kBAAAA,CAAAtC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,IAAAC,CAAA,EAAAM,CAAA,GAAAA,CAAA,CAAAR,CAAA,EAAAE,CAAA,EAAA,EAAA5J,KAAA,EAAA8J,CAAA,EAAAmC,UAAA,EAAA,CAAAtC,CAAA,EAAAuC,YAAA,EAAA,CAAAvC,CAAA,EAAAwC,QAAA,EAAA,CAAAxC,CAAA,EAAA,CAAA,GAAAD,CAAA,CAAAE,CAAA,CAAA,GAAAE,CAAA,YAAAE,CAAA,GAAA,SAAAA,EAAAJ,CAAA,EAAAE,CAAA,EAAA,EAAAU,mBAAA,CAAAd,CAAA,EAAAE,CAAA,YAAAF,CAAA,EAAA,EAAA,OAAA,IAAA,CAAA0C,OAAA,CAAAxC,CAAA,EAAAE,CAAA,EAAAJ,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAAM,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAAQ,mBAAA,CAAAd,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,CAAA,CAAA;AAAA,SAAA0C,kBAAAA,CAAAvC,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAc,CAAA,EAAAX,CAAA,EAAA,EAAA,IAAA,EAAA,IAAAD,CAAA,GAAAJ,CAAA,CAAAgB,CAAA,CAAA,CAAAX,CAAA,CAAA,EAAAG,CAAA,GAAAJ,CAAA,CAAAlK,KAAA,CAAA,EAAA,CAAA,OAAA8J,CAAA,EAAA,EAAA,OAAA,KAAAJ,CAAA,CAAAI,CAAA,CAAA,CAAA,EAAA,CAAAI,CAAA,CAAAmB,IAAA,GAAA1B,CAAA,CAAAW,CAAA,CAAA,GAAAgC,OAAA,CAAAC,OAAA,CAAAjC,CAAA,CAAA,CAAAkC,IAAA,CAAA5C,CAAA,EAAAI,CAAA,CAAA,CAAA;AAAA,SAAAyC,iBAAAA,CAAA3C,CAAA,EAAA,EAAA,OAAA,YAAA,EAAA,IAAAH,CAAA,GAAA,IAAA,EAAAD,CAAA,GAAAgD,SAAA,CAAA,CAAA,OAAA,IAAAJ,OAAA,CAAA,UAAA1C,CAAA,EAAAI,CAAA,EAAA,EAAA,IAAAc,CAAA,GAAAhB,CAAA,CAAAxE,KAAA,CAAAqE,CAAA,EAAAD,CAAA,CAAA,CAAA,CAAA,SAAAiD,KAAAA,CAAA7C,CAAA,EAAA,EAAAuC,kBAAA,CAAAvB,CAAA,EAAAlB,CAAA,EAAAI,CAAA,EAAA2C,KAAA,EAAAC,MAAA,EAAA,MAAA,EAAA9C,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA8C,MAAAA,CAAA9C,CAAA,EAAA,EAAAuC,kBAAA,CAAAvB,CAAA,EAAAlB,CAAA,EAAAI,CAAA,EAAA2C,KAAA,EAAAC,MAAA,EAAA,OAAA,EAAA9C,CAAA,CAAA,CAAA,EAAA,CAAA6C,KAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA;AAiBA,eAAe;AACX9M,EAAAA,IAAI,EAAE,UAAU;AAChBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;AAChMnG,EAAAA,KAAK,EAAE;AACH8M,IAAAA,OAAO,EAAE;AACL5M,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqF,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD+L,IAAAA,SAAS,EAAE;AACP7M,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDoM,IAAAA,QAAQ,EAAE;AACN9M,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACD+F,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDyM,IAAAA,aAAa,EAAE;AACX/M,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDsM,IAAAA,QAAQ,EAAE;AACNhN,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDuM,IAAAA,OAAO,EAAE;AACLjN,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDwM,IAAAA,WAAW,EAAE;AACTlN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0C,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgN,IAAAA,2BAA2B,EAAE;AACzBnN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDsM,IAAAA,YAAY,EAAE;AACVpN,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDP,IAAAA,IAAI,EAAE;AACFI,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD6C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoF,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;AACb;GACH;AACDuM,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,mBAAmB,EAAE,IAAI;EACzB5F,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACH6F,SAAS,EAAE,IAAI,CAACR,OAAO;AACvBS,MAAAA,WAAW,EAAE;KAChB;GACJ;AACDC,EAAAA,KAAK,EAAE;AACHV,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACW,QAAQ,EAAE;MACd,IAAI,CAACH,SAAQ,GAAIG,QAAQ;KAC5B;AACD,IAAA,iBAAiB,EAAE,SAAnBC,cAAiBA,CAAYD,QAAQ,EAAE;AACnC,MAAA,IAAI,CAAClG,KAAK,CAAC,qBAAqB,EAAE;QAAEE,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAEkB,KAAK,EAAE,IAAI,CAACA,KAAI,IAAA,QAAA,CAAA1G,MAAA,CAAc,IAAI,CAACf,KAAK,CAAE;QAAEA,KAAK,EAAE,IAAI,CAACyG,QAAQ;AAAEG,QAAAA,OAAO,EAAEW;AAAS,OAAC,CAAC;AAClJ;GACH;EACDG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AAAA,IAAA,IAAAC,KAAA,GAAA,IAAA;AACN,IAAA,IAAI,IAAI,CAACH,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;IAEA,IAAI,IAAI,CAACR,SAAQ,KAAM,IAAI,CAACjK,QAAO,KAAM,MAAK,IAAM,IAAI,CAACA,QAAO,KAAM,KAAI,IAAK,IAAI,CAACwK,UAAU,CAAC,WAAW,CAAE,CAAC,EAAE;AAC3GI,MAAAA,UAAU,CAAC,YAAM;AACb,QAAA,IAAMC,cAAcC,wBAAwB,CAACH,KAAI,CAACI,GAAG,CAAC;AAEtDF,QAAAA,WAAU,IAAKA,WAAW,CAACG,KAAK,EAAE;OACrC,EAAE,CAAC,CAAC;AACT;GACH;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,IAAI,CAAClB,oBAAoB,EAAE;MAC3BmB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC;GACH;AACDjH,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAAC1I,MAAM,EAAEyI,IAAI,CAAC;KACzC;AACDrI,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAAsI,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAMtI,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBhC,UAAAA,IAAI,GAAAyK,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,MAAA,IAAA,IAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzK,IAAI;AACjDH,UAAAA,aAAa,GAAA6K,sBAAA,GAAE,IAAI,CAAChJ,eAAe,cAAAgJ,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBhJ,eAAe,cAAAgJ,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,sBAAA,CAAuC7K;AAC1D;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS;KACtF;IACD2N,gBAAgB,EAAA,SAAhBA,kBAAgBA,GAAG;MACf,OAAOA,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACkB,KAAK,CAAC;KACpD;AACDmB,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACxH,KAAK,EAAE;AACb,MAAA,IAAI,CAACC,KAAK,CAAC,YAAY,EAAE;AACrBC,QAAAA,aAAa,EAAEF,KAAK;QACpBG,IAAI,EAAE,IAAI,CAACgF;AACf,OAAC,CAAC;KACL;AACDsC,IAAAA,kBAAkB,WAAlBA,kBAAkBA,CAACzH,KAAK,EAAEpB,KAAK,EAAE;AAC7B,MAAA,IAAI,CAACqB,KAAK,CAAC,cAAc,EAAE;QAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEtB,QAAAA,KAAK,EAAEA,KAAK;QAAEuB,IAAI,EAAEH,KAAK,CAACG;AAAK,OAAC,CAAC;KACrG;AACDuH,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAAC1H,KAAK,EAAEpB,KAAK,EAAE;AAChC,MAAA,IAAI,CAACqB,KAAK,CAAC,iBAAiB,EAAE;QAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEtB,QAAAA,KAAK,EAAEA,KAAK;QAAEuB,IAAI,EAAEH,KAAK,CAACG;AAAK,OAAC,CAAC;KACxG;IACDwH,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACjJ,MAAM,CAACkJ,QAAO,IAAK,IAAI,CAAClJ,MAAM,CAACkJ,QAAQ,CAACC,MAAK,IAAK,IAAI;KACrE;IACDC,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACnC,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAmB,GAAI,UAAC5F,KAAK,EAAK;AACnC+H,UAAAA,MAAI,CAAClC,YAAYkC,MAAI,CAACjB,GAAE,IAAKiB,MAAI,CAACjB,GAAG,CAACkB,QAAQ,CAAChI,KAAK,CAACiI,MAAM,CAAC;UAE5D,IAAIF,MAAI,CAAChC,mBAAmB,EAAE;AAC1BmC,YAAAA,YAAY,CAACH,MAAI,CAAChC,mBAAmB,CAAC;AAC1C;AAEA,UAAA,IAAI,CAACgC,MAAI,CAAClC,SAAS,EAAE;AACjBkC,YAAAA,MAAI,CAAChC,mBAAkB,GAAIY,UAAU,CAAC,YAAM;AACxCoB,cAAAA,MAAI,CAACI,YAAY,CAACnI,KAAK,EAAE,SAAS,CAAC;aACtC,EAAE,CAAC,CAAC;AACT;SACH;QAEDoI,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACzC,oBAAoB,CAAC;AACrE;KACH;IACD0C,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAAC1C,oBAAoB,EAAE;QAC3BwC,QAAQ,CAACG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC3C,oBAAoB,CAAC;QACpE,IAAI,CAACA,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACC,SAAQ,GAAI,KAAK;QAEtB,IAAI,IAAI,CAACE,mBAAmB,EAAE;AAC1BmC,UAAAA,YAAY,CAAC,IAAI,CAACnC,mBAAmB,CAAC;UACtC,IAAI,CAACA,mBAAkB,GAAI,IAAI;AACnC;AACJ;KACH;IACDyC,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,CAACxC,SAAQ,GAAI,KAAK;MACtB,IAAI,CAACsC,0BAA0B,EAAE;MACjCrB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;KACnC;AACD2C,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACzI,KAAK,EAAE;AAAA,MAAA,IAAA0I,MAAA,GAAA,IAAA;MACX,IAAI,IAAI,CAAC3M,QAAO,KAAM,MAAK,IAAK,IAAI,CAAC4L,UAAU,EAAE,EAAE;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC3B,SAAS,EAAE;UACjB,IAAI,CAACA,SAAQ,GAAI,IAAI;UACrB,IAAI,CAAC8B,wBAAwB,EAAE;AAC/B,UAAA,IAAI,CAAC7H,KAAK,CAAC,gBAAgB,EAAE;AAAEC,YAAAA,aAAa,EAAEF,KAAK;YAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;YAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;YAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,WAAC,CAAC;AAEnH,UAAA,IAAI,CAACS,oBAAmB,GAAI,UAAC9D,CAAC,EAAK;AAC/B0G,YAAAA,MAAI,CAAC7C,SAAQ,GAAI6C,MAAI,CAAC5B,GAAE,IAAK4B,MAAI,CAAC5B,GAAG,CAACkB,QAAQ,CAAChG,CAAC,CAACiG,MAAM,CAAC;WAC3D;UAEDhB,eAAe,CAAC0B,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC7C,oBAAoB,CAAC;AAClE;AACJ;KACH;AACDqC,IAAAA,YAAY,WAAZA,YAAYA,CAACnI,KAAK,EAAEzH,IAAI,EAAE;AACtB,MAAA,IAAMqQ,gBAAgB;AAClB1I,QAAAA,aAAa,EAAEF,KAAK;QACpBG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAClB0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAC5BxQ,KAAK,EAAE,IAAI,CAAC6M,OAAO,CAAC,IAAI,CAACkB,KAAK,CAAC;QAC/BF,QAAQ,EAAE,IAAI,CAAC2C,cAAc,CAAC,IAAI,CAACzC,KAAK,CAAC;QACzCA,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBzH,KAAK,EAAE,IAAI,CAACyG,QAAQ;AACpB9M,QAAAA,IAAI,EAAEA,IAAI;AACVwQ,QAAAA,gBAAgB,EAAE,KAAK;AACvBC,QAAAA,cAAc,EAAE,SAAhBA,cAAcA,GAAc;UACxB,IAAI,CAACD,mBAAmB,IAAI;AAChC;OACH;AAED,MAAA,IAAI,CAAC9I,KAAK,CAAC,oBAAoB,EAAE2I,aAAa,CAAC;AAE/C,MAAA,IAAI,CAACA,aAAa,CAACG,gBAAgB,EAAE;QACjC,IAAI,CAACP,oBAAoB,EAAE;AAC/B;KACH;AACDS,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACjJ,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAACjE,QAAO,KAAM,MAAM,EAAE;QAC1B,QAAQiE,KAAK,CAACkJ,IAAI;AACd,UAAA,KAAK,OAAO;AACZ,UAAA,KAAK,aAAa;AACd,YAAA,IAAI,CAACf,YAAY,CAACnI,KAAK,EAAE,OAAO,CAAC;AACjC,YAAA;AAEJ,UAAA,KAAK,QAAQ;YACT,IAAI,CAACwI,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAACvI,KAAK,CAAC,kBAAkB,EAAE;AAAEC,cAAAA,aAAa,EAAEF,KAAK;cAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;cAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;cAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,aAAC,CAAC;AACrH,YAAA;AAEJ,UAAA,KAAK,KAAK;AACN,YAAA,IAAI,CAAC8C,YAAY,CAACnI,KAAK,EAAE,KAAK,CAAC;AAE/B,YAAA,IAAIA,KAAK,CAACmJ,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAACpJ,KAAK,CAAC,CAAA,KAC7C,IAAI,CAACqJ,cAAc,CAACrJ,KAAK,CAAC;AAC/B,YAAA;AAIR;AACJ;KACH;AACKoJ,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACpJ,KAAK,EAAE;AAAA,MAAA,IAAAsJ,MAAA,GAAA,IAAA;AAAA,MAAA,OAAAvE,iBAAA,cAAAb,YAAA,EAAA,CAAAE,CAAA,UAAAmF,OAAAA,GAAA;QAAA,IAAAC,WAAA,EAAAC,UAAA;AAAA,QAAA,OAAAvF,YAAA,EAAA,CAAAC,CAAA,CAAA,UAAAuF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAtH,CAAA;AAAA,YAAA,KAAA,CAAA;cACxBoH,WAAU,GAAIF,MAAI,CAACK,QAAQ,CAAC3J,KAAK,CAACiI,MAAM,CAAC;AACzCwB,cAAAA,UAAS,GAAIH,MAAI,CAACM,0BAA0B,CAACJ,WAAW,CAAC;AAAA,cAAA,IAAA,CAEzDC,UAAU,EAAA;AAAAC,gBAAAA,QAAA,CAAAtH,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAAAsH,cAAAA,QAAA,CAAAtH,CAAA,GAAA,CAAA;AAAA,cAAA,OACJkH,MAAI,CAACO,SAAS,EAAE;AAAA,YAAA,KAAA,CAAA;AACtBC,cAAAA,mBAAmB,CAACL,UAAU,EAAE,OAAO,CAAC;cACxCzJ,KAAK,CAACgJ,cAAc,EAAE;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAU,QAAA,CAAAtG,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,SAAA,EAAAmG,OAAA,CAAA;AAAA,OAAA,CAAA,CAAA,EAAA;KAE7B;AACKF,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACrJ,KAAK,EAAE;AAAA,MAAA,IAAA+J,MAAA,GAAA,IAAA;AAAA,MAAA,OAAAhF,iBAAA,cAAAb,YAAA,EAAA,CAAAE,CAAA,UAAA4F,QAAAA,GAAA;QAAA,IAAAR,WAAA,EAAAC,UAAA;AAAA,QAAA,OAAAvF,YAAA,EAAA,CAAAC,CAAA,CAAA,UAAA8F,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA7H,CAAA;AAAA,YAAA,KAAA,CAAA;cACpBoH,WAAU,GAAIO,MAAI,CAACJ,QAAQ,CAAC3J,KAAK,CAACiI,MAAM,CAAC;AACzCwB,cAAAA,UAAS,GAAIM,MAAI,CAACG,sBAAsB,CAACV,WAAW,CAAC;AAAA,cAAA,IAAA,CAErDC,UAAU,EAAA;AAAAQ,gBAAAA,SAAA,CAAA7H,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAAA6H,cAAAA,SAAA,CAAA7H,CAAA,GAAA,CAAA;AAAA,cAAA,OACJ2H,MAAI,CAACF,SAAS,EAAE;AAAA,YAAA,KAAA,CAAA;AACtBC,cAAAA,mBAAmB,CAACL,UAAU,EAAE,OAAO,CAAC;cACxCzJ,KAAK,CAACgJ,cAAc,EAAE;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAiB,SAAA,CAAA7G,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,SAAA,EAAA4G,QAAA,CAAA;AAAA,OAAA,CAAA,CAAA,EAAA;KAE7B;AACDL,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACQ,OAAO,EAAE;AACd,MAAA,IAAIA,OAAO,EAAE;QACT,IAAIC,IAAG,GAAID,OAAO;QAElB,OAAOC,IAAG,IAAK,CAACC,YAAY,CAACD,IAAI,EAAE,qBAAqB,CAAC,EAAE;UACvDA,IAAG,GAAIA,IAAI,CAACE,aAAa;AAC7B;AAEA,QAAA,OAAOF,IAAI;AACf,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDR,IAAAA,0BAA0B,EAAA,SAA1BA,0BAA0BA,CAACQ,IAAI,EAAE;AAC7B,MAAA,IAAIG,QAAO,GAAIH,IAAI,CAACI,sBAAsB;MAE1C,IAAI,CAACD,QAAQ,EAAE;AACX,QAAA,IAAIE,cAAcL,IAAI,CAACE,aAAa,CAACE,sBAAsB;AAE3D,QAAA,IAAIC,WAAW,EAAE;UACbF,QAAO,GAAIE,WAAW,CAACC,gBAAgB;AAC3C;AACJ;AAEA,MAAA,IAAIH,QAAQ,EAAE;AACV,QAAA,IAAIF,YAAY,CAACE,QAAQ,EAAE,wBAAwB,CAAC,EAAE,OAAOA,QAAQ,CAAA,KAChE,OAAO,IAAI,CAACX,0BAA0B,CAACW,QAAQ,CAAC;AACzD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDL,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAACE,IAAI,EAAE;AACzB,MAAA,IAAIO,QAAO,GAAIP,IAAI,CAACQ,kBAAkB;MAEtC,IAAI,CAACD,QAAQ,EAAE;AACX,QAAA,IAAIE,OAAM,GAAIT,IAAI,CAACE,aAAa,CAACM,kBAAkB;AAEnD,QAAA,IAAIC,OAAO,EAAE;UACTF,QAAO,GAAIE,OAAO,CAACC,iBAAiB;AACxC;AACJ;AAEA,MAAA,IAAIH,QAAQ,EAAE;AACV,QAAA,IAAIN,YAAY,CAACM,QAAQ,EAAE,wBAAwB,CAAC,EAAE,OAAOA,QAAQ,CAAA,KAChE,OAAO,IAAI,CAACT,sBAAsB,CAACS,QAAQ,CAAC;AACrD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDI,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC/K,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACnJ;AACD2F,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAChL,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACnJ;AACD4F,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACjL,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACrJ;AACD6F,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAAClL,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;QAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;QAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACnJ;AACD8F,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACnL,KAAK,EAAE;AACtB,MAAA,IAAI,IAAI,CAACjE,QAAO,KAAM,KAAK,EAAE;AACzB,QAAA,IAAI,CAACkE,KAAK,CAAC,eAAe,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;UAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;UAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,SAAC,CAAC;AACpJ,OAAA,MAAO;AACH,QAAA,IAAI,CAAC8C,YAAY,CAACnI,KAAK,EAAE,OAAO,CAAC;AACrC;KACH;AACDoL,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAACpL,KAAK,EAAE;AACxB,MAAA,IAAI,IAAI,CAACjE,QAAO,KAAM,KAAK,EAAE;AACzB,QAAA,IAAI,CAACkE,KAAK,CAAC,iBAAiB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;UAAE0D,OAAO,EAAE,IAAI,CAACC,cAAc;UAAEzC,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,SAAC,CAAC;AACtJ,OAAA,MAAO;QACH,IAAI,CAACmD,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAACvI,KAAK,CAAC,kBAAkB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;UAAEkB,KAAK,EAAE,IAAI,CAACA,KAAK;UAAEzH,KAAK,EAAE,IAAI,CAACyG;AAAS,SAAC,CAAC;AACzH;KACH;IACDmB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAI8E,KAAI,GAAI,IAAI,CAAC9E,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAI8E,KAAI,KAAM,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIC,IAAG,GAAIC,qBAAqB,CAAC,IAAI,CAAC1E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAIyE,IAAI,EAAE;AACND,YAAAA,GAAE,GAAIG,aAAa,CAACF,IAAI,IAAIG,UAAU,CAACH,IAAI,CAACrN,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC0F,cAAa,GAAIL,GAAE,GAAI,IAAI;AAChD,SAAA,MAAO;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAIM,IAAG,GAAIC,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAI8E,IAAI,EAAE;AACNN,YAAAA,IAAE,GAAIG,aAAa,CAACG,IAAI,CAAA,GAAIF,UAAU,CAACE,IAAI,CAAC1N,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC6F,gBAAe,GAAIR,IAAE,GAAI,IAAI;AAClD;AACJ;KACH;AACDS,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAACC,MAAM,EAAE;MAC3B,OAAO,IAAI,CAACtG,2BAA0B,GAAI,IAAI,CAACA,2BAA2B,CAACsG,MAAM,CAAA,GAAI,IAAI;AAC7F;GACH;AACD5L,EAAAA,QAAQ,EAAE;IACN0I,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,IAAI,CAACrD,WAAW,CAAC,IAAI,CAACJ,QAAQ,CAAA,GAAI,IAAI,CAACI,WAAW,CAAC,IAAI,CAACJ,QAAQ,CAAC,CAAClF,OAAO,IAAI,CAACgF,OAAO;KAC/F;IACDkB,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAO,IAAI,CAACE,UAAU,CAAC,OAAO,CAAC;KAClC;IACD0F,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAC1F,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC2F,EAAE,CAAC,UAAU,CAAC,CAAC;KACvF;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,YAAY,IAAI,CAAC7F,UAAU,CAAC,WAAW,CAAC;AAC5C,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAA,GAAI,CAAC8F,WAAW,EAAED,SAAS,EAAE,IAAI,CAACnG,WAAW,CAAA,GAAI,CAACoG,WAAW,EAAED,SAAS,CAAC;KAC3G;IACD1S,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,MAAA,OAAO,IAAI,CAACqS,sBAAsB,CAAC,SAAS,CAAC;KAChD;IACDO,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAMC,gBAAe,GAAI,IAAI,CAACR,sBAAsB,CAAC,kBAAkB,CAAC;AAExE,MAAA,OACIQ,oBACAA,gBAAgB,CAAC,IAAI,CAAClH,QAAQ,EAAE;QAC5BmH,SAAS,EAAE,IAAI,CAAC5N,KAAK;AACrB6N,QAAAA,SAAS,EAAE,IAAI,CAAC7N,KAAI,KAAM,CAAC;AAC3B8N,QAAAA,QAAQ,EAAE,IAAI,CAAC9N,KAAI,KAAM,IAAI,CAACmN,sBAAsB,CAAC,SAAS,CAAC,CAACxI,MAAK,GAAI,CAAC;AAC1EoJ,QAAAA,QAAQ,EAAE,IAAI,CAAC/N,KAAI,GAAI,CAAA,KAAM,CAAC;AAC9BgO,QAAAA,OAAO,EAAE,IAAI,CAAChO,KAAI,GAAI,CAAA,KAAM,CAAC;QAC7BF,MAAM,EAAE,IAAI,CAACA,MAAM;QACnB2H,KAAK,EAAE,IAAI,CAACA;AAChB,OAAC,CAAA;KAER;IACDwG,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACvM,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAK,IAAI,CAAC6E,aAAY,GAAI,IAAI,CAAChF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACqM,YAAY,IAAI,CAACxM,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACsM,WAAW,GAAInT,SAAS;KAC5K;IACDoT,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC1M,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAI,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACwM,UAAUrT,SAAS;KACnG;IACDsT,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC5M,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAI,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC0M,WAAWvT,SAAS;KACpG;IACDwT,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,OAAO,IAAI,CAAC9M,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC4M,aAAazT,SAAS;AACvG;GACH;AACDgH,EAAAA,UAAU,EAAE;AACR0M,IAAAA,aAAa,EAAEC,QAAc;AAC7BC,IAAAA,UAAU,EAAEC,QAAW;AACvBC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,UAAU,EAAVA,UAAU;AACVjN,IAAAA,SAAS,EAATA,SAAS;AACTkN,IAAAA,SAAQ,EAARA;GACH;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC;AACZ;AACJ,CAAC;;;;;;;;;;;;;;;;;;SChlBa9M,QAAA,CAAA1H,OAAO,IAAjB+H,SAAA,EAAA,EAAA0M,kBAAA,CAEI,MAFJtM,UAAA,CAEI;;IAFgB3D,KAAK,EAAEkD,QAAA,CAAA+K,cAAc;IAAG,OAAA,EAAO/K,QAAA,CAAA6K,cAAc;AAAEmC,IAAAA,IAAI,EAAC;AAAoB,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,WAAasC,QAAA,CAAAtC,WAAW,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,EAC3H2C,SAAA,EAAA,EAAAV,WAAA,CAAoKW,uBAAA,CAApJvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAClO,OAAO,CAAA,EAAA;IAAGyG,IAAI,EAAEhB,MAAA,CAAAgG,OAAO;IAAGzG,MAAM,EAAES,MAAA,CAAAT,MAAM;IAAG2H,KAAK,EAAEjF,QAAA,CAAAiF,KAAK;IAAGzH,KAAK,EAAEO,MAAA,CAAAkG,QAAQ;IAAGD,SAAS,EAAEjG,MAAA,CAAAiG,SAAS;IAAGkH,cAAc,EAAElL,QAAA,CAAAkL;8FAEvJ7K,SAAA,EAAA,EAAA0M,kBAAA,CA+HI,MA/HJtM,UAAA,CA+HI;;IA7HC3D,KAAK,EAAEkD,QAAA,CAAA+K,cAAc;IACrB,OAAA,EAAO/K,QAAA,CAAA6K,cAAc;AACrBqC,IAAAA,OAAO,EAAElN,QAAA,CAAAmF,UAAU,CAAA,SAAA,CAAA;AACnBgI,IAAAA,OAAO,EAAEnN,QAAA,CAAAmF,UAAU,CAAA,SAAA,CAAA;IACnBkC,OAAK;aAAErH,QAAA,CAAAqH,OAAA,IAAArH,QAAA,CAAAqH,OAAA,CAAA7K,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAO;AAAA,KAAA,CAAA;IACdwJ,SAAO;aAAEpN,QAAA,CAAA6H,SAAA,IAAA7H,QAAA,CAAA6H,SAAA,CAAArL,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAS;AAAA,KAAA,CAAA;AACnBoJ,IAAAA,IAAI,EAAC;AACQ,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,WAAasC,QAAA,CAAAtC,WAAW,CAAA,UAAA,CAAA,CAAA,EAAA;IAC/C,yBAAuB,EAAEsC,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA,IAAA,IAAA;AACnC,IAAA,wBAAsB,EAAEnF,QAAA,CAAAuG,UAAU,EAAA;IAClC,qBAAmB,EAAEtI,KAAA,CAAA2G,SAAS;AAC9B,IAAA,sBAAoB,EAAE5E,QAAA,CAAAmF,UAAU,CAAA,QAAA;OAGvBpH,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6G,IAAG,IAAA,CAAMpP,KAAA,CAAA2G,SAAS,IAD/DvE,SAAA,EAAA,EAAAV,WAAA,CAUCW,uBAAA,CARQvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6G,IAAI,CAAA,EAAA;;IACxBtO,IAAI,EAAEhB,MAAA,CAAAgG,OAAO;IACbzG,MAAM,EAAES,MAAA,CAAAT,MAAM;IACd2H,KAAK,EAAEjF,QAAA,CAAAiF,KAAK;IACZzH,KAAK,EAAEO,MAAA,CAAAkG,QAAQ;IACfD,SAAS,EAAEjG,MAAA,CAAAiG,SAAS;IACpB8F,kBAAkB,EAAE9J,QAAA,CAAA8J,kBAAkB;IACtCwD,kBAAkB,EAAEtN,QAAA,CAAAoG;gHAGVrI,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACC,MAAK,IAAKxI,KAAA,CAAA2G,SAAS,IADrEvE,SAAA,EAAA,EAAAV,WAAA,CAUCW,uBAAA,CARQvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACC,MAAM,CAAA,EAAA;;IAC1B1H,IAAI,EAAEiB,QAAA,CAAA0H,cAAc;IACpBpK,MAAM,EAAES,MAAA,CAAAT,MAAM;IACd2H,KAAK,EAAEjF,QAAA,CAAAiF,KAAK;IACZzH,KAAK,EAAEO,MAAA,CAAAkG,QAAQ;IACfD,SAAS,EAAEjG,MAAA,CAAAiG,SAAS;IACpB+F,kBAAkB,EAAE/J,QAAA,CAAA+J,kBAAkB;IACtCC,oBAAoB,EAAEhK,QAAA,CAAAgK;kHAELjM,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6G,IAAG,IAAA,CAAMtP,aAAM,CAACyI,QAAQ,CAACC,UAAUxI,KAAA,CAAA2G,SAAS,IAArGvE,SAAA,EAAA,EAAAV,WAAA,CAAmOW,uBAAA,CAAvHvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6G,IAAI,CAAA,EAAA;;IAAGtO,IAAI,EAAEiB,QAAA,CAAA0H,cAAc;IAAGpK,MAAM,EAAES,MAAA,CAAAT,MAAM;IAAG2H,KAAK,EAAEjF,QAAA,CAAAiF,KAAK;IAAGzH,KAAK,EAAEO,MAAA,CAAAkG,QAAQ;IAAGD,SAAS,EAAEjG,MAAA,CAAAiG;oEAClMhE,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA,iBAA/B4H,kBAAA,CAcUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAbeqC,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA,KAAA,QAAA,iBAA/BxF,WAAA,CAA+N6N,wBAAA,EAAA;;IAA/JtW,KAAK,EAAE6G,MAAA,CAAAgG,OAAO;IAAGhN,IAAI,EAAEgH,MAAA,CAAAhH,IAAI;IAAGsG,OAAO,EAAEU,MAAA,CAAAoG,QAAQ;AAAGxF,IAAAA,QAAM,EAAA8O,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;MAAA,OAAE1N,QAAA,CAAAqG,kBAAkB,CAACqH,MAAM,EAAE3P,MAAA,CAAAkG,QAAQ,CAAA;AAAA,KAAA,CAAA;IAAI3G,MAAM,EAAES,MAAA,CAAAT,MAAM;IAAGE,KAAK,EAAEO,MAAA,CAAAP,KAAK;IAAGyC,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAAGvB,EAAE,EAAEqB,IAAA,CAAArB;oFAE3MsB,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA,KAAA,UAAA,iBADzBxF,WAAA,CAWCgO,qBAAA,EAAA;;IATIzW,KAAK,EAAE6G,MAAA,CAAAgG,OAAO;IACd1G,OAAO,EAAEU,MAAA,CAAAoG,QAAQ;AACjB5G,IAAAA,uBAAuB,EAAEQ,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACoH,eAAe;AAC3E,IAAA,eAAa,EAAE7P,MAAA,CAAAoG,QAAO,GAAA,IAAA,GAAW3L,SAAS;AAC1CmG,IAAAA,QAAM,EAAA8O,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;MAAA,OAAE1N,QAAA,CAAAsG,qBAAqB,CAACoH,MAAM,EAAE3P,MAAA,CAAAkG,QAAQ,CAAA;AAAA,KAAA,CAAA;IAC9C3G,MAAM,EAAES,MAAA,CAAAT,MAAM;IACdE,KAAK,EAAEO,MAAA,CAAAP,KAAK;IACZyC,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBvB,EAAE,EAAEqB,IAAA,CAAArB;8JAGQsB,QAAA,CAAAmF,UAAU,CAAA,YAAA,CAAA,iBAA/B4H,kBAAA,CAIUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAHWI,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,aAAM,CAACyI,QAAQ,CAACqH,cAAc,IAAlExN,SAAA,EAAA,EAAAV,WAAA,CAA8IW,uBAAA,CAArEvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACqH,cAAc,CAAA,EAAA;;AAAG,IAAA,OAAA,iBAAO9N,IAAA,CAAA+K,EAAE,CAAA,sBAAA,CAAA;4BACrG9K,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA,IAAxB9E,SAAA,EAAA,EAAA0M,kBAAA,CAA8J,KAA9JtM,UAAA,CAA8J;;AAAjH,IAAA,OAAA,EAAK,CAAGV,IAAA,CAAA+K,EAAE,CAAA,sBAAA,CAAA,EAA0B9K,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA;KAA6BnF,QAAA,CAAAtC,WAAW,CAAA,sBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KACnI2C,SAAA,EAAA,EAAAV,WAAA,CAAmGmO,qBAAnGrN,UAAA,CAAmG;;AAAjF,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,sBAAA;KAAkC9K,QAAA,CAAAtC,WAAW,CAAA,sBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,UAEvDsC,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA,GAC3B4I,cAAA,EAAA1N,SAAA,EAAA,EAAA0M,kBAAA,CAqBQ,UArBRtM,UAAA,CAqBQ;;AAnBH,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,iBAAA,CAAA;AACV3T,IAAAA,IAAI,EAAC,QAAO;IACX,eAAa,EAAE4G,MAAA,CAAAmG,aAAa;IAC5B,eAAa,EAAEnG,MAAA,CAAAwG,YAAY;IAC3B,YAAU,EAAEvE,QAAA,CAAAyL,qBAAqB;AACjCpE,IAAAA,OAAK;aAAOrH,QAAA,CAAAoG,SAAA,IAAApG,QAAA,CAAAoG,SAAA,CAAA5J,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAS;AAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AACtB,IAAA,iBAAe,EAAC;KACR5D,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA,EAAA;AACnB,IAAA,uBAAqB,EAAC;AAAgB,GAAA,CAAA,EAAA,CAErBK,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,aAAM,CAACyI,QAAQ,CAACwH,aAAa,IAAjE3N,SAAA,EAAA,EAAAV,WAAA,CAAkKW,uBAAA,CAA1FvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACwH,aAAa,CAAA,EAAA;;IAAG,OAAA,iBAAOjO,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,CAAA;IAAoBmD,WAAW,EAAElQ,MAAA,CAAAmG;2CAE5HnG,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,aAAM,CAACyI,QAAQ,CAAC0H,cAAc,IAAvE7N,SAAA,EAAA,EAAAV,WAAA,CAAyKW,uBAAA,CAA3FvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC0H,cAAc,CAAA,EAAA;;IAAG,OAAA,iBAAOnO,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,CAAA;IAAoBmD,WAAW,EAAElQ,MAAA,CAAAmG;yDACzJ6I,kBAAA,CAKUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAJMI,MAAA,CAAAmG,iBAAiBnG,MAAA,CAAA5D,eAAe,iBAA5C4S,kBAAA,CAA+F,MAAA,EAAA;;AAAhD,IAAA,OAAA,EAAKxM,cAAA,CAAA,CAAGR,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,EAAmB/M,MAAA,CAAA5D,eAAe,CAAA;iBAC/D4D,MAAA,CAAAmG,aAAY,KAAMnG,MAAA,CAAA5D,eAAe,IAA7DkG,SAAA,EAAA,EAAAV,WAAA,CAAmIwO,4BAAnI1N,UAAA,CAAmI;;AAAnE,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,eAAA;KAA2B9K,QAAA,CAAAtC,WAAW,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAC7F,CAAAK,MAAA,CAAAmG,iBAAiBnG,MAAA,CAAA3D,gBAAgB,iBAAnD2S,kBAAA,CAAuG,MAAA,EAAA;;AAAjD,IAAA,OAAA,EAAKxM,cAAA,CAAA,CAAGR,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,EAAmB/M,MAAA,CAAA3D,gBAAgB,CAAA;iBACrE,CAAA2D,MAAA,CAAAmG,aAAY,KAAMnG,MAAA,CAAA3D,gBAAgB,IAAhEiG,SAAA,EAAA,EAAAV,WAAA,CAAsIyO,6BAAtI3N,UAAA,CAAsI;;AAAnE,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,eAAA;KAA2B9K,QAAA,CAAAtC,WAAW,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,uFAIzGK,MAAA,CAAApD,QAAO,cAAeqF,QAAA,CAAAmF,UAAU,CAAA,WAAA,CAAA,iBAArD4H,kBAAA,CA2CUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,EAzCKM,KAAA,CAAA2G,SAAS,IADpBvE,SAAA,EAAA,EAAAV,WAAA,CAaQ0O,mBAbR5N,UAAA,CAaQ;;AAXH,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,iBAAA,CAAA;IACT,YAAU,EAAE9K,QAAA,CAAA4L,mBAAmB;IAC/B3L,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBoH,OAAK,EAAErH,QAAA,CAAA2J;AACA,GAAA,EAAA5L,MAAA,CAAArB,eAAe,CAACC,IAAI,EAAA;AAC3B+B,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAkKC,SAD5I,EAAA;MAAA,OAAA,eACtBT,WAAA,CAAkKW,uBAAA,CAAjJvC,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC8H,iBAAiB,IAAA,YAAA,CAAA,EAArE7N,UAAA,CAAkK;AAAzE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;gGAIlIO,KAAA,CAAA2G,SAAS,IADnBvE,SAAA,EAAA,EAAAV,WAAA,CAaQ0O,mBAbR5N,UAAA,CAaQ;;AAXH,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,iBAAA,CAAA;IACT,YAAU,EAAE9K,QAAA,CAAA8L,mBAAmB;IAC/B7L,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBoH,OAAK,EAAErH,QAAA,CAAA4J;AACA,GAAA,EAAA7L,MAAA,CAAArB,eAAe,CAACE,IAAI,EAAA;AAC3B8B,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAiKC,SAD3I,EAAA;MAAA,OAAA,eACtBT,WAAA,CAAiKW,uBAAA,CAAhJvC,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC+H,iBAAiB,IAAA,WAAA,CAAA,EAArE9N,UAAA,CAAiK;AAAzE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;gGAIjIO,KAAA,CAAA2G,SAAS,IADnBvE,SAAA,EAAA,EAAAV,WAAA,CAaQ0O,mBAbR5N,UAAA,CAaQ;;AAXH,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,mBAAA,CAAA;IACT,YAAU,EAAE9K,QAAA,CAAAgM,qBAAqB;IACjC/L,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBoH,OAAK,EAAErH,QAAA,CAAA6J;AACA,GAAA,EAAA9L,MAAA,CAAArB,eAAe,CAACG,MAAM,EAAA;AAC7B6B,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,mBAAA,CAAA;AAChB,IAAA,uBAAqB,EAAC;;AAEXwC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAqKC,SAD/I,EAAA;MAAA,OAAA,eACtBT,WAAA,CAAqKW,uBAAA,CAApJvC,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACgI,mBAAmB,IAAA,WAAA,CAAA,EAAvE/N,UAAA,CAAqK;AAA3E,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAA,CAAAtC,WAAW,CAAA,mBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;sHAIjJqP,kBAAA,CAAmDQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;GAAA,EAAA,iCAA/BqC,QAAA,CAAAmG,gBAAgB,EAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;AC3B5C,eAAe;AACXpP,EAAAA,IAAI,EAAE,SAAS;AACfoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CACH,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,qBAAoB,CACvB;AACDnG,EAAAA,KAAK,EAAE;AACH8M,IAAAA,OAAO,EAAE;AACL5M,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDP,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDqX,IAAAA,OAAO,EAAE;AACLtX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD6M,IAAAA,SAAS,EAAE;AACP7M,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6W,IAAAA,KAAK,EAAE;AACHvX,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDwC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDM,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDJ,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACD4C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4C,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACD0W,IAAAA,aAAa,EAAE;AACXxX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDkC,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDkC,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4C,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD2D,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDyX,IAAAA,mBAAmB,EAAE;AACjBzX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDwD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDyX,IAAAA,cAAc,EAAE;AACZ1X,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDkN,IAAAA,WAAW,EAAE;AACTlN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD6W,IAAAA,SAAS,EAAE;AACP3X,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD4D,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6E,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqM,IAAAA,2BAA2B,EAAE;AACzBnN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8W,IAAAA,yBAAyB,EAAE;AACvB5X,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDmX,IAAAA,aAAa,EAAE;AACX7X,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD2X,IAAAA,qBAAqB,EAAE;AACnB9X,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;AACb;GACH;EACDyH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHmQ,MAAAA,aAAa,EAAE;KAClB;GACJ;AACDpK,EAAAA,KAAK,EAAE;AACH5K,IAAAA,YAAY,EAAE;AACViV,MAAAA,IAAI,EAAE,IAAI;AACVC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACtK,QAAQ,EAAE;AAAA,QAAA,IAAAO,KAAA,GAAA,IAAA;AACd,QAAA,IAAI,CAAC4J,aAAY,GAAI,IAAI,CAAC7X,OAAM,GAAI,CAAA0N,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAGoB,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAC,CAAA,MAAMmB,YAAYuM,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEuK,IAAI,CAAC,UAACrN,CAAC,EAAA;UAAA,OAAKqD,KAAI,CAACiK,MAAM,CAACjK,KAAI,CAACvB,OAAO,EAAE9B,CAAC,CAAC;SAAA,CAAC;AACpK;AACJ;GACH;AACDxE,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACD;AACArI,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnBC,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;AAChB;OACH;MAED,OAAOI,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;AAAe,OAAC,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAAC2G,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,EAAExH,GAAG,EAAEC,cAAc,CAAC,CAAC;KACjL;AACD;AACA6R,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAAC9R,GAAG,EAAE;AAAA,MAAA,IAAAsI,qBAAA;AACrB,MAAA,IAAMyJ,SAAQ,GAAA,CAAAzJ,qBAAA,GAAI,IAAI,CAAC/I,eAAe,MAAA,IAAA,IAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsB/I,eAAe;AAEvD,MAAA,OAAO,IAAI,CAACoB,GAAG,CAACX,GAAG,EAAE;AACjBO,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACyG,QAAQ;AACpB0L,UAAAA,UAAU,EAAE,CAAAD,SAAS,KAAA,IAAA,IAATA,SAAS,uBAATA,SAAS,CAAE/V,QAAO,MAAK+V,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAErW,aAAa,CAAA;UAC3D8K,QAAQ,EAAE,IAAI,CAACyL,UAAU;UACzBtU,WAAW,EAAE,CAAAoU,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEpU,WAAU,KAAK;AAC3C;AACJ,OAAC,CAAC;KACL;AACDuU,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAACvS,MAAM,EAAE;MACzB,IAAMwS,QAAO,GAAI,IAAI,CAAC3K,UAAU,CAAC7H,MAAM,EAAE,QAAQ,CAAC;AAElD,MAAA,IAAI,IAAI,CAACjD,YAAW,IAAK,CAACyV,QAAQ,EAAE;QAChC,IAAM7K,KAAI,GAAI,IAAI,CAACE,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC;AAE9C,QAAA,IAAI,IAAI,CAACjD,YAAW,KAAM,WAAW,EAAE;AACnC,UAAA,OAAO,IAAI,CAACC,WAAU,KAAM2K,KAAK;AACrC,SAAA,MAAO,IAAI,IAAI,CAAC5K,YAAW,KAAM,SAAS,EAAE;AACxC,UAAA,IAAI,IAAI,CAAC0V,SAAS,CAACzS,MAAM,CAAC,EAAE;YACxB,IAAI0S,WAAU,GAAI,IAAI,CAAC9Y,KAAK,CAAC,IAAI,CAAC+M,QAAO,GAAI,CAAC,CAAC;AAE/C,YAAA,IAAI+L,WAAW,EAAE;AACb,cAAA,IAAMC,mBAAkB,GAAI9J,gBAAgB,CAAC,IAAI,CAACjP,KAAK,CAAC,IAAI,CAAC+M,QAAQ,CAAC,EAAEgB,KAAK,CAAC;AAC9E,cAAA,IAAMiL,oBAAmB,GAAI/J,gBAAgB,CAAC6J,WAAW,EAAE/K,KAAK,CAAC;cAEjE,OAAOgL,wBAAwBC,oBAAoB;AACvD,aAAA,MAAO;AACH,cAAA,OAAO,IAAI;AACf;AACJ,WAAA,MAAO;AACH,YAAA,OAAO,IAAI;AACf;AACJ;AACJ,OAAA,MAAO;AACH,QAAA,OAAO,CAACJ,QAAQ;AACpB;KACH;AACDK,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAAC7S,MAAM,EAAE;AAC1B,MAAA,IAAI,IAAI,CAACyS,SAAS,CAACzS,MAAM,CAAC,EAAE;AACxB,QAAA,IAAIE,KAAI,GAAI,IAAI,CAACyG,QAAQ;QACzB,IAAMgB,KAAI,GAAI,IAAI,CAACE,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC;AAC9C,QAAA,IAAM2S,mBAAkB,GAAI9J,gBAAgB,CAAC,IAAI,CAACjP,KAAK,CAACsG,KAAK,CAAC,EAAEyH,KAAK,CAAC;QACtE,IAAImL,gBAAe,GAAIH,mBAAmB;QAC1C,IAAII,YAAW,GAAI,CAAC;AAEpB,QAAA,IAAI,IAAI,CAACnB,aAAa,EAAEmB,YAAY,EAAE;QAEtC,OAAOJ,mBAAkB,KAAMG,gBAAgB,EAAE;AAC7CC,UAAAA,YAAY,EAAE;UACd,IAAIC,WAAU,GAAI,IAAI,CAACpZ,KAAK,CAAC,EAAEsG,KAAK,CAAC;AAErC,UAAA,IAAI8S,WAAW,EAAE;AACbF,YAAAA,gBAAe,GAAIjK,gBAAgB,CAACmK,WAAW,EAAErL,KAAK,CAAC;AAC3D,WAAA,MAAO;AACH,YAAA;AACJ;AACJ;AAEA,QAAA,OAAOoL,iBAAiB,CAAA,GAAI,IAAG,GAAIA,YAAY;AACnD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDN,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACzS,MAAM,EAAE;MACd,IAAM2H,KAAI,GAAI,IAAI,CAACE,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC;AAE9C,MAAA,IAAI,IAAI,CAAChD,WAAU,IAAK2K,KAAK,EAAE;AAC3B,QAAA,IAAI7N,KAAK,CAACmZ,OAAO,CAAC,IAAI,CAACjW,WAAW,CAAC,EAAE,OAAO,IAAI,CAACA,WAAW,CAACkW,OAAO,CAACvL,KAAK,CAAA,GAAI,EAAE,CAAA,KAC3E,OAAO,IAAI,CAAC3K,WAAU,KAAM2K,KAAK;AAC1C,OAAA,MAAO;AACH,QAAA,OAAO,KAAK;AAChB;KACH;AACDwL,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAAC1R,IAAI,EAAE;MACvB,OAAO,IAAI,CAAC2R,SAAS,CAAC3R,IAAI,EAAE,IAAI,CAAC3F,SAAS,CAAC;KAC9C;AACDsX,IAAAA,SAAS,WAATA,SAASA,CAAC3R,IAAI,EAAE4R,UAAU,EAAE;MACxB,IAAInT,KAAI,GAAI,EAAE;AAEd,MAAA,IAAImT,UAAS,IAAKA,UAAU,CAACxO,MAAM,EAAE;AACjC,QAAA,KAAK,IAAIf,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAIuP,UAAU,CAACxO,MAAM,EAAEf,CAAC,EAAE,EAAE;UACxC,IAAI,IAAI,CAACmO,MAAM,CAACxQ,IAAI,EAAE4R,UAAU,CAACvP,CAAC,CAAC,CAAC,EAAE;AAClC5D,YAAAA,KAAI,GAAI4D,CAAC;AACT,YAAA;AACJ;AACJ;AACJ;AAEA,MAAA,OAAO5D,KAAK;KACf;AACD+R,IAAAA,MAAM,WAANA,QAAMA,CAACqB,KAAK,EAAEC,KAAK,EAAE;AACjB,MAAA,OAAO,IAAI,CAACvX,kBAAiB,KAAM,QAAO,GAAIsX,UAAUC,KAAI,GAAItB,MAAM,CAACqB,KAAK,EAAEC,KAAK,EAAE,IAAI,CAACxZ,OAAO,CAAC;KACrG;AACDyZ,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAClS,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF;AAAQ,OAAC,CAAC;KAC9E;AACDgN,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACnS,KAAK,EAAE;AACd,MAAA,IAAI,CAACC,KAAK,CAAC,WAAW,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAEvG,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KAC9F;AACD+M,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACpS,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAEvG,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACjG;AACDgN,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACrS,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAEvG,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KACnG;AACDiN,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACtS,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAED,KAAK,CAAC;KACpC;AACDuS,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACvS,KAAK,EAAE;AAChB,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEG,IAAI,EAAE,IAAI,CAACgF,OAAO;QAAEvG,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KAChG;AACDmN,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACxS,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDyS,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzS,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEpB,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KAC9E;AACDqN,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC1S,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEpB,KAAK,EAAE,IAAI,CAACyG;AAAS,OAAC,CAAC;KAC7E;AACDsN,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC3S,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACD4S,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAAC5S,KAAK,EAAE;AAChB,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAED,KAAK,CAAC;KACnC;AACD6S,IAAAA,SAAS,EAAA,SAATA,SAASA,CAAC7S,KAAK,EAAE;AACb,MAAA,IAAI,CAACC,KAAK,CAAC,UAAU,EAAED,KAAK,CAAC;KAChC;AACD8S,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC9S,KAAK,EAAE;AACf,MAAA,IAAI,CAACsQ,aAAY,GAAI,CAAC,IAAI,CAACA,aAAa;MAExC,IAAI,CAACrQ,KAAK,CAAC,YAAY,EAAAoO,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAOrO,KAAK,CAAA,EAAA,EAAA,EAAA;QAAE+S,QAAQ,EAAE,IAAI,CAACzC;AAAY,OAAA,CAAG,CAAC;KACvE;AACD0C,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAChT,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAED,KAAK,CAAC;KACpC;AACDiT,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACjT,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACDkT,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAClT,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAED,KAAK,CAAC;KACtC;AACDmT,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACnT,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;AACDoT,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACpT,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAED,KAAK,CAAC;KACxC;AACD+K,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC/K,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDgL,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAChL,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDiL,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACjL,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACDqT,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACrT,KAAK,EAAE;AACvB,MAAA,IAAI,CAACC,KAAK,CAAC,qBAAqB,EAAED,KAAK,CAAC;KAC3C;AACD+L,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACC,MAAM,EAAEsH,OAAO,EAAE;AACpCA,MAAAA,OAAM,GAAIA,WAAW,IAAI,CAAC5N,2BAA2B;AAErD,MAAA,OAAO4N,OAAM,GAAIA,OAAO,CAACtH,MAAM,CAAA,GAAI,IAAI;AAC3C;GACH;AACD5L,EAAAA,QAAQ,EAAE;IACNiF,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAMkO,cAAa,GAAI,IAAI,CAACxH,sBAAsB,CAAC,gBAAgB,CAAC;AAEpE,MAAA,OAAOwH,cAAa,GAAIA,cAAc,CAAC,IAAI,CAAC3U,KAAK,CAAC,CAACA,KAAI,GAAI,IAAI,CAACA,KAAK;KACxE;IACD4U,SAAS,EAAA,SAATA,SAASA,GAAG;AAAA,MAAA,IAAAC,cAAA;AACR,MAAA,OAAA,CAAAA,cAAA,GAAO,IAAI,CAACvX,QAAQ,cAAAuX,cAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,cAAA,CAAA/P,IAAA,CAAA,IAAI,EAAY,IAAI,CAACyB,OAAO,CAAC;KACvC;IACDuO,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,IAAIC,aAAY,GAAI,EAAE;MACtB,IAAIC,mBAAkB,GAAI,IAAI;MAE9B,IAAI,IAAI,CAAC3X,QAAQ,EAAE;QACf,IAAI4X,aAAY,GAAI,IAAI,CAAC5X,QAAQ,CAAC,IAAI,CAACkJ,OAAO,CAAC;AAE/C,QAAA,IAAI0O,aAAa,EAAE;AACfF,UAAAA,aAAa,CAACG,IAAI,CAACD,aAAa,CAAC;AACrC;AACJ;MAEA,IAAI,IAAI,CAAChE,OAAO,EAAE;AAAA,QAAA,IAAAkE,SAAA,GAAAC,4BAAA,CACE,IAAI,CAACnE,OAAO,CAAA;UAAAoE,KAAA;AAAA,QAAA,IAAA;UAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAA3R,CAAA,EAAA,EAAAuB,IAAA,GAA8B;AAAA,YAAA,IAArBiN,GAAE,GAAAqD,KAAA,CAAA3b,KAAA;YACP,IAAI6b,cAAa,GAAI,IAAI,CAAC5N,UAAU,CAACqK,GAAG,EAAE,eAAe,CAAC;AAE1D,YAAA,IAAIwD,UAAU,CAACD,cAAc,CAAC,EAAE;AAC5BP,cAAAA,mBAAkB,GAAIO,cAAc;AACpC,cAAA;AACJ;AACJ;AAAA,SAAA,CAAA,OAAAE,GAAA,EAAA;UAAAN,SAAA,CAAA/R,CAAA,CAAAqS,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAN,UAAAA,SAAA,CAAAhR,CAAA,EAAA;AAAA;AACJ;AAEA,MAAA,OAAO,CAAC,IAAI,CAACmJ,EAAE,CAAC,KAAK,EAAE;QAAE/G,OAAO,EAAE,IAAI,CAACA,OAAO;QAAEvG,KAAK,EAAE,IAAI,CAACyG,QAAQ;AAAEuO,QAAAA,mBAAkB,EAAlBA;OAAqB,CAAC,EAAED,aAAa,CAAC;KAC/G;IACDW,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAI,IAAI,CAAC9Z,cAAc,IAAG,KAAM,IAAI,CAACC,aAAY,KAAM,QAAO,IAAK,IAAI,CAACA,aAAY,KAAM,UAAU,CAAC,EAAE;QACnG,OAAO,IAAI,CAAC4K,QAAO,KAAM,CAAA,GAAI,CAAA,GAAI,EAAE;AACvC;AAEA,MAAA,OAAO,EAAE;KACZ;IACDkP,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAI,IAAI,CAACpP,WAAW,IAAI,CAACnJ,WAAW,EAAE;QAClC,IAAI,IAAI,CAACvD,OAAO,EAAE,OAAO,IAAI,CAACwX,cAAa,GAAI,IAAI,CAACA,cAAc,CAAC1I,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAC,CAAA,KAAMmB,SAAQ,GAAI,KAAK,CAAA,KACjI,OAAO,IAAI,CAACkY,SAAS,CAAC,IAAI,CAAC3M,OAAO,EAAE,IAAI,CAACnJ,WAAW,CAAA,GAAI,EAAE;AACnE;AAEA,MAAA,OAAO,KAAK;KACf;IACDwY,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAI,IAAI,CAAC7Y,uBAAuB,IAAI,CAACC,iBAAiB,EAAE;QACpD,IAAM6Y,eAAc,GAAIlN,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACzJ,WAAW,CAAC;QAExE,OAAO,IAAI,CAACE,iBAAiB,CAACgW,OAAO,CAAC6C,eAAe,CAAA,GAAI,EAAE;AAC/D;AAEA,MAAA,OAAO,KAAK;KACf;IACDzD,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,IAAI,IAAI,CAAC7L,OAAM,IAAK,IAAI,CAAC3K,SAAS,EAAE;QAChC,IAAI,IAAI,CAAC/B,OAAO,EAAE;UACd,OAAO,IAAI,CAACsX,aAAY,GAAI,IAAI,CAACA,aAAa,CAACxI,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAC,CAAA,KAAMmB,SAAQ,GAAI,KAAK;AACtH,SAAA,MAAO;AACH,UAAA,IAAI,IAAI,CAACY,qBAAqBhC,KAAK,EAAE,OAAO,IAAI,CAACqZ,oBAAoB,CAAC,IAAI,CAAC1M,OAAO,CAAA,GAAI,EAAE,CAAA,KACnF,OAAO,IAAI,CAACwL,MAAM,CAAC,IAAI,CAACxL,OAAO,EAAE,IAAI,CAAC3K,SAAS,CAAC;AACzD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;IACDka,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,IAAI,IAAI,CAACvP,OAAM,IAAK,IAAI,CAACtK,oBAAoB,EAAE;AAC3C,QAAA,OAAO,IAAI,CAAC8V,MAAM,CAAC,IAAI,CAACxL,OAAO,EAAE,IAAI,CAACtK,oBAAoB,EAAE,IAAI,CAACpC,OAAO,CAAC;AAC7E;AAEA,MAAA,OAAO,KAAK;KACf;IACDkc,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAMtD,sBAAsB9J,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACzJ,WAAW,CAAC;MAC5E,IAAM0V,WAAU,GAAI,IAAI,CAAC9Y,KAAK,CAAC,IAAI,CAAC+M,QAAO,GAAI,CAAC,CAAC;AAEjD,MAAA,IAAI+L,WAAW,EAAE;QACb,IAAME,oBAAmB,GAAI/J,gBAAgB,CAAC6J,WAAW,EAAE,IAAI,CAAC1V,WAAW,CAAC;QAE5E,OAAO2V,wBAAwBC,oBAAoB;AACvD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;IACDsD,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACjZ,mBAAkB,IAAK,CAAC,IAAI,CAAC6Y,kBAAkB,EAAE;AACtD,QAAA,OAAO,KAAK;AAChB,OAAA,MAAO;QACH,IAAInD,mBAAkB,GAAI9J,gBAAgB,CAAC,IAAI,CAACpC,OAAO,EAAE,IAAI,CAACzJ,WAAW,CAAC;QAC1E,IAAIgW,WAAU,GAAI,IAAI,CAACpZ,KAAK,CAAC,IAAI,CAAC+M,QAAO,GAAI,CAAC,CAAC;AAE/C,QAAA,IAAIqM,WAAW,EAAE;UACb,IAAIF,gBAAe,GAAIjK,gBAAgB,CAACmK,WAAW,EAAE,IAAI,CAAChW,WAAW,CAAC;UAEtE,OAAO2V,wBAAwBG,gBAAgB;AACnD,SAAA,MAAO;AACH,UAAA,OAAO,IAAI;AACf;AACJ;KACH;IACDqD,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAA9M,MAAA,GAAA,IAAA;MACZ,IAAI,IAAI,CAAC8H,OAAO,EAAE;QACd,IAAIiF,eAAc,GAAI,CAAC;AAEvB,QAAA,IAAI,CAACjF,OAAO,CAACkF,OAAO,CAAC,UAACrW,MAAM,EAAK;UAC7B,IAAIqJ,MAAI,CAACxB,UAAU,CAAC7H,MAAM,EAAE,QAAQ,CAAC,EAAEoW,eAAe,EAAE;AAC5D,SAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAACjF,OAAO,CAACtM,MAAK,GAAIuR,eAAe;AAChD;AAEA,MAAA,OAAO,CAAC;AACZ;GACH;AACDlU,EAAAA,UAAU,EAAE;AACRoU,IAAAA,UAAU,EAAEC,QAAQ;AACpBtH,IAAAA,eAAe,EAAEA,eAAe;AAChCC,IAAAA,gBAAgB,EAAEA;AACtB;AACJ,CAAC;;;;;;;;;;;;;;;;;;UCrlBoBzO,MAAA,CAAA2Q,KAAK,iBAAtB3B,kBAAA,CAqFUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CApFII,MAAA,CAAA+Q,SAAS,CAAA,aAAA,CAAA,IAAmB/Q,MAAA,CAAA1D,YAAW,KAAA,WAAA,IAAqB2F,QAAA,CAAAuT,0BAA0B,IAAhGlT,SAAA,EAAA,EAAA0M,kBAAA,CAaI,MAbJtM,UAAA,CAaI;;AAb+F,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,gBAAA,CAAA;IAAqBhO,KAAK,EAAEiB,MAAA,CAAA6Q,mBAAmB;AAAE5B,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,gBAAA,CAAA,CAAA,EAAA,CAC/KwV,kBAAA,CAWI,MAXJrT,UAAA,CAWI;AAXCyM,IAAAA,OAAO,EAAElN,QAAA,CAAAyT,aAAY,GAAA;AAAoB,GAAA,EAAAxG,eAAA,CAAAA,eAAA,KAAAjN,QAAA,CAAAtC,WAAW,eAAiBqC,IAAA,CAAAzB,GAAG,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAA,CAC3DP,MAAA,CAAAxD,mBAAmB,IAAjC8F,SAAA,EAAA,EAAA0M,kBAAA,CAQQ,UARRtM,UAAA,CAQQ;;AAR4B,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,iBAAA,CAAA;IAAsBzD,OAAK;aAAErH,QAAA,CAAA8Q,gBAAA,IAAA9Q,QAAA,CAAA8Q,gBAAA,CAAAtU,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAgB;AAAA,KAAA,CAAA;AAAEzM,IAAAA,IAAI,EAAC;KAAiB4I,IAAA,CAAAzB,GAAG,CAAA,iBAAA,CAAA,CAAA,EAAA,CAChGP,MAAA,CAAA+Q,SAAS,qBAAqB/Q,MAAA,CAAA+Q,SAAS,CAAA,qBAAA,CAAA,iBAAxDnP,WAAA,CAAsLW,uBAAA,CAAhGvC,MAAA,CAAA+Q,SAAS,CAAA,eAAA,CAAA,IAAqB/Q,MAAA,CAAA+Q,SAAS,CAAA,qBAAA,CAAA,CAAA,EAAA;;IAA0B6C,QAAQ,EAAE3R,QAAA,CAAAoT;6CACjKrG,kBAAA,CAKUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAJMqC,QAAA,CAAAoT,kBAAiB,IAAKrV,MAAA,CAAA5D,eAAe,IAAjDkG,SAAA,EAAA,EAAA0M,kBAAA,CAAkI,QAAlItM,UAAA,CAAkI;;IAA9E,OAAA,EAAK,CAAGV,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,EAAmB/M,MAAA,CAAA5D,eAAe;KAAW4F,IAAA,CAAAzB,GAAG,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAClF0B,QAAA,CAAAoT,kBAAiB,KAAMrV,MAAA,CAAA5D,eAAe,IAAlEkG,SAAA,EAAA,EAAAV,WAAA,CAAgIwO,4BAAhI1N,UAAA,CAAgI;;AAA3D,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,eAAA;KAA2B/K,IAAA,CAAAzB,GAAG,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAC1F,CAAA0B,QAAA,CAAAoT,kBAAiB,IAAKrV,MAAA,CAAA3D,gBAAgB,IAAxDiG,SAAA,EAAA,EAAA0M,kBAAA,CAA0I,QAA1ItM,UAAA,CAA0I;;IAA/E,OAAA,EAAK,CAAGV,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,EAAmB/M,MAAA,CAAA3D,gBAAgB;KAAW2F,IAAA,CAAAzB,GAAG,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IACxF,CAAA0B,QAAA,CAAAoT,kBAAiB,KAAMrV,MAAA,CAAA3D,gBAAgB,IAArEiG,SAAA,EAAA,EAAAV,WAAA,CAAmIyO,6BAAnI3N,UAAA,CAAmI;;AAA3D,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,eAAA;KAA2B/K,IAAA,CAAAzB,GAAG,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,gFAGvH+B,SAAA,EAAA,EAAAV,WAAA,CAA6EW,wBAA7DvC,MAAA,CAAA+Q,SAAS,CAAA,aAAA,CAAA,CAAA,EAAA;IAAkB/P,IAAI,EAAEhB,MAAA,CAAAgG,OAAO;IAAGvG,KAAK,EAAEwC,QAAA,CAAAiE;6FAIhE,CAAAlG,MAAA,CAAAxD,sBAAsByF,QAAA,CAAAoT,8BADhC/S,SAAA,EAAA,EAAA0M,kBAAA,CA2DI,MA3DJtM,UAAA,CA2DI;;IAzDC,OAAA,EAAOT,QAAA,CAAAsS,UAAU;IACjBxV,KAAK,EAAEkD,QAAA,CAAAoS,SAAS;IAChB2B,QAAQ,EAAE/T,QAAA,CAAAkT,WAAW;AACtBlG,IAAAA,IAAI,EAAC,KAAI;IACR,eAAa,EAAEjP,MAAA,CAAA1E,gBAAgB2G,QAAA,CAAA4P,UAAS,GAAA,IAAA;IACxCvI,OAAK;aAAErH,QAAA,CAAA+Q,UAAA,IAAA/Q,QAAA,CAAA+Q,UAAA,CAAAvU,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAU;AAAA,KAAA,CAAA;IACjBoQ,UAAQ;aAAEhU,QAAA,CAAAgR,aAAA,IAAAhR,QAAA,CAAAgR,aAAA,CAAAxU,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAa;AAAA,KAAA,CAAA;IACvBqQ,aAAW;aAAEjU,QAAA,CAAAiR,eAAA,IAAAjR,QAAA,CAAAiR,eAAA,CAAAzU,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAe;AAAA,KAAA,CAAA;IAC5BsQ,UAAQ;aAAElU,QAAA,CAAAkR,aAAA,IAAAlR,QAAA,CAAAkR,aAAA,CAAA1U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAa;AAAA,KAAA,CAAA;AACvBwJ,IAAAA,SAAO;aAAOpN,QAAA,CAAAmR,YAAA,IAAAnR,QAAA,CAAAmR,YAAA,CAAA3U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAY;AAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAC1BuQ,WAAS;aAAEnU,QAAA,CAAAoR,cAAA,IAAApR,QAAA,CAAAoR,cAAA,CAAA5U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAc;AAAA,KAAA,CAAA;IACzBwQ,WAAS;aAAEpU,QAAA,CAAAqR,cAAA,IAAArR,QAAA,CAAAqR,cAAA,CAAA7U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAc;AAAA,KAAA,CAAA;IACzByQ,UAAQ;aAAErU,QAAA,CAAAsR,aAAA,IAAAtR,QAAA,CAAAsR,aAAA,CAAA9U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAa;AAAA,KAAA,CAAA;IACvB0Q,WAAS;aAAEtU,QAAA,CAAAuR,cAAA,IAAAvR,QAAA,CAAAuR,cAAA,CAAA/U,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAc;AAAA,KAAA,CAAA;IACzB2Q,SAAO;aAAEvU,QAAA,CAAAwR,YAAA,IAAAxR,QAAA,CAAAwR,YAAA,CAAAhV,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAY;AAAA,KAAA,CAAA;IACrB4Q,MAAI;aAAExU,QAAA,CAAAyR,SAAA,IAAAzR,QAAA,CAAAyR,SAAA,CAAAjV,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAS;KAAA;KACR5D,QAAA,CAAAyP,mBAAmB,CAAA,SAAA,CAAA,EAAA;IAC1B,cAAY,EAAEzP,QAAA,CAAAiE,QAAQ;AACtB,IAAA,uBAAqB,EAAElG,MAAA,CAAA1E;AACvB,IAAA,iBAAe,EAAE0E,MAAA,CAAA3E,aAAa4G,QAAA,CAAA4P,UAAU;AACxC,IAAA,6BAA2B,EAAE7R,MAAA,CAAAtE,oBAAmB,IAAKuG,QAAA,CAAAsT;QAEtDjT,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAkCUQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CAlCmB1W,MAAA,CAAA0Q,OAAO,EAAA,UAAlBe,GAAG,EAAEpO,CAAC,EAAA;4DAEVpB,QAAA,CAAA6P,oBAAoB,CAACL,GAAG,CAAA,iBADlC7P,WAAA,CAgCC+U,qBAAA,EAAA;AA9BI/W,MAAAA,GAAG,EAAEqC,mBAAU,CAACwP,GAAG,kBAAkBxP,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,OAAA,CAAA,IAAcpO,CAAC;MAClE2C,OAAO,EAAEhG,MAAA,CAAAgG,OAAO;AAChBzG,MAAAA,MAAM,EAAEkS,GAAG;MACXvL,QAAQ,EAAEjE,QAAA,CAAAiE,QAAQ;AAClBzG,MAAAA,KAAK,EAAE4D,CAAC;MACR+C,QAAQ,EAAEnE,QAAA,CAAA4P,UAAU;MACpB5L,SAAS,EAAEjG,MAAA,CAAAiG,SAAS;AACpBmJ,MAAAA,OAAO,EAAEpP,MAAA,CAAA1D,YAAW,KAAA,SAAA,GAAkB2F,QAAA,CAAAmQ,qBAAqB,CAACX,GAAG,CAAA,GAAA,IAAA;MAC/D7U,QAAQ,EAAEoD,MAAA,CAAApD,QAAQ;MAClByJ,OAAO,EAAErG,MAAA,CAAApD,sBAAsBqF,QAAA,CAAAmT,YAAY;MAC3C9O,WAAW,EAAEtG,MAAA,CAAAsG,WAAW;MACxBC,2BAA2B,EAAEvG,MAAA,CAAAuG,2BAA2B;MACxDC,YAAY,EAAExG,MAAA,CAAAiR,sBAAsBhP,QAAA,CAAAiE,QAAO,GAAA,YAAA;MAC3ClN,IAAI,EAAEgH,MAAA,CAAAkR,qBAAqB;MAC3B/K,aAAa,EAAEjG,KAAA,CAAAiR,aAAa;MAC5B/U,eAAe,EAAE4D,MAAA,CAAA5D,eAAe;MAChCC,gBAAgB,EAAE2D,MAAA,CAAA3D,gBAAgB;MAClCsC,eAAe,EAAEqB,MAAA,CAAArB,eAAe;MAChCkV,aAAY,EAAE5R,QAAA,CAAA4R,aAAa;MAC3BC,gBAAe,EAAE7R,QAAA,CAAA6R,gBAAgB;MACjCH,WAAU,EAAE1R,QAAA,CAAA0R,WAAW;MACvBI,cAAc,EAAE9R,QAAA,CAAA8R,cAAc;MAC9BC,kBAAkB,EAAE/R,QAAA,CAAA+R,kBAAkB;MACtCC,gBAAgB,EAAEhS,QAAA,CAAAgS,gBAAgB;MAClCrI,aAAa,EAAE3J,QAAA,CAAA2J,aAAa;MAC5BC,aAAa,EAAE5J,QAAA,CAAA4J,aAAa;MAC5BC,eAAe,EAAE7J,QAAA,CAAA6J,eAAe;MAChCoI,mBAAmB,EAAEjS,QAAA,CAAAiS,mBAAmB;MACxChS,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;MAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;iEAIPX,MAAA,CAAA+Q,SAAS,CAAA,WAAA,CAAA,IAAiB/Q,MAAA,CAAA7D,gBAAgB+D,KAAA,CAAAiR,aAAa,IAAjE7O,SAAA,EAAA,EAAA0M,kBAAA,CAII,MAJJtM,UAAA,CAII;;IAJgEkU,EAAE,EAAE5W,MAAA,CAAAiR,aAAY,GAAA,GAAA,GAAUhP,QAAA,CAAAiE,QAAO,GAAA,YAAA;AAAmB,IAAA,OAAA,EAAOlE,IAAA,CAAA+K,EAAE,CAAA,cAAA,CAAA;AAAkBkC,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,cAAA,CAAA,CAAA,EAAA,CACrKwV,kBAAA,CAEI,IAAA,EAFJrT,WAEI;IAFCyM,OAAO,EAAElN,QAAA,CAAAyT;AAAa,GAAA,EAAAxG,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAejN,QAAA,CAAAtC,WAAW,CAAA,UAAA,CAAA,CAAA,EAAiBqC,IAAA,CAAAzB,GAAG,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,EACrE+B,SAAA,EAAA,EAAAV,WAAA,CAA2EW,wBAA3DvC,MAAA,CAAA+Q,SAAS,CAAA,WAAA,CAAA,CAAA,EAAA;IAAgB/P,IAAI,EAAEhB,MAAA,CAAAgG,OAAO;IAAGvG,KAAK,EAAEwC,QAAA,CAAAiE;uGAG9DlG,MAAA,CAAA+Q,SAAS,CAAA,aAAA,CAAA,IAAmB/Q,MAAA,CAAA1D,gCAAgC2F,QAAA,CAAAwT,0BAA0B,IAAhGnT,SAAA,EAAA,EAAA0M,kBAAA,CAII,MAJJtM,UAAA,CAII;;AAJ+F,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,gBAAA,CAAA;AAAoBkC,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,gBAAA,CAAA,CAAA,EAAA,CAClJwV,kBAAA,CAEI,MAFJrT,UAAA,CAEI;AAFCyM,IAAAA,OAAO,EAAElN,QAAA,CAAAyT,aAAY,GAAA;AAAoB,GAAA,EAAAxG,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,eAAiBqC,IAAA,CAAAzB,GAAG,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAA,EACzE+B,SAAA,EAAA,EAAAV,WAAA,CAA6EW,wBAA7DvC,MAAA,CAAA+Q,SAAS,CAAA,aAAA,CAAA,CAAA,EAAA;IAAkB/P,IAAI,EAAEhB,MAAA,CAAAgG,OAAO;IAAGvG,KAAK,EAAEwC,QAAA,CAAAiE;oGAI9E5D,SAAA,EAAA,EAAA0M,kBAAA,CAII,MAJJtM,UAAA,CAII;;AAJQ,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,cAAA,CAAA;AAAkBkC,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,cAAA,CAAA,CAAA,EAAA,CACzDwV,kBAAA,CAEI,IAAA,EAFJrT,WAEI;IAFCyM,OAAO,EAAElN,QAAA,CAAAyT;AAAa,GAAA,EAAAxG,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAejN,QAAA,CAAAtC,WAAW,CAAA,UAAA,CAAA,CAAA,EAAiBqC,IAAA,CAAAzB,GAAG,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,CACpDP,MAAA,CAAA+Q,SAAS,CAACJ,KAAK,iBAAhC/O,WAAA,CAAyDW,uBAAA,CAAlBvC,MAAA,CAAA+Q,SAAS,CAACJ,KAAK,CAAA,EAAA;AAAA/Q,IAAAA,GAAA,EAAA;AAAA,GAAA,CAAA;;;;;ACXlE,eAAe;AACX5G,EAAAA,IAAI,EAAE,WAAW;AACjBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CACH,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,qBAAoB,CACvB;AACDnG,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDqX,IAAAA,OAAO,EAAE;AACLtX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD6M,IAAAA,SAAS,EAAE;AACP7M,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6W,IAAAA,KAAK,EAAE;AACHvX,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDwC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDgD,IAAAA,mBAAmB,EAAE;AACjBpD,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2C,IAAAA,iBAAiB,EAAE;AACfrD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDM,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDJ,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACD4C,IAAAA,eAAe,EAAE;AACbhD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8C,IAAAA,gBAAgB,EAAE;AACdjD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4C,IAAAA,YAAY,EAAE;AACV/C,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPjC,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEa,MAAM,CAAC;MACrB,SAAA,EAAS;KACZ;AACD0W,IAAAA,aAAa,EAAE;AACXxX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDkC,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqC,IAAAA,QAAQ,EAAE;AACNxC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2B,IAAAA,WAAW,EAAE;AACTrC,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD4B,IAAAA,oBAAoB,EAAE;AAClBtC,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD4C,IAAAA,QAAQ,EAAE;AACN1D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD2D,IAAAA,QAAQ,EAAE;AACN3D,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDwD,IAAAA,QAAQ,EAAE;AACNxD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChBnC,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDsD,IAAAA,WAAW,EAAE;AACTzD,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDyX,IAAAA,cAAc,EAAE;AACZ1X,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDkN,IAAAA,WAAW,EAAE;AACTlN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD6W,IAAAA,SAAS,EAAE;AACP3X,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD4D,IAAAA,UAAU,EAAE;AACR5D,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6E,IAAAA,eAAe,EAAE;AACbvF,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqM,IAAAA,2BAA2B,EAAE;AACzBnN,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8W,IAAAA,yBAAyB,EAAE;AACvB5X,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;AACb;GACH;EACDkH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH6V,MAAAA,yBAAyB,EAAE;KAC9B;GACJ;EACD1P,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAAClB,SAAS,EAAE;MAChB,IAAI,CAAC6Q,6BAA6B,EAAE;AACxC;IAEA,IAAI,IAAI,CAAC9Z,UAAS,IAAK,IAAI,CAACV,YAAW,KAAM,WAAW,EAAE;MACtD,IAAI,CAACya,wCAAwC,EAAE;AACnD;GACH;EACDzP,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAACrB,SAAS,EAAE;MAChB,IAAI,CAAC6Q,6BAA6B,EAAE;AACxC;IAEA,IAAI,IAAI,CAAC9Z,UAAS,IAAK,IAAI,CAACV,YAAW,KAAM,WAAW,EAAE;MACtD,IAAI,CAACya,wCAAwC,EAAE;AACnD;GACH;AACDrX,EAAAA,OAAO,EAAE;AACLsX,IAAAA,SAAS,WAATA,SAASA,CAAChR,OAAO,EAAEE,QAAQ,EAAE;AACzB,MAAA,OAAO,IAAI,CAAC5M,OAAM,GAAI8O,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAA,GAAI4M,QAAQ;KAC3E;IACD4Q,6BAA6B,EAAA,SAA7BA,6BAA6BA,GAAG;AAC5B,MAAA,IAAI,CAACnP,GAAG,CAAC5I,KAAK,CAACkY,GAAE,GAAIC,cAAc,CAAC,IAAI,CAACvP,GAAG,CAAC0D,sBAAsB,CAAA,GAAI,IAAI;KAC9E;IACD0L,wCAAwC,EAAA,SAAxCA,wCAAwCA,GAAG;MACvC,IAAII,iBAAgB,GAAID,cAAc,CAAC,IAAI,CAACvP,GAAG,CAAC0D,sBAAsB,CAAC;AAEvE,MAAA,IAAI,CAACwL,yBAAyB,CAACI,GAAE,GAAIE,iBAAgB,GAAI,IAAI;KAChE;AACDvK,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACC,MAAM,EAAEsH,OAAO,EAAE;AACpCA,MAAAA,OAAM,GAAIA,WAAW,IAAI,CAAC5N,2BAA2B;AAErD,MAAA,OAAO4N,OAAM,GAAIA,OAAO,CAACtH,MAAM,CAAA,GAAI,IAAI;KAC1C;AACDuK,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACC,EAAE,EAAE;AACR;AACA,MAAA,IAAMC,UAAS,GAAI,IAAI,CAAC1K,sBAAsB,CAAC,YAAY,CAAC;AAE5D0K,MAAAA,UAAS,IAAKA,UAAU,CAACD,EAAE,CAAC;AAChC;GACH;AACDpW,EAAAA,QAAQ,EAAE;IACN4P,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAAC7T,UAAU,EAAE;QACjB,OAAO;AAAEia,UAAAA,GAAG,EAAE,IAAI,CAACJ,yBAAyB,CAACI;SAAK;AACtD;AAEA,MAAA,OAAO,IAAI;KACd;IACDM,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC3K,sBAAsB,CAAC,cAAc,CAAC;KACrD;IACD4K,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAtP,qBAAA;MACd,OAAO;AACH/H,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAAkL,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuClL;AACvD;OACH;KACJ;IACDya,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAOC,EAAE,CAAC;AACNC,QAAAA,SAAS,EAAE,IAAI,CAAC/b,QAAO,IAAK,IAAI,CAACN,aAAa;QAC9Csc,MAAM,EAAE,IAAI,CAAC3R;AACjB,OAAC,CAAC;AACN;GACH;AACDxE,EAAAA,UAAU,EAAE;AACRoW,IAAAA,SAAS,EAAEC;AACf;AACJ,CAAC;;;;;EClTG,OAAAxV,SAAA,EAAA,EAAA0M,kBAAA,CAmEO,SAnEPtM,UAAA,CAmEO;IAnECqV,GAAG,EAAE9V,QAAA,CAAAmV,OAAO;AAAG,IAAA,OAAA,EAAOpV,IAAA,CAAA+K,EAAE,CAAA,OAAA,CAAA;AAAWkC,IAAAA,IAAI,EAAC,UAAS;IAAGlQ,KAAK,EAAEkD,QAAA,CAAAsV,gBAAgB;IAAG,QAAM,EAAEtV,QAAA,CAAAwV;GAAe,EAAAzV,IAAA,CAAAzB,GAAG,UAAU0B,QAAA,CAAAuV,eAAe,CAAA,CAAA,EAAA,EACpHxX,MAAA,CAAA2Q,KAAK,IAClBrO,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CA8DUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;GAAA,EAAA8W,UAAA,CA9D8B1W,MAAA,CAAA7G,KAAK,EAAA,UAA3B6M,OAAO,EAAEE,QAAQ,EAAA;wBAC/BtE,WAAA,CA4DCoW,oBAAA,EAAA;WA7DgD/V,QAAA,CAAA+U,SAAS,CAAChR,OAAO,EAAEE,QAAQ,CAAA;AAEvEF,MAAAA,OAAO,EAAEA,OAAO;AAChBvG,MAAAA,KAAK,EAAEyG,QAAQ;MACf/M,KAAK,EAAE6G,MAAA,CAAA7G,KAAK;MACZuX,OAAO,EAAE1Q,MAAA,CAAA0Q,OAAO;MAChBzK,SAAS,EAAEjG,MAAA,CAAAiG,SAAS;MACpB0K,KAAK,EAAE3Q,MAAA,CAAA2Q,KAAK;MACZhX,KAAK,EAAEqG,MAAA,CAAArG,KAAK;MACZL,OAAO,EAAE0G,MAAA,CAAA1G,OAAO;MAChB+B,SAAS,EAAE2E,MAAA,CAAA3E,SAAS;MACpBuV,aAAa,EAAE5Q,MAAA,CAAA4Q,aAAa;MAC5BtV,aAAa,EAAE0E,MAAA,CAAA1E,aAAa;MAC5BG,WAAW,EAAEuE,MAAA,CAAAvE,WAAW;MACxBC,oBAAoB,EAAEsE,MAAA,CAAAtE,oBAAoB;MAC1CY,YAAY,EAAE0D,MAAA,CAAA1D,YAAY;MAC1BC,WAAW,EAAEyD,MAAA,CAAAzD,WAAW;MACxBC,mBAAmB,EAAEwD,MAAA,CAAAxD,mBAAmB;MACxCM,QAAQ,EAAEkD,MAAA,CAAAlD,QAAQ;MAClBC,QAAQ,EAAEiD,MAAA,CAAAjD,QAAQ;MAClBH,QAAQ,EAAEoD,MAAA,CAAApD,QAAQ;MAClBrB,kBAAkB,EAAEyE,MAAA,CAAAzE,kBAAkB;MACtCyB,UAAU,EAAEgD,MAAA,CAAAhD,UAAU;MACtBZ,eAAe,EAAE4D,MAAA,CAAA5D,eAAe;MAChCC,gBAAgB,EAAE2D,MAAA,CAAA3D,gBAAgB;MAClCF,YAAY,EAAE6D,MAAA,CAAA7D,YAAY;MAC1BM,iBAAiB,EAAEuD,MAAA,CAAAvD,iBAAiB;MACpCI,WAAW,EAAEmD,MAAA,CAAAnD,WAAW;MACxBiU,cAAc,EAAE9Q,MAAA,CAAA8Q,cAAc;MAC9BC,SAAS,EAAE/Q,MAAA,CAAA+Q,SAAS;MACpBpS,eAAe,EAAEqB,MAAA,CAAArB,eAAe;MAChC4H,2BAA2B,EAAEvG,MAAA,CAAAuG,2BAA2B;MACxDyK,yBAAyB,EAAEhR,MAAA,CAAAgR,yBAAyB;MACpD1K,WAAW,EAAEtG,MAAA,CAAAsG,WAAW;MACxBuK,mBAAmB,EAAE5O,QAAA,CAAA4O,mBAAmB;MACxCI,aAAa,EAAEjP,IAAA,CAAAiW,GAAG;MAClB/G,qBAAqB,EAAElP,IAAA,CAAAkW,aAAa;AACpCC,MAAAA,gBAAe,EAAAzI,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDqD,MAAAA,UAAS,EAAAtD,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,WAAA,EAAc6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACpCyI,MAAAA,aAAY,EAAA1I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1C0I,MAAAA,eAAc,EAAA3I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9C2I,MAAAA,aAAY,EAAA5I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1C4I,MAAAA,YAAW,EAAA7I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACxC6I,MAAAA,cAAa,EAAA9I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C8I,MAAAA,cAAa,EAAA/I,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C+I,MAAAA,aAAY,EAAAhJ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CgJ,MAAAA,cAAa,EAAAjJ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5CiJ,MAAAA,YAAW,EAAAlJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACxC+D,MAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,UAAA,EAAa6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClCgE,MAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,YAAA,EAAe6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACtCkE,MAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CmE,MAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDoE,MAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9CqE,MAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,oBAAA,EAAuB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACtDsE,MAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClD/D,MAAAA,aAAa,EAAA8D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C9D,MAAAA,aAAa,EAAA6D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C7D,MAAAA,eAAe,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDuE,MAAAA,mBAAmB,EAAAxE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,qBAAA,EAAwB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MACxDzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;MAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;4BAIjBiB,WAAA,CAA0GoW,oBAAA,EAAA;;IAAvFrH,KAAK,EAAE3Q,MAAA,CAAA2Q,KAAK;IAAGD,OAAO,EAAE1Q,MAAA,CAAA0Q,OAAO;IAAGK,SAAS,EAAE/Q,MAAA,CAAA+Q,SAAS;IAAG7O,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAAGvB,EAAE,EAAEqB,IAAA,CAAArB;;;;;;ACtD7G,eAAe;AACX3H,EAAAA,IAAI,EAAE,YAAY;AAClBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;AACb;GACH;EACDsH,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH8F,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACD3H,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAAC1I,MAAM,EAAEyI,IAAI,CAAC;KACzC;AACDrI,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAAsI,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAMtI,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBhC,UAAAA,IAAI,GAAAyK,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,MAAA,IAAA,IAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzK,IAAI;UACjDH,aAAa,EAAE,EAAA6K,sBAAA,GAAA,IAAI,CAAChJ,eAAe,MAAA,IAAA,IAAAgJ,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBhJ,eAAe,MAAA,IAAA,IAAAgJ,sBAAA,uBAArCA,sBAAA,CAAuC7K,kBAAiB;AAC3E;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS;KACtF;IACD4M,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAI8E,KAAI,GAAI,IAAI,CAAC9E,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAI8E,KAAI,KAAM,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIC,IAAG,GAAIC,qBAAqB,CAAC,IAAI,CAAC1E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAIyE,IAAI,EAAE;AACND,YAAAA,GAAE,GAAIG,aAAa,CAACF,IAAI,IAAIG,UAAU,CAACH,IAAI,CAACrN,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC0F,cAAa,GAAIL,GAAE,GAAI,IAAI;AAChD,SAAA,MAAO;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAIM,IAAG,GAAIC,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAI8E,IAAI,EAAE;AACNN,YAAAA,IAAE,GAAIG,aAAa,CAACG,IAAI,CAAA,GAAIF,UAAU,CAACE,IAAI,CAAC1N,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC6F,gBAAe,GAAIR,IAAE,GAAI,IAAI;AAClD;AACJ;AACJ;GACH;AACDlL,EAAAA,QAAQ,EAAE;IACN6L,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAC1F,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC2F,EAAE,CAAC,YAAY,CAAC,CAAC;KAC3F;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,SAAQ,GAAI,IAAI,CAAC7F,UAAU,CAAC,aAAa,CAAC;AAC9C,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAA,GAAI,CAAC8F,WAAW,EAAED,SAAS,EAAE,IAAI,CAACnG,WAAW,CAAA,GAAI,CAACoG,WAAW,EAAED,SAAS,CAAC;AAC5G;AACJ;AACJ,CAAC;;;;;;;;;;ECtGG,OAAA3K,SAAA,EAAA,EAAA0M,kBAAA,CAGI,MAHJtM,UAAA,CAGI;IAHC3D,KAAK,EAAEkD,QAAA,CAAA+K,cAAc;IAAG,OAAA,EAAO/K,QAAA,CAAA6K,cAAc;AAAEmC,IAAAA,IAAI,EAAC,MAAK;AAAGE,IAAAA,OAAO,EAAElN,QAAA,CAAAmF,UAAU,CAAA,SAAA,CAAA;AAAcgI,IAAAA,OAAO,EAAEnN,QAAA,CAAAmF,UAAU,CAAA,SAAA;AAA0B,GAAA,EAAA8H,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,WAAasC,QAAA,CAAAtC,WAAW,CAAA,YAAA,CAAA,CAAA,EAAA;AAAmB,IAAA,sBAAoB,EAAEsC,QAAA,CAAAmF,UAAU,CAAA,QAAA;OAChNpH,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,aAAM,CAACyI,QAAQ,CAACoQ,MAAM,IAA1DvW,SAAA,EAAA,EAAAV,WAAA,CAA2GW,uBAAA,CAA1CvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACoQ,MAAM,CAAA,EAAA;;IAAGtZ,MAAM,EAAES,MAAA,CAAAT;2DACtF0C,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,IAAtB9E,SAAA,EAAA,EAAA0M,kBAAA,CAAmI,QAAnItM,UAAA,CAAmI;;AAAhG,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,cAAA;AAA0B,GAAA,EAAA9K,QAAA,CAAAtC,WAAW,mCAAqBsC,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA;;;;;;;;AC4BxH,eAAe;AACXpO,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACH4f,IAAAA,WAAW,EAAE;AACT1f,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDsX,IAAAA,OAAO,EAAE;AACLtX,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;AACb;GACH;EACD+E,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACH8Z,KAAK,EAAE,IAAI,CAACC,YAAY;MACxBC,QAAQ,EAAE,IAAI,CAACC;KAClB;GACJ;EACDlY,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHgY,YAAY,EAAE,IAAIG,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;AAAM,OAAC,CAAC;MAC5C8f,eAAe,EAAE,IAAIC,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;OAAU;KACpD;GACJ;EACDyO,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,IAAA,IAAI,CAACmR,YAAY,CAAC3a,KAAK,EAAE;AACzB,IAAA,IAAI,CAAC6a,eAAe,CAAC7a,KAAK,EAAE;GAC/B;AACDqB,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDoR,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACxZ,GAAG,EAAE;AAClB,MAAA,IAAMyZ,mBAAkB,GAAI;AACxBngB,QAAAA,KAAK,EAAE,IAAI,CAACogB,mBAAmB,EAAE;AACjCxZ,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACL/G,UAAAA,IAAI,EAAE,QAAQ;AACd4D,UAAAA,UAAU,EAAE,IAAI,CAACuc,eAAe,CAACpZ,OAAO,CAACnD;AAC7C;OACH;MAED,OAAOsD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,cAAA,CAAAC,MAAA,CAAgBZ,GAAG,CAAA,EAAI;AAAEkZ,QAAAA,WAAW,EAAEO;OAAqB,CAAC,EAAE,IAAI,CAAC9Y,GAAG,CAAA,cAAA,CAAAC,MAAA,CAAgBZ,GAAG,CAAA,EAAIyZ,mBAAmB,CAAC,EAAE,IAAI,CAAC5Y,IAAI,CAAC,IAAI,CAAC6Y,mBAAmB,EAAE,EAAE1Z,GAAG,EAAEyZ,mBAAmB,CAAC,CAAC;KAChN;IACDC,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAACR,WAAU,IAAK,IAAI,CAACA,WAAW,CAAC5f,KAAI,IAAK,IAAI,CAAC4f,WAAW,CAAC5f,KAAK,CAACyH,KAAK,IAAI,CAACmY,WAAW,CAAC5f,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KACzH;IACD+e,QAAQ,EAAA,SAARA,QAAQA,CAACC,GAAG,EAAE7Z,GAAG,EAAEH,KAAK,EAAE;AACtB,MAAA,IAAMia,cAAc;QAChBxgB,KAAK,EAAEugB,GAAG,CAACvgB,KAAK;AAChB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAI;AAAE6Z,QAAAA,GAAG,EAAEC;AAAY,OAAC,CAAC,EAAE,IAAI,CAACnZ,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAI8Z,WAAW,CAAC,EAAE,IAAI,CAACjZ,IAAI,CAAC,IAAI,CAACkZ,UAAU,CAACF,GAAG,CAAC,EAAE7Z,GAAG,EAAE8Z,WAAW,CAAC,CAAC;KAC1J;AACDC,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACF,GAAG,EAAE;AACZ,MAAA,OAAOA,GAAG,CAACvgB,SAASugB,GAAG,CAACvgB,KAAK,CAACyH,EAAC,GAAI8Y,GAAG,CAACvgB,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KAC9D;IACDmf,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAC,kBAAA;MACZ,OAAA,CAAAA,kBAAA,GAAO,IAAI,CAACb,YAAY,MAAA,IAAA,IAAAa,kBAAA,uBAAjBA,kBAAA,CAAmBC,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAE,IAAI,CAACA,WAAW,CAACrQ,QAAQ,CAAC;KAC7E;AACDsR,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACN,GAAG,EAAE;AAAA,MAAA,IAAAO,qBAAA;AAClB,MAAA,OAAA,CAAAA,qBAAA,GAAO,IAAI,CAACd,eAAe,cAAAc,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsBF,GAAG,CAACL,GAAG,EAAEA,GAAG,CAAChR,QAAQ,CAAC;AACvD;GACH;AACDxH,EAAAA,QAAQ,EAAE;IACNgZ,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIA,YAAY,KAAK;MAErB,IAAI,IAAI,CAACnB,WAAW,EAAE;AAClBmB,QAAAA,SAAQ,GAAI,IAAI;AACpB,OAAA,MAAO,IAAI,IAAI,CAACvJ,OAAO,EAAE;AAAA,QAAA,IAAAkE,SAAA,GAAAC,4BAAA,CACL,IAAI,CAACnE,OAAO,CAAA;UAAAoE,KAAA;AAAA,QAAA,IAAA;UAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAA3R,CAAA,EAAA,EAAAuB,IAAA,GAA8B;AAAA,YAAA,IAArBiN,GAAE,GAAAqD,KAAA,CAAA3b,KAAA;AACP,YAAA,IAAI,IAAI,CAACiO,UAAU,CAACqK,GAAG,EAAE,QAAQ,CAAA,IAAMA,GAAG,CAAChJ,QAAO,IAAKgJ,GAAG,CAAChJ,QAAQ,CAACoQ,MAAO,EAAE;AACzEoB,cAAAA,SAAQ,GAAI,IAAI;AAChB,cAAA;AACJ;AACJ;AAAA,SAAA,CAAA,OAAA/E,GAAA,EAAA;UAAAN,SAAA,CAAA/R,CAAA,CAAAqS,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAN,UAAAA,SAAA,CAAAhR,CAAA,EAAA;AAAA;AACJ;AAEA,MAAA,OAAOqW,SAAS;KACnB;IACDV,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAArR,qBAAA;MACd,OAAO;AACH/H,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAAkL,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuClL;AACvD;OACH;AACL;GACH;AACDyE,EAAAA,UAAU,EAAE;AACRyY,IAAAA,YAAY,EAAEC;AAClB;AACJ,CAAC;;;;;;;;;;;;SCvIalY,QAAA,CAAAgY,SAAS,IADnB3X,SAAA,EAAA,EAAA0M,kBAAA,CAqBO,SArBPtM,UAAA,CAqBO;;AAnBF,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,OAAA,CAAA;AACThO,IAAAA,KAAK,EAAEiD,IAAA,CAAAoY,EAAE,CAAA,OAAA,CAAA;AACVnL,IAAAA,IAAI,EAAC;KACGjP,MAAA,CAAA8Y,WAAU,GAAA5J,eAAA,CAAAA,eAAA,CAAA,EAAA,EAASlN,QAAG,CAAA,OAAA,EAAUC,QAAA,CAAAsX,eAAe,IAAMtX,QAAA,CAAAmX,gBAAgB,CAAA,MAAA,CAAA,CAAA,GAAapX,IAAA,CAAAzB,GAAG,CAAA,OAAA,EAAU0B,QAAA,CAAAsX,eAAe,CAAA,EAAA;AACrH,IAAA,mBAAiB,GAAAc,oBAAA,GAAErY,IAAA,CAAA7C,eAAe,cAAAkb,oBAAA,KAAA,MAAA,IAAA,CAAAA,oBAAA,GAAfA,oBAAA,CAAiBlb,eAAe,MAAA,IAAA,IAAAkb,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,oBAAA,CAAkCrd,UAAU;AAChE,IAAA,iBAAe,EAAC;QAELgD,MAAA,CAAA8Y,WAAW,IAAtBxW,SAAA,EAAA,EAAA0M,kBAAA,CAII,MAJJtM,UAAA,CAII;;AAJoBuM,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,WAAA,CAAA,CAAA,EAAA,EAC1C+B,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAEUQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CAFmB1W,MAAA,CAAA0Q,OAAO,EAAA,UAAlBe,GAAG,EAAEpO,CAAC,EAAA;;AAAoBzD,MAAAA,GAAA,EAAAqC,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkBxP,mBAAU,CAACwP,GAAG,cAAcpO;QAC/E,CAAApB,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,iBAAnC7P,WAAA,CAAwE0Y,uBAAA,EAAA;;AAAvB/a,MAAAA,MAAM,EAAEkS,GAAG;MAAG9Q,EAAE,EAAEqB,IAAA,CAAArB;;sBAIvE2B,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAIIQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA8W,UAAA,CAJmBzU,QAAA,CAAA2X,aAAa,EAAA,EAAA,UAAxBH,GAAG,EAAEpW,CAAC,EAAA;IAAlB,OAAAf,SAAA,EAAA,EAAA0M,kBAAA,CAII,MAJJtM,UAAA,CAII;AAJqC9C,MAAAA,GAAG,EAAEyD,CAAC;AAAE4L,MAAAA,IAAI,EAAC;AAAmB,KAAA,EAAA;AAAAsL,MAAAA,OAAA,EAAA;KAAA,EAAArL,eAAA,CAAAA,eAAA,KAAAlN,IAAA,CAAAzB,GAAG,CAAA,WAAA,CAAA,GAAkB0B,QAAA,CAAAuX,QAAQ,CAACC,GAAG,UAAUpW,CAAC,CAAA,CAAA,CAAA,EAAA,EACjHf,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAEUQ,2BAFmBvN,QAAA,CAAA8X,gBAAgB,CAACN,GAAG,CAAA,EAAA,UAA/BhI,GAAG,EAAE+I,CAAC,EAAA;;AAAkC5a,QAAAA,GAAA,EAAAqC,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkBxP,mBAAU,CAACwP,GAAG,cAAc+I;UAC7F,CAAAvY,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,iBAAnC7P,WAAA,CAAmF0Y,uBAAA,EAAA;;AAAlC/a,QAAAA,MAAM,EAAEkS,GAAG;AAAGhS,QAAAA,KAAK,EAAE4D,CAAC;QAAG1C,EAAE,EAAEqB,IAAA,CAAArB;;;;;;;;;;;;;;AC0JlG,eAAe;AACX3H,EAAAA,IAAI,EAAE,cAAc;AACpBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC;AACrJnG,EAAAA,KAAK,EAAE;AACHgO,IAAAA,KAAK,EAAE;AACH9N,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDH,IAAAA,IAAI,EAAE;AACFA,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDkhB,IAAAA,OAAO,EAAE;AACLrhB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDmhB,IAAAA,QAAQ,EAAE;AACNthB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6gB,IAAAA,SAAS,EAAE;AACPvhB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDqhB,IAAAA,YAAY,EAAE;AACVxhB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD+gB,IAAAA,eAAe,EAAE;AACbzhB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDghB,IAAAA,eAAe,EAAE;AACb1hB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDihB,IAAAA,cAAc,EAAE;AACZ3hB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDkhB,IAAAA,aAAa,EAAE;AACX5hB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDmhB,IAAAA,gBAAgB,EAAE;AACd7hB,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACD6hB,IAAAA,cAAc,EAAE;AACZ9hB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDyhB,IAAAA,aAAa,EAAE;AACX/hB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACD4hB,IAAAA,oBAAoB,EAAE;AAClBhiB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACD6hB,IAAAA,oBAAoB,EAAE;AAClBjiB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACD8hB,IAAAA,mBAAmB,EAAE;AACjBliB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACD+hB,IAAAA,mBAAmB,EAAE;AACjBniB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDgiB,IAAAA,kBAAkB,EAAE;AAChBpiB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDiiB,IAAAA,qBAAqB,EAAE;AACnBriB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDkiB,IAAAA,wBAAwB,EAAE;AACtBtiB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDmiB,IAAAA,uBAAuB,EAAE;AACrBviB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;KACZ;AACDyB,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0hB,IAAAA,YAAY,EAAE;AACVxiB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD2hB,IAAAA,eAAe,EAAE;AACbziB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuiB,IAAAA,eAAe,EAAE;AACb1iB,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDyE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDmG,IAAAA,MAAM,EAAE;GACX;EACDyB,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH+a,MAAAA,cAAc,EAAE,KAAK;AACrBC,MAAAA,gBAAgB,EAAE,IAAI;AACtBC,MAAAA,eAAe,EAAE;KACpB;GACJ;AACDC,EAAAA,OAAO,EAAE,IAAI;AACbxV,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,oBAAoB,EAAE,IAAI;EAC1BkB,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,IAAI,CAAClB,oBAAoB,EAAE;MAC3BmB,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC;IAEA,IAAI,IAAI,CAACuV,OAAO,EAAE;AACdC,MAAAA,MAAM,CAAC9d,KAAK,CAAC,IAAI,CAAC6d,OAAO,CAAC;MAC1B,IAAI,CAACE,aAAa,EAAE;AACxB;GACH;EACDjV,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAAClM,OAAM,IAAK,IAAI,CAACA,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,EAAE;MAC1C,IAAImV,eAAe,IAAI,CAACphB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC;MAE3C,IAAImV,YAAY,CAACC,QAAQ,EAAE;QACvB,IAAI,CAACN,gBAAe,GAAIK,YAAY,CAACE,WAAW,CAAC,CAAC,CAAC,CAAC5B,SAAS;AAC7D,QAAA,IAAI,CAACsB,eAAc,GAAII,YAAY,CAACC,QAAQ;AAChD,OAAA,MAAO;AACH,QAAA,IAAI,CAACN,gBAAe,GAAI,IAAI,CAAC/gB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACyT,SAAS;AAC9D;AACJ;GACH;AACDjb,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,WAAXA,WAAWA,CAACC,GAAG,EAAE4c,MAAM,EAAE;MACrB,IAAM3c;AACF3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;AAChB;AAAC,OAAA,EACEsc,MAAK,CACX;MAED,OAAOlc,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,KAAI,IAAK,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS;KACtF;AACDgiB,IAAAA,0BAA0B,EAAA,SAA1BA,0BAA0BA,CAAC9B,SAAS,EAAE;MAClC,OAAO;AACHxa,QAAAA,OAAO,EAAE;UACLuc,WAAW,EAAE/B,SAAQ,IAAK,IAAI,CAACgC,sBAAsB,CAAChC,SAAS,CAACxhB,KAAK;AACzE;OACH;KACJ;IACDyjB,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAIC,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;MAElC,IAAI4hB,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACoV,QAAQ,EAAE;QAC/BO,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACqV,WAAW,CAACO,MAAM,CAAC,CAAC,CAAC;QAC1CD,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACoV,WAAW,IAAI,CAACL,eAAe;QACpDY,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACqV,WAAW,CAAC,CAAC,IAAI;AAAEpjB,UAAAA,KAAK,EAAE,IAAI;UAAEwhB,SAAS,EAAE,IAAI,CAACqB;SAAkB;AAC3F,OAAA,MAAO;QACHa,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAAC/N,KAAI,GAAI,IAAI;QACjC0jB,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACyT,YAAY,IAAI,CAACqB,gBAAgB;AAC1D;AAEA,MAAA,IAAI,CAAClb,KAAK,CAAC,cAAc,CAAC;AAC1B,MAAA,IAAI,CAACA,KAAK,CAAC,eAAe,EAAE+b,QAAQ,CAAC;AACrC,MAAA,IAAI,CAAC/b,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACic,IAAI,EAAE;KACd;IACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAI,CAAClc,KAAK,CAAC,aAAa,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEqV,QAAAA,WAAW,EAAE,IAAI,CAACthB,OAAO,CAAC,IAAI,CAACiM,KAAK;AAAE,OAAC,CAAC;AACvF,MAAA,IAAI,CAACpG,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACic,IAAI,EAAE;KACd;IACDE,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,IAAI,CAACrB,YAAY,EAAE;QACnB,IAAIsB,cAAc,IAAI,CAACtB,YAAY,CAAC,IAAI,CAAC1U,KAAK,CAAC;AAE/C,QAAA,IAAIgW,WAAW,EAAE;AACb,UAAA,IAAIA,WAAW,CAACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,CAACa,aAAa,CAACD,WAAW,CAACX,WAAW,CAAC,CAAC,CAAC,CAACpjB,KAAK,CAAC,CAAA,KACjF,OAAO,CAAC,IAAI,CAACgkB,aAAa,CAACD,WAAW,CAAC/jB,KAAK,CAAC;AACtD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;IACDikB,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,OAAO,IAAI,CAACniB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAA,IAAK,CAAC,IAAI,CAACiW,aAAa,CAAC,IAAI,CAACliB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAAC/N,KAAK,CAAC;KACzF;AACDgkB,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACnf,MAAM,EAAE;AAClB,MAAA,IAAIA,MAAK,KAAM,QAAQA,MAAK,KAAMvD,SAAS,EAAE;AACzC,QAAA,IAAK,OAAOuD,MAAK,KAAM,YAAYA,MAAM,CAACqf,IAAI,EAAE,CAACjZ,MAAK,IAAK,CAAC,IAAMpG,MAAK,YAAa3E,KAAI,IAAK2E,MAAM,CAACoG,MAAK,IAAK,CAAE,EAAE,OAAO,IAAI,CAAA,KACxH,OAAO,KAAK;AACrB;AAEA,MAAA,OAAO,IAAI;KACd;AACDkZ,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACzc,KAAK,EAAE;AACd,MAAA,IAAI,CAACkb,cAAa,GAAI,CAAC,IAAI,CAACA,cAAc;MAE1Clb,KAAK,CAACgJ,cAAc,EAAE;KACzB;AACD0T,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAAC1c,KAAK,EAAE;MACzB,QAAQA,KAAK,CAACkJ,IAAI;AACd,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAACuT,UAAU,CAACzc,KAAK,CAAC;AAEtB,UAAA;AAEJ,QAAA,KAAK,QAAQ;UACT,IAAI,CAACkb,cAAa,GAAI,KAAK;AAC3B,UAAA;AACR;KACH;AACDyB,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAAC7C,SAAS,EAAE;AAC5B,MAAA,IAAIkC,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;MAElC4hB,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACyT,SAAQ,GAAIA,SAAS;AAC1C,MAAA,IAAI,CAAC7Z,KAAK,CAAC,kBAAkB,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEyT,QAAAA,SAAS,EAAEA;AAAU,OAAC,CAAC;AAC3E,MAAA,IAAI,CAAC7Z,KAAK,CAAC,eAAe,EAAE+b,QAAQ,CAAC;AACrC,MAAA,IAAI,CAAC/b,KAAK,CAAC,cAAc,CAAC;MAC1B,IAAI,CAACic,IAAI,EAAE;KACd;AACDU,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAAC5c,KAAK,EAAE;AACzB,MAAA,IAAI6c,IAAG,GAAI7c,KAAK,CAACiI,MAAM;MAEvB,QAAQjI,KAAK,CAACkJ,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI4T,QAAO,GAAI,IAAI,CAACC,YAAY,CAACF,IAAI,CAAC;AAEtC,UAAA,IAAIC,QAAQ,EAAE;AACVD,YAAAA,IAAI,CAACG,eAAe,CAAC,UAAU,CAAC;YAChCF,QAAQ,CAACG,WAAW,GAAG;YACvBH,QAAQ,CAAC/V,KAAK,EAAE;AACpB;UAEA/G,KAAK,CAACgJ,cAAc,EAAE;AACtB,UAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAIkU,QAAO,GAAI,IAAI,CAACC,YAAY,CAACN,IAAI,CAAC;AAEtC,UAAA,IAAIK,QAAQ,EAAE;AACVL,YAAAA,IAAI,CAACG,eAAe,CAAC,UAAU,CAAC;YAChCE,QAAQ,CAACD,WAAW,GAAG;YACvBC,QAAQ,CAACnW,KAAK,EAAE;AACpB;UAEA/G,KAAK,CAACgJ,cAAc,EAAE;AACtB,UAAA;AACR;KACH;AACD8S,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAAChC,SAAS,EAAE;MAC9B,OAAO,IAAI,CAAC1f,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACyT,cAAcA,SAAS;KAC1D;AACDsD,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC9kB,KAAK,EAAE;AACpB,MAAA,IAAI0jB,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;MAElC4hB,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACoV,WAAWnjB,KAAK;AACrC,MAAA,IAAI,CAAC2H,KAAK,CAAC,eAAe,EAAE+b,QAAQ,CAAC;AAErC,MAAA,IAAI,CAAC/b,KAAK,CAAC,iBAAiB,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEoV,QAAAA,QAAQ,EAAEnjB;AAAM,OAAC,CAAC;AAErE,MAAA,IAAI,CAAC,IAAI,CAAC2hB,eAAe,EAAE;AACvB,QAAA,IAAI,CAACha,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;AACDod,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAAC/kB,KAAK,EAAEsG,KAAK,EAAE;AAChC,MAAA,IAAIod,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;AAElC4hB,MAAAA,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACqV,WAAW,CAAC9c,KAAK,CAAC,CAACkb,SAAQ,GAAIxhB,KAAK;AACzD,MAAA,IAAI,CAAC2H,KAAK,CAAC,kBAAkB,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEyT,QAAAA,SAAS,EAAExhB,KAAK;AAAEsG,QAAAA,KAAK,EAAEA;AAAM,OAAC,CAAC;AAErF,MAAA,IAAI,CAAC,IAAI,CAACqb,eAAe,EAAE;AACvB,QAAA,IAAI,CAACha,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;IACDqd,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,IAAItB,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;AAClC,MAAA,IAAImjB,aAAY,GAAI;AAAEjlB,QAAAA,KAAK,EAAE,IAAI;QAAEwhB,SAAS,EAAE,IAAI,CAACqB;OAAkB;MAErEa,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACqV,WAAW,CAAC5H,IAAI,CAACyJ,aAAa,CAAC;AACpD,MAAA,IAAI,CAACtd,KAAK,CAAC,gBAAgB,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEmX,QAAAA,UAAU,EAAED;AAAc,OAAC,CAAC;AAC9E,MAAA,IAAI,CAACtd,KAAK,CAAC,eAAe,EAAE+b,QAAQ,CAAC;AAErC,MAAA,IAAI,CAAC,IAAI,CAAC/B,eAAe,EAAE;AACvB,QAAA,IAAI,CAACha,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;AACDwd,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC7e,KAAK,EAAE;AACpB,MAAA,IAAIod,QAAO,GAAA3N,eAAA,KAAS,IAAI,CAACjU,OAAM,CAAG;AAClC,MAAA,IAAIsjB,iBAAgB,GAAI1B,QAAQ,CAAC,IAAI,CAAC3V,KAAK,CAAC,CAACqV,WAAW,CAACO,MAAM,CAACrd,KAAK,EAAE,CAAC,CAAC;AAEzE,MAAA,IAAI,CAACqB,KAAK,CAAC,mBAAmB,EAAE;QAAEoG,KAAK,EAAE,IAAI,CAACA,KAAK;AAAEmX,QAAAA,UAAU,EAAEE;AAAkB,OAAC,CAAC;AACrF,MAAA,IAAI,CAACzd,KAAK,CAAC,eAAe,EAAE+b,QAAQ,CAAC;AAErC,MAAA,IAAI,CAAC,IAAI,CAAC/B,eAAe,EAAE;AACvB,QAAA,IAAI,CAACha,KAAK,CAAC,cAAc,CAAC;AAC9B;KACH;IACD0d,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAI,CAAC1d,KAAK,CAAC,cAAc,CAAC;KAC7B;AACD8c,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACF,IAAI,EAAE;AACf,MAAA,IAAIC,QAAO,GAAID,IAAI,CAACjS,kBAAkB;MAEtC,IAAIkS,QAAQ,EAAE,OAAOzS,YAAY,CAACyS,QAAQ,EAAE,iBAAiB,CAAA,KAAM,2BAA0B,GAAI,IAAI,CAACC,YAAY,CAACD,QAAQ,CAAA,GAAIA,QAAQ,CAAA,KAClI,OAAOD,IAAI,CAACvS,aAAa,CAACQ,iBAAiB;KACnD;AACDqS,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACN,IAAI,EAAE;AACf,MAAA,IAAIK,QAAO,GAAIL,IAAI,CAACrS,sBAAsB;MAE1C,IAAI0S,QAAQ,EAAE,OAAO7S,YAAY,CAAC6S,QAAQ,EAAE,iBAAiB,CAAA,KAAM,2BAA0B,GAAI,IAAI,CAACC,YAAY,CAACD,QAAQ,CAAA,GAAIA,QAAQ,CAAA,KAClI,OAAOL,IAAI,CAACvS,aAAa,CAACI,gBAAgB;KAClD;IACDwR,IAAI,EAAA,SAAJA,IAAIA,GAAG;MACH,IAAI,CAAChB,cAAa,GAAI,KAAK;AAE3B,MAAA,IAAI,CAAC0C,cAAa,IAAK7W,KAAK,CAAC,IAAI,CAAC8W,KAAK,CAACvc,IAAI,CAACwF,GAAG,CAAC;KACpD;AACDgX,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC9d,KAAK,EAAE;MAClB,IAAI,CAAC6F,SAAQ,GAAI,IAAI;AAErBoB,MAAAA,eAAe,CAAC8W,IAAI,CAAC,eAAe,EAAE;AAClC7d,QAAAA,aAAa,EAAEF,KAAK;QACpBiI,MAAM,EAAE,IAAI,CAACoT;AACjB,OAAC,CAAC;KACL;IACD2C,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,CAACnY,SAAQ,GAAI,IAAI;KACxB;AACDoY,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzH,EAAE,EAAE;AAAA,MAAA,IAAA9P,KAAA,GAAA,IAAA;MACf,IAAI,IAAI,CAACuU,eAAe,EAAE;QACtBiD,QAAQ,CAAC,IAAI,CAAC7C,OAAO,EAAE,IAAI,CAACJ,eAAe,CAAC;AAChD;AAEAK,MAAAA,MAAM,CAAC6C,GAAG,CAAC,SAAS,EAAE3H,EAAE,EAAE,IAAI,CAAClW,SAAS,CAACC,MAAM,CAAC6d,MAAM,CAAC/C,OAAO,CAAC;MAC/D6C,QAAQ,CAAC1H,EAAE,EAAE;AAAE6H,QAAAA,QAAQ,EAAE,UAAU;AAAEjI,QAAAA,GAAG,EAAE;AAAI,OAAC,CAAC;AAChDkI,MAAAA,gBAAgB,CAAC,IAAI,CAACjD,OAAO,EAAE,IAAI,CAACwC,KAAK,CAACvc,IAAI,CAACwF,GAAG,CAAC;MACnD,IAAI,CAACyX,wBAAwB,EAAE;MAC/B,IAAI,CAACC,kBAAkB,EAAE;MACzB,IAAI,CAACC,kBAAkB,EAAE;AAEzB,MAAA,IAAI,CAAC3Y,oBAAmB,GAAI,UAAC9D,CAAC,EAAK;QAC/B,IAAI,CAAC0E,KAAI,CAACgY,gBAAgB,CAAC1c,CAAC,CAACiG,MAAM,CAAC,EAAE;UAClCvB,KAAI,CAACb,SAAQ,GAAI,IAAI;AACzB;OACH;MAEDoB,eAAe,CAAC0B,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC7C,oBAAoB,CAAC;KACjE;IACD6Y,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAAA,MAAA,IAAAC,aAAA;AAClB,MAAA,CAAAA,aAAA,GAAA,IAAI,CAACvD,OAAO,MAAA,IAAA,IAAAuD,aAAA,gBAAAA,aAAA,GAAZA,aAAA,CAAcC,UAAU,cAAAD,aAAA,KAAA,MAAA,IAAxBA,aAAA,CAA0BE,SAAS,EAAE;KACxC;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAACxD,aAAa,EAAE;KACvB;AACDyD,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACxI,EAAE,EAAE;AACpB8E,MAAAA,MAAM,CAAC9d,KAAK,CAACgZ,EAAE,CAAC;KACnB;IACD+E,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAAC0D,0BAA0B,EAAE;MACjC,IAAI,CAACC,oBAAoB,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;MAC3B,IAAI,CAAC9D,OAAM,GAAI,IAAI;MACnBpU,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACpB,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;KACnC;AACDsZ,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAAC5I,EAAE,EAAE;MACX,IAAI,CAAC6E,OAAM,GAAI7E,EAAE;KACpB;AACDkI,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACzW,MAAM,EAAE;AACrB,MAAA,OAAO,CAAC,IAAI,CAACoX,eAAe,CAACpX,MAAM,CAAA,IAAK,IAAI,CAACoT,OAAM,IAAK,EAAE,IAAI,CAACA,OAAO,CAACiE,UAAU,CAACrX,MAAM,CAAA,IAAK,IAAI,CAACoT,OAAO,CAACrT,QAAQ,CAACC,MAAM,CAAC,CAAC;KAC9H;AACDoX,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACpX,MAAM,EAAE;AACpB,MAAA,OAAO,IAAI,CAAC4V,KAAK,CAACvc,IAAG,KAAM,IAAI,CAACuc,KAAK,CAACvc,IAAI,CAACwF,GAAG,CAACwY,UAAU,CAACrX,MAAM,CAAA,IAAK,IAAI,CAAC4V,KAAK,CAACvc,IAAI,CAACwF,GAAG,CAACkB,QAAQ,CAACC,MAAM,CAAC,CAAC;KAC7G;IACDsW,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAxW,MAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACwX,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAmB,GAAI,UAACvf,KAAK,EAAK;AACnC,UAAA,IAAI+H,MAAI,CAACmT,cAAa,IAAK,CAACnT,MAAI,CAAClC,SAAQ,IAAKkC,MAAI,CAAC2W,gBAAgB,CAAC1e,KAAK,CAACiI,MAAM,CAAC,EAAE;YAC/EF,MAAI,CAACmT,cAAa,GAAI,KAAK;AAC/B;UAEAnT,MAAI,CAAClC,SAAQ,GAAI,KAAK;SACzB;QAEDuC,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACkX,oBAAoB,EAAE,IAAI,CAAC;AACvE;KACH;IACDN,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACM,oBAAoB,EAAE;QAC3BnX,QAAQ,CAACG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACgX,oBAAoB,EAAE,IAAI,CAAC;QACtE,IAAI,CAACA,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAAC1Z,SAAQ,GAAI,KAAK;AAC1B;KACH;IACD2Y,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA9V,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAC8W,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIC,6BAA6B,CAAC,IAAI,CAAC5B,KAAK,CAACvc,IAAI,CAACwF,GAAG,EAAE,YAAM;UAC9E,IAAI4B,MAAI,CAACwS,cAAc,EAAE;YACrBxS,MAAI,CAACwT,IAAI,EAAE;AACf;AACJ,SAAC,CAAC;AACN;AAEA,MAAA,IAAI,CAACsD,aAAa,CAAChB,kBAAkB,EAAE;KAC1C;IACDW,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACK,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAACL,oBAAoB,EAAE;AAC7C;KACH;IACDV,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAnV,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACoW,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIpW,MAAI,CAAC4R,cAAa,IAAK,CAACyE,aAAa,EAAE,EAAE;YACzCrW,MAAI,CAAC4S,IAAI,EAAE;AACf;SACH;QAED0D,MAAM,CAACvX,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACqX,cAAc,CAAC;AAC1D;KACH;IACDR,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACQ,cAAc,EAAE;QACrBE,MAAM,CAACrX,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACmX,cAAc,CAAC;QACzD,IAAI,CAACA,iBAAiB,IAAI;AAC9B;AACJ;GACH;AACDtf,EAAAA,QAAQ,EAAE;IACNwd,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC/D,QAAO,KAAM,IAAI,CAACD,OAAM,KAAM,QAAQ,IAAI,CAACrhB,IAAG,KAAM,SAAQ,GAAI,IAAI,CAAC;KACpF;IACDsnB,SAAS,EAAA,SAATA,SAASA,GAAG;AACR,MAAA,OAAO,IAAI,CAACzI,GAAE,GAAI,UAAU;KAC/B;IACD0I,UAAU,EAAA,SAAVA,UAAUA,GAAG;AAAA,MAAA,IAAA/V,MAAA,GAAA,IAAA;MACT,OACI,IAAI,CAACqQ,oBACL,IAAI,CAAC9Z,SAAS,CAACC,MAAM,CAACwf,sBAAsB,CAAC,IAAI,CAACxnB,IAAI,CAAC,CAACynB,GAAG,CAAC,UAACjhB,GAAG,EAAK;QACjE,OAAO;UAAEkhB,KAAK,EAAElW,MAAI,CAACzJ,SAAS,CAACC,MAAM,CAACC,MAAM,CAACzB,GAAG,CAAC;AAAEzG,UAAAA,KAAK,EAAEyG;SAAK;AACnE,OAAC,CAAA;KAER;IACDmhB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC3nB,IAAG,KAAM,SAAQ,IAAK,IAAI,CAAC2hB,cAAa,IAAK,IAAI,CAAC4F,UAAU;KAC3E;IACDK,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,CACH;QAAEF,KAAK,EAAE,IAAI,CAAC3f,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC4f,QAAQ;QAAE9nB,KAAK,EAAE+nB,cAAc,CAACC;AAAI,OAAC,EAC3E;QAAEL,KAAK,EAAE,IAAI,CAAC3f,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC+f,QAAQ;QAAEjoB,KAAK,EAAE+nB,cAAc,CAACG;AAAG,OAAA,CAC5E;KACJ;IACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,OAAO,IAAI,CAACngB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACkgB,QAAO,GAAI9mB,SAAS;KAC1F;IACD+mB,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC5G,YAAW,IAAK,IAAI,CAAC3f,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACoV,QAAQ;KAChE;IACDA,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,OAAO,IAAI,CAACrhB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACoV,QAAQ;KAC3C;IACDmF,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;MACf,OAAO,IAAI,CAACxmB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACqV,eAAe,CAAC,IAAI,CAACthB,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAAC;KAC5E;IACDwa,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAACD,gBAAgB,CAACrd,MAAK,GAAI,CAAC;KAC1C;IACDud,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACxgB,SAAS,CAACC,MAAM,CAACC,SAAS,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC7C,UAAS,GAAI/D,SAAS;KAC5F;IACDmnB,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,OAAO,IAAI,CAACzgB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC9C,OAAM,GAAI9D,SAAS;KACzF;IACDonB,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC7G,aAAY,IAAK,IAAI,CAAC/f,OAAO,CAAC,IAAI,CAACiM,KAAK,CAAC,CAACoV,QAAO,IAAK,IAAI,CAACmF,gBAAe,IAAK,IAAI,CAACA,gBAAgB,CAACrd,MAAK,GAAI,IAAI,CAAC8W,cAAc;KAChJ;IACD4G,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC3gB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAChD,KAAI,GAAI5D,SAAS;KACvF;IACDsnB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC5gB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC5C,KAAI,GAAIhE,SAAS;KACvF;IACDunB,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,OAAO,IAAI,CAAC7gB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAK,IAAI,CAAC0a,iBAAiB,IAAI,CAAC5a,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC4gB,iBAAiB,IAAI,CAAC9gB,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC6gB,cAAc,GAAIznB,SAAS;KACtK;IACD0nB,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAAChhB,SAAS,CAACC,MAAM,CAACC,MAAK,GAAI,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC+gB,iBAAiB3nB,SAAS;KAChG;IACD4nB,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAAClhB,SAAS,CAACC,MAAM,CAACC,SAAS,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACihB,mBAAmB7nB,SAAS;KAClG;IACD8nB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,OAAO;AACHpiB,QAAAA,OAAO,EAAE;AACLqiB,UAAAA,MAAM,EAAE,IAAI,CAACpF,YAAY;AAC7B;OACH;KACJ;IACDqF,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO;AACHtiB,QAAAA,OAAO,EAAE;UACL4b,cAAc,EAAE,IAAI,CAACA,cAAc;AACnC2G,UAAAA,MAAM,EAAE,IAAI,CAACzF,SAAS;AAC1B;OACH;AACL;GACH;AACDxb,EAAAA,UAAU,EAAE;AACRkhB,IAAAA,MAAM,EAANA,MAAM;AACNpU,IAAAA,MAAM,EAANA,MAAM;AACNqU,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,cAAc,EAAdA,cAAc;AACdC,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;GACH;AACDpU,EAAAA,UAAU,EAAE;AACRqU,IAAAA,SAAS,EAAEC;AACf;AACJ,CAAC;;;;;;;;;;;;;;;EC7sBG,OAAA7gB,SAAA,EAAA,EAAA0M,kBAAA,CAsJK,OAtJLtM,UAAA,CAsJK;AAtJC,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,QAAA;KAAoB9K,QAAA,CAAAtC,WAAW,CAAA,QAAA,CAAA,CAAA,EAAA,CAC/BK,MAAA,CAAAya,OAAM,KAAA,KAAA,IAAjBnY,SAAA,EAAA,EAAA0M,kBAAA,CAEK,OAFLtM,UAAA,CAEK;;AAF0B,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,wBAAA;AAAyC,GAAA,EAAAmC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAlP,MAAA,CAAAnC,gBAAgB,CAAA,EAAKoE,QAAA,CAAAtC,WAAW,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAA,EAC7G2C,SAAA,EAAA,EAAAV,WAAA,CAA8GW,wBAA9FvC,MAAA,CAAAmb,aAAa,CAAA,EAAA;IAAGjU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;IAAGkc,WAAW,EAAEpjB,MAAA,CAAA/E,OAAO,CAAC+E,MAAA,CAAAkH,KAAK,CAAA;IAAIsX,cAAc,EAAEvc,QAAA,CAAAuc;kGAGvFvc,QAAA,CAAAwc,cAAc,IADxBnc,SAAA,EAAA,EAAAV,WAAA,CAgBQ0O,mBAhBR5N,UAAA,CAgBQ;;AAdJqV,IAAAA,GAAG,EAAC,MAAK;IACR,YAAU,EAAE9V,QAAA,CAAA+f,2BAA2B;AACxC,IAAA,eAAa,EAAC,MAAK;IAClB,eAAa,EAAE9hB,KAAA,CAAA6b,cAAc;IAC7B,eAAa,EAAE9Z,QAAA,CAAAye,SAAS;AACxB,IAAA,OAAA,EAAO1e,IAAA,CAAA+K,EAAE,CAAA,sBAAA,CAAA;IACT7K,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAClBoH,IAAAA,OAAK,EAAAoG,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE1N,QAAA,CAAAqb,UAAU,CAAC3N,MAAM,CAAA;AAAA,KAAA,CAAA;AACxBN,IAAAA,SAAO,EAAAK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE1N,QAAA,CAAAsb,qBAAqB,CAAC5N,MAAM,CAAA;KAAA;GACzB,EAAAT,eAAA,CAAAA,eAAA,KAAAjN,QAAA,CAAAtC,WAAW,CAAA,sBAAA,EAAyBsC,QAAA,CAAAwgB,mBAAmB,CAAA,CAAA,EAAMziB,MAAA,CAAAlC,iBAAiB,CAACE,MAAK,CAAA,CAAA,EAAA;AAEtFmE,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAwJC,SADlI,EAAA;MAAA,OAAA,EACtBC,SAAA,EAAA,EAAAV,WAAA,CAAwJW,uBAAA,CAAxIvC,MAAA,CAAAwb,uBAAuBvZ,QAAA,CAAAgb,SAAS,wCAAhDva,UAAA,CAAwJ;AAAhE,QAAA,OAAA,EAAOL,SAAS,CAAA,OAAA;SAAgBJ,QAAA,CAAAtC,WAAW,CAAA,gBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;iHAG3I0jB,WAAA,CAgIQC,iBAAA,EAAA,IAAA,EAAA;uBA/HJ,YAAA;AAAA,MAAA,OA8HY,CA9HZD,WAAA,CA8HYE,YA9HZ7gB,UAAA,CA8HY;AA9HA1J,QAAAA,IAAI,EAAC;QAAuBwqB,OAAK,EAAEvhB,QAAA,CAAA6c,cAAc;QAAG2E,YAAW,EAAExhB,QAAA,CAAAud,mBAAmB;QAAGkE,OAAK,EAAEzhB,QAAA,CAAA2d,cAAc;QAAG+D,YAAW,EAAE1hB,QAAA,CAAA4d;SAA6B5d,QAAA,CAAAtC,WAAW,CAAA,YAAA,CAAA,CAAA,EAAA;2BAC5K,YAAA;AAAA,UAAA,OA4HK,CA3HKO,KAAA,CAAA6b,cAAc,GADxB/L,cAAA,EAAA1N,SAAA,EAAA,EAAA0M,kBAAA,CA4HK,OA5HLtM,UAAA,CA4HK;;YA1HAqV,GAAG,EAAE9V,QAAA,CAAAge,UAAU;YACfrJ,EAAE,EAAE3U,QAAA,CAAAye,SAAS;YAEb,YAAU,EAAExgB,KAAA,CAAA6b,cAAc;AAC3B9M,YAAAA,IAAI,EAAC,QAAO;YACX,OAAA,EAAK,CAAGjN,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA,EAAmB/M,MAAA,CAAA6b,eAAe,CAAA;AAC5CxM,YAAAA,SAAO;qBAASpN,QAAA,CAAA8a,IAAA,IAAA9a,QAAA,CAAA8a,IAAA,CAAAte,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAI;AAAA,aAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA;YACpByD,OAAK;qBAAErH,QAAA,CAAA0c,cAAA,IAAA1c,QAAA,CAAA0c,cAAA,CAAAlgB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAc;AAAA,aAAA,CAAA;YACrBuQ,WAAS;qBAAEnU,QAAA,CAAA4c,kBAAA,IAAA5c,QAAA,CAAA4c,kBAAA,CAAApgB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAkB;aAAA;aACtB5D,QAAA,CAAAtC,WAAW,CAAA,eAAA,CAAA,CAAA,EAAA,EAEnB2C,SAAA,EAAA,EAAAV,WAAA,CAAqHW,wBAArGvC,MAAA,CAAAob,oBAAoB,CAAA,EAAA;YAAGlU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;YAAGkc,WAAW,EAAEpjB,MAAA,CAAA/E,OAAO,CAAC+E,MAAA,CAAAkH,KAAK,CAAA;YAAIsX,cAAc,EAAEvc,QAAA,CAAAuc;oEACpFxe,MAAA,CAAAya,OAAM,KAAA,KAAA,IAClBnY,SAAA,EAAA,EAAA0M,kBAAA,CAiBI,MAjBJtM,UAAA,CAiBI;;AAjBC,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,sBAAA;aAAkC9K,QAAA,CAAAtC,WAAW,CAAA,sBAAA,CAAA,CAAA,EAAA,EACvD2C,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAWIQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CAVyBzU,QAAA,CAAA0e,UAAU,EAAA,UAA3BhG,SAAS,EAAEtX,CAAC,EAAA;YADxB,OAAAf,SAAA,EAAA,EAAA0M,kBAAA,CAWI,MAXJtM,UAAA,CAWI;cATC9C,GAAG,EAAE+a,SAAS,CAACmG,KAAK;AACpB,cAAA,OAAA,EAAO9e,IAAA,CAAA+K,EAAE,CAAA,kBAAA,EAAA;AAAuB4N,gBAAAA,SAAQ,EAARA;AAAQ,eAAA,CAAA;AACxCrR,cAAAA,OAAK,EAAA,SAALA,OAAKA,CAAAqG,MAAA,EAAA;AAAA,gBAAA,OAAE1N,QAAA,CAAAub,oBAAoB,CAAC7C,SAAS,CAACxhB,KAAK,CAAA;eAAA;AAC3CkW,cAAAA,SAAO,EAAA,CAAEK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,gBAAA,OAAA1N,QAAA,CAAAwb,qBAAqB,CAAC9N,MAAM,CAAA;AAAA,eAAA,CAAA;uBACd1N,QAAA,CAAAub,oBAAoB,CAAC7C,SAAS,CAACxhB,KAAK,CAAA;eAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA;AAC3D6c,cAAAA,QAAQ,EAAE3S,CAAA,KAAA,CAAA,GAAA,GAAA,GAAA;AACH,aAAA,EAAA;AAAAkX,cAAAA,OAAA,EAAA;aAAA,EAAAtY,QAAA,CAAAtC,WAAW,qBAAqBsC,QAAA,CAAAwa,0BAA0B,CAAC9B,SAAS,CAAA,CAAA,CAAA,EAAAiJ,eAAA,CAEzEjJ,SAAS,CAACmG;qBAEjB/K,kBAAA,CAAmG,MAAnGrT,UAAA,CAAmG;AAA9F,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,2BAAA;aAAuC9K,QAAA,CAAAtC,WAAW,CAAA,2BAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAChEoW,kBAAA,CAEI,MAFJrT,UAAA,CAEI;AAFC,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,kBAAA,CAAA;AAAuBzD,YAAAA,OAAK;qBAAErH,QAAA,CAAA2a,WAAW,EAAA;AAAA,aAAA,CAAA;AAAKvN,YAAAA,SAAO,EAAA,CAAEK,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAA1N,QAAA,CAAAwb,qBAAqB,CAAC9N,MAAM,CAAA;AAAA,aAAA,CAAA;qBAAmB3N,IAAA,CAAA6hB,mBAAmB,EAAA;AAAA,aAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAY,WAAA,EAAA5hB,QAAA,CAAAtC,WAAW,uCACvJsC,QAAA,CAAAqf,2CAIftS,kBAAA,CAwFUQ,QAAA,EAAA;AAAA5P,YAAAA,GAAA,EAAA;AAAA,WAAA,EAAA,CAvFKqC,QAAA,CAAAuf,cAAc,IAAzBlf,SAAA,EAAA,EAAA0M,kBAAA,CAYK,OAZLtM,UAAA,CAYK;;AAZuB,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,gBAAA;aAA4B9K,QAAA,CAAAtC,WAAW,CAAA,gBAAA,CAAA,CAAA,EAAA,CACxE0jB,WAAA,CAUSS,iBAAA,EAAA;YATJ3P,OAAO,EAAElS,QAAA,CAAA+e,eAAe;YACxBlf,UAAU,EAAEG,QAAA,CAAAqa,QAAQ;YACpB,YAAU,EAAEra,QAAA,CAAAkgB,uBAAuB;YACnC,OAAA,iBAAOngB,IAAA,CAAA+K,EAAE,CAAA,0BAAA,CAAA,CAAA;AACVgX,YAAAA,WAAW,EAAC,OAAM;AAClBC,YAAAA,WAAW,EAAC,OAAM;AACjB,YAAA,qBAAiB,EAAAtU,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAE1N,QAAA,CAAAgc,gBAAgB,CAACtO,MAAM,CAAA;AAAA,aAAA,CAAA;YAC1CzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAClBvB,YAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,0BAAA;iIAGxBoW,kBAAA,CA+BK,OA/BLrT,UAAA,CA+BK;AA/BC,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,gBAAA;aAA4B9K,QAAA,CAAAtC,WAAW,CAAA,gBAAA,CAAA,CAAA,EAAA,EAClD2C,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CA6BKQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CA7B+BzU,QAAA,CAAAwf,gBAAgB,EAAA,UAAvCwC,eAAe,EAAE5gB,CAAC,EAAA;YAA/B,OAAAf,SAAA,EAAA,EAAA0M,kBAAA,CA6BK,OA7BLtM,UAAA,CA6BK;AA7BkD9C,cAAAA,GAAG,EAAEyD,CAAC;AAAG,cAAA,OAAA,EAAOrB,IAAA,CAAA+K,EAAE,CAAA,YAAA;;;eAAwB9K,QAAA,CAAAtC,WAAW,CAAA,YAAA,CAAA,CAAA,EAAA,CAE9FsC,QAAA,CAAA8e,gBAAgB,iBAD1Bnf,WAAA,CAWSkiB,iBAAA,EAAA;;cATJ3P,OAAO,EAAElS,QAAA,CAAA0e,UAAU;cACnB7e,UAAU,EAAEmiB,eAAe,CAACtJ,SAAS;cACrC,OAAA,iBAAO3Y,IAAA,CAAA+K,EAAE,CAAA,4BAAA,CAAA,CAAA;AACVgX,cAAAA,WAAW,EAAC,OAAM;AAClBC,cAAAA,WAAW,EAAC,OAAM;cACjB,YAAU,EAAE/hB,QAAA,CAAAogB,mBAAmB;AAC/B,cAAA,qBAAiB,EAAA,SAAjB6B,kBAAiBA,CAAAvU,MAAA,EAAA;AAAA,gBAAA,OAAE1N,QAAA,CAAAic,qBAAqB,CAACvO,MAAM,EAAEtM,CAAC,CAAA;eAAA;cAClDnB,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAClBvB,cAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,4BAAA;oJAEHK,MAAA,CAAAya,OAAM,KAAA,MAAA,IAAvBnY,SAAA,EAAA,EAAAV,WAAA,CAAoKW,wBAA1HvC,MAAA,CAAAmb,aAAa,CAAA,EAAA;;cAAGjU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;AAAGkc,cAAAA,WAAW,EAAEa,eAAe;cAAGzF,cAAc,EAAEvc,QAAA,CAAAuc,cAAc;cAAGxB,WAAW,EAAE/a,QAAA,CAAA+a;oHAC3I/a,QAAA,CAAAyf,cAAc,IAAzBpf,SAAA,EAAA,EAAA0M,kBAAA,CAcK,OAdLtM,UAAA,CAcK;;;eAd8BT,QAAA,CAAAtC,WAAW,CAAA,cAAA,CAAA,CAAA,EAAA,CAC1C0jB,WAAA,CAYQ/S,mBAZR5N,UAAA,CAYQ;AAXJtJ,cAAAA,IAAI,EAAC,QAAO;AACX,cAAA,OAAA,EAAO4I,IAAA,CAAA+K,EAAE,CAAA,0BAAA,CAAA;AACTzD,cAAAA,OAAK,EAAA,SAALA,OAAKA,CAAAqG,MAAA,EAAA;AAAA,gBAAA,OAAE1N,QAAA,CAAAqc,gBAAgB,CAACjb,CAAC,CAAA;eAAA;cACzByd,KAAK,EAAE7e,QAAA,CAAA0f,qBAAqB;cAC5Bzf,QAAQ,EAAEF,IAAA,CAAAE;;;eACHlC,MAAA,CAAAlC,iBAAiB,CAACQ,OAAO,CAACE,UAAU,EAAA;AAC3CmC,cAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,0BAAA;;AAELwC,cAAAA,IAAI,EAAAC,OAAA,CACX,UAA4I+hB,SADtH,EAAA;AAAA,gBAAA,OAAA,eACtBviB,WAAA,CAA4IW,uBAAA,CAA5HvC,MAAA,CAAA0b,wBAAuB,IAAA,WAAA,CAAA,EAAvChZ,UAAA,CAA4I;AAAlF,kBAAA,OAAA,EAAOyhB,SAAS,CAAA,OAAA;;;mBAAgBliB,QAAA,CAAAtC,WAAW,CAAA,0BAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;;2BAM9GsC,QAAA,CAAA4f,mBAAmB,IAA9Bvf,SAAA,EAAA,EAAA0M,kBAAA,CAeK;;aAfmC/M,QAAA,CAAAtC,WAAW,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAA,CAC/C0jB,WAAA,CAaQ/S,mBAbR5N,UAAA,CAaQ;AAZJtJ,YAAAA,IAAI,EAAC,QAAO;YACX0nB,KAAK,EAAE7e,QAAA,CAAA2f,kBAAkB;AAC1BwC,YAAAA,OAAO,EAAC,MAAK;AACZ,YAAA,OAAA,EAAOpiB,IAAA,CAAA+K,EAAE,CAAA,uBAAA,CAAA;AACTzD,YAAAA,OAAK;qBAAErH,QAAA,CAAAkc,aAAa,EAAA;AAAA,aAAA,CAAA;YACpBjc,QAAQ,EAAEF,IAAA,CAAAE;aACHlC,MAAA,CAAAlC,iBAAiB,CAACQ,OAAO,CAACC,OAAO,EAAA;AACxCoC,YAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,uBAAA;;AAELwC,YAAAA,IAAI,EAAAC,OAAA,CACX,UAAqI+hB,SAD/G,EAAA;AAAA,cAAA,OAAA,eACtBviB,WAAA,CAAqIW,uBAAA,CAArHvC,MAAA,CAAAyb,qBAAoB,IAAA,UAAA,CAAA,EAApC/Y,UAAA,CAAqI;AAA/E,gBAAA,OAAA,EAAOyhB,SAAS,CAAA,OAAA;iBAAgBliB,QAAA,CAAAtC,WAAW,CAAA,uBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;8FAI7GoW,kBAAA,CAyBK,OAzBLrT,UAAA,CAyBK;AAzBC,YAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,iBAAA;aAA6B9K,QAAA,CAAAtC,WAAW,CAAA,iBAAA,CAAA,CAAA,EAAA,CAExC,CAAAK,MAAA,CAAAsb,mBAAkB,IAAKtb,MAAA,CAAA6a,eAAe,IADjDvY,SAAA,EAAA,EAAAV,WAAA,CASS0O,mBATT5N,UAAA,CASS;;AAPLtJ,YAAAA,IAAI,EAAC,QAAO;AACX,YAAA,OAAA,EAAO4I,IAAA,CAAA+K,EAAE,CAAA,qBAAA,CAAA;YACT+T,KAAK,EAAE7e,QAAA,CAAA6f,gBAAgB;AACvBxY,YAAAA,OAAK;qBAAErH,QAAA,CAAA2a,WAAW,EAAA;AAAA,aAAA,CAAA;YAClB1a,QAAQ,EAAEF,IAAA,CAAAE;aACHlC,MAAA,CAAAlC,iBAAiB,CAACQ,OAAO,CAACD,KAAK,EAAA;AACtCsC,YAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,qBAAA;kEAEpB2C,SAAA,EAAA,EAAAV,WAAA,CAAwHW,wBAAjGvC,MAAA,CAAAsb,mBAAmB,CAAA,EAAA;;YAAGpU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;YAAGkc,WAAW,EAAEpjB,MAAA,CAAA/E,OAAO,CAAC+E,MAAA,CAAAkH,KAAK,CAAA;YAAIsX,cAAc,EAAEvc,QAAA,CAAA2a;oEAC1F5c,MAAA,CAAA8a,eAAe,iBAA/B9L,kBAAA,CAYUQ,QAAA,EAAA;AAAA5P,YAAAA,GAAA,EAAA;AAAA,WAAA,EAAA,EAVKI,MAAA,CAAAub,mBAAmB,IAD9BjZ,SAAA,EAAA,EAAAV,WAAA,CASS0O,mBATT5N,UAAA,CASS;;AAPLtJ,YAAAA,IAAI,EAAC,QAAO;AACX,YAAA,OAAA,EAAO4I,IAAA,CAAA+K,EAAE,CAAA,qBAAA,CAAA;YACT+T,KAAK,EAAE7e,QAAA,CAAA8f,gBAAgB;AACvBzY,YAAAA,OAAK;qBAAErH,QAAA,CAAA+a,WAAW,EAAA;AAAA,aAAA,CAAA;YAClB9a,QAAQ,EAAEF,IAAA,CAAAE;aACHlC,MAAA,CAAAlC,iBAAiB,CAACQ,OAAO,CAACG,KAAK,EAAA;AACtCkC,YAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,qBAAA;kEAEpB2C,SAAA,EAAA,EAAAV,WAAA,CAAwHW,wBAAjGvC,MAAA,CAAAub,mBAAmB,CAAA,EAAA;;YAAGrU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;YAAGkc,WAAW,EAAEpjB,MAAA,CAAA/E,OAAO,CAAC+E,MAAA,CAAAkH,KAAK,CAAA;YAAIsX,cAAc,EAAEvc,QAAA,CAAA+a;wHAItH1a,SAAA,EAAA,EAAAV,WAAA,CAAqHW,wBAArGvC,MAAA,CAAAqb,oBAAoB,CAAA,EAAA;YAAGnU,KAAK,EAAElH,MAAA,CAAAkH,KAAK;YAAGkc,WAAW,EAAEpjB,MAAA,CAAA/E,OAAO,CAAC+E,MAAA,CAAAkH,KAAK,CAAA;YAAIsX,cAAc,EAAEvc,QAAA,CAAAuc;;;;;;;;;;;;ACpIxH,eAAe;AACXxlB,EAAAA,IAAI,EAAE,gBAAgB;AACtBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;EACtBoG,KAAK,EAAE,CAAC,QAAQ,CAAC;AACjBnG,EAAAA,KAAK,EAAE;AACHoG,IAAAA,OAAO,EAAE,IAAI;AACbc,IAAAA,QAAQ,EAAE,IAAI;AACdb,IAAAA,MAAM,EAAE,IAAI;AACZ8kB,IAAAA,0BAA0B,EAAE;AACxBjrB,MAAAA,IAAI,EAAEI,QAAQ;MACd,SAAA,EAAS;AACb;GACH;AACDkG,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAMC,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLb,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBc,QAAQ,EAAE,IAAI,CAACA;AACnB;OACH;MAED,OAAOE,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACDmG,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACC,KAAK,EAAE;AACZ,MAAA,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAE;AACjBC,QAAAA,aAAa,EAAEF,KAAK;QACpBvB,OAAO,EAAE,CAAC,IAAI,CAACA;AACnB,OAAC,CAAC;AACN;GACH;AACD2B,EAAAA,QAAQ,EAAE;IACNqjB,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAACnjB,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAG,GAAK,IAAI,CAAChC,OAAM,GAAI,IAAI,CAAC6B,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC3F,SAAQ,GAAI,IAAI,CAACwF,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACijB,WAAW,GAAI9pB,SAAS;AACvK;GACH;AACDgH,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,QAAO,EAAPA;AACJ;AACJ,CAAC;;;;sBChEGC,WAAA,CAKUC,mBAAA,EAAA;IALCC,UAAU,EAAE9B,MAAA,CAAAV,OAAO;AAAGyC,IAAAA,MAAM,EAAE,IAAI;IAAG3B,QAAQ,EAAEJ,MAAA,CAAAI,QAAQ;IAAG,YAAU,EAAE6B,QAAA,CAAAqiB,uBAAuB;IAAG1jB,QAAM,EAAEqB,QAAA,CAAArB,QAAQ;IAAGsB,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAAGvB,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,kBAAA;;;;;;AC0DtK,eAAe;AACX3G,EAAAA,IAAI,EAAE,kBAAkB;AACxBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACxJnG,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8qB,IAAAA,eAAe,EAAE;AACbprB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6W,IAAAA,KAAK,EAAE;AACHvX,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD2gB,IAAAA,OAAO,EAAE;AACLrhB,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0hB,IAAAA,YAAY,EAAE;AACVxiB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoC,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDqE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;AACb;GACH;EACD4H,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH8F,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACD3H,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAAC1I,MAAM,EAAEyI,IAAI,CAAC;KACzC;AACDrI,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAI,CAAC,IAAI,CAACL,MAAM,EAAE,OAAO,IAAI;AAE7B,MAAA,IAAMM,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA;AAChB;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAI,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KACtF;IACD4M,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAI8E,KAAI,GAAI,IAAI,CAAC9E,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAI8E,KAAI,KAAM,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIC,IAAG,GAAIC,qBAAqB,CAAC,IAAI,CAAC1E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAIyE,IAAI,EAAE;AACND,YAAAA,GAAE,GAAIG,aAAa,CAACF,IAAI,IAAIG,UAAU,CAACH,IAAI,CAACrN,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC0F,cAAa,GAAIL,GAAE,GAAI,IAAI;AAChD,SAAA,MAAO;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAIM,IAAG,GAAIC,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAI8E,IAAI,EAAE;AACNN,YAAAA,IAAE,GAAIG,aAAa,CAACG,IAAI,CAAA,GAAIF,UAAU,CAACE,IAAI,CAAC1N,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC6F,gBAAe,GAAIR,IAAE,GAAI,IAAI;AAClD;AACJ;AACJ;GACH;AACDlL,EAAAA,QAAQ,EAAE;IACNwjB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,OAAO,CAAC,IAAI,CAAC1X,EAAE,CAAC,YAAY,EAAE;QAAExN,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC,EAAE,IAAI,CAAC6H,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1H;IACDsd,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,OAAO,IAAI,CAACtd,UAAU,CAAC,QAAQ,CAAA,GAAI,CAAC,IAAI,CAACA,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAACN,WAAW,CAAA,GAAI,CAAC,IAAI,CAACM,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5L;GACH;AACD3F,EAAAA,UAAU,EAAE;AACRkjB,IAAAA,gBAAgB,EAAEC,QAAc;AAChCC,IAAAA,cAAc,EAAEC;AACpB;AACJ,CAAC;;;;;;;;;;;;ACzLc,EAAA,OAAA,CAAA7iB,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,KAAepH,MAAA,CAAA1D,YAAW,KAAA,WAAA,IAAqB0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAA,CAAAmF,UAAU,CAAA,OAAA,CAAA,CAAA,IAD9F9E,SAAA,EAAA,EAAA0M,kBAAA,CA+CI,MA/CJtM,UAAA,CA+CI;;IA7CC3D,KAAK,EAAEkD,QAAA,CAAAyiB,0BAA0B;AACjC,IAAA,OAAA,EAAOziB,QAAA,CAAAwiB;AACK,GAAA,EAAAvV,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,WAAasC,QAAA,CAAAtC,WAAW,CAAA,YAAA,CAAA,CAAA,EAAA;AAC/C,IAAA,sBAAoB,EAAEsC,QAAA,CAAAmF,UAAU,CAAA,QAAA;OAETnF,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA,KAAA,UAAA,iBAAlCxF,WAAA,CAA4MmjB,2BAAA,EAAA;;IAAvIzlB,OAAO,EAAEU,MAAA,CAAAwkB,eAAe;IAAGpkB,QAAQ,EAAEJ,MAAA,CAAA2Q,KAAK;AAAG/P,IAAAA,QAAM,EAAA8O,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,KAAA,CAAA;IAAIpQ,MAAM,EAAES,MAAA,CAAAT,MAAM;IAAG2C,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAAGvB,EAAE,EAAEqB,IAAA,CAAArB;oGAE7LX,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,aAAM,CAACyI,QAAQ,CAACzK,MAAM,iBADnD4D,WAAA,CAsCCojB,yBAAA,EAAA;;AApCI9d,IAAAA,KAAK,EAAEjF,QAAA,CAAAmF,UAAU,CAAA,aAAA,CAAA,IAAmBnF,QAAA,CAAAmF,UAAU,CAAA,OAAA,CAAA;AAC9ChO,IAAAA,IAAI,EAAE6I,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA;AACjBqT,IAAAA,OAAO,EAAC,KAAI;AACXC,IAAAA,QAAQ,EAAEzY,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA;AACpB+T,IAAAA,aAAa,EAAEnb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACzK,MAAM;AACxDod,IAAAA,oBAAoB,EAAEpb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACwc,YAAY;AACrE5J,IAAAA,oBAAoB,EAAErb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACyc,YAAY;AACrE5J,IAAAA,mBAAmB,EAAEtb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC0c,WAAW;AACnE5J,IAAAA,mBAAmB,EAAEvb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC2c,WAAW;AACnE5J,IAAAA,kBAAkB,EAAExb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC4c,UAAU;AACjE5J,IAAAA,qBAAqB,EAAEzb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6c,aAAa;AACvE5J,IAAAA,wBAAwB,EAAE1b,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC8c,gBAAgB;AAC7E5J,IAAAA,uBAAuB,EAAE3b,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC+c,eAAe;IAC3EvqB,OAAO,EAAE+E,MAAA,CAAA/E,OAAO;IAChB2gB,YAAY,EAAE5b,MAAA,CAAA4b,YAAY;IAC1B/d,gBAAgB,EAAEmC,MAAA,CAAAnC,gBAAgB;IAClCC,iBAAiB,EAAEkC,MAAA,CAAAlC,iBAAiB;AACpC2nB,IAAAA,cAAa,EAAA/V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAC5C+V,IAAAA,aAAY;aAAE1jB,IAAA,CAAAlB,KAAK,CAAA,cAAA,CAAA;AAAA,KAAA,CAAA;AACnBgb,IAAAA,eAAe,EAAE7Z,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3ByU,IAAAA,eAAe,EAAE5Z,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3BwT,IAAAA,YAAY,EAAE3Y,QAAA,CAAAmF,UAAU,CAAA,oBAAA,CAAA;AACxByT,IAAAA,eAAe,EAAE5Y,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3B0T,IAAAA,eAAe,EAAE7Y,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3B2T,IAAAA,cAAc,EAAE9Y,QAAA,CAAAmF,UAAU,CAAA,sBAAA,CAAA;AAC1B4T,IAAAA,aAAa,EAAE/Y,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA;AACzB6T,IAAAA,gBAAgB,EAAEhZ,QAAA,CAAAmF,UAAU,CAAA,wBAAA,CAAA;AAC5B8T,IAAAA,cAAc,EAAEjZ,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA;AAC1B6W,IAAAA,gBAAe,EAAAvO,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAChDgW,IAAAA,iBAAgB,EAAAjW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAClDiW,IAAAA,eAAc,EAAAlW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAC9CkW,IAAAA,kBAAiB,EAAAnW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,mBAAA,EAAsB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AACpDmW,IAAAA,YAAW,EAAApW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,KAAA,CAAA;IACxCpQ,MAAM,EAAES,MAAA,CAAAT,MAAM;IACd2C,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;;;;;ACmDjB,eAAe;AACX3H,EAAAA,IAAI,EAAE,YAAY;AAClBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAY,CACf;AACDnG,EAAAA,KAAK,EAAE;AACHqG,IAAAA,MAAM,EAAE;AACJnG,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDuF,IAAAA,KAAK,EAAE;AACHrG,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDsC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDyC,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDuB,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDwsB,IAAAA,iBAAiB,EAAE;AACf3sB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDkB,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACDmrB,IAAAA,eAAe,EAAE;AACbprB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6W,IAAAA,KAAK,EAAE;AACHvX,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0hB,IAAAA,YAAY,EAAE;AACVxiB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD8rB,IAAAA,YAAY,EAAE;AACV5sB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDoC,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD+D,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;AACb;GACH;EACD4H,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH8F,MAAAA,WAAW,EAAE;KAChB;GACJ;EACDK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE;AAC/B;GACH;AACD3H,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACY,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAAC1I,MAAM,EAAEyI,IAAI,CAAC;KACzC;AACDrI,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;MAAA,IAAAsI,qBAAA,EAAAC,sBAAA;AACb,MAAA,IAAMtI,iBAAiB;AACnB3G,QAAAA,KAAK,EAAE,IAAI,CAACqG,MAAM,CAACrG,KAAK;AACxB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;UACLV,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBwmB,UAAAA,QAAQ,EAAE,IAAI,CAAC7e,UAAU,CAAC,UAAU,CAAA,KAAM,EAAC,IAAK,IAAI,CAACA,UAAU,CAAC,UAAU,CAAC;AAC3E8e,UAAAA,MAAM,EAAE,IAAI,CAACC,cAAc,EAAE;UAC7BC,SAAS,EAAE,IAAI,CAACpqB,gBAAgB;AAChCyB,UAAAA,IAAI,GAAAyK,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,MAAA,IAAA,IAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCzK,IAAI;UACjDH,aAAa,EAAE,EAAA6K,sBAAA,GAAA,IAAI,CAAChJ,eAAe,MAAA,IAAA,IAAAgJ,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBhJ,eAAe,MAAA,IAAA,IAAAgJ,sBAAA,uBAArCA,sBAAA,CAAuC7K,kBAAiB;AAC3E;OACH;MAED,OAAOgD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;OAAgB,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEC,cAAc,CAAC,CAAC;KAC5K;IACDa,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACnB,MAAM,CAACrG,SAAS,IAAI,CAACqG,MAAM,CAACrG,KAAK,CAACyH,KAAK,IAAI,CAACpB,MAAM,CAACrG,KAAK,CAACyH,KAAKlG,SAAS;KACtF;AACD6O,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACzI,KAAK,EAAE;AACX,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC5E;AACDuK,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACjJ,KAAK,EAAE;AACb,MAAA,IAAI,CAACA,KAAK,CAACkJ,IAAG,KAAM,OAAM,IAAKlJ,KAAK,CAACkJ,IAAG,KAAM,aAAY,IAAKlJ,KAAK,CAACkJ,IAAG,KAAM,OAAO,KAAKlJ,KAAK,CAACwlB,aAAa,CAACC,QAAO,KAAM,IAAG,IAAKpb,YAAY,CAACrK,KAAK,CAACwlB,aAAa,EAAE,wBAAwB,CAAC,EAAE;AAC5L,QAAA,IAAI,CAACvlB,KAAK,CAAC,cAAc,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,SAAC,CAAC;QACzEsB,KAAK,CAACgJ,cAAc,EAAE;AAC1B;KACH;AACD0c,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC1lB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDinB,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC3lB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDknB,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAAC5lB,KAAK,EAAE;AACd,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC/E;AACDmnB,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC7lB,KAAK,EAAE;AACf,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAChF;AACDkX,IAAAA,MAAM,EAAA,SAANA,MAAMA,CAAC5V,KAAK,EAAE;AACV,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEtB,MAAM,EAAE,IAAI,CAACA;AAAO,OAAC,CAAC;KAC3E;AACDonB,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC9lB,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;IACD+lB,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AAAA,MAAA,IAAArf,KAAA,GAAA,IAAA;AACpB,MAAA,OAAO,IAAI,CAACzM,aAAa,CAAC6X,SAAS,CAAC,UAACkU,IAAI,EAAA;QAAA,OAAKA,IAAI,CAAC3f,KAAI,KAAMK,KAAI,CAACH,UAAU,CAAC,OAAO,CAAA,IAAKyf,IAAI,CAAC3f,KAAI,KAAMK,KAAI,CAACH,UAAU,CAAC,WAAW,CAAC;OAAA,CAAC;KACxI;IACD0f,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,IAAIrnB,KAAI,GAAI,IAAI,CAACmnB,qBAAqB,EAAE;MAExC,OAAO,IAAI,CAACrqB,WAAU,IAAK,IAAI,CAACA,WAAU,KAAM,IAAI,CAACwpB,qBAAqBtmB,KAAI,GAAI,EAAC,GAAIA,KAAI,GAAIA,KAAI,GAAI,CAAC;KAC3G;IACDsnB,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAAChsB,QAAO,KAAM,UAAS,IAAK,IAAI,CAACqM,UAAU,CAAC,UAAU,CAAA,IAAK,IAAI,CAACwf,qBAAqB,EAAC,GAAI,EAAE;KAC1G;IACDT,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAACprB,QAAO,KAAM,QAAO,GAAI,IAAI,CAACL,SAAQ,KAAM,IAAI,CAACA,cAAc,IAAI,CAAC0M,UAAU,CAAC,OAAO,CAAA,IAAK,IAAI,CAAC1M,SAAQ,KAAM,IAAI,CAAC0M,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC2f,aAAa,EAAE;KAChL;IACD1f,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAI8E,KAAI,GAAI,IAAI,CAAC9E,UAAU,CAAC,aAAa,CAAC;QAE1C,IAAI8E,KAAI,KAAM,OAAO,EAAE;UACnB,IAAIC,GAAE,GAAI,CAAC;UACX,IAAIC,IAAG,GAAIC,qBAAqB,CAAC,IAAI,CAAC1E,GAAG,EAAE,+BAA+B,CAAC;AAE3E,UAAA,IAAIyE,IAAI,EAAE;AACND,YAAAA,GAAE,GAAIG,aAAa,CAACF,IAAI,IAAIG,UAAU,CAACH,IAAI,CAACrN,KAAK,CAAC,kBAAkB,CAAA,IAAK,CAAC,CAAC;AAC/E;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC0F,cAAa,GAAIL,GAAE,GAAI,IAAI;AAChD,SAAA,MAAO;UACH,IAAIA,IAAE,GAAI,CAAC;UACX,IAAIM,IAAG,GAAIC,yBAAyB,CAAC,IAAI,CAAC/E,GAAG,EAAE,+BAA+B,CAAC;AAE/E,UAAA,IAAI8E,IAAI,EAAE;AACNN,YAAAA,IAAE,GAAIG,aAAa,CAACG,IAAI,CAAA,GAAIF,UAAU,CAACE,IAAI,CAAC1N,KAAK,CAAC,oBAAoB,CAAA,IAAK,CAAC,CAAC;AACjF;AAEA,UAAA,IAAI,CAAC+H,WAAW,CAAC6F,gBAAe,GAAIR,IAAE,GAAI,IAAI;AAClD;QAEA,IAAI6a,SAAQ,GAAI,IAAI,CAACrf,GAAG,CAACwD,aAAa,CAACM,kBAAkB;AAEzD,QAAA,IAAIub,SAAS,EAAE;AACX,UAAA,IAAIvnB,KAAI,GAAIwnB,QAAQ,CAAC,IAAI,CAACtf,GAAG,CAAC;AAE9B,UAAA,IAAIqf,SAAS,CAACve,QAAQ,CAAChJ,KAAK,CAAC,EAAE;AAC3BunB,YAAAA,SAAS,CAACve,QAAQ,CAAChJ,KAAK,CAAC,CAACV,KAAK,CAAC,oBAAoB,CAAA,GAAI,IAAI,CAAC+H,WAAW,CAAC,oBAAoB,CAAC;AAC9FkgB,YAAAA,SAAS,CAACve,QAAQ,CAAChJ,KAAK,CAAC,CAACV,KAAK,CAAC,kBAAkB,CAAA,GAAI,IAAI,CAAC+H,WAAW,CAAC,kBAAkB,CAAC;AAC9F;AACJ;AACJ;KACH;AACDogB,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAACrmB,KAAK,EAAE;AAC1B,MAAA,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;AACxC;GACH;AACDI,EAAAA,QAAQ,EAAE;IACN6L,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,CAAC,IAAI,CAACC,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAACiZ,YAAW,GAAI,IAAI,CAAC5e,UAAU,CAAC,mBAAmB,CAAA,GAAI,IAAI,CAACA,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,CAAC;KACtJ;IACD4F,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIma,WAAU,GAAI,IAAI,CAACnB,YAAW,GAAI,IAAI,CAAC5e,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAACA,UAAU,CAAC,aAAa,CAAC;AAC3G,MAAA,IAAI8F,WAAU,GAAI,IAAI,CAAC9F,UAAU,CAAC,OAAO,CAAC;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,IAAI,CAAC8F,WAAW,EAAEia,WAAW,EAAE,IAAI,CAACrgB,WAAW,CAAA,GAAI,CAACoG,WAAW,EAAEia,WAAW,CAAC;KAC/G;IACDC,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIlB,MAAK,GAAI,KAAK;MAClB,IAAIvrB,SAAQ,GAAI,IAAI;AAEpB,MAAA,IAAI,IAAI,CAACI,QAAO,KAAM,QAAQ,EAAE;QAC5BmrB,MAAK,GAAI,IAAI,CAACxrB,cAAc,IAAI,CAACA,SAAQ,KAAM,IAAI,CAAC0M,UAAU,CAAC,OAAO,CAAA,IAAK,IAAI,CAAC1M,SAAQ,KAAM,IAAI,CAAC0M,UAAU,CAAC,WAAW,CAAC,CAAC;AAC3HzM,QAAAA,SAAQ,GAAIurB,MAAK,GAAI,IAAI,CAACvrB,SAAQ,GAAI,CAAC;AAC3C,OAAA,MAAO,IAAI,IAAI,CAACI,QAAO,KAAM,UAAU,EAAE;AACrC,QAAA,IAAIssB,YAAY,IAAI,CAACT,qBAAqB,EAAE;AAE5C,QAAA,IAAIS,SAAQ,GAAI,EAAE,EAAE;AAChBnB,UAAAA,SAAS,IAAI;UACbvrB,SAAQ,GAAI,IAAI,CAACG,aAAa,CAACusB,SAAS,CAAC,CAACC,KAAK;AACnD;AACJ;MAEA,OAAO;AACHpB,QAAAA,MAAM,EAANA,MAAM;AACNvrB,QAAAA,SAAQ,EAARA;OACH;KACJ;IACD4sB,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAAC,eAAA,GAA8B,IAAI,CAACJ,SAAS;QAApClB,MAAM,GAAAsB,eAAA,CAANtB,MAAM;QAAEvrB,4BAAAA;MAEhB,IAAI,CAACurB,MAAM,EAAE,OAAOuB,WAAW,CAAA,KAC1B,IAAIvB,UAAUvrB,SAAQ,GAAI,CAAC,EAAE,OAAO+sB,mBAAmB,CAAA,KACvD,IAAIxB,UAAUvrB,SAAQ,GAAI,CAAC,EAAE,OAAOgtB,kBAAkB;AAE3D,MAAA,OAAO,IAAI;KACd;IACDC,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAI,IAAI,CAACxgB,UAAU,CAAC,UAAU,CAAC,EAAE;AAC7B,QAAA,IAAAygB,gBAAA,GAA8B,IAAI,CAACT,SAAS;UAApClB,MAAM,GAAA2B,gBAAA,CAAN3B,MAAM;UAAEvrB,6BAAAA;QAEhB,IAAIurB,MAAK,IAAKvrB,SAAQ,GAAI,CAAC,EAAE,OAAO,YAAY,CAAA,KAC3C,IAAIurB,MAAK,IAAKvrB,SAAQ,GAAI,CAAC,EAAE,OAAO,WAAW,CAAA,KAC/C,OAAO,MAAM;AACtB,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;AACJ;GACH;AACD8G,EAAAA,UAAU,EAAE;AACRqmB,IAAAA,KAAK,EAALA,KAAK;AACLnD,IAAAA,gBAAgB,EAAEC,QAAc;AAChCC,IAAAA,cAAc,EAAEC,QAAY;AAC5B2C,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxCC,IAAAA,kBAAkB,EAAEA;AACxB;AACJ,CAAC;;;;;;;;;;;;;ECvXG,OAAArlB,SAAA,EAAA,EAAA0M,kBAAA,CAiFI,MAjFJtM,UAAA,CAiFI;IAhFC3D,KAAK,EAAEkD,QAAA,CAAA+K,cAAc;IACrB,OAAA,EAAO/K,QAAA,CAAA6K,cAAc;IACrBkJ,QAAQ,EAAE/T,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA,GAAA,GAAA,GAAA,IAAA;AACrB6H,IAAAA,IAAI,EAAC,cAAa;AACjBE,IAAAA,OAAO,EAAElN,QAAA,CAAAmF,UAAU,CAAA,SAAA,CAAA;AACnBgI,IAAAA,OAAO,EAAEnN,QAAA,CAAAmF,UAAU,CAAA,SAAA,CAAA;IACnB,WAAS,EAAEnF,QAAA,CAAA2lB,QAAQ;IACnBte,OAAK;aAAErH,QAAA,CAAAqH,OAAA,IAAArH,QAAA,CAAAqH,OAAA,CAAA7K,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAO;AAAA,KAAA,CAAA;IACdwJ,SAAO;aAAEpN,QAAA,CAAA6H,SAAA,IAAA7H,QAAA,CAAA6H,SAAA,CAAArL,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAS;AAAA,KAAA,CAAA;IAClBuQ,WAAS;aAAEnU,QAAA,CAAAskB,WAAA,IAAAtkB,QAAA,CAAAskB,WAAA,CAAA9nB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAW;AAAA,KAAA,CAAA;IACtBwQ,WAAS;aAAEpU,QAAA,CAAAukB,WAAA,IAAAvkB,QAAA,CAAAukB,WAAA,CAAA/nB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAW;AAAA,KAAA,CAAA;IACtByQ,UAAQ;aAAErU,QAAA,CAAAwkB,UAAA,IAAAxkB,QAAA,CAAAwkB,UAAA,CAAAhoB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAU;AAAA,KAAA,CAAA;IACpB0Q,WAAS;aAAEtU,QAAA,CAAAykB,WAAA,IAAAzkB,QAAA,CAAAykB,WAAA,CAAAjoB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAW;AAAA,KAAA,CAAA;IACtB4Q,MAAI;aAAExU,QAAA,CAAAwU,MAAA,IAAAxU,QAAA,CAAAwU,MAAA,CAAAhY,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAM;KAAA;AACA,GAAA,EAAAqJ,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAjN,QAAA,CAAAtC,WAAW,WAAasC,QAAA,CAAAtC,WAAW,CAAA,YAAA,CAAA,CAAA,EAAA;AAC/C,IAAA,wBAAsB,EAAEsC,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA;IAClC,yBAAuB,EAAEpH,MAAA,CAAAhE,gBAAgB;AACzC,IAAA,eAAa,EAAEiG,QAAA,CAAAkkB,cAAc,EAAA;IAC7B,sBAAoB,EAAEnmB,MAAA,CAAAgmB,YAAY;AAClC,IAAA,sBAAoB,EAAE/jB,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA;IAChC,2BAAyB,EAAEpH,MAAA,CAAA9D;OAEhB8D,MAAA,CAAAhE,gBAAe,KAAMiG,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,IAA3C9E,SAAA,EAAA,EAAA0M,kBAAA,CAA2J,QAA3JtM,UAAA,CAA2J;;AAAnG,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,eAAA,CAAA;IAAoBqJ,WAAS;aAAEnU,QAAA,CAAA0kB,aAAA,IAAA1kB,QAAA,CAAA0kB,aAAA,CAAAloB,KAAA,CAAAwD,QAAA,EAAA4D,SAAA,CAAa;KAAA;KAAU5D,QAAA,CAAAtC,WAAW,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAClIoW,kBAAA,CAwDK,OAxDLrT,UAAA,CAwDK;AAxDC,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,qBAAA;KAAiC9K,QAAA,CAAAtC,WAAW,CAAA,qBAAA,CAAA,CAAA,EAAA,CACtCK,MAAA,CAAAT,MAAM,CAACkJ,YAAYzI,aAAM,CAACyI,QAAQ,CAACsf,MAAM,IAA1DzlB,SAAA,EAAA,EAAAV,WAAA,CAA2GW,uBAAA,CAA1CvC,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACsf,MAAM,CAAA,EAAA;;IAAGxoB,MAAM,EAAES,MAAA,CAAAT;2DACtF0C,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,IAAtB9E,SAAA,EAAA,EAAA0M,kBAAA,CAAiI,QAAjItM,UAAA,CAAiI;;AAA9F,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,aAAA;GAAyB,EAAA9K,QAAA,CAAAtC,WAAW,kCAAoBsC,QAAA,CAAAmF,UAAU,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA,kCAClGnF,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA,IAAtB9E,SAAA,EAAA,EAAA0M,kBAAA,CAEM;;KAFsC/M,QAAA,CAAAtC,WAAW,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,EACnD2C,SAAA,EAAA,EAAAV,WAAA,CAA2MW,uBAAA,CAA1LvC,MAAA,CAAAT,MAAM,CAACkJ,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACuf,QAAQ,IAAK/lB,QAAA,CAAAslB,kBAAkB,GAAnF7kB,UAAA,CAA2M;AAArHwjB,IAAAA,MAAM,EAAEjkB,QAAA,CAAAmlB,SAAS,CAAClB,MAAM;AAAGvrB,IAAAA,SAAS,EAAEsH,QAAA,CAAAmlB,SAAS,CAACzsB,SAAS;AAAG,IAAA,OAAA,EAAOqH,IAAA,CAAA+K,EAAE,CAAA,UAAA;KAAsB9K,QAAA,CAAAtC,WAAW,CAAA,UAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,OAAA,CAAA,CAAA,yCAEnLsC,QAAA,CAAA8kB,aAAa,EAAA,iBAA1BnlB,WAAA,CAAiIqmB,gBAAA,EAAA;;IAAlG,OAAA,iBAAOjmB,IAAA,CAAA+K,EAAE,CAAA,aAAA,CAAA,CAAA;AAAkBpM,IAAAA,EAAE,EAAEsB,QAAA,CAAAtC,WAAW,CAAA,aAAA,CAAA;AAAkBxG,IAAAA,KAAK,EAAE8I,QAAA,CAAA6kB,aAAa,EAAA;AAAIrpB,IAAAA,IAAI,EAAC;yEAE9GwE,QAAA,CAAAmF,UAAU,oCAAoCpH,MAAA,CAAA9E,aAAY,KAAA,KAAA,iBADpE0G,WAAA,CASCmjB,2BAAA,EAAA;;IAPIzlB,OAAO,EAAEU,MAAA,CAAAwkB,eAAe;IACxB5jB,QAAM,EAAEqB,QAAA,CAAAilB,sBAAsB;IAC9B9mB,QAAQ,EAAEJ,MAAA,CAAA2Q,KAAK;AACf0T,IAAAA,0BAA0B,EAAErkB,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACyf,kBAAkB;IACjF3oB,MAAM,EAAES,MAAA,CAAAT,MAAM;IACd2C,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBvB,EAAE,EAAEqB,IAAA,CAAArB;8IAGCX,MAAA,CAAA9E,aAAY,KAAA,MAAA,IAAgB8E,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACzK,MAAM,iBAD/E4D,WAAA,CAsCCojB,yBAAA,EAAA;;AApCI9d,IAAAA,KAAK,EAAEjF,QAAA,CAAAmF,UAAU,CAAA,aAAA,CAAA,IAAmBnF,QAAA,CAAAmF,UAAU,CAAA,OAAA,CAAA;AAC9ChO,IAAAA,IAAI,EAAE6I,QAAA,CAAAmF,UAAU,CAAA,UAAA,CAAA;AACjBqT,IAAAA,OAAO,EAAC,MAAK;AACZC,IAAAA,QAAQ,EAAEzY,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA;AACpB+T,IAAAA,aAAa,EAAEnb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACzK,MAAM;AACxDod,IAAAA,oBAAoB,EAAEpb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACwc,YAAY;AACrE5J,IAAAA,oBAAoB,EAAErb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAACyc,YAAY;AACrE5J,IAAAA,mBAAmB,EAAEtb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC0c,WAAW;AACnE5J,IAAAA,mBAAmB,EAAEvb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC2c,WAAW;AACnE5J,IAAAA,kBAAkB,EAAExb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC4c,UAAU;AACjE5J,IAAAA,qBAAqB,EAAEzb,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC6c,aAAa;AACvE5J,IAAAA,wBAAwB,EAAE1b,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC8c,gBAAgB;AAC7E5J,IAAAA,uBAAuB,EAAE3b,aAAM,CAACyI,QAAO,IAAKzI,MAAA,CAAAT,MAAM,CAACkJ,QAAQ,CAAC+c,eAAe;IAC3EvqB,OAAO,EAAE+E,MAAA,CAAA/E,OAAO;IAChB2gB,YAAY,EAAE5b,MAAA,CAAA4b,YAAY;IAC1B/d,gBAAgB,EAAEmC,MAAA,CAAAnC,gBAAgB;IAClCC,iBAAiB,EAAEkC,MAAA,CAAAlC,iBAAiB;AACpC2nB,IAAAA,cAAa,EAAA/V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAC5C+V,IAAAA,aAAY;aAAE1jB,IAAA,CAAAlB,KAAK,CAAA,cAAA,CAAA;AAAA,KAAA,CAAA;AACnBgb,IAAAA,eAAe,EAAE7Z,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3ByU,IAAAA,eAAe,EAAE5Z,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3BwT,IAAAA,YAAY,EAAE3Y,QAAA,CAAAmF,UAAU,CAAA,oBAAA,CAAA;AACxByT,IAAAA,eAAe,EAAE5Y,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3B0T,IAAAA,eAAe,EAAE7Y,QAAA,CAAAmF,UAAU,CAAA,iBAAA,CAAA;AAC3B2T,IAAAA,cAAc,EAAE9Y,QAAA,CAAAmF,UAAU,CAAA,sBAAA,CAAA;AAC1B4T,IAAAA,aAAa,EAAE/Y,QAAA,CAAAmF,UAAU,CAAA,eAAA,CAAA;AACzB6T,IAAAA,gBAAgB,EAAEhZ,QAAA,CAAAmF,UAAU,CAAA,wBAAA,CAAA;AAC5B8T,IAAAA,cAAc,EAAEjZ,QAAA,CAAAmF,UAAU,CAAA,gBAAA,CAAA;AAC1B6W,IAAAA,gBAAe,EAAAvO,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAChDgW,IAAAA,iBAAgB,EAAAjW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAClDiW,IAAAA,eAAc,EAAAlW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AAC9CkW,IAAAA,kBAAiB,EAAAnW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,mBAAA,EAAsB6O,MAAM,CAAA;AAAA,KAAA,CAAA;AACpDmW,IAAAA,YAAW,EAAApW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,KAAA,CAAA;IACxCpQ,MAAM,EAAES,MAAA,CAAAT,MAAM;IACd2C,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;IAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;;;;;AC2CrB,eAAe;AACX3H,EAAAA,IAAI,EAAE,aAAa;AACnBoG,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAASnG,aAAa;AACtBoG,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAY,CACf;AACDnG,EAAAA,KAAK,EAAE;AACH4f,IAAAA,WAAW,EAAE;AACT1f,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDsX,IAAAA,OAAO,EAAE;AACLtX,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDkD,IAAAA,YAAY,EAAE;AACVlD,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgD,IAAAA,WAAW,EAAE;AACTnD,MAAAA,IAAI,EAAE,CAACC,KAAK,EAAEE,MAAM,EAAEC,QAAQ,CAAC;MAC/B,SAAA,EAAS;KACZ;AACDwC,IAAAA,gBAAgB,EAAE;AACd5C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD0qB,IAAAA,eAAe,EAAE;AACbprB,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACD6W,IAAAA,KAAK,EAAE;AACHvX,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDiB,IAAAA,QAAQ,EAAE;AACN3B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACDwsB,IAAAA,iBAAiB,EAAE;AACf3sB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDkB,IAAAA,SAAS,EAAE;AACPtB,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAA,EAAS;KACZ;AACDmB,IAAAA,SAAS,EAAE;AACPvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDoB,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAA,EAAS;KACZ;AACD6B,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0B,IAAAA,OAAO,EAAE;AACL7B,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACD0hB,IAAAA,YAAY,EAAE;AACVxiB,MAAAA,IAAI,EAAEc,MAAM;MACZ,SAAA,EAAS;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChB9C,MAAAA,IAAI,EAAEU,OAAO;MACb,SAAA,EAAS;KACZ;AACDH,IAAAA,KAAK,EAAE;AACHP,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDmE,IAAAA,gBAAgB,EAAE;AACdzE,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACD0E,IAAAA,iBAAiB,EAAE;AACf1E,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;AACb;GACH;EACD6F,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACH8Z,KAAK,EAAE,IAAI,CAACoP,YAAY;MACxBlP,QAAQ,EAAE,IAAI,CAACmP;KAClB;GACJ;EACDpnB,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHmnB,YAAY,EAAE,IAAIhP,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;AAAM,OAAC,CAAC;MAC5CgvB,eAAe,EAAE,IAAIjP,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;OAAU;KACpD;GACJ;EACDyO,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,IAAA,IAAI,CAACsgB,YAAY,CAAC9pB,KAAK,EAAE;AACzB,IAAA,IAAI,CAAC+pB,eAAe,CAAC/pB,KAAK,EAAE;GAC/B;AACDqB,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDoR,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACxZ,GAAG,EAAE;AAAA,MAAA,IAAAsI,qBAAA;AAClB,MAAA,IAAMmR,mBAAkB,GAAI;AACxBngB,QAAAA,KAAK,EAAE,IAAI,CAACogB,mBAAmB,EAAE;AACjCxZ,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACL/G,UAAAA,IAAI,EAAE,QAAQ;AACd4D,UAAAA,UAAU,GAAAkL,qBAAA,GAAE,IAAI,CAAC/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsB/I,eAAe,cAAA+I,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuClL;AACvD;OACH;MAED,OAAOsD,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,cAAA,CAAAC,MAAA,CAAgBZ,GAAG,CAAA,EAAI;AAAEkZ,QAAAA,WAAW,EAAEO;OAAqB,CAAC,EAAE,IAAI,CAAC9Y,GAAG,CAAA,cAAA,CAAAC,MAAA,CAAgBZ,GAAG,CAAA,EAAIyZ,mBAAmB,CAAC,EAAE,IAAI,CAAC5Y,IAAI,CAAC,IAAI,CAAC6Y,mBAAmB,EAAE,EAAE1Z,GAAG,EAAEyZ,mBAAmB,CAAC,CAAC;KAChN;IACDC,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAACR,WAAU,IAAK,IAAI,CAACA,WAAW,CAAC5f,KAAI,IAAK,IAAI,CAAC4f,WAAW,CAAC5f,KAAK,CAACyH,KAAK,IAAI,CAACmY,WAAW,CAAC5f,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KACzH;IACD+e,QAAQ,EAAA,SAARA,QAAQA,CAACC,GAAG,EAAE7Z,GAAG,EAAEH,KAAK,EAAE;AACtB,MAAA,IAAMia,cAAc;QAChBxgB,KAAK,EAAEugB,GAAG,CAACvgB,KAAK;AAChB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAI;AAAE6Z,QAAAA,GAAG,EAAEC;AAAY,OAAC,CAAC,EAAE,IAAI,CAACnZ,GAAG,CAAA,MAAA,CAAAC,MAAA,CAAQZ,GAAG,CAAA,EAAI8Z,WAAW,CAAC,EAAE,IAAI,CAACjZ,IAAI,CAAC,IAAI,CAACkZ,UAAU,CAACF,GAAG,CAAC,EAAE7Z,GAAG,EAAE8Z,WAAW,CAAC,CAAC;KAC1J;AACDC,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACF,GAAG,EAAE;AACZ,MAAA,OAAOA,GAAG,CAACvgB,SAASugB,GAAG,CAACvgB,KAAK,CAACyH,EAAC,GAAI8Y,GAAG,CAACvgB,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KAC9D;IACDkF,WAAW,EAAA,SAAXA,WAAWA,CAACJ,MAAM,EAAEK,GAAG,EAAEH,KAAK,EAAE;AAC5B,MAAA,IAAMI,iBAAiB;QACnB3G,KAAK,EAAEqG,MAAM,CAACrG,KAAK;AACnB4G,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd7G,KAAK,EAAE,IAAI,CAAC8G,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC;SACf;AACDC,QAAAA,OAAO,EAAE;AACLV,UAAAA,KAAI,EAAJA;AACJ;OACH;MAED,OAAOa,UAAU,CAAC,IAAI,CAACC,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAI;AAAEL,QAAAA,MAAM,EAAEM;AAAe,OAAC,CAAC,EAAE,IAAI,CAACU,GAAG,CAAA,SAAA,CAAAC,MAAA,CAAWZ,GAAG,CAAA,EAAIC,cAAc,CAAC,EAAE,IAAI,CAACY,IAAI,CAAC,IAAI,CAACC,aAAa,CAACnB,MAAM,CAAC,EAAEK,GAAG,EAAEC,cAAc,CAAC,CAAC;KAClL;AACDa,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACnB,MAAM,EAAE;AAClB,MAAA,OAAOA,MAAM,CAACrG,KAAI,IAAKqG,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIpB,MAAM,CAACrG,KAAK,CAACyH,EAAC,GAAIlG,SAAS,CAAA;KACvE;AACDgqB,IAAAA,0BAA0B,EAAA,SAA1BA,0BAA0BA,CAACllB,MAAM,EAAE;AAC/B,MAAA,OAAO,CAAC,IAAI,CAACwN,EAAE,CAAC,YAAY,EAAE;AAAExN,QAAAA,MAAK,EAALA;AAAO,OAAC,CAAC,EAAE,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7H;AACDmlB,IAAAA,0BAA0B,EAAA,SAA1BA,0BAA0BA,CAACnlB,MAAM,EAAE;AAC/B,MAAA,OAAO,CAAC,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1F;IACD8oB,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAC,kBAAA;MACZ,OAAA,CAAAA,kBAAA,GAAO,IAAI,CAACH,YAAY,MAAA,IAAA,IAAAG,kBAAA,uBAAjBA,kBAAA,CAAmBxO,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAE,IAAI,CAACA,WAAW,CAACrQ,QAAQ,CAAC;KAC7E;AACD8f,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC9O,GAAG,EAAE;AAAA,MAAA,IAAA+O,qBAAA;AAClB,MAAA,OAAA,CAAAA,qBAAA,GAAO,IAAI,CAACJ,eAAe,cAAAI,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAsB1O,GAAG,CAACL,GAAG,EAAEA,GAAG,CAAChR,QAAQ,CAAC;AACvD;GACH;AACDxH,EAAAA,QAAQ,EAAE;IACNwnB,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAtgB,sBAAA;MACd,OAAO;AACHhI,QAAAA,OAAO,EAAE;AACLnD,UAAAA,UAAU,GAAAmL,sBAAA,GAAE,IAAI,CAAChJ,eAAe,cAAAgJ,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAApBA,sBAAA,CAAsBhJ,eAAe,cAAAgJ,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,sBAAA,CAAuCnL;AACvD;OACH;AACL;GACH;AACDyE,EAAAA,UAAU,EAAE;AACRinB,IAAAA,YAAY,EAAEC,QAAU;AACxBC,IAAAA,kBAAkB,EAAEC;AACxB;AACJ,CAAC;;;;;;;;;;;;;EClUG,OAAAvmB,SAAA,EAAA,EAAA0M,kBAAA,CA+GO,SA/GPtM,UAAA,CA+GO;AA9GF,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,OAAA,CAAA;AACThO,IAAAA,KAAK,EAAEiD,IAAA,CAAAoY,EAAE,CAAA,OAAA,CAAA;AACVnL,IAAAA,IAAI,EAAC;KACGjP,MAAA,CAAA8Y,WAAU,GAAA5J,eAAA,CAAAA,eAAA,CAAA,EAAA,EAASlN,QAAG,CAAA,OAAA,EAAUC,QAAA,CAAAwmB,eAAe,IAAMxmB,QAAA,CAAAmX,gBAAgB,CAAA,MAAA,CAAA,CAAA,GAAapX,IAAA,CAAAzB,GAAG,CAAA,OAAA,EAAU0B,QAAA,CAAAwmB,eAAe,CAAA,EAAA;AACrH,IAAA,mBAAiB,GAAApO,oBAAA,GAAErY,IAAA,CAAA7C,eAAe,cAAAkb,oBAAA,KAAA,MAAA,IAAA,CAAAA,oBAAA,GAAfA,oBAAA,CAAiBlb,eAAe,MAAA,IAAA,IAAAkb,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,oBAAA,CAAkCrd,UAAU;AAChE,IAAA,iBAAe,EAAC;QAECgD,MAAA,CAAA8Y,WAAW,IACxBxW,SAAA,EAAA,EAAA0M,kBAAA,CAyCI,MAzCJtM,UAAA,CAyCI;;AAzCAuM,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,WAAA,CAAA,CAAA,EAAA,EACtB+B,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAuCUQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CAvCmB1W,MAAA,CAAA0Q,OAAO,EAAA,UAAlBe,GAAG,EAAEpO,CAAC,EAAA;;AAAoBzD,MAAAA,GAAA,EAAAqC,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkBxP,mBAAU,CAACwP,GAAG,cAAcpO;SAEzFpB,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,KAAgBzR,MAAA,CAAA1D,YAAW,oBAAqB0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,OAAA,CAAA,CAAA,iBADvG7P,WAAA,CAqCCknB,uBAAA,EAAA;;AAnCIvpB,MAAAA,MAAM,EAAEkS,GAAG;AACXhS,MAAAA,KAAK,EAAE4D,CAAC;AACR0lB,MAAAA,aAAY,EAAArZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC1CqZ,MAAAA,iBAAgB,EAAAtZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDsZ,MAAAA,iBAAgB,EAAAvZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDuZ,MAAAA,gBAAe,EAAAxZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDwZ,MAAAA,iBAAgB,EAAAzZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDyZ,MAAAA,YAAW,EAAA1Z,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MACxCpT,WAAW,EAAEyD,MAAA,CAAAzD,WAAW;MACxBwpB,iBAAiB,EAAE/lB,MAAA,CAAA+lB,iBAAiB;MACpC7pB,kBAAkB,EAAE8D,MAAA,CAAA9D,kBAAkB;MACtCF,gBAAgB,EAAEgE,MAAA,CAAAhE,gBAAgB;AAClCqtB,MAAAA,mBAAkB,EAAA3Z,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,oBAAA,EAAuB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MACtD5U,QAAQ,EAAEiF,MAAA,CAAAjF,QAAQ;MAClBL,SAAS,EAAEsF,MAAA,CAAAtF,SAAS;MACpBC,SAAS,EAAEqF,MAAA,CAAArF,SAAS;MACpBG,aAAa,EAAEkF,MAAA,CAAAlF,aAAa;MAC5B0pB,eAAe,EAAExkB,MAAA,CAAAwkB,eAAe;MAChC7T,KAAK,EAAE3Q,MAAA,CAAA2Q,KAAK;AACZmD,MAAAA,gBAAe,EAAApE,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MAChD1U,OAAO,EAAE+E,MAAA,CAAA/E,OAAO;MAChBC,aAAa,EAAE8E,MAAA,CAAA9E,aAAa;MAC5B0gB,YAAY,EAAE5b,MAAA,CAAA4b,YAAY;MAC1B/d,gBAAgB,EAAEmC,MAAA,CAAAnC,gBAAgB;MAClCC,iBAAiB,EAAEkC,MAAA,CAAAlC,iBAAiB;MACpCnE,KAAK,EAAEqG,MAAA,CAAArG,KAAK;AACZ8rB,MAAAA,cAAa,EAAA/V,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C+V,MAAAA,aAAY;eAAE1jB,IAAA,CAAAlB,KAAK,CAAA,cAAA,CAAA;AAAA,OAAA,CAAA;AACnBmd,MAAAA,gBAAe,EAAAvO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDgW,MAAAA,iBAAgB,EAAAjW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDiW,MAAAA,eAAc,EAAAlW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9CkW,MAAAA,kBAAiB,EAAAnW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,mBAAA,EAAsB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACpDmW,MAAAA,YAAW,EAAApW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MACxCzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;MAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;sBAMjB2B,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CA8BIQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA8W,UAAA,CA9BmBzU,QAAA,CAAAomB,aAAa,EAAA,EAAA,UAAxB5O,GAAG,EAAEpW,CAAC,EAAA;IAAlB,OAAAf,SAAA,EAAA,EAAA0M,kBAAA,CA8BI,MA9BJtM,UAAA,CA8BI;AA9BqC9C,MAAAA,GAAG,EAAEyD,CAAC;AAAE4L,MAAAA,IAAI,EAAC;AAAmB,KAAA,EAAA;AAAAsL,MAAAA,OAAA,EAAA;KAAA,EAAArL,eAAA,CAAAA,eAAA,KAAAlN,IAAA,CAAAzB,GAAG,CAAA,WAAA,CAAA,GAAkB0B,QAAA,CAAAuX,QAAQ,CAACC,GAAG,UAAUpW,CAAC,CAAA,CAAA,CAAA,EAAA,EACjHf,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CA4BUQ,2BA5BmBvN,QAAA,CAAAsmB,gBAAgB,CAAC9O,GAAG,CAAA,EAAA,UAA/BhI,GAAG,EAAE+I,CAAC,EAAA;;AAAkC5a,QAAAA,GAAA,EAAAqC,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkBxP,mBAAU,CAACwP,GAAG,cAAc+I;UAEvG,CAAAvY,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,KAAgBzR,MAAA,CAAA1D,YAAW,KAAA,WAAA,IAAqB0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,OAAA,CAAA,CAAA,IAAA,OAAsBA,GAAG,CAAChJ,QAAO,KAAA,QAAA,iBADxI7G,WAAA,CA0BCknB,uBAAA,EAAA;;AAxBIvpB,QAAAA,MAAM,EAAEkS,GAAG;AACXsX,QAAAA,aAAY,EAAArZ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,cAAA,EAAiB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1CqZ,QAAAA,iBAAgB,EAAAtZ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,SAAA,CAAA;QAClDpT,WAAW,EAAEyD,MAAA,CAAAzD,WAAW;QACxBwpB,iBAAiB,EAAE/lB,MAAA,CAAA+lB,iBAAiB;QACpChrB,QAAQ,EAAEiF,MAAA,CAAAjF,QAAQ;QAClBL,SAAS,EAAEsF,MAAA,CAAAtF,SAAS;QACpBC,SAAS,EAAEqF,MAAA,CAAArF,SAAS;QACpBG,aAAa,EAAEkF,MAAA,CAAAlF,aAAa;QAC5B0pB,eAAe,EAAExkB,MAAA,CAAAwkB,eAAe;QAChC7T,KAAK,EAAE3Q,MAAA,CAAA2Q,KAAK;AACZmD,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,SAAA,CAAA;QAChD1U,OAAO,EAAE+E,MAAA,CAAA/E,OAAO;QAChBC,aAAa,EAAE8E,MAAA,CAAA9E,aAAa;QAC5B0gB,YAAY,EAAE5b,MAAA,CAAA4b,YAAY;AAC1B6J,QAAAA,cAAa,EAAA/V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5C+V,QAAAA,aAAY;iBAAE1jB,IAAA,CAAAlB,KAAK,CAAA,cAAA,CAAA;AAAA,SAAA,CAAA;AACnBmd,QAAAA,gBAAe,EAAAvO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AAChDgW,QAAAA,iBAAgB,EAAAjW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AAClDiW,QAAAA,eAAc,EAAAlW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9CkW,QAAAA,kBAAiB,EAAAnW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,mBAAA,EAAsB6O,MAAM,CAAA;AAAA,SAAA,CAAA;AACpDmW,QAAAA,YAAW,EAAApW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,SAAA,CAAA;QACxCzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;QAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;;aAKXX,MAAA,CAAA9E,aAAY,KAAA,KAAA,IAAtBoH,SAAA,EAAA,EAAA0M,kBAAA,CAyBI,MAzBJtM,UAAA,CAyBI;;AAzB+BuM,IAAAA,IAAI,EAAC;KAAcjN,IAAA,CAAAzB,GAAG,CAAA,WAAA,CAAA,CAAA,EAAA,EACrD+B,SAAA,CAAA,IAAA,CAAA,EAAA0M,kBAAA,CAuBUQ,QAAA,EAAA,IAAA,EAAAkH,UAAA,CAvBmB1W,MAAA,CAAA0Q,OAAO,EAAA,UAAlBe,GAAG,EAAEpO,CAAC,EAAA;;AAAoBzD,MAAAA,GAAA,EAAAqC,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,WAAA,CAAA,IAAkBxP,mBAAU,CAACwP,GAAG,cAAcpO;SAEzFpB,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,QAAA,CAAA,KAAgBzR,MAAA,CAAA1D,YAAW,oBAAqB0D,MAAA,CAAAzD,WAAU,KAAM0F,QAAA,CAAAmF,UAAU,CAACqK,GAAG,EAAA,OAAA,CAAA,CAAA,iBADvG7P,WAAA,CAqBC0nB,6BAAA,EAAA;;AAnBI/pB,MAAAA,MAAM,EAAEkS,GAAG;AACXhS,MAAAA,KAAK,EAAE4D,CAAC;MACRmhB,eAAe,EAAExkB,MAAA,CAAAwkB,eAAe;MAChC7T,KAAK,EAAE3Q,MAAA,CAAA2Q,KAAK;AACb8J,MAAAA,OAAO,EAAC,KAAI;MACXxf,OAAO,EAAE+E,MAAA,CAAA/E,OAAO;MAChB2gB,YAAY,EAAE5b,MAAA,CAAA4b,YAAY;MAC1B/d,gBAAgB,EAAEmC,MAAA,CAAAnC,gBAAgB;MAClCC,iBAAiB,EAAEkC,MAAA,CAAAlC,iBAAiB;AACpC2nB,MAAAA,cAAa,EAAA/V,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,eAAA,EAAkB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC5C+V,MAAAA,aAAY;eAAE1jB,IAAA,CAAAlB,KAAK,CAAA,cAAA,CAAA;AAAA,OAAA,CAAA;AACnBmd,MAAAA,gBAAe,EAAAvO,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAChDgW,MAAAA,iBAAgB,EAAAjW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,kBAAA,EAAqB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAClDiW,MAAAA,eAAc,EAAAlW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,gBAAA,EAAmB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AAC9CkW,MAAAA,kBAAiB,EAAAnW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,mBAAA,EAAsB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACpDmW,MAAAA,YAAW,EAAApW,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,aAAA,EAAgB6O,MAAM,CAAA;AAAA,OAAA,CAAA;AACxCmE,MAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE3N,IAAA,CAAAlB,KAAK,CAAA,iBAAA,EAAoB6O,MAAM,CAAA;AAAA,OAAA,CAAA;MAChDzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;MAClBvB,EAAE,EAAEqB,IAAA,CAAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACyPzB,aAAe;AACX3H,EAAAA,IAAI,EAAE,WAAW;AACjB,EAAA,SAAA,EAASuwB,QAAa;AACtBC,EAAAA,YAAY,EAAE,KAAK;AACnBnqB,EAAAA,KAAK,EAAE,CACH,cAAc,EACd,cAAc,EACd,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,iBAAgB,CACnB;EACDJ,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHga,MAAAA,QAAQ,EAAE,IAAI,CAACwQ,SAAS,CAAC3P,GAAG,EAAE;AAC9B4P,MAAAA,aAAa,EAAE,IAAI,CAACC,cAAc,CAAC7P,GAAG;KACzC;GACJ;EACD9Y,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACH4oB,OAAO,EAAE,IAAI,CAACjwB,KAAK;MACnBkwB,MAAM,EAAE,IAAI,CAACpwB,IAAI;MACjBqwB,WAAW,EAAE,IAAI,CAACpvB,SAAS;MAC3BqvB,WAAW,EAAE,IAAI,CAACpvB,SAAS;MAC3BqvB,eAAe,EAAE,IAAI,CAACnvB,aAAa;MACnCovB,eAAe,EAAE,IAAI,CAACnvB,aAAY,GAAAovB,kBAAA,CAAQ,IAAI,CAACpvB,aAAa,CAAA,GAAI,EAAE;AAClEqvB,MAAAA,mBAAmB,EAAE,IAAI;AACzBC,MAAAA,eAAe,EAAE,IAAI;AACrBC,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,gBAAgB,EAAE,IAAI;MACtBC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,IAAI,CAACxvB,OAAO,CAAC;MAC1CwuB,SAAS,EAAE,IAAItQ,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;AAAS,OAAC,CAAC;MAC5CuwB,cAAc,EAAE,IAAIxQ,SAAS,CAAC;AAAE/f,QAAAA,IAAI,EAAE;OAAe;KACxD;GACJ;AACDsxB,EAAAA,UAAU,EAAE,KAAK;AACjBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,4BAA4B,EAAE,IAAI;AAClCC,EAAAA,+BAA+B,EAAE,IAAI;AACrCC,EAAAA,iBAAiB,EAAE,IAAI;AACvBC,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,cAAc,EAAE,KAAK;AACrBC,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,iBAAiB,EAAE,IAAI;AACvBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,oBAAoB,EAAE,KAAK;AAC3B5kB,EAAAA,KAAK,EAAE;AACHpN,IAAAA,KAAK,EAAA,SAALA,KAAKA,CAACqN,QAAQ,EAAE;MACZ,IAAI,CAAC4iB,OAAM,GAAI5iB,QAAQ;KAC1B;AACDvN,IAAAA,IAAI,EAAA,SAAJA,IAAIA,CAACuN,QAAQ,EAAE;MACX,IAAI,CAAC6iB,MAAK,GAAI7iB,QAAQ;KACzB;AACDtM,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACsM,QAAQ,EAAE;MAChB,IAAI,CAAC8iB,WAAU,GAAI9iB,QAAQ;KAC9B;AACDrM,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACqM,QAAQ,EAAE;MAChB,IAAI,CAAC+iB,WAAU,GAAI/iB,QAAQ;KAC9B;AACDnM,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACmM,QAAQ,EAAE;MACpB,IAAI,CAACgjB,eAAc,GAAIhjB,QAAQ;KAClC;AACDlM,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACkM,QAAQ,EAAE;MACpB,IAAI,CAACijB,eAAc,GAAIjjB,QAAQ;KAClC;AACD3L,IAAAA,SAAS,EAAE;AACPgW,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACtK,QAAQ,EAAE;QACd,IAAI,IAAI,CAAC1N,OAAO,EAAE;AACd,UAAA,IAAI,CAACsyB,mBAAmB,CAAC5kB,QAAQ,CAAC;AACtC;AACJ;KACH;AACDnK,IAAAA,WAAW,EAAE;AACTwU,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACtK,QAAQ,EAAE;QACd,IAAI,IAAI,CAAC1N,OAAO,EAAE;AACd,UAAA,IAAI,CAACuyB,oBAAoB,CAAC7kB,QAAQ,CAAC;AACvC;AACJ;KACH;AACD/L,IAAAA,OAAO,EAAE;AACLmW,MAAAA,IAAI,EAAE,IAAI;AACVE,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAYtK,QAAQ,EAAE;QACzB,IAAI,CAACwjB,SAAQ,GAAI,IAAI,CAACC,YAAY,CAACzjB,QAAQ,CAAC;AAChD;AACJ;GACH;EACDG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAAC2kB,UAAU,EAAE,EAAE;MACnB,IAAI,CAACC,YAAY,EAAE;AAEnB,MAAA,IAAI,CAAC/vB,gBAAe,IAAK,IAAI,CAACgwB,mBAAmB,EAAE;AACvD;AAEA,IAAA,IAAI,IAAI,CAACpvB,QAAO,KAAM,KAAI,IAAK,IAAI,CAACtD,OAAM,IAAK,CAAC,IAAI,CAACgxB,gBAAgB,EAAE;AACnE,MAAA,IAAI,CAACuB,oBAAoB,CAAC,IAAI,CAAChvB,WAAW,CAAC;AAC/C;GACH;EACDgL,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACokB,wBAAwB,EAAE;IAC/B,IAAI,CAACC,mBAAmB,EAAE;AAE1B,IAAA,IAAI,CAACzC,SAAS,CAACprB,KAAK,EAAE;AACtB,IAAA,IAAI,CAACsrB,cAAc,CAACtrB,KAAK,EAAE;GAC9B;EACDiJ,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACwkB,UAAU,EAAE,EAAE;MACnB,IAAI,CAACK,SAAS,EAAE;AACpB;AAEA,IAAA,IAAI,IAAI,CAACvvB,QAAO,KAAM,KAAI,IAAK,IAAI,CAACtD,OAAM,IAAK,CAAC,IAAI,CAACgxB,gBAAgB,EAAE;AACnE,MAAA,IAAI,CAACuB,oBAAoB,CAAC,IAAI,CAAChvB,WAAW,CAAC;AAC/C;GACH;AACD6C,EAAAA,OAAO,EAAE;AACL0H,IAAAA,UAAU,WAAVA,UAAUA,CAACqK,GAAG,EAAEzJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACwJ,GAAG,EAAEzJ,IAAI,CAAC;KACjC;AACDokB,IAAAA,MAAM,EAAA,SAANA,MAAMA,CAACvrB,KAAK,EAAE;AAAA,MAAA,IAAA0G,KAAA,GAAA,IAAA;MACV,IAAI,CAAC8kB,oBAAoB,EAAE;AAE3B,MAAA,IAAI,CAACzC,OAAM,GAAI/oB,KAAK,CAAClH,KAAK;AAC1B,MAAA,IAAI,CAACkwB,MAAK,GAAIhpB,KAAK,CAACpH,IAAI;AAExB,MAAA,IAAI6yB,SAAQ,GAAI,IAAI,CAACC,mBAAmB,CAAC1rB,KAAK,CAAC;AAE/CyrB,MAAAA,SAAS,CAACE,SAAQ,GAAI3rB,KAAK,CAAC2rB,SAAS;AACrCF,MAAAA,SAAS,CAACG,IAAG,GAAI5rB,KAAK,CAAC4rB,IAAI;MAE3B,IAAI,CAAC3rB,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC8oB,OAAO,CAAC;MACxC,IAAI,CAAC9oB,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC+oB,MAAM,CAAC;AACtC,MAAA,IAAI,CAAC/oB,KAAK,CAAC,MAAM,EAAEwrB,SAAS,CAAC;MAC7B,IAAI,CAAC5hB,SAAS,CAAC,YAAM;QACjBnD,KAAI,CAACzG,KAAK,CAAC,cAAc,EAAEyG,KAAI,CAACmlB,aAAa,CAAC;AAClD,OAAC,CAAC;KACL;AACDC,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAAC9pB,CAAC,EAAE;AAAA,MAAA,IAAA+F,MAAA,GAAA,IAAA;AACnB,MAAA,IAAM/H,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMxB,MAAK,GAAIsD,CAAC,CAACtD,MAAM;MAEvB,IAAI,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,UAAU,CAAC,EAAE;AACrC,QAAA,IAAMqtB,aAAa/rB,KAAK,CAACiI,MAAM;AAC/B,QAAA,IAAM+jB,WAAU,GAAI,IAAI,CAACzlB,UAAU,CAAC7H,MAAM,EAAE,WAAW,CAAA,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC;AAE5F,QAAA,IACI2L,YAAY,CAAC0hB,UAAU,EAAE,wBAAwB,CAAA,KAAM,IAAG,IAC1D1hB,YAAY,CAAC0hB,UAAU,EAAE,iBAAiB,CAAA,KAAM,aAAY,IAC5D1hB,YAAY,CAAC0hB,UAAU,EAAE,iBAAiB,CAAA,KAAM,yBAChD1hB,YAAY,CAAC0hB,UAAU,EAAE,iBAAiB,CAAA,KAAM,UAAS,IACzD1hB,YAAY,CAAC0hB,UAAU,CAACzhB,aAAa,EAAE,iBAAiB,CAAA,KAAM,cAC9DD,YAAY,CAAC0hB,UAAU,CAACzhB,aAAa,CAACA,aAAa,EAAE,iBAAiB,CAAA,KAAM,cAC3EyhB,UAAU,CAACE,OAAO,CAAC,iCAAiC,CAAA,IAAK,CAACF,UAAU,CAACE,OAAO,CAAC,wCAAwC,CAAA,IAAK,CAACC,WAAW,CAAClsB,KAAK,CAACiI,MAAM,CAAC,EACvJ;AACEkkB,UAAAA,cAAc,EAAE;AAEhB,UAAA,IAAI,IAAI,CAACjyB,QAAO,KAAM,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC+uB,WAAU,KAAM+C,WAAW,EAAE;AAClC,cAAA,IAAI,IAAI,CAAC7xB,aAAY,IAAK,IAAI,CAAC+uB,WAAU,GAAI,EAAC,KAAM,IAAI,CAACnvB,gBAAgB,EAAE;gBACvE,IAAI,CAACmvB,WAAU,GAAI,IAAI;gBACvB,IAAI,CAACD,WAAU,GAAI,IAAI;AAC3B,eAAA,MAAO;gBACH,IAAI,CAACC,cAAc,IAAI,CAACA,WAAU,GAAI,EAAE;AAC5C;AACJ,aAAA,MAAO;AACH,cAAA,IAAI,CAACA,WAAU,GAAI,IAAI,CAACnvB,gBAAgB;cACxC,IAAI,CAACkvB,WAAU,GAAI+C,WAAW;AAClC;YAEA,IAAI,CAAC/rB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACgpB,WAAW,CAAC;YAChD,IAAI,CAAChpB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACipB,WAAW,CAAC;YAChD,IAAI,CAACkD,SAAS,EAAE;AACpB,WAAA,MAAO,IAAI,IAAI,CAAClyB,QAAO,KAAM,UAAU,EAAE;YACrC,IAAImyB,OAAM,GAAIrsB,KAAK,CAACqsB,OAAM,IAAKrsB,KAAK,CAACssB,OAAO;YAE5C,IAAI,CAACD,OAAO,EAAE;cACV,IAAI,CAACjD,eAAc,GAAI,IAAI,CAACA,eAAe,CAACjsB,MAAM,CAAC,UAAC6oB,IAAI,EAAA;AAAA,gBAAA,OAAKA,IAAI,CAAC3f,KAAI,KAAM2lB,WAAW;eAAA,CAAC;AAC5F;AAEA,YAAA,IAAI,CAACO,iBAAiB,CAACP,WAAW,CAAC;YACnC,IAAI,CAAC/rB,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACmpB,eAAe,CAAC;AAC5D;UAEA,IAAI,CAACnpB,KAAK,CAAC,MAAM,EAAE,IAAI,CAACyrB,mBAAmB,CAAC1rB,KAAK,CAAC,CAAC;UACnD,IAAI,CAAC6J,SAAS,CAAC,YAAM;YACjB9B,MAAI,CAAC9H,KAAK,CAAC,cAAc,EAAE8H,MAAI,CAAC8jB,aAAa,CAAC;AAClD,WAAC,CAAC;AACN;AACJ;KACH;AACDW,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACl0B,KAAK,EAAE;AAAA,MAAA,IAAAoQ,MAAA,GAAA,IAAA;MACd,IAAI,CAAC8iB,oBAAoB,EAAE;MAE3B,IAAI,IAAI,CAAC9vB,WAAU,IAAK,IAAI,CAACA,WAAU,KAAM,IAAI,CAAC7B,SAAS,EAAE;QACzD,IAAI,CAACuvB,kBAAkB,CACnB;UAAE/iB,KAAK,EAAE,IAAI,CAACxM,SAAS;AAAE4sB,UAAAA,KAAK,EAAE,IAAI,CAAC3sB,SAAQ,IAAK,IAAI,CAACC;AAAiB,SAAC,EACzE;UAAEsM,KAAK,EAAE,IAAI,CAAC4iB,WAAW;UAAExC,KAAK,EAAE,IAAI,CAACyC;AAAY,SAAA,CACtD;AAED,QAAA,OAAO,IAAI,CAACuD,YAAY,CAACn0B,KAAK,CAAC;AACnC;AAEA,MAAA,IAAI6H,0BAAW7H,KAAK,CAAC;AACrB,MAAA,IAAIo0B,iBAAgB,GAAI,IAAIC,GAAG,EAAE;AAAA,MAAA,IAAA5Y,SAAA,GAAAC,0BAAA,CAEhB7T,IAAI,CAAA;QAAA8T,KAAA;AAAA,MAAA,IAAA;QAArB,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAA3R,CAAA,EAAA,EAAAuB,IAAA,GAAuB;AAAA,UAAA,IAAdkZ,IAAG,GAAA5I,KAAA,CAAA3b,KAAA;AACRo0B,UAAAA,iBAAiB,CAACvO,GAAG,CAACtB,IAAI,EAAEtV,gBAAgB,CAACsV,IAAI,EAAE,IAAI,CAACoM,WAAW,CAAC,CAAC;AACzE;AAAA,OAAA,CAAA,OAAA5U,GAAA,EAAA;QAAAN,SAAA,CAAA/R,CAAA,CAAAqS,GAAA,CAAA;AAAA,OAAA,SAAA;AAAAN,QAAAA,SAAA,CAAAhR,CAAA,EAAA;AAAA;AAEA,MAAA,IAAM6pB,QAAO,GAAIC,gBAAgB,EAAE;AAEnC1sB,MAAAA,IAAI,CAAC2sB,IAAI,CAAC,UAAC9a,KAAK,EAAEC,KAAK,EAAK;AACxB,QAAA,IAAI8a,MAAK,GAAIL,iBAAiB,CAACzT,GAAG,CAACjH,KAAK,CAAC;AACzC,QAAA,IAAIgb,MAAK,GAAIN,iBAAiB,CAACzT,GAAG,CAAChH,KAAK,CAAC;AAEzC,QAAA,OAAO6a,IAAI,CAACC,MAAM,EAAEC,MAAM,EAAEtkB,MAAI,CAACwgB,WAAW,EAAE0D,QAAQ,EAAElkB,MAAI,CAACygB,eAAe,CAAC;AACjF,OAAC,CAAC;AAEF,MAAA,OAAOhpB,IAAI;KACd;AACDssB,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACn0B,KAAK,EAAE;AAAA,MAAA,IAAAgR,MAAA,GAAA,IAAA;MAChB,IAAI,CAACkiB,oBAAoB,EAAE;MAE3B,IAAI,IAAI,CAAC9vB,WAAU,KAAM,IAAI,CAAC4tB,mBAAkB,IAAM,IAAI,CAACF,eAAe,CAAC7lB,MAAK,IAAK,IAAI,CAAC7H,WAAU,KAAM,IAAI,CAAC0tB,eAAe,CAAC,CAAC,CAAC,CAAC/iB,KAAM,CAAC,EAAE;AACvI,QAAA,IAAM4mB,aAAY,GAAI,IAAI,CAAC7D,eAAe,CAAC,CAAC,CAAC;QAE7C,CAAC,IAAI,CAACE,mBAAkB,KAAM,IAAI,CAACA,mBAAkB,GAAI2D,aAAa,CAAC;QAEvE,IAAIA,aAAa,CAAC5mB,KAAI,KAAM,IAAI,CAACijB,mBAAmB,CAACjjB,KAAK,EAAE;AACxD,UAAA,IAAI,CAAC+iB,eAAc,GAAA,CAAK,IAAI,CAACE,mBAAmB,CAAA,CAAA3pB,MAAA,CAAA0pB,kBAAA,CAAK,IAAI,CAACD,eAAe,CAAA,CAAC;AAC9E;AACJ;AAEA,MAAA,IAAIjpB,0BAAW7H,KAAK,CAAC;AAErB6H,MAAAA,IAAI,CAAC2sB,IAAI,CAAC,UAAC9a,KAAK,EAAEC,KAAK,EAAK;QACxB,OAAO3I,MAAI,CAAC4jB,cAAc,CAAClb,KAAK,EAAEC,KAAK,EAAE,CAAC,CAAC;AAC/C,OAAC,CAAC;AAEF,MAAA,OAAO9R,IAAI;KACd;IACD+sB,cAAc,EAAA,SAAdA,cAAcA,CAAClb,KAAK,EAAEC,KAAK,EAAErT,KAAK,EAAE;AAChC,MAAA,IAAMmuB,MAAK,GAAIxlB,gBAAgB,CAACyK,KAAK,EAAE,IAAI,CAACoX,eAAe,CAACxqB,KAAK,CAAC,CAACyH,KAAK,CAAC;AACzE,MAAA,IAAM2mB,MAAK,GAAIzlB,gBAAgB,CAAC0K,KAAK,EAAE,IAAI,CAACmX,eAAe,CAACxqB,KAAK,CAAC,CAACyH,KAAK,CAAC;AACzE,MAAA,IAAMumB,QAAO,GAAIC,gBAAgB,EAAE;MAEnC,IAAIE,MAAK,KAAMC,MAAM,EAAE;QACnB,OAAO,IAAI,CAAC5D,eAAe,CAAC7lB,MAAK,GAAI,CAAA,GAAI3E,KAAI,GAAI,IAAI,CAACsuB,cAAc,CAAClb,KAAK,EAAEC,KAAK,EAAErT,KAAI,GAAI,CAAC,CAAA,GAAI,CAAC;AACrG;MAEA,OAAOkuB,IAAI,CAACC,MAAM,EAAEC,MAAM,EAAE,IAAI,CAAC5D,eAAe,CAACxqB,KAAK,CAAC,CAAC6nB,KAAK,EAAEmG,QAAQ,EAAE,IAAI,CAACzD,eAAe,CAAC;KACjG;AACDoD,IAAAA,iBAAiB,EAAA,SAAjBA,iBAAiBA,CAAClmB,KAAK,EAAE;MACrB,IAAIzH,KAAI,GAAI,IAAI,CAACwqB,eAAe,CAACtX,SAAS,CAAC,UAACkU,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAAC3f,KAAI,KAAMA,KAAK;OAAA,CAAC;MAE1E,IAAIzH,KAAI,IAAK,CAAC,EAAE;AACZ,QAAA,IAAI,IAAI,CAACzE,aAAY,IAAK,IAAI,CAACivB,eAAe,CAACxqB,KAAK,CAAC,CAAC6nB,KAAI,GAAI,EAAC,KAAM,IAAI,CAAC1sB,gBAAgB,EAAE,IAAI,CAACqvB,eAAe,CAACnN,MAAM,CAACrd,KAAK,EAAE,CAAC,CAAC,CAAA,KAC5H,IAAI,CAACwqB,eAAe,CAACxqB,KAAK,CAAA,GAAI;AAAEyH,UAAAA,KAAK,EAAEA,KAAK;UAAEogB,KAAK,EAAE,IAAI,CAAC2C,eAAe,CAACxqB,KAAK,CAAC,CAAC6nB,QAAQ;SAAI;AACtG,OAAA,MAAO;AACH,QAAA,IAAI,CAAC2C,eAAe,CAACtV,IAAI,CAAC;AAAEzN,UAAAA,KAAK,EAAEA,KAAK;UAAEogB,KAAK,EAAE,IAAI,CAAC1sB;AAAiB,SAAC,CAAC;AAC7E;MAEA,IAAI,CAACqvB,eAAc,GAAAC,kBAAA,CAAQ,IAAI,CAACD,eAAe,CAAC;KACnD;AACD+D,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC/yB,OAAO,EAAE;AACtB,MAAA,IAAMgzB,kBAAiB,GAAI,SAArBA,kBAAiBA,CAAAC,IAAA,EAAsB;AAAA,QAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAhBtuB,UAAAA,GAAG,GAAAuuB,KAAA,CAAA,CAAA,CAAA;AAAEh1B,UAAAA,KAAK,GAAAg1B,KAAA,CAAA,CAAA,CAAA;QACnC,IAAIh1B,KAAK,CAACojB,WAAW,EAAE;UACnB,IAAM8R,sBAAsBl1B,KAAK,CAACojB,WAAW,CAACve,MAAM,CAAC,UAACqgB,UAAU,EAAA;AAAA,YAAA,OAAKA,UAAU,CAACllB,KAAI,KAAM,IAAI;WAAA,CAAC;AAE/F,UAAA,IAAIk1B,mBAAmB,CAACjqB,MAAK,GAAI,CAAC,EAAE;AAChC,YAAA,OAAO,CAACxE,GAAG,EAAAsP,eAAA,CAAAA,eAAA,KAAO/V,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEojB,cAAAA,WAAW,EAAE8R;aAAkB,CAAA,CAAI;AAChE;AACJ,SAAA,MAAO,IAAIl1B,KAAK,CAACA,KAAI,KAAM,IAAI,EAAE;AAC7B,UAAA,OAAO,CAACyG,GAAG,EAAEzG,KAAK,CAAC;AACvB;AAEA,QAAA,OAAOsB,SAAS;OACnB;AAED,MAAA,IAAM6zB,kBAAiB,GAAI,SAArBA,kBAAiBA,CAAKC,KAAK,EAAA;QAAA,OAAKA,KAAI,KAAM9zB,SAAS;AAAA,OAAA;AACzD,MAAA,IAAM+zB,OAAM,GAAIt0B,MAAM,CAACs0B,OAAO,CAACvzB,OAAO,CAAC,CAAC4lB,GAAG,CAACoN,kBAAkB,CAAC,CAACjwB,MAAM,CAACswB,kBAAkB,CAAC;AAE1F,MAAA,OAAOp0B,MAAM,CAACu0B,WAAW,CAACD,OAAO,CAAC;KACrC;AACDxwB,IAAAA,MAAM,EAAA,SAANA,MAAMA,CAACgD,IAAI,EAAE;AAAA,MAAA,IAAA4J,MAAA,GAAA,IAAA;MACT,IAAI,CAAC5J,IAAI,EAAE;AACP,QAAA;AACJ;MAEA,IAAI,CAACqrB,oBAAoB,EAAE;MAE3B,IAAIqC,aAAY,GAAI,IAAI,CAACV,gBAAgB,CAAC,IAAI,CAAC/yB,OAAO,CAAC;AACvD,MAAA,IAAI0zB,uBAAuB;AAE3B,MAAA,IAAID,aAAa,CAAC,QAAQ,CAAC,EAAE;AACzBC,QAAAA,0BAA0B,IAAI,CAACxzB,kBAAiB,IAAK,IAAI,CAACuV,OAAO,CAACmQ,GAAG,CAAC,UAACpP,GAAG,EAAA;AAAA,UAAA,OAAK7G,MAAI,CAACxD,UAAU,CAACqK,GAAG,EAAE,aAAa,CAAA,IAAK7G,MAAI,CAACxD,UAAU,CAACqK,GAAG,EAAE,OAAO,CAAC;SAAA,CAAC;AACxJ;MAEA,IAAImd,aAAY,GAAI,EAAE;AAEtB,MAAA,KAAK,IAAIvrB,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAIrC,IAAI,CAACoD,MAAM,EAAEf,CAAC,EAAE,EAAE;QAClC,IAAIwrB,UAAS,GAAI,IAAI;QACrB,IAAIC,WAAU,GAAI,KAAK;QACvB,IAAIC,aAAY,GAAI,KAAK;AAEzB,QAAA,KAAK,IAAI/mB,IAAG,IAAK0mB,aAAa,EAAE;AAC5B,UAAA,IAAIx0B,MAAM,CAACqJ,SAAS,CAACyrB,cAAc,CAACzqB,IAAI,CAACmqB,aAAa,EAAE1mB,IAAI,CAAA,IAAKA,IAAG,KAAM,QAAQ,EAAE;AAChF+mB,YAAAA,aAAY,GAAI,IAAI;YACpB,IAAIE,WAAU,GAAIjnB,IAAI;AACtB,YAAA,IAAIknB,UAAS,GAAIR,aAAa,CAACO,WAAW,CAAC;YAE3C,IAAIC,UAAU,CAAC5S,QAAQ,EAAE;AAAA,cAAA,IAAA6S,UAAA,GAAAta,0BAAA,CACQqa,UAAU,CAAC3S,WAAW,CAAA;gBAAA6S,MAAA;AAAA,cAAA,IAAA;gBAAnD,KAAAD,UAAA,CAAApa,CAAA,EAAA,EAAA,CAAA,CAAAqa,MAAA,GAAAD,UAAA,CAAAlsB,CAAA,EAAA,EAAAuB,IAAA,GAAqD;AAAA,kBAAA,IAA5C8d,gBAAe,GAAA8M,MAAA,CAAAj2B,KAAA;AACpB01B,kBAAAA,UAAS,GAAI,IAAI,CAACQ,kBAAkB,CAACJ,WAAW,EAAEjuB,IAAI,CAACqC,CAAC,CAAC,EAAEif,gBAAgB,CAAC;kBAE5E,IAAK4M,UAAU,CAAC5S,QAAO,KAAM4E,cAAc,CAACG,MAAMwN,UAAU,IAAMK,UAAU,CAAC5S,QAAO,KAAM4E,cAAc,CAACC,GAAE,IAAK,CAAC0N,UAAW,EAAE;AAC1H,oBAAA;AACJ;AACJ;AAAA,eAAA,CAAA,OAAA3Z,GAAA,EAAA;gBAAAia,UAAA,CAAAtsB,CAAA,CAAAqS,GAAA,CAAA;AAAA,eAAA,SAAA;AAAAia,gBAAAA,UAAA,CAAAvrB,CAAA,EAAA;AAAA;AACJ,aAAA,MAAO;AACHirB,cAAAA,UAAS,GAAI,IAAI,CAACQ,kBAAkB,CAACJ,WAAW,EAAEjuB,IAAI,CAACqC,CAAC,CAAC,EAAE6rB,UAAU,CAAC;AAC1E;YAEA,IAAI,CAACL,UAAU,EAAE;AACb,cAAA;AACJ;AACJ;AACJ;QAEA,IAAIA,UAAS,IAAKH,aAAa,CAAC,QAAQ,CAAA,IAAK,CAACI,eAAeH,uBAAuB,EAAE;AAClF,UAAA,KAAK,IAAInU,CAAA,GAAI,CAAC,EAAEA,IAAImU,uBAAuB,CAACvqB,MAAM,EAAEoW,CAAC,EAAE,EAAE;AACrD,YAAA,IAAI8U,iBAAgB,GAAIX,uBAAuB,CAACnU,CAAC,CAAC;AAElDsU,YAAAA,cAAcS,aAAa,CAACt0B,OAAO,CAACyzB,aAAa,CAAC,QAAQ,CAAC,CAAC/T,aAAa6U,eAAe,CAACC,QAAQ,CAAC,CAACrnB,gBAAgB,CAACpH,IAAI,CAACqC,CAAC,CAAC,EAAEisB,iBAAiB,CAAC,EAAEZ,aAAa,CAAC,QAAQ,CAAC,CAACv1B,KAAK,EAAE,IAAI,CAACiC,YAAY,CAAC;AAElM,YAAA,IAAI0zB,WAAW,EAAE;AACb,cAAA;AACJ;AACJ;AACJ;AAEA,QAAA,IAAIY,OAAO,GAAA,MAAA;AAEX,QAAA,IAAIhB,aAAa,CAAC,QAAQ,CAAC,EAAE;UACzBgB,OAAM,GAAIX,aAAY,GAAIA,aAAY,IAAKF,UAAS,IAAKC,WAAU,GAAIA,WAAW;AACtF,SAAA,MAAO;UACHY,OAAM,GAAIX,aAAY,IAAKF,UAAU;AACzC;AAEA,QAAA,IAAIa,OAAO,EAAE;AACTd,UAAAA,aAAa,CAACja,IAAI,CAAC3T,IAAI,CAACqC,CAAC,CAAC,CAAC;AAC/B;AACJ;MAEA,IAAIurB,aAAa,CAACxqB,WAAW,IAAI,CAACjL,KAAK,CAACiL,MAAK,IAAKlK,MAAM,CAACy1B,IAAI,CAACjB,aAAa,CAAC,CAACtqB,UAAU,CAAC,EAAE;AACtFwqB,QAAAA,aAAY,GAAI5tB,IAAI;AACxB;AAEA,MAAA,IAAI4uB,WAAU,GAAI,IAAI,CAACrD,mBAAmB,EAAE;MAE5CqD,WAAW,CAAChB,aAAY,GAAIA,aAAa;AACzC,MAAA,IAAI,CAAC9tB,KAAK,CAAC,QAAQ,EAAE8uB,WAAW,CAAC;AACjC,MAAA,IAAI,CAAC9uB,KAAK,CAAC,cAAc,EAAE8tB,aAAa,CAAC;AAEzC,MAAA,OAAOA,aAAa;KACvB;IACDS,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACnoB,KAAK,EAAElB,OAAO,EAAEkpB,UAAU,EAAE;AAC3C,MAAA,IAAIW,WAAU,GAAIX,UAAU,CAAC/1B,KAAK;MAClC,IAAI22B,eAAc,GAAIZ,UAAU,CAACvU,SAAQ,IAAK6U,eAAe,CAACO,WAAW;AACzE,MAAA,IAAIC,cAAa,GAAI5nB,gBAAgB,CAACpC,OAAO,EAAEkB,KAAK,CAAC;AACrD,MAAA,IAAIob,gBAAe,GAAIiN,aAAa,CAACt0B,OAAO,CAAC60B,eAAe,CAAC;MAE7D,OAAOxN,gBAAgB,CAAC0N,cAAc,EAAEH,WAAW,EAAE,IAAI,CAACz0B,YAAY,CAAC;KAC1E;AACD4X,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACnQ,CAAC,EAAE;AACV,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMuO,IAAG,GAAI,IAAI,CAACoP,KAAK,CAACtH,OAAM,IAAK,IAAI,CAACsH,KAAK,CAACtH,OAAO,CAACzP,GAAG;AACzD,MAAA,IAAMsoB,WAAU,GAAIC,UAAU,CAAC5gB,IAAI,EAAE,gDAAgD,CAAC;AAEtF,MAAA,IAAIyd,WAAW,CAAClsB,KAAK,CAACiI,MAAM,CAAC,EAAE;AAC3B,QAAA;AACJ;AAEA,MAAA,IAAI,CAAChI,KAAK,CAAC,WAAW,EAAE+B,CAAC,CAAC;MAE1B,IAAI,IAAI,CAACvH,aAAa,EAAE;AACpB,QAAA,IAAM0K,UAAUnD,CAAC,CAAC7B,IAAI;QACtB,IAAMkF,QAAO,GAAI,IAAI,CAAC0jB,OAAM,GAAI/mB,CAAC,CAACpD,KAAK;AAEvC,QAAA,IAAI,IAAI,CAAC0wB,uBAAuB,EAAC,IAAKtvB,KAAK,CAACmJ,QAAO,IAAK,IAAI,CAAC2gB,cAAa,IAAK,IAAI,EAAE;AACjFqC,UAAAA,cAAc,EAAE;UAChB,IAAI,CAACpC,aAAY,GAAI1kB,QAAQ;AAC7B,UAAA,IAAI,CAACkqB,WAAW,CAACvvB,KAAK,CAAC;AAC3B,SAAA,MAAO;AACH,UAAA,IAAMuF,QAAO,GAAI,IAAI,CAACyL,UAAU,CAAC7L,OAAO,CAAC;UACzC,IAAMqqB,aAAY,GAAI,IAAI,CAAC3F,UAAS,GAAI,KAAI,GAAI,IAAI,CAAClvB,gBAAgB;UAErE,IAAI,CAACmvB,cAAa,GAAIzkB,QAAQ;UAC9B,IAAI,CAAC0kB,aAAY,GAAI1kB,QAAQ;AAE7B,UAAA,IAAImqB,aAAa,EAAE;YACf,IAAInD,OAAM,GAAIrsB,KAAK,CAACqsB,OAAM,IAAKrsB,KAAK,CAACssB,OAAO;YAE5C,IAAI/mB,YAAY8mB,OAAO,EAAE;AACrB,cAAA,IAAI,IAAI,CAACoD,qBAAqB,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAACxvB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACxC,eAAA,MAAO;AACH,gBAAA,IAAMyvB,cAAa,GAAI,IAAI,CAAC7d,oBAAoB,CAAC1M,OAAO,CAAC;gBACzD,IAAMwqB,UAAS,GAAI,IAAI,CAACn1B,SAAS,CAAC2C,MAAM,CAAC,UAACyyB,GAAG,EAAEptB,CAAC,EAAA;kBAAA,OAAKA,CAAA,IAAKktB,cAAc;iBAAA,CAAC;AAEzE,gBAAA,IAAI,CAACzvB,KAAK,CAAC,kBAAkB,EAAE0vB,UAAU,CAAC;AAC9C;AAEA,cAAA,IAAI,CAAC1vB,KAAK,CAAC,cAAc,EAAE;AAAEC,gBAAAA,aAAa,EAAEF,KAAK;AAAEG,gBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,gBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,gBAAAA,IAAI,EAAE;AAAM,eAAC,CAAC;AACrG,aAAA,MAAO;AACH,cAAA,IAAI,IAAI,CAACk3B,qBAAqB,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAACxvB,KAAK,CAAC,kBAAkB,EAAEkF,OAAO,CAAC;AAC3C,eAAA,MAAO,IAAI,IAAI,CAACmqB,uBAAuB,EAAE,EAAE;gBACvC,IAAIK,cAAatD,OAAM,GAAI,IAAI,CAAC7xB,aAAa,EAAC,GAAI,EAAE;gBAEpDm1B,WAAS,GAAA,EAAA,CAAAhwB,MAAA,CAAA0pB,kBAAA,CAAQsG,WAAU,CAAA,EAAA,CAAExqB,OAAO,CAAA,CAAC;AACrC,gBAAA,IAAI,CAAClF,KAAK,CAAC,kBAAkB,EAAE0vB,WAAU,CAAC;AAC9C;AAEA,cAAA,IAAI,CAAC1vB,KAAK,CAAC,YAAY,EAAE;AAAEC,gBAAAA,aAAa,EAAEF,KAAK;AAAEG,gBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,gBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,gBAAAA,IAAI,EAAE;AAAM,eAAC,CAAC;AACnG;AACJ,WAAA,MAAO;AACH,YAAA,IAAI,IAAI,CAACkC,aAAY,KAAM,QAAQ,EAAE;AACjC,cAAA,IAAI8K,QAAQ,EAAE;AACV,gBAAA,IAAI,CAACtF,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpC,gBAAA,IAAI,CAACA,KAAK,CAAC,cAAc,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,kBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACrG,eAAA,MAAO;AACH,gBAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAEkF,OAAO,CAAC;AACvC,gBAAA,IAAI,CAAClF,KAAK,CAAC,YAAY,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,kBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACnG;AACJ,aAAA,MAAO,IAAI,IAAI,CAACkC,aAAY,KAAM,UAAU,EAAE;AAC1C,cAAA,IAAI8K,QAAQ,EAAE;AACV,gBAAA,IAAMmqB,eAAa,GAAI,IAAI,CAAC7d,oBAAoB,CAAC1M,OAAO,CAAC;gBACzD,IAAMwqB,WAAS,GAAI,IAAI,CAACn1B,SAAS,CAAC2C,MAAM,CAAC,UAACyyB,GAAG,EAAEptB,CAAC,EAAA;kBAAA,OAAKA,CAAA,IAAKktB,eAAc;iBAAA,CAAC;AAEzE,gBAAA,IAAI,CAACzvB,KAAK,CAAC,kBAAkB,EAAE0vB,WAAU,CAAC;AAC1C,gBAAA,IAAI,CAAC1vB,KAAK,CAAC,cAAc,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,kBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACrG,eAAA,MAAO;AACH,gBAAA,IAAMo3B,WAAS,GAAI,IAAI,CAACn1B,SAAQ,GAAA,EAAA,CAAAmF,MAAA,CAAA0pB,kBAAA,CAAQ,IAAI,CAAC7uB,SAAS,CAAA,EAAA,CAAE2K,OAAO,CAAA,CAAA,GAAI,CAACA,OAAO,CAAC;AAE5E,gBAAA,IAAI,CAAClF,KAAK,CAAC,kBAAkB,EAAE0vB,WAAU,CAAC;AAC1C,gBAAA,IAAI,CAAC1vB,KAAK,CAAC,YAAY,EAAE;AAAEC,kBAAAA,aAAa,EAAEF,KAAK;AAAEG,kBAAAA,IAAI,EAAEgF,OAAO;AAAEvG,kBAAAA,KAAK,EAAEyG,QAAQ;AAAE9M,kBAAAA,IAAI,EAAE;AAAM,iBAAC,CAAC;AACnG;AACJ;AACJ;AACJ;AACJ;MAEA,IAAI,CAACsxB,UAAS,GAAI,KAAK;AAEvB,MAAA,IAAIuF,WAAW,EAAE;QAAA,IAAAS,aAAA,EAAAC,oBAAA;AACb,QAAA,IAAI,EAAAD,aAAA,GAAA7vB,KAAK,CAACiI,MAAM,MAAA,IAAA,IAAA4nB,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcxlB,YAAY,CAAC,iBAAiB,OAAM,eAAe,EAAE;AAEvE,QAAA,IAAM0lB,SAAQ,GAAA,CAAAD,oBAAA,GAAI9vB,KAAK,CAACwlB,aAAa,MAAA,IAAA,IAAAsK,oBAAA,uBAAnBA,oBAAA,CAAqB7D,OAAO,CAAC,kCAAkC,CAAC;QAElFmD,WAAW,CAACnS,WAAW,IAAI;AAC3B,QAAA,IAAI8S,SAAS,EAAEA,SAAS,CAAC9S,QAAO,GAAI,GAAG;AAC3C;KACH;AACD7K,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACpQ,CAAC,EAAE;AACb,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAE7B,MAAA,IAAIgsB,WAAW,CAAClsB,KAAK,CAACiI,MAAM,CAAC,EAAE;AAC3B,QAAA;AACJ;AAEA,MAAA,IAAI,CAAChI,KAAK,CAAC,cAAc,EAAE+B,CAAC,CAAC;KAChC;AACDqQ,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACrS,KAAK,EAAE;MACnB,IAAI,IAAI,CAACpF,WAAW,EAAE;AAClBuxB,QAAAA,cAAc,EAAE;AAChBnsB,QAAAA,KAAK,CAACE,aAAa,CAAC+H,MAAM,CAAClB,KAAK,EAAE;AACtC;MAEA,IAAI,CAAC9G,KAAK,CAAC,6BAA6B,EAAED,KAAK,CAACG,IAAI,CAAC;AACrD,MAAA,IAAI,CAACF,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;IACDsS,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAACuX,UAAS,GAAI,IAAI;KACzB;AACDtX,IAAAA,YAAY,WAAZA,YAAYA,CAACvQ,CAAC,EAAER,SAAS,EAAE;AACvB,MAAA,IAAMxB,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMiF,UAAUnD,CAAC,CAAC7B,IAAI;AACtB,MAAA,IAAMkF,QAAO,GAAIrD,CAAC,CAACpD,KAAK;MACxB,IAAMytB,UAAUrsB,KAAK,CAACqsB,WAAWrsB,KAAK,CAACssB,OAAO;MAE9C,IAAI,IAAI,CAAC7xB,aAAa,EAAE;AACpB,QAAA,IAAMme,MAAM5Y,KAAK,CAACiI,MAAM;QAExB,QAAQjI,KAAK,CAACkJ,IAAI;AACd,UAAA,KAAK,WAAW;YACZ,IAAI,CAAC8mB,cAAc,CAAChwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,CAAC;AACpD,YAAA;AAEJ,UAAA,KAAK,SAAS;YACV,IAAI,CAACyuB,YAAY,CAACjwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,CAAC;AAClD,YAAA;AAEJ,UAAA,KAAK,MAAM;YACP,IAAI,CAAC0uB,SAAS,CAAClwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,CAAC;AAC/C,YAAA;AAEJ,UAAA,KAAK,KAAK;YACN,IAAI,CAAC2uB,QAAQ,CAACnwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,CAAC;AAC9C,YAAA;AAEJ,UAAA,KAAK,OAAO;AACZ,UAAA,KAAK,aAAa;YACd,IAAI,CAAC4uB,UAAU,CAACpwB,KAAK,EAAEmF,OAAO,EAAEE,QAAQ,CAAC;AACzC,YAAA;AAEJ,UAAA,KAAK,OAAO;YACR,IAAI,CAACgrB,UAAU,CAACrwB,KAAK,EAAEmF,OAAO,EAAEE,QAAQ,EAAE7D,SAAS,CAAC;AACpD,YAAA;AAEJ,UAAA,KAAK,KAAK;AACN,YAAA,IAAI,CAAC8uB,QAAQ,CAACtwB,KAAK,EAAEqF,QAAQ,CAAC;AAC9B,YAAA;AAEJ,UAAA;AACI,YAAA,IAAIrF,KAAK,CAACkJ,IAAG,KAAM,MAAK,IAAKmjB,OAAM,IAAK,IAAI,CAACiD,uBAAuB,EAAE,EAAE;cACpE,IAAMnvB,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,cAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC;AACxC;YAEA,IAAMqwB,cAAa,GAAIxwB,KAAK,CAACkJ,IAAG,KAAM,MAAK,IAAKmjB,OAAO;AAEvD,YAAA,IAAI,CAACmE,cAAc,EAAExwB,KAAK,CAACgJ,cAAc,EAAE;AAE3C,YAAA;AACR;AACJ;KACH;IACDgnB,cAAc,EAAA,SAAdA,cAAcA,CAAChwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,EAAE;AAC5C,MAAA,IAAMqJ,OAAM,GAAI,IAAI,CAAC4lB,qBAAqB,CAAC7X,GAAG,CAAC;MAE/C/N,WAAW,IAAI,CAAC6lB,cAAc,CAAC9X,GAAG,EAAE/N,OAAO,CAAC;MAE5C,IAAI7K,KAAK,CAACmJ,QAAQ,EAAE;QAChB,IAAMhJ,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAM+3B,YAAW,GAAItrB,QAAO,GAAI,CAAA,IAAKlF,IAAI,CAACoD,MAAK,GAAIpD,IAAI,CAACoD,MAAK,GAAI,CAAA,GAAI8B,QAAO,GAAI,CAAC;QAEjF,IAAI,CAAC8M,UAAU,CAAC;AAAEjS,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEA,IAAI,CAACwwB,YAAY,CAAC;AAAE/xB,UAAAA,KAAK,EAAE+xB;AAAa,SAAC,CAAC;AAC5F;MAEA3wB,KAAK,CAACgJ,cAAc,EAAE;KACzB;IACDinB,YAAY,EAAA,SAAZA,YAAYA,CAACjwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,EAAE;AAC1C,MAAA,IAAMovB,OAAM,GAAI,IAAI,CAACC,qBAAqB,CAACjY,GAAG,CAAC;MAE/CgY,WAAW,IAAI,CAACF,cAAc,CAAC9X,GAAG,EAAEgY,OAAO,CAAC;MAE5C,IAAI5wB,KAAK,CAACmJ,QAAQ,EAAE;QAChB,IAAMhJ,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAMk4B,eAAezrB,QAAO,GAAI,KAAK,IAAI,CAAA,GAAIA,QAAO,GAAI,CAAC;QAEzD,IAAI,CAAC8M,UAAU,CAAC;AAAEjS,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEA,IAAI,CAAC2wB,YAAY,CAAC;AAAElyB,UAAAA,KAAK,EAAEkyB;AAAa,SAAC,CAAC;AAC5F;MAEA9wB,KAAK,CAACgJ,cAAc,EAAE;KACzB;IACDknB,SAAS,EAAA,SAATA,SAASA,CAAClwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,EAAE;AACvC,MAAA,IAAMuvB,WAAW,IAAI,CAACC,sBAAsB,EAAE;MAE9CD,YAAY,IAAI,CAACL,cAAc,CAAC9X,GAAG,EAAEmY,QAAQ,CAAC;AAE9C,MAAA,IAAI/wB,KAAK,CAACssB,OAAM,IAAKtsB,KAAK,CAACmJ,QAAQ,EAAE;QACjC,IAAMhJ,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,QAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC8wB,KAAK,CAAC,CAAC,EAAE5rB,QAAO,GAAI,CAAC,CAAC,CAAC;AAC/D;MAEArF,KAAK,CAACgJ,cAAc,EAAE;KACzB;IACDmnB,QAAQ,EAAA,SAARA,QAAQA,CAACnwB,KAAK,EAAE4Y,GAAG,EAAEvT,QAAQ,EAAE7D,SAAS,EAAE;AACtC,MAAA,IAAM0vB,UAAU,IAAI,CAACC,qBAAqB,EAAE;MAE5CD,WAAW,IAAI,CAACR,cAAc,CAAC9X,GAAG,EAAEsY,OAAO,CAAC;AAE5C,MAAA,IAAIlxB,KAAK,CAACssB,OAAM,IAAKtsB,KAAK,CAACmJ,QAAQ,EAAE;QACjC,IAAMhJ,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAE9C,QAAA,IAAI,CAACqH,KAAK,CAAC,kBAAkB,EAAEE,IAAI,CAAC8wB,KAAK,CAAC5rB,QAAQ,EAAElF,IAAI,CAACoD,MAAM,CAAC,CAAC;AACrE;MAEAvD,KAAK,CAACgJ,cAAc,EAAE;KACzB;IACDonB,UAAU,EAAA,SAAVA,UAAUA,CAACpwB,KAAK,EAAEmF,OAAO,EAAEE,QAAQ,EAAE;MACjC,IAAI,CAAC8M,UAAU,CAAC;AAAEjS,QAAAA,aAAa,EAAEF,KAAK;AAAEG,QAAAA,IAAI,EAAEgF,OAAO;AAAEvG,QAAAA,KAAK,EAAEyG;AAAS,OAAC,CAAC;MACzErF,KAAK,CAACgJ,cAAc,EAAE;KACzB;IACDqnB,UAAU,EAAA,SAAVA,UAAUA,CAACrwB,KAAK,EAAEmF,OAAO,EAAEE,QAAQ,EAAE7D,SAAS,EAAE;MAC5C,IAAI,CAAC4uB,UAAU,CAACpwB,KAAK,EAAEmF,OAAO,EAAEE,QAAQ,CAAC;MAEzC,IAAIrF,KAAK,CAACmJ,QAAO,IAAK,IAAI,CAAC3O,SAAQ,KAAM,IAAI,EAAE;QAC3C,IAAM2F,IAAG,GAAI,IAAI,CAACowB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAC;AAC9C,QAAA,IAAIgG,KAAK;AAET,QAAA,IAAI,IAAI,CAACpE,SAAS,CAAC+I,MAAK,GAAI,CAAC,EAAE;UAC3B,IAAI6tB,qBAAqB,EAAEC,oBAAoB;UAE/CD,qBAAoB,GAAIE,eAAe,CAAC,IAAI,CAAC92B,SAAS,CAAC,CAAC,CAAC,EAAE2F,IAAI,CAAC;AAChEkxB,UAAAA,oBAAmB,GAAIC,eAAe,CAAC,IAAI,CAAC92B,SAAS,CAAC,IAAI,CAACA,SAAS,CAAC+I,MAAK,GAAI,CAAC,CAAC,EAAEpD,IAAI,CAAC;AAEvFvB,UAAAA,KAAI,GAAIyG,QAAO,IAAK+rB,qBAAoB,GAAIC,uBAAuBD,qBAAqB;AAC5F,SAAA,MAAO;UACHxyB,QAAQ0yB,eAAe,CAAC,IAAI,CAAC92B,SAAS,EAAE2F,IAAI,CAAC;AACjD;AAEA,QAAA,IAAMwvB,UAAS,GAAI/wB,KAAI,KAAMyG,WAAWlF,IAAI,CAAC8wB,KAAK,CAACM,IAAI,CAACC,GAAG,CAAC5yB,KAAK,EAAEyG,QAAQ,CAAC,EAAEksB,IAAI,CAACE,GAAG,CAAC7yB,KAAK,EAAEyG,QAAQ,CAAA,GAAI,CAAC,CAAA,GAAIF,OAAO;AAEtH,QAAA,IAAI,CAAClF,KAAK,CAAC,kBAAkB,EAAE0vB,UAAU,CAAC;AAC9C;KACH;AACDW,IAAAA,QAAQ,WAARA,QAAQA,CAACtwB,KAAK,EAAEqF,QAAQ,EAAE;AACtB,MAAA,IAAMoJ,IAAG,GAAI,IAAI,CAACoP,KAAK,CAACtH,OAAM,IAAK,IAAI,CAACsH,KAAK,CAACtH,OAAO,CAACzP,GAAG;AACzD,MAAA,IAAMlO,IAAG,GAAI84B,IAAI,CAACjjB,IAAI,EAAE,kCAAkC,CAAC;AAE3D,MAAA,IAAIzO,KAAK,CAACkJ,SAAS,KAAI,IAAKtQ,QAAQA,IAAI,CAAC2K,MAAK,GAAI,CAAC,EAAE;AACjD,QAAA,IAAMouB,gBAAe,GAAItC,UAAU,CAAC5gB,IAAI,EAAE,4BAA4B,CAAC;AACvE,QAAA,IAAM2gB,WAAU,GAAIC,UAAU,CAAC5gB,IAAI,EAAE,gDAAgD,CAAC;AAEtF,QAAA,IAAIkjB,gBAAgB,EAAE;UAClBA,gBAAgB,CAAC1U,QAAO,GAAI,GAAG;UAC/BmS,WAAU,IAAKA,gBAAgBuC,qBAAqBvC,WAAW,CAACnS,WAAW,IAAI,CAAC;AACpF,SAAA,MAAO;AACHrkB,UAAAA,IAAI,CAAC,CAAC,CAAC,CAACqkB,WAAW,GAAG;AACtBmS,UAAAA,WAAU,KAAMx2B,IAAI,CAAC,CAAC,CAAA,IAAKA,IAAI,CAACyM,QAAQ,CAAA,KAAMzM,IAAI,CAACyM,QAAQ,CAAC,CAAC4X,QAAO,GAAI,IAAI,CAAC;AACjF;AACJ;KACH;AACDwT,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAAC7X,GAAG,EAAE;AACvB,MAAA,IAAI/N,OAAM,GAAI+N,GAAG,CAAChO,kBAAkB;AAEpC,MAAA,IAAIC,OAAO,EAAE;AACT,QAAA,IAAIR,YAAY,CAACQ,OAAO,EAAE,uBAAuB,CAAA,KAAM,IAAI,EAAE,OAAOA,OAAO,CAAA,KACtE,OAAO,IAAI,CAAC4lB,qBAAqB,CAAC5lB,OAAO,CAAC;AACnD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;AACDgmB,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAACjY,GAAG,EAAE;AACvB,MAAA,IAAIgY,OAAM,GAAIhY,GAAG,CAACpO,sBAAsB;AAExC,MAAA,IAAIomB,OAAO,EAAE;AACT,QAAA,IAAIvmB,YAAY,CAACumB,OAAO,EAAE,uBAAuB,CAAA,KAAM,IAAI,EAAE,OAAOA,OAAO,CAAA,KACtE,OAAO,IAAI,CAACC,qBAAqB,CAACD,OAAO,CAAC;AACnD,OAAA,MAAO;AACH,QAAA,OAAO,IAAI;AACf;KACH;IACDI,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;MACrB,IAAMD,QAAO,GAAI1B,UAAU,CAAC,IAAI,CAACxR,KAAK,CAAC+T,KAAK,EAAE,kCAAkC,CAAC;AAEjF,MAAA,OAAOb,QAAQ;KAClB;IACDI,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,IAAMv4B,IAAG,GAAI84B,IAAI,CAAC,IAAI,CAAC7T,KAAK,CAAC+T,KAAK,EAAE,kCAAkC,CAAC;MAEvE,OAAOh5B,IAAG,GAAIA,IAAI,CAACA,IAAI,CAAC2K,MAAK,GAAI,CAAC,CAAA,GAAI,IAAI;KAC7C;AACDmtB,IAAAA,cAAc,WAAdA,cAAcA,CAACmB,iBAAiB,EAAEC,iBAAiB,EAAE;MACjDD,iBAAiB,CAAC5U,QAAO,GAAI,IAAI;MACjC6U,iBAAiB,CAAC7U,QAAO,GAAI,GAAG;MAChClW,KAAK,CAAC+qB,iBAAiB,CAAC;KAC3B;AACDrqB,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACzH,KAAK,EAAE;AACtB,MAAA,IAAMmF,UAAUnF,KAAK,CAACG,IAAI;AAE1B,MAAA,IAAI,IAAI,CAAC6Q,UAAU,CAAC7L,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAI,CAAClF,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAACA,KAAK,CAAC,cAAc,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEgF,OAAO;UAAEvG,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAc,SAAC,CAAC;AAC9H,OAAA,MAAO;AACH,QAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAEkF,OAAO,CAAC;AACvC,QAAA,IAAI,CAAClF,KAAK,CAAC,YAAY,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEgF,OAAO;UAAEvG,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAc,SAAC,CAAC;AAC5H;KACH;AACDmP,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAAC1H,KAAK,EAAE;AACzB,MAAA,IAAMmF,UAAUnF,KAAK,CAACG,IAAI;AAE1B,MAAA,IAAI,IAAI,CAAC6Q,UAAU,CAAC7L,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAMuqB,cAAa,GAAI,IAAI,CAAC7d,oBAAoB,CAAC1M,OAAO,CAAC;QACzD,IAAMwqB,UAAS,GAAI,IAAI,CAACn1B,SAAS,CAAC2C,MAAM,CAAC,UAACyyB,GAAG,EAAEptB,CAAC,EAAA;UAAA,OAAKA,CAAA,IAAKktB,cAAc;SAAA,CAAC;AAEzE,QAAA,IAAI,CAACzvB,KAAK,CAAC,kBAAkB,EAAE0vB,UAAU,CAAC;AAC1C,QAAA,IAAI,CAAC1vB,KAAK,CAAC,cAAc,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEgF,OAAO;UAAEvG,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAW,SAAC,CAAC;AAC3H,OAAA,MAAO;AACH,QAAA,IAAIo3B,cAAa,IAAI,CAACn1B,SAAQ,GAAA6uB,kBAAA,CAAQ,IAAI,CAAC7uB,SAAS,CAAA,GAAI,EAAE;QAE1Dm1B,WAAS,GAAA,EAAA,CAAAhwB,MAAA,CAAA0pB,kBAAA,CAAQsG,WAAU,CAAA,EAAA,CAAExqB,OAAO,CAAA,CAAC;AACrC,QAAA,IAAI,CAAClF,KAAK,CAAC,kBAAkB,EAAE0vB,WAAU,CAAC;AAC1C,QAAA,IAAI,CAAC1vB,KAAK,CAAC,YAAY,EAAE;UAAEC,aAAa,EAAEF,KAAK,CAACE,aAAa;AAAEC,UAAAA,IAAI,EAAEgF,OAAO;UAAEvG,KAAK,EAAEoB,KAAK,CAACpB,KAAK;AAAErG,UAAAA,IAAI,EAAE;AAAW,SAAC,CAAC;AACzH;KACH;AACDw5B,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAAC/xB,KAAK,EAAE;AAC1B,MAAA,IAAI,IAAI,CAAClF,SAAQ,KAAM,IAAI,EAAE;AACzB,QAAA,IAAI,CAACmF,KAAK,CAAC,mBAAmB,EAAED,KAAK,CAAC;AAC1C,OAAA,MAAO;AACH,QAAA,IAAQE,aAAa,GAAcF,KAAK,CAAhCE,aAAa;UAAEzB,OAAM,GAAMuB,KAAK,CAAjBvB,OAAM;QAC7B,IAAIkxB,UAAS,GAAI,EAAE;AAEnB,QAAA,IAAIlxB,OAAO,EAAE;UACTkxB,UAAS,GAAI,IAAI,CAACrzB,WAAU,MAAAqD,MAAA,CAAA0pB,kBAAA,CAAQ,IAAI,CAAC/sB,WAAW,CAAA,EAAA+sB,kBAAA,CAAK,IAAI,CAACwC,aAAa,CAAA,CAAA,GAAI,IAAI,CAACA,aAAa;AACjG,UAAA,IAAI,CAAC5rB,KAAK,CAAC,gBAAgB,EAAE;AAAEC,YAAAA,aAAa,EAAbA,aAAa;AAAEC,YAAAA,IAAI,EAAEwvB;AAAW,WAAC,CAAC;AACrE,SAAA,MAAO;AACH,UAAA,IAAI,CAAC1vB,KAAK,CAAC,kBAAkB,EAAE;AAAEC,YAAAA,aAAY,EAAZA;AAAc,WAAC,CAAC;AACrD;AAEA,QAAA,IAAI,CAACD,KAAK,CAAC,kBAAkB,EAAE0vB,UAAU,CAAC;AAC9C;KACH;IACDF,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACh1B,kBAAkB,QAAQ;KACzC;IACD60B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAAC70B,aAAY,KAAM,UAAU;KAC3C;AACDuW,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAAC7L,OAAO,EAAE;AAChB,MAAA,IAAIA,OAAM,IAAK,IAAI,CAAC3K,SAAS,EAAE;QAC3B,IAAI,IAAI,CAAC/B,OAAO,EAAE;UACd,OAAO,IAAI,CAAC8wB,kBAAkB,IAAI,CAACA,eAAe,CAAChiB,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAC,CAAA,KAAMmB,SAAQ,GAAI,KAAK;AACrH,SAAA,MAAO;AACH,UAAA,IAAI,IAAI,CAACY,SAAQ,YAAahC,KAAK,EAAE,OAAO,IAAI,CAACqZ,oBAAoB,CAAC1M,OAAO,CAAA,GAAI,EAAE,CAAA,KAC9E,OAAO,IAAI,CAACwL,MAAM,CAACxL,OAAO,EAAE,IAAI,CAAC3K,SAAS,CAAC;AACpD;AACJ;AAEA,MAAA,OAAO,KAAK;KACf;AACDqX,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAAC1M,OAAO,EAAE;MAC1B,OAAO,IAAI,CAAC2M,SAAS,CAAC3M,OAAO,EAAE,IAAI,CAAC3K,SAAS,CAAC;KACjD;AACDsX,IAAAA,SAAS,WAATA,SAASA,CAAC3M,OAAO,EAAE4M,UAAU,EAAE;MAC3B,IAAInT,KAAI,GAAI,EAAE;AAEd,MAAA,IAAImT,UAAS,IAAKA,UAAU,CAACxO,MAAM,EAAE;AACjC,QAAA,KAAK,IAAIf,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAIuP,UAAU,CAACxO,MAAM,EAAEf,CAAC,EAAE,EAAE;UACxC,IAAI,IAAI,CAACmO,MAAM,CAACxL,OAAO,EAAE4M,UAAU,CAACvP,CAAC,CAAC,CAAC,EAAE;AACrC5D,YAAAA,KAAI,GAAI4D,CAAC;AACT,YAAA;AACJ;AACJ;AACJ;AAEA,MAAA,OAAO5D,KAAK;KACf;AACDmsB,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACvwB,SAAS,EAAE;AAC3B,MAAA,IAAI,CAAC+uB,eAAc,GAAI,EAAE;AAEzB,MAAA,IAAI/wB,KAAK,CAACmZ,OAAO,CAACnX,SAAS,CAAC,EAAE;AAAA,QAAA,IAAAw3B,UAAA,GAAAhe,0BAAA,CACTxZ,SAAS,CAAA;UAAAy3B,MAAA;AAAA,QAAA,IAAA;UAA1B,KAAAD,UAAA,CAAA9d,CAAA,EAAA,EAAA,CAAA,CAAA+d,MAAA,GAAAD,UAAA,CAAA5vB,CAAA,EAAA,EAAAuB,IAAA,GAA4B;AAAA,YAAA,IAAnBxD,IAAG,GAAA8xB,MAAA,CAAA35B,KAAA;AACR,YAAA,IAAI,CAACixB,eAAe,CAAC7wB,MAAM,CAAC6O,gBAAgB,CAACpH,IAAI,EAAE,IAAI,CAAC1H,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC1E;AAAA,SAAA,CAAA,OAAA4b,GAAA,EAAA;UAAA2d,UAAA,CAAAhwB,CAAA,CAAAqS,GAAA,CAAA;AAAA,SAAA,SAAA;AAAA2d,UAAAA,UAAA,CAAAjvB,CAAA,EAAA;AAAA;AACJ,OAAA,MAAO;AACH,QAAA,IAAI,CAACwmB,eAAe,CAAC7wB,MAAM,CAAC6O,gBAAgB,CAAC/M,SAAS,EAAE,IAAI,CAAC/B,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC/E;KACH;AACDuyB,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAAChvB,WAAW,EAAE;AAC9B,MAAA,IAAIA,WAAU,IAAKA,WAAW,CAACuH,MAAM,EAAE;AACnC,QAAA,IAAI,CAACkmB,gBAAe,GAAI,EAAE;AAAA,QAAA,IAAAyI,UAAA,GAAAle,0BAAA,CAEThY,WAAW,CAAA;UAAAm2B,MAAA;AAAA,QAAA,IAAA;UAA5B,KAAAD,UAAA,CAAAhe,CAAA,EAAA,EAAA,CAAA,CAAAie,MAAA,GAAAD,UAAA,CAAA9vB,CAAA,EAAA,EAAAuB,IAAA,GAA8B;AAAA,YAAA,IAArBxD,IAAG,GAAAgyB,MAAA,CAAA75B,KAAA;AACR,YAAA,IAAI,CAACmxB,gBAAgB,CAAC/wB,MAAM,CAAC6O,gBAAgB,CAACpH,IAAI,EAAE,IAAI,CAAC1H,OAAO,CAAC,CAAC,CAAA,GAAI,CAAC;AAC3E;AAAA,SAAA,CAAA,OAAA4b,GAAA,EAAA;UAAA6d,UAAA,CAAAlwB,CAAA,CAAAqS,GAAA,CAAA;AAAA,SAAA,SAAA;AAAA6d,UAAAA,UAAA,CAAAnvB,CAAA,EAAA;AAAA;AACJ,OAAA,MAAO;QACH,IAAI,CAAC0mB,mBAAmB,IAAI;AAChC;KACH;AACD9Y,IAAAA,MAAM,WAANA,QAAMA,CAACqB,KAAK,EAAEC,KAAK,EAAE;AACjB,MAAA,OAAO,IAAI,CAACvX,kBAAiB,KAAM,QAAO,GAAIsX,UAAUC,KAAI,GAAItB,MAAM,CAACqB,KAAK,EAAEC,KAAK,EAAE,IAAI,CAACxZ,OAAO,CAAC;KACrG;AACD82B,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACvvB,KAAK,EAAE;MACf,IAAIoyB,UAAU,EAAEC,QAAQ;AAExB,MAAA,IAAI,IAAI,CAACtI,aAAY,GAAI,IAAI,CAACD,cAAc,EAAE;QAC1CsI,UAAS,GAAI,IAAI,CAACtI,cAAc;QAChCuI,QAAO,GAAI,IAAI,CAACtI,aAAa;OACjC,MAAO,IAAI,IAAI,CAACA,aAAY,GAAI,IAAI,CAACD,cAAc,EAAE;QACjDsI,UAAS,GAAI,IAAI,CAACrI,aAAa;QAC/BsI,QAAO,GAAI,IAAI,CAACvI,cAAc;AAClC,OAAA,MAAO;QACHsI,UAAS,GAAI,IAAI,CAACrI,aAAa;QAC/BsI,QAAO,GAAI,IAAI,CAACtI,aAAa;AACjC;AAEA,MAAA,IAAI,IAAI,CAACtwB,IAAG,IAAK,IAAI,CAACT,SAAS,EAAE;QAC7Bo5B,UAAS,IAAK,IAAI,CAACrJ,OAAO;QAC1BsJ,QAAO,IAAK,IAAI,CAACtJ,OAAO;AAC5B;AAEA,MAAA,IAAMzwB,KAAI,GAAI,IAAI,CAACuzB,aAAa;MAChC,IAAI8D,UAAS,GAAI,EAAE;MAEnB,KAAK,IAAIntB,CAAA,GAAI4vB,UAAU,EAAE5vB,CAAA,IAAK6vB,QAAQ,EAAE7vB,CAAC,EAAE,EAAE;AACzC,QAAA,IAAI8vB,YAAW,GAAIh6B,KAAK,CAACkK,CAAC,CAAC;AAE3BmtB,QAAAA,UAAU,CAAC7b,IAAI,CAACwe,YAAY,CAAC;AAC7B,QAAA,IAAI,CAACryB,KAAK,CAAC,YAAY,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEmyB,YAAY;AAAE/5B,UAAAA,IAAI,EAAE;AAAM,SAAC,CAAC;AACvF;AAEA,MAAA,IAAI,CAAC0H,KAAK,CAAC,kBAAkB,EAAE0vB,UAAU,CAAC;KAC7C;AACD4C,IAAAA,WAAW,WAAXA,WAAWA,CAACjf,OAAO,EAAEnT,IAAI,EAAE;AAAA,MAAA,IAAAqyB,MAAA,GAAA,IAAA;MACvB,IAAIC,GAAE,GAAI,QAAQ;MAElB,IAAI,CAACtyB,IAAI,EAAE;QACPA,IAAG,GAAI,IAAI,CAAC0rB,aAAa;AAEzB,QAAA,IAAIvY,OAAM,IAAKA,OAAO,CAACof,aAAa,EAAEvyB,IAAG,GAAI,IAAI,CAAC3F,SAAQ,IAAK,EAAE,CAAA,KAC5D,IAAI,IAAI,CAAC8B,WAAW,EAAE6D,IAAG,GAAIA,IAAG,GAAA,EAAA,CAAAR,MAAA,CAAA0pB,kBAAA,CAAQ,IAAI,CAAC/sB,WAAW,GAAA+sB,kBAAA,CAAKlpB,IAAI,CAAA,CAAA,GAAI,IAAI,CAAC7D,WAAW;AAC9F;;AAEA;MACA,IAAIq2B,eAAc,GAAI,KAAK;AAE3B,MAAA,KAAK,IAAInwB,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAI,IAAI,CAACqN,OAAO,CAACtM,MAAM,EAAEf,CAAC,EAAE,EAAE;AAC1C,QAAA,IAAI9D,MAAK,GAAI,IAAI,CAACmR,OAAO,CAACrN,CAAC,CAAC;AAE5B,QAAA,IAAI,IAAI,CAAC+D,UAAU,CAAC7H,MAAM,EAAE,YAAY,CAAA,KAAM,KAAI,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC,EAAE;UACrF,IAAIi0B,eAAe,EAAEF,GAAE,IAAK,IAAI,CAACz3B,YAAY,CAAA,KACxC23B,kBAAkB,IAAI;AAE3BF,UAAAA,GAAE,IAAK,GAAE,IAAK,IAAI,CAAClsB,UAAU,CAAC7H,MAAM,EAAE,cAAc,CAAA,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,QAAQ,CAAA,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,OAAO,CAAC,CAAA,GAAI,GAAG;AACzI;AACJ;;AAEA;AACA,MAAA,IAAIyB,IAAI,EAAE;AACNA,QAAAA,IAAI,CAAC4U,OAAO,CAAC,UAAC6d,MAAM,EAAK;AACrBH,UAAAA,GAAE,IAAK,IAAI;UACX,IAAII,YAAW,GAAI,KAAK;AAExB,UAAA,KAAK,IAAIrwB,EAAA,GAAI,CAAC,EAAEA,EAAA,GAAIgwB,MAAI,CAAC3iB,OAAO,CAACtM,MAAM,EAAEf,EAAC,EAAE,EAAE;AAC1C,YAAA,IAAI9D,OAAK,GAAI8zB,MAAI,CAAC3iB,OAAO,CAACrN,EAAC,CAAC;AAE5B,YAAA,IAAIgwB,MAAI,CAACjsB,UAAU,CAAC7H,OAAM,EAAE,YAAY,CAAA,KAAM,KAAI,IAAK8zB,MAAI,CAACjsB,UAAU,CAAC7H,OAAM,EAAE,OAAO,CAAC,EAAE;cACrF,IAAIm0B,YAAY,EAAEJ,GAAE,IAAKD,MAAI,CAACx3B,YAAY,CAAA,KACrC63B,YAAW,GAAI,IAAI;AAExB,cAAA,IAAIC,QAAO,GAAIvrB,gBAAgB,CAACqrB,MAAM,EAAEJ,MAAI,CAACjsB,UAAU,CAAC7H,OAAM,EAAE,OAAO,CAAC,CAAC;cAEzE,IAAIo0B,QAAO,IAAK,IAAI,EAAE;gBAClB,IAAIN,MAAI,CAACt3B,cAAc,EAAE;AACrB43B,kBAAAA,QAAO,GAAIN,MAAI,CAACt3B,cAAc,CAAC;AAC3BiF,oBAAAA,IAAI,EAAE2yB,QAAQ;AACdzsB,oBAAAA,KAAK,EAAEmsB,MAAI,CAACjsB,UAAU,CAAC7H,OAAM,EAAE,OAAO;AAC1C,mBAAC,CAAC;AACN,iBAAA,MAAOo0B,QAAO,GAAIp6B,MAAM,CAACo6B,QAAQ,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;eAC1D,MAAOD,QAAO,GAAI,EAAE;AAEpBL,cAAAA,GAAE,IAAK,MAAMK,WAAW,GAAG;AAC/B;AACJ;AACJ,SAAC,CAAC;AACN;;AAEA;MACA,IAAIE,eAAc,GAAI,KAAK;AAE3B,MAAA,KAAK,IAAIxwB,GAAA,GAAI,CAAC,EAAEA,GAAA,GAAI,IAAI,CAACqN,OAAO,CAACtM,MAAM,EAAEf,GAAC,EAAE,EAAE;AAC1C,QAAA,IAAI9D,QAAK,GAAI,IAAI,CAACmR,OAAO,CAACrN,GAAC,CAAC;AAE5B,QAAA,IAAIA,GAAA,KAAM,CAAC,EAAEiwB,OAAO,IAAI;AAExB,QAAA,IAAI,IAAI,CAAClsB,UAAU,CAAC7H,QAAM,EAAE,YAAY,MAAM,SAAS,IAAI,CAAC6H,UAAU,CAAC7H,QAAM,EAAE,cAAc,CAAC,EAAE;UAC5F,IAAIs0B,eAAe,EAAEP,GAAE,IAAK,IAAI,CAACz3B,YAAY,CAAA,KACxCg4B,kBAAkB,IAAI;AAE3BP,UAAAA,GAAE,IAAK,GAAE,IAAK,IAAI,CAAClsB,UAAU,CAAC7H,QAAM,EAAE,cAAc,CAAA,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,QAAM,EAAE,QAAQ,CAAA,IAAK,IAAI,CAAC6H,UAAU,CAAC7H,QAAM,EAAE,OAAO,CAAC,CAAA,GAAI,GAAG;AACzI;AACJ;AAEA,MAAA,OAAO+zB,GAAG;KACb;AACDQ,IAAAA,SAAS,WAATA,WAASA,CAAC3f,OAAO,EAAEnT,IAAI,EAAE;MACrB,IAAMsyB,GAAE,GAAI,IAAI,CAACF,WAAW,CAACjf,OAAO,EAAEnT,IAAI,CAAC;AAC3C8yB,MAAAA,SAAS,CAACR,GAAG,EAAE,IAAI,CAACx3B,cAAc,CAAC;KACtC;IACDmxB,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,CAACrD,OAAM,GAAI,CAAC;MAChB,IAAI,CAAC9oB,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC8oB,OAAO,CAAC;KAC3C;AACDmK,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAAClzB,KAAK,EAAE;MACvB,IAAImzB,aAAY,GAAIC,SAAS,CAAC,IAAI,CAACtsB,GAAG,CAAC,CAACusB,IAAI;AAE5C,MAAA,IAAI,CAAClJ,mBAAkB,GAAInqB,KAAK,CAACiI,MAAM,CAACqC,aAAa;MACrD,IAAI,CAAC8f,iBAAiB,IAAI;AAC1B,MAAA,IAAI,CAACF,iBAAgB,GAAIlqB,KAAK,CAACszB,KAAI,GAAIH,aAAY,GAAI,IAAI,CAACrsB,GAAG,CAACysB,UAAU;MAE1E,IAAI,CAACC,sBAAsB,EAAE;KAChC;AACDC,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzzB,KAAK,EAAE;MAClB,IAAImzB,aAAY,GAAIC,SAAS,CAAC,IAAI,CAACtsB,GAAG,CAAC,CAACusB,IAAI;MAE5C,IAAI,CAACvsB,GAAG,CAAC4sB,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC;MACzD,CAAC,IAAI,CAACC,UAAS,IAAKzV,QAAQ,CAAC,IAAI,CAACpX,GAAG,EAAE;AAAE,QAAA,aAAa,EAAE;AAAO,OAAC,CAAC;AACjE,MAAA,IAAI,CAAC+W,KAAK,CAAC+V,YAAY,CAAC11B,KAAK,CAAC21B,MAAK,GAAI,IAAI,CAAC/sB,GAAG,CAACgtB,YAAW,GAAI,IAAI;MACnE,IAAI,CAACjW,KAAK,CAAC+V,YAAY,CAAC11B,KAAK,CAACkY,MAAM,CAAA,GAAI,IAAI;MAC5C,IAAI,CAACyH,KAAK,CAAC+V,YAAY,CAAC11B,KAAK,CAACm1B,OAAOrzB,KAAK,CAACszB,KAAI,GAAIH,aAAY,GAAI,IAAI,CAACrsB,GAAG,CAACysB,UAAS,GAAI,IAAI;MAE7F,IAAI,CAAC1V,KAAK,CAAC+V,YAAY,CAAC11B,KAAK,CAAC0b,OAAM,GAAI,OAAO;KAClD;IACDma,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,IAAIC,KAAI,GAAIC,KAAK,CAAC,IAAI,CAACntB,GAAG,CAAA,GAAI,IAAI,CAACojB,iBAAgB,GAAI,IAAI,CAACrM,KAAK,CAAC+V,YAAY,CAACM,UAAS,GAAI,IAAI,CAACrW,KAAK,CAAC+V,YAAY,CAACM,UAAS,GAAI,IAAI,CAAChK,iBAAiB;AACvJ,MAAA,IAAIiK,WAAU,GAAI,IAAI,CAAChK,mBAAmB,CAACiK,WAAW;AACtD,MAAA,IAAIC,cAAa,GAAIF,cAAcH,KAAK;MACxC,IAAIM,QAAO,GAAI,IAAI,CAACnK,mBAAmB,CAACjsB,KAAK,CAACo2B,QAAO,IAAK,EAAE;MAE5D,IAAIH,WAAU,GAAIH,KAAI,GAAIO,QAAQ,CAACD,QAAQ,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAA,IAAI,IAAI,CAACl5B,gBAAe,KAAM,KAAK,EAAE;AACjC,UAAA,IAAIo5B,UAAS,GAAI,IAAI,CAACrK,mBAAmB,CAACvf,kBAAkB;AAC5D,UAAA,IAAI6pB,kBAAkBD,UAAU,CAACJ,WAAU,GAAIJ,KAAK;AAEpD,UAAA,IAAIK,cAAa,GAAI,EAAC,IAAKI,kBAAkB,EAAE,EAAE;AAC7C,YAAA,IAAI,CAACC,gBAAgB,CAACL,cAAc,EAAEI,eAAe,CAAC;AAC1D;AACJ,SAAA,MAAO,IAAI,IAAI,CAACr5B,qBAAqB,QAAQ,EAAE;AAC3C,UAAA,IAAMu5B,UAAS,GAAI,IAAI,CAAC9W,KAAK,CAAC+T,KAAK,CAACwC,WAAU,GAAIJ,KAAI,GAAI,IAAI;AAE9D,UAAA,IAAMY,gBAAe,GAAI,SAAnBA,gBAAeA,CAAKpe,EAAE,EAAK;AAC7B,YAAA,CAAC,CAACA,EAAC,KAAMA,EAAE,CAACtY,KAAK,CAAC22B,KAAI,GAAIre,EAAE,CAACtY,KAAK,CAACo2B,WAAWK,UAAU,CAAC;WAC5D;;AAED;AACA,UAAA,IAAI,CAACD,gBAAgB,CAACL,cAAc,CAAC;AACrCO,UAAAA,gBAAgB,CAAC,IAAI,CAAC/W,KAAK,CAAC+T,KAAK,CAAC;AAElC,UAAA,IAAI,CAAC,IAAI,CAACkD,uBAAuB,EAAE;AAC/B,YAAA,IAAMrmB,IAAG,GAAI,IAAI,CAACoP,KAAK,CAACtH,OAAM,IAAK,IAAI,CAACsH,KAAK,CAACtH,OAAO,CAACzP,GAAG;AACzD,YAAA,IAAMiuB,aAAa,IAAI,CAAClX,KAAK,CAACmX,aAAY,IAAK,IAAI,CAACnX,KAAK,CAACmX,aAAa,CAACluB,GAAG;YAE3E8tB,gBAAgB,CAACnmB,IAAI,CAAC;YACtBmmB,gBAAgB,CAACG,UAAU,CAAC;AAChC;AACJ;AAEA,QAAA,IAAI,CAAC90B,KAAK,CAAC,mBAAmB,EAAE;UAC5BkK,OAAO,EAAE,IAAI,CAACggB,mBAAmB;AACjC6J,UAAAA,KAAK,EAAEA;AACX,SAAC,CAAC;AACN;MAEA,IAAI,CAACnW,KAAK,CAAC+V,YAAY,CAAC11B,KAAK,CAAC0b,UAAU,MAAM;MAC9C,IAAI,CAACqb,YAAW,GAAI,IAAI;AACxB,MAAA,IAAI,CAACnuB,GAAG,CAACkW,eAAe,CAAC,0BAA0B,CAAC;AACpD,MAAA,CAAC,IAAI,CAAC2W,UAAS,KAAM,IAAI,CAAC7sB,GAAG,CAAC5I,KAAK,CAAC,aAAa,CAAA,GAAI,EAAE,CAAC;MAExD,IAAI,CAACktB,wBAAwB,EAAE;AAE/B,MAAA,IAAI,IAAI,CAACH,UAAU,EAAE,EAAE;QACnB,IAAI,CAACK,SAAS,EAAE;AACpB;KACH;AACDoJ,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAACL,cAAc,EAAEI,eAAe,EAAE;AAC9C,MAAA,IAAIS,QAAO,GAAI9O,QAAQ,CAAC,IAAI,CAAC+D,mBAAmB,CAAC;MACjD,IAAIgL,MAAK,GAAI,EAAE;MACf,IAAIC,OAAM,GAAI1D,IAAI,CAAC,IAAI,CAAC7T,KAAK,CAAC+T,KAAK,EAAE,0CAA0C,CAAC;AAEhFwD,MAAAA,OAAO,CAACrgB,OAAO,CAAC,UAACmS,MAAM,EAAA;QAAA,OAAKiO,MAAM,CAACrhB,IAAI,CAACrI,aAAa,CAACyb,MAAM,CAAC,CAAC;OAAA,CAAC;MAE/D,IAAI,CAACmE,mBAAmB,EAAE;MAC1B,IAAI,CAACgK,kBAAkB,EAAE;MAEzB,IAAIC,SAAQ,GAAI,EAAE;AAClB,MAAA,IAAIC,QAAO,GAAA,+BAAA,CAAA51B,MAAA,CAAkC,IAAI,CAAC0X,aAAa,EAAA,2CAAA,CAAA,CAAA1X,MAAA,CAA0C,IAAI,CAACm1B,uBAAsB,GAAI,EAAC,GAAI,oCAAoC,EAAA,qCAAA,CAAmC;AAEpNK,MAAAA,MAAM,CAACpgB,OAAO,CAAC,UAAC8f,KAAK,EAAEj2B,KAAK,EAAK;AAC7B,QAAA,IAAI42B,QAAO,GAAI52B,KAAI,KAAMs2B,WAAWb,cAAa,GAAII,eAAc,IAAK71B,KAAI,KAAMs2B,WAAW,CAAA,GAAIT,eAAc,GAAII,KAAK;QACxH,IAAI32B,KAAI,aAAAyB,MAAA,CAAc61B,QAAQ,EAAA,4BAAA,CAAA,CAAA71B,MAAA,CAA6B61B,QAAQ,EAAA,eAAA,CAAe;AAElFF,QAAAA,SAAQ,IAAA,wBAAA,CAAA31B,MAAA,CACF41B,QAAQ,8DAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,0BAAA,CAAA,CAAAe,MAAA,CAC1E41B,QAAQ,8DAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,0BAAA,CAAA,CAAAe,MAAA,CAC1E41B,QAAQ,EAAA,0DAAA,CAAA,CAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,+BAAA,CAAA,CAAAe,MAAA,CACtEzB,KAAK,EAAA,2CAAA,CAEd;AACL,OAAC,CAAC;AAEF,MAAA,IAAI,CAACu3B,YAAY,CAACH,SAAQ,GAAIA,SAAS;KAC1C;IACD9B,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AAAA,MAAA,IAAAkC,MAAA,GAAA,IAAA;AACrB,MAAA,IAAI,CAAC,IAAI,CAAC1L,4BAA4B,EAAE;AACpC,QAAA,IAAI,CAACA,+BAA+B,UAAChqB,KAAK,EAAK;UAC3C,IAAI01B,MAAI,CAACtL,cAAc,EAAE;AACrBsL,YAAAA,MAAI,CAACjC,cAAc,CAACzzB,KAAK,CAAC;AAC9B;SACH;QAEDoI,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC2hB,4BAA4B,CAAC;AAC7E;AAEA,MAAA,IAAI,CAAC,IAAI,CAACC,+BAA+B,EAAE;QACvC,IAAI,CAACA,+BAA8B,GAAI,YAAM;UACzC,IAAIyL,MAAI,CAACtL,cAAc,EAAE;YACrBsL,MAAI,CAACtL,cAAa,GAAI,KAAK;YAC3BsL,MAAI,CAAC3B,iBAAiB,EAAE;AAC5B;SACH;QAED3rB,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC4hB,+BAA+B,CAAC;AAC9E;KACH;IACDmB,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;MACvB,IAAI,IAAI,CAACpB,4BAA4B,EAAE;QACnC5hB,QAAQ,CAACG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACyhB,4BAA4B,CAAC;QAC3E,IAAI,CAACA,4BAA2B,GAAI,IAAI;AAC5C;MAEA,IAAI,IAAI,CAACC,+BAA+B,EAAE;QACtC7hB,QAAQ,CAACG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC0hB,+BAA+B,CAAC;QAC9E,IAAI,CAACA,+BAA8B,GAAI,IAAI;AAC/C;KACH;AACD0L,IAAAA,uBAAuB,EAAA,SAAvBA,uBAAuBA,CAAC3zB,CAAC,EAAE;AACvB,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMxB,MAAK,GAAIsD,CAAC,CAACtD,MAAM;AAEvB,MAAA,IAAI,IAAI,CAACrD,kBAAiB,IAAK,IAAI,CAACkL,UAAU,CAAC7H,MAAM,EAAE,mBAAmB,CAAA,KAAM,KAAK,EAAE;AACnF,QAAA,IAAIsB,KAAK,CAACiI,MAAM,CAACwd,QAAO,KAAM,WAAWzlB,KAAK,CAACiI,MAAM,CAACwd,QAAO,KAAM,UAAS,IAAKpb,YAAY,CAACrK,KAAK,CAACiI,MAAM,EAAE,mCAAmC,CAAC,EAAEjI,KAAK,CAACwlB,aAAa,CAACoQ,SAAQ,GAAI,KAAK,CAAA,KAClL51B,KAAK,CAACwlB,aAAa,CAACoQ,SAAQ,GAAI,IAAI;AAC7C;KACH;AACDC,IAAAA,uBAAuB,EAAA,SAAvBA,uBAAuBA,CAAC7zB,CAAC,EAAE;AACvB,MAAA,IAAuBhC,KAAK,GAAagC,CAAC,CAAlC9B,aAAa;QAASxB,MAAK,GAAMsD,CAAC,CAAZtD,MAAK;MAEnC,IAAI,IAAI,CAAC0rB,cAAc,EAAE;QACrBpqB,KAAK,CAACgJ,cAAc,EAAE;AAEtB,QAAA;AACJ;MAEA,IAAI,CAACqhB,mBAAkB,GAAIyL,0BAA0B,CAAC,IAAI,CAACjY,KAAK,CAACkY,kBAAkB,CAAC;MACpF,IAAI,CAACzL,oBAAmB,GAAI0L,2BAA2B,CAAC,IAAI,CAACnY,KAAK,CAACkY,kBAAkB,CAAC;MAEtF,IAAI,CAACxL,aAAY,GAAI7rB,MAAM;MAC3B,IAAI,CAAC8rB,oBAAmB,GAAI,IAAI,CAACyL,gBAAgB,CAACj2B,KAAK,CAACiI,MAAM,CAAC;MAC/DjI,KAAK,CAACk2B,YAAY,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC1C;AACDC,IAAAA,sBAAsB,EAAA,SAAtBA,sBAAsBA,CAACp0B,CAAC,EAAE;AACtB,MAAA,IAAuBhC,KAAK,GAAagC,CAAC,CAAlC9B,aAAa;QAASxB,MAAK,GAAMsD,CAAC,CAAZtD,MAAK;MACnC,IAAI23B,UAAS,GAAI,IAAI,CAACJ,gBAAgB,CAACj2B,KAAK,CAACiI,MAAM,CAAC;AAEpD,MAAA,IAAI,IAAI,CAAC5M,kBAAiB,IAAK,IAAI,CAACmvB,oBAAmB,IAAK6L,UAAS,IAAK,CAAC,IAAI,CAAC9vB,UAAU,CAAC7H,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC1GsB,KAAK,CAACgJ,cAAc,EAAE;AACtB,QAAA,IAAIstB,eAAc,GAAIlD,SAAS,CAAC,IAAI,CAACtsB,GAAG,CAAC;AACzC,QAAA,IAAIyvB,gBAAe,GAAInD,SAAS,CAACiD,UAAU,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC7L,oBAAmB,KAAM6L,UAAU,EAAE;UAC1C,IAAIG,UAAS,GAAID,gBAAgB,CAAClD,IAAG,GAAIiD,eAAe,CAACjD,IAAI;UAC7D,IAAIoD,YAAW,GAAIF,gBAAgB,CAAClD,IAAG,GAAIgD,UAAU,CAACjC,WAAU,GAAI,CAAC;UAErE,IAAI,CAACvW,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAACkY,GAAE,GAAImgB,gBAAgB,CAACngB,GAAE,GAAIkgB,eAAe,CAAClgB,GAAE,IAAK,IAAI,CAACkU,oBAAmB,GAAI,CAAC,CAAA,GAAI,IAAI;UAC7H,IAAI,CAACzM,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAACkY,GAAE,GAAImgB,gBAAgB,CAACngB,GAAE,GAAIkgB,eAAe,CAAClgB,GAAE,GAAIigB,UAAU,CAACvC,YAAW,GAAI,IAAI;AAEvH,UAAA,IAAI9zB,KAAK,CAACszB,KAAI,GAAImD,YAAY,EAAE;YAC5B,IAAI,CAAC5Y,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAACm1B,IAAG,GAAImD,UAAS,GAAIH,UAAU,CAACjC,cAAc7C,IAAI,CAACoF,IAAI,CAAC,IAAI,CAACtM,mBAAkB,GAAI,CAAC,CAAA,GAAI,IAAI;YAC/H,IAAI,CAACxM,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAACm1B,IAAG,GAAImD,UAAS,GAAIH,UAAU,CAACjC,WAAU,GAAI7C,IAAI,CAACoF,IAAI,CAAC,IAAI,CAACtM,mBAAkB,GAAI,CAAC,CAAA,GAAI,IAAI;YACjI,IAAI,CAACuM,YAAW,GAAI,CAAC;AACzB,WAAA,MAAO;YACH,IAAI,CAAC/Y,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAACm1B,IAAG,GAAImD,aAAajF,IAAI,CAACoF,IAAI,CAAC,IAAI,CAACtM,mBAAkB,GAAI,CAAC,CAAA,GAAI,IAAI;YACtG,IAAI,CAACxM,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAACm1B,OAAOmD,UAAS,GAAIjF,IAAI,CAACoF,IAAI,CAAC,IAAI,CAACtM,sBAAsB,CAAC,IAAI,IAAI;AACxG,YAAA,IAAI,CAACuM,YAAW,GAAI,EAAE;AAC1B;UAEA,IAAI,CAAC/Y,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAAC0b,OAAM,GAAI,OAAO;UACrD,IAAI,CAACiE,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAAC0b,OAAM,GAAI,OAAO;AAC3D;AACJ;KACH;AACDid,IAAAA,uBAAuB,EAAA,SAAvBA,uBAAuBA,CAAC70B,CAAC,EAAE;AACvB,MAAA,IAAuBhC,KAAI,GAAMgC,CAAC,CAA1B9B,aAAa;AAErB,MAAA,IAAI,IAAI,CAAC7E,kBAAiB,IAAK,IAAI,CAACmvB,oBAAoB,EAAE;QACtDxqB,KAAK,CAACgJ,cAAc,EAAE;QACtB,IAAI,CAAC6U,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAAC0b,OAAM,GAAI,MAAM;QACpD,IAAI,CAACiE,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAAC0b,OAAM,GAAI,MAAM;AAC1D;KACH;AACDkd,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAAC90B,CAAC,EAAE;AAAA,MAAA,IAAA+0B,MAAA,GAAA,IAAA;AAClB,MAAA,IAAuB/2B,KAAK,GAAagC,CAAC,CAAlC9B,aAAa;QAASxB,MAAK,GAAMsD,CAAC,CAAZtD,MAAK;MAEnCsB,KAAK,CAACgJ,cAAc,EAAE;MAEtB,IAAI,IAAI,CAACwhB,oBAAoB,EAAE;AAC3B,QAAA,IAAIwM,YAAY5Q,QAAQ,CAAC,IAAI,CAACoE,oBAAoB,CAAC;AACnD,QAAA,IAAIyM,SAAQ,GAAI7Q,QAAQ,CAAC,IAAI,CAAC6P,gBAAgB,CAACj2B,KAAK,CAACiI,MAAM,CAAC,CAAC;AAC7D,QAAA,IAAIivB,SAAQ,GAAIF,SAAQ,KAAMC,SAAS;AAEvC,QAAA,IAAIC,SAAQ,KAAOD,SAAQ,GAAID,SAAQ,KAAM,CAAA,IAAK,IAAI,CAACJ,YAAW,KAAM,EAAE,IAAMK,SAAQ,GAAID,SAAQ,KAAM,EAAC,IAAK,IAAI,CAACJ,YAAW,KAAM,CAAE,CAAC,EAAE;AACvIM,UAAAA,SAAQ,GAAI,KAAK;AACrB;AAEA,QAAA,IAAIA,SAAS,EAAE;AACX,UAAA,IAAIC,eAAe,SAAfA,aAAgBC,IAAI,EAAEC,IAAI,EAAA;YAAA,OAC1BN,MAAI,CAACxwB,UAAU,CAAC6wB,IAAI,EAAE,WAAW,CAAA,IAAKL,MAAI,CAACxwB,UAAU,CAAC8wB,IAAI,EAAE,WAAW,IAAIN,MAAI,CAACxwB,UAAU,CAAC6wB,IAAI,EAAE,WAAW,CAAA,KAAML,MAAI,CAACxwB,UAAU,CAAC8wB,IAAI,EAAE,WAAW,IAAIN,MAAI,CAACxwB,UAAU,CAAC6wB,IAAI,EAAE,OAAO,CAAA,KAAML,MAAI,CAACxwB,UAAU,CAAC8wB,IAAI,EAAE,OAAO,CAAC;AAAA,WAAA;UAC5N,IAAIC,YAAW,GAAI,IAAI,CAACznB,OAAO,CAACiC,SAAS,CAAC,UAACylB,KAAK,EAAA;AAAA,YAAA,OAAKJ,YAAY,CAACI,KAAK,EAAER,MAAI,CAACxM,aAAa,CAAC;WAAA,CAAC;UAC7F,IAAIiN,YAAW,GAAI,IAAI,CAAC3nB,OAAO,CAACiC,SAAS,CAAC,UAACylB,KAAK,EAAA;AAAA,YAAA,OAAKJ,YAAY,CAACI,KAAK,EAAE74B,MAAM,CAAC;WAAA,CAAC;UACjF,IAAIy2B,MAAK,GAAI,EAAE;UACf,IAAIC,OAAM,GAAI1D,IAAI,CAAC,IAAI,CAAC5qB,GAAG,EAAE,0CAA0C,CAAC;AAExEsuB,UAAAA,OAAO,CAACrgB,OAAO,CAAC,UAACmS,MAAM,EAAA;YAAA,OAAKiO,MAAM,CAACrhB,IAAI,CAACrI,aAAa,CAACyb,MAAM,CAAC,CAAC;WAAA,CAAC;UAC/D,IAAMuQ,SAAQ,GAAItC,MAAM,CAACzD,IAAI,CAAC,UAACgG,CAAC,EAAE94B,KAAK,EAAA;YAAA,OAAKA,KAAI,KAAM04B,YAAY;WAAA,CAAC;UACnE,IAAMK,cAAa,GAAIxC,MAAM,CAACh4B,MAAM,CAAC,UAACu6B,CAAC,EAAE94B,KAAK,EAAA;YAAA,OAAKA,KAAI,KAAM04B,YAAY;WAAA,CAAC;UAC1E,IAAMM,eAAc,GAAA,EAAA,CAAAj4B,MAAA,CAAA0pB,kBAAA,CAAQsO,cAAc,CAAC1G,KAAK,CAAC,CAAC,EAAEuG,YAAY,CAAC,CAAA,EAAA,CAAEC,SAAS,CAAA,EAAApO,kBAAA,CAAKsO,cAAc,CAAC1G,KAAK,CAACuG,YAAY,CAAC,CAAA,CAAC;AAEpH,UAAA,IAAI,CAACK,oBAAoB,CAACD,eAAe,CAAC;UAE1C,IAAIJ,YAAW,GAAIF,YAAW,IAAK,IAAI,CAACV,iBAAiB,CAAC,EAAE;AACxDY,YAAAA,YAAY,EAAE;AAClB;UAEA,IAAIA,YAAW,GAAIF,YAAW,IAAK,IAAI,CAACV,YAAW,KAAM,EAAE,EAAE;AACzDY,YAAAA,YAAY,EAAE;AAClB;UAEAM,YAAY,CAAC,IAAI,CAACjoB,OAAO,EAAEynB,YAAY,EAAEE,YAAY,CAAC;UACtD,IAAI,CAACO,wBAAwB,EAAE;AAE/B,UAAA,IAAI,CAAC93B,KAAK,CAAC,gBAAgB,EAAE;AACzBC,YAAAA,aAAa,EAAEF,KAAK;AACpBg3B,YAAAA,SAAS,EAAEM,YAAY;AACvBL,YAAAA,SAAS,EAAEO;AACf,WAAC,CAAC;AACN;QAEA,IAAI,CAAC3Z,KAAK,CAACkY,kBAAkB,CAAC73B,KAAK,CAAC0b,OAAM,GAAI,MAAM;QACpD,IAAI,CAACiE,KAAK,CAAC6Y,oBAAoB,CAACx4B,KAAK,CAAC0b,OAAM,GAAI,MAAM;AACtD,QAAA,IAAI,CAAC4Q,oBAAoB,CAACoL,SAAQ,GAAI,KAAK;QAC3C,IAAI,CAACpL,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACD,gBAAgB,IAAI;QACzB,IAAI,CAACqM,YAAW,GAAI,IAAI;AAC5B;KACH;AACDX,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC9rB,OAAO,EAAE;AACtB,MAAA,IAAIA,OAAO,CAACsb,QAAO,KAAM,IAAI,EAAE;AAC3B,QAAA,OAAOtb,OAAO;AAClB,OAAA,MAAO;AACH,QAAA,IAAIlL,MAAK,GAAIkL,OAAO,CAACG,aAAa;AAElC,QAAA,OAAOrL,MAAM,CAACwmB,QAAO,KAAM,IAAI,EAAE;UAC7BxmB,MAAK,GAAIA,MAAM,CAACqL,aAAa;UAC7B,IAAI,CAACrL,MAAM,EAAE;AACjB;AAEA,QAAA,OAAOA,MAAM;AACjB;KACH;AACD+4B,IAAAA,eAAe,WAAfA,eAAeA,CAACnoB,OAAO,EAAE9Q,GAAG,EAAE;AAC1B,MAAA,IAAI8Q,OAAM,IAAKA,OAAO,CAACtM,MAAM,EAAE;AAC3B,QAAA,KAAK,IAAIf,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAIqN,OAAO,CAACtM,MAAM,EAAEf,CAAC,EAAE,EAAE;AACrC,UAAA,IAAI9D,MAAK,GAAImR,OAAO,CAACrN,CAAC,CAAC;UAEvB,IAAI,IAAI,CAAC+D,UAAU,CAAC7H,MAAM,EAAE,WAAW,CAAA,KAAMK,GAAE,IAAK,IAAI,CAACwH,UAAU,CAAC7H,MAAM,EAAE,OAAO,MAAMK,GAAG,EAAE;AAC1F,YAAA,OAAOL,MAAM;AACjB;AACJ;AACJ;AAEA,MAAA,OAAO,IAAI;KACd;AACD8T,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACxS,KAAK,EAAE;AAClB,MAAA,IAAIqK,YAAY,CAACrK,KAAK,CAACiI,MAAM,EAAE,iBAAiB,CAAA,KAAM,0BAA0BoC,YAAY,CAACrK,KAAK,CAACiI,MAAM,CAACqC,aAAa,EAAE,iBAAiB,CAAA,KAAM,sBAAsB,EAAEtK,KAAK,CAACwlB,aAAa,CAACoQ,YAAY,IAAI,CAAA,KACvM51B,KAAK,CAACwlB,aAAa,CAACoQ,SAAQ,GAAI,KAAK;KAC7C;AACDnjB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzQ,CAAC,EAAE;AACd,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMtB,KAAI,GAAIoD,CAAC,CAACpD,KAAK;MAErB,IAAI,CAAC+rB,WAAU,GAAI,IAAI;MACvB,IAAI,CAACF,eAAc,GAAI7rB,KAAK;MAC5BoB,KAAK,CAACk2B,YAAY,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KAC1C;AACDzjB,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC1Q,CAAC,EAAE;AACb,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMtB,KAAI,GAAIoD,CAAC,CAACpD,KAAK;MAErB,IAAI,IAAI,CAAC+rB,eAAe,IAAI,CAACF,eAAc,KAAM7rB,KAAK,EAAE;AACpD,QAAA,IAAIq5B,UAAS,GAAIj4B,KAAK,CAACwlB,aAAa;AACpC,QAAA,IAAI0S,IAAG,GAAI9E,SAAS,CAAC6E,UAAU,CAAC,CAAC7hB,GAAG;AACpC,QAAA,IAAI+hB,QAAQn4B,KAAK,CAACm4B,KAAK;QACvB,IAAIC,OAAM,GAAIF,IAAG,GAAI7hB,cAAc,CAAC4hB,UAAU,CAAA,GAAI,CAAC;AACnD,QAAA,IAAII,cAAa,GAAIJ,UAAU,CAACztB,sBAAsB;QAEtD,IAAI2tB,KAAI,GAAIC,OAAO,EAAE;AACjBH,UAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;UACrE,CAAC,IAAI,CAACC,UAAS,IAAK2E,WAAW,CAACL,UAAU,EAAE,8BAA8B,CAAC;UAE3E,IAAI,CAACvN,eAAc,GAAI9rB,KAAK;AAE5B,UAAA,IAAIy5B,cAAc,EAAE;AAChBA,YAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,MAAM,CAAC;YACxE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACF,cAAc,EAAE,8BAA8B,CAAC;AAChF,WAAA,MAAO;AACHJ,YAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,MAAM,CAAC;YACjE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,2BAA2B,CAAC;AACzE;AACJ,SAAA,MAAO;AACH,UAAA,IAAII,cAAc,EAAE;AAChBA,YAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;YACzE,CAAC,IAAI,CAACC,cAAc2E,WAAW,CAACD,cAAc,EAAE,8BAA8B,CAAC;AACnF,WAAA,MAAO;AACHJ,YAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,MAAM,CAAC;YACjE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,2BAA2B,CAAC;AACzE;AAEA,UAAA,IAAI,CAACvN,eAAc,GAAI9rB,KAAI,GAAI,CAAC;AAChCq5B,UAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,MAAM,CAAC;UACpE,CAAC,IAAI,CAACC,UAAS,IAAK4E,QAAQ,CAACN,UAAU,EAAE,8BAA8B,CAAC;AAC5E;QAEAj4B,KAAK,CAACgJ,cAAc,EAAE;AAC1B;KACH;AACD2J,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC3S,KAAK,EAAE;AAClB,MAAA,IAAIi4B,UAAS,GAAIj4B,KAAK,CAACwlB,aAAa;AACpC,MAAA,IAAI6S,cAAa,GAAIJ,UAAU,CAACztB,sBAAsB;AAEtD,MAAA,IAAI6tB,cAAc,EAAE;AAChBA,QAAAA,cAAc,CAAC3E,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;QACzE,CAAC,IAAI,CAACC,cAAc2E,WAAW,CAACD,cAAc,EAAE,8BAA8B,CAAC;AACnF;AAEAJ,MAAAA,UAAU,CAACvE,YAAY,CAAC,mCAAmC,EAAE,OAAO,CAAC;MACrE,CAAC,IAAI,CAACC,UAAS,IAAK2E,WAAW,CAACL,UAAU,EAAE,8BAA8B,CAAC;AAC3EA,MAAAA,UAAU,CAACvE,YAAY,CAAC,gCAAgC,EAAE,OAAO,CAAC;MAClE,CAAC,IAAI,CAACC,UAAS,IAAK2E,WAAW,CAACL,UAAU,EAAE,2BAA2B,CAAC;KAC3E;AACDrlB,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAAC5S,KAAK,EAAE;MAChB,IAAI,CAAC2qB,WAAU,GAAI,KAAK;MACxB,IAAI,CAACF,kBAAkB,IAAI;MAC3B,IAAI,CAACC,kBAAkB,IAAI;AAC3B1qB,MAAAA,KAAK,CAACwlB,aAAa,CAACoQ,YAAY,KAAK;KACxC;AACD/iB,IAAAA,SAAS,EAAA,SAATA,SAASA,CAAC7S,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAAC0qB,eAAc,IAAK,IAAI,EAAE;QAC9B,IAAIuM,SAAQ,GAAI,IAAI,CAACxM,eAAc,GAAI,IAAI,CAACC,eAAc,GAAI,IAAI,CAACA,eAAc,GAAI,IAAI,CAACA,eAAc,KAAM,CAAA,GAAI,CAAA,GAAI,IAAI,CAACA,eAAc,GAAI,CAAC;AAC9I,QAAA,IAAImB,aAAY,GAAAxC,kBAAA,CAAQ,IAAI,CAACwC,aAAa,CAAC;AAE3CiM,QAAAA,YAAY,CAACjM,aAAa,EAAE,IAAI,CAACpB,eAAc,GAAI,IAAI,CAAC1B,OAAO,EAAEkO,SAAQ,GAAI,IAAI,CAAClO,OAAO,CAAC;AAE1F,QAAA,IAAI,CAAC9oB,KAAK,CAAC,aAAa,EAAE;AACtBC,UAAAA,aAAa,EAAEF,KAAK;UACpBg3B,SAAS,EAAE,IAAI,CAACvM,eAAe;AAC/BwM,UAAAA,SAAS,EAAEA,SAAS;AACpB3+B,UAAAA,KAAK,EAAEuzB;AACX,SAAC,CAAC;AACN;;AAEA;AACA,MAAA,IAAI,CAAClZ,cAAc,CAAC3S,KAAK,CAAC;AAC1B,MAAA,IAAI,CAAC4S,YAAY,CAAC5S,KAAK,CAAC;MACxBA,KAAK,CAACgJ,cAAc,EAAE;KACzB;AACDxB,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACxH,KAAK,EAAE;AAAA,MAAA,IAAAw4B,MAAA,GAAA,IAAA;AACb,MAAA,IAAQzlB,QAAQ,GAAc/S,KAAK,CAA3B+S,QAAQ;AAAK0lB,QAAAA,IAAG,GAAAC,wBAAA,CAAM14B,KAAK,EAAA24B,SAAA,CAAA;AACnC,MAAA,IAAMxzB,UAAUnF,KAAK,CAACG,IAAI;AAC1B,MAAA,IAAI7E,YAAY;MAEhB,IAAI,IAAI,CAAC7C,OAAO,EAAE;QACd,IAAMH,KAAI,GAAIiP,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAAC1M,OAAO,CAAC;AAErD6C,QAAAA,YAAW,GAAI,IAAI,CAACA,YAAW,GAAA+S,eAAA,CAAA,EAAA,EAAS,IAAI,CAAC/S,YAAW,CAAA,GAAM,EAAE;AAChEyX,QAAAA,QAAO,GAAKzX,YAAY,CAAChD,KAAK,CAAA,GAAI,IAAI,GAAI,OAAOgD,YAAY,CAAChD,KAAK,CAAC;AACxE,OAAA,MAAO;QACHgD,YAAW,GAAI,IAAI,CAACA,YAAW,GAAA+tB,kBAAA,CAAQ,IAAI,CAAC/tB,YAAY,CAAA,GAAI,EAAE;AAC9DyX,QAAAA,QAAO,GAAIzX,YAAY,CAACwY,IAAI,CAAC3O,OAAO,CAAA,GAAK7J,YAAW,GAAIA,YAAY,CAAC6B,MAAM,CAAC,UAACkG,CAAC,EAAA;UAAA,OAAK,CAACm1B,MAAI,CAAC7nB,MAAM,CAACxL,OAAO,EAAE9B,CAAC,CAAC;SAAA,CAAE;AACjH;AAEA,MAAA,IAAI,CAACpD,KAAK,CAAC,qBAAqB,EAAE3E,YAAY,CAAC;AAC/CyX,MAAAA,QAAO,GAAI,IAAI,CAAC9S,KAAK,CAAC,YAAY,EAAEw4B,IAAI,CAAA,GAAI,IAAI,CAACx4B,KAAK,CAAC,cAAc,EAAEw4B,IAAI,CAAC;KAC/E;AACDG,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC52B,CAAC,EAAE;AACd,MAAA,IAAMhC,KAAI,GAAIgC,CAAC,CAAC9B,aAAa;AAC7B,MAAA,IAAMC,IAAG,GAAI6B,CAAC,CAAC7B,IAAI;MACnB,IAAMsU,eAAc,GAAIlN,gBAAgB,CAACpH,IAAI,EAAE,IAAI,CAACzE,WAAW,CAAC;AAChE,MAAA,IAAIm9B,kBAAiB,GAAI,IAAI,CAACj9B,uCAAwB,IAAI,CAACA,iBAAiB,CAAA,GAAI,EAAE;AAElF,MAAA,IAAI,IAAI,CAAC4Y,kBAAkB,CAACrU,IAAI,CAAC,EAAE;AAC/B04B,QAAAA,kBAAiB,GAAIA,kBAAkB,CAAC17B,MAAM,CAAC,UAAC27B,KAAK,EAAA;UAAA,OAAKA,KAAI,KAAMrkB,eAAe;SAAA,CAAC;AACpF,QAAA,IAAI,CAACxU,KAAK,CAAC,0BAA0B,EAAE44B,kBAAkB,CAAC;AAC1D,QAAA,IAAI,CAAC54B,KAAK,CAAC,mBAAmB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEsU;AAAgB,SAAC,CAAC;AACpF,OAAA,MAAO;AACHokB,QAAAA,kBAAkB,CAAC/kB,IAAI,CAACW,eAAe,CAAC;AACxC,QAAA,IAAI,CAACxU,KAAK,CAAC,0BAA0B,EAAE44B,kBAAkB,CAAC;AAC1D,QAAA,IAAI,CAAC54B,KAAK,CAAC,iBAAiB,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;AAAEG,UAAAA,IAAI,EAAEsU;AAAgB,SAAC,CAAC;AAClF;KACH;AACDD,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACrP,OAAO,EAAE;AACxB,MAAA,IAAI,IAAI,CAACxJ,uBAAuB,IAAI,CAACC,iBAAiB,EAAE;QACpD,IAAI6Y,eAAc,GAAIlN,gBAAgB,CAACpC,OAAO,EAAE,IAAI,CAACzJ,WAAW,CAAC;QAEjE,OAAO,IAAI,CAACE,iBAAiB,CAACgW,OAAO,CAAC6C,eAAe,CAAA,GAAI,EAAE;AAC/D;AAEA,MAAA,OAAO,KAAK;KACf;IACDwW,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACnvB,QAAO,IAAK,IAAI;KAC/B;IACDi9B,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,QAAQ,IAAI,CAACl9B,YAAY;AACrB,QAAA,KAAK,OAAO;UACR,OAAO+jB,MAAM,CAACoZ,YAAY;AAE9B,QAAA,KAAK,SAAS;UACV,OAAOpZ,MAAM,CAACqZ,cAAc;AAEhC,QAAA;UACI,MAAM,IAAIC,KAAK,CAAC,IAAI,CAACr9B,YAAW,GAAI,0FAA0F,CAAC;AACvI;KACH;IACDyvB,SAAS,EAAA,SAATA,SAASA,GAAG;AACR,MAAA,IAAM6N,OAAM,GAAI,IAAI,CAACJ,UAAU,EAAE;MACjC,IAAI35B,KAAI,GAAI,EAAE;MAEd,IAAI,IAAI,CAACpG,SAAS,EAAE;AAChBoG,QAAAA,KAAK,CAACtG,KAAI,GAAI,IAAI,CAACiwB,OAAO;AAC1B3pB,QAAAA,KAAK,CAACxG,IAAG,GAAI,IAAI,CAACowB,MAAM;AAC5B;MAEA,IAAI,IAAI,CAACC,WAAW,EAAE;AAClB;AACA,QAAA,IAAI,OAAO,IAAI,CAACA,WAAU,KAAM,UAAU,EAAE7pB,KAAK,CAACvF,SAAQ,GAAI,IAAI,CAACovB,WAAW;AAC9E7pB,QAAAA,KAAK,CAACtF,SAAQ,GAAI,IAAI,CAACovB,WAAW;AACtC;MAEA,IAAI,IAAI,CAACE,eAAe,EAAE;AACtBhqB,QAAAA,KAAK,CAACnF,aAAY,GAAI,IAAI,CAACmvB,eAAe;AAC9C;MAEA,IAAI,IAAI,CAACgQ,UAAU,EAAE;AACjBh6B,QAAAA,KAAK,CAAChF,OAAM,GAAI,IAAI,CAACA,OAAO;AAChC;MAEA,IAAI,IAAI,CAACe,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAACk+B,gBAAgB,CAACj6B,KAAK,CAAC;AAChC;MAEA,IAAI,IAAI,CAAC/D,kBAAkB,EAAE;AACzB+D,QAAAA,KAAK,CAACk6B,WAAU,GAAI,IAAI,CAAC9P,aAAa;AAC1C;MAEA,IAAI,IAAI,CAACluB,YAAY,EAAE;AACnB8D,QAAAA,KAAK,CAAC9D,YAAW,GAAI,IAAI,CAACA,YAAY;AAC1C;MAEA,IAAI,IAAI,CAACM,iBAAiB,EAAE;AACxBwD,QAAAA,KAAK,CAACxD,iBAAgB,GAAI,IAAI,CAACA,iBAAiB;AACpD;MAEA,IAAI,IAAI,CAACpB,SAAS,EAAE;AAChB4E,QAAAA,KAAK,CAAC5E,SAAQ,GAAI,IAAI,CAACA,SAAS;AAChC4E,QAAAA,KAAK,CAAC2Q,aAAY,GAAI,IAAI,CAACwZ,eAAe;AAC9C;MAEA,IAAIlwB,MAAM,CAACy1B,IAAI,CAAC1vB,KAAK,CAAC,CAACmE,MAAM,EAAE;AAC3B41B,QAAAA,OAAO,CAACI,OAAO,CAAC,IAAI,CAACz9B,QAAQ,EAAE09B,IAAI,CAACC,SAAS,CAACr6B,KAAK,CAAC,CAAC;AACzD;AAEA,MAAA,IAAI,CAACa,KAAK,CAAC,YAAY,EAAEb,KAAK,CAAC;KAClC;IACD8rB,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAMiO,OAAM,GAAI,IAAI,CAACJ,UAAU,EAAE;MACjC,IAAMW,WAAU,GAAIP,OAAO,CAACQ,OAAO,CAAC,IAAI,CAAC79B,QAAQ,CAAC;MAClD,IAAM89B,UAAS,GAAI,4CAA4C;MAE/D,IAAMC,OAAM,GAAI,SAAVA,OAAMA,CAAc96B,GAAG,EAAEzG,KAAK,EAAE;QAClC,IAAI,OAAOA,KAAI,KAAM,QAAO,IAAKshC,UAAU,CAACE,IAAI,CAACxhC,KAAK,CAAC,EAAE;AACrD,UAAA,OAAO,IAAIyhC,IAAI,CAACzhC,KAAK,CAAC;AAC1B;AAEA,QAAA,OAAOA,KAAK;OACf;AAED,MAAA,IAAI0hC,WAAW;MACf,IAAI;QACAA,WAAU,GAAIR,IAAI,CAACS,KAAK,CAACP,WAAW,EAAEG,OAAO,CAAC;AAClD,OAAA,CAAE,OAAOK,KAAK,EAAE;MAChB,IAAI,CAACF,eAAeG,SAAA,CAAOH,WAAU,CAAA,KAAM,QAAQ,EAAE;AACjDb,QAAAA,OAAO,CAACiB,UAAU,CAAC,IAAI,CAACt+B,QAAQ,CAAC;AACjC,QAAA;AACJ;MAEA,IAAMu+B,aAAY,GAAI,EAAE;MAExB,IAAI,IAAI,CAACrhC,SAAS,EAAE;AAChB,QAAA,IAAI,OAAOghC,WAAW,CAAClhC,KAAI,KAAM,QAAQ,EAAE;AACvC,UAAA,IAAI,CAACiwB,OAAM,GAAIiR,WAAW,CAAClhC,KAAK;UAChC,IAAI,CAACmH,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC8oB,OAAO,CAAC;AACxCsR,UAAAA,aAAa,CAACvhC,KAAI,GAAI,IAAI,CAACiwB,OAAO;AACtC;AACA,QAAA,IAAI,OAAOiR,WAAW,CAACphC,IAAG,KAAM,QAAQ,EAAE;AACtC,UAAA,IAAI,CAACowB,MAAK,GAAIgR,WAAW,CAACphC,IAAI;UAC9B,IAAI,CAACqH,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC+oB,MAAM,CAAC;AACtCqR,UAAAA,aAAa,CAACzhC,IAAG,GAAI,IAAI,CAACowB,MAAM;AACpC;AACJ;AAEA,MAAA,IAAI,OAAOgR,WAAW,CAACngC,cAAc,QAAQ,EAAE;AAC3C,QAAA,IAAI,CAACovB,WAAU,GAAI+Q,WAAW,CAACngC,SAAS;QACxC,IAAI,CAACoG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACgpB,WAAW,CAAC;AAChDoR,QAAAA,aAAa,CAACxgC,YAAY,IAAI,CAACovB,WAAW;AAC9C;AAEA,MAAA,IAAI,OAAO+Q,WAAW,CAAClgC,cAAc,QAAQ,EAAE;AAC3C,QAAA,IAAI,CAACovB,WAAU,GAAI8Q,WAAW,CAAClgC,SAAS;QACxC,IAAI,CAACmG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAACipB,WAAW,CAAC;AAChDmR,QAAAA,aAAa,CAACvgC,YAAY,IAAI,CAACovB,WAAW;AAC9C;MAEA,IAAI1wB,KAAK,CAACmZ,OAAO,CAACqoB,WAAW,CAAC//B,aAAa,CAAC,EAAE;AAC1C,QAAA,IAAI,CAACmvB,eAAc,GAAI4Q,WAAW,CAAC//B,aAAa;QAChD,IAAI,CAACgG,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACmpB,eAAe,CAAC;AACxDiR,QAAAA,aAAa,CAACpgC,aAAY,GAAI,IAAI,CAACmvB,eAAe;AACtD;AAEA,MAAA,IAAI,IAAI,CAACgQ,cAAce,SAAA,CAAOH,WAAW,CAAC5/B,aAAY,YAAY4/B,WAAW,CAAC5/B,OAAM,KAAM,IAAI,EAAE;QAC5F,IAAI,CAACuvB,SAAQ,GAAI,IAAI,CAACC,YAAY,CAACoQ,WAAW,CAAC5/B,OAAO,CAAC;QACvD,IAAI,CAAC6F,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC0pB,SAAS,CAAC;AAC5C0Q,QAAAA,aAAa,CAACjgC,OAAM,GAAI,IAAI,CAACuvB,SAAS;AAC1C;MAEA,IAAI,IAAI,CAACxuB,gBAAgB,EAAE;AACvB,QAAA,IAAI,OAAO6+B,WAAW,CAACM,YAAW,KAAM,QAAQ,EAAE;AAC9C,UAAA,IAAI,CAAC1P,iBAAgB,GAAIoP,WAAW,CAACM,YAAY;AACjDD,UAAAA,aAAa,CAACC,YAAW,GAAI,IAAI,CAAC1P,iBAAiB;AACvD;AACA,QAAA,IAAI,OAAOoP,WAAW,CAACrF,UAAS,KAAM,QAAQ,EAAE;AAC5C,UAAA,IAAI,CAAC9J,eAAc,GAAImP,WAAW,CAACrF,UAAU;AAC7C0F,UAAAA,aAAa,CAAC1F,UAAS,GAAI,IAAI,CAAC9J,eAAe;AACnD;AACJ;AAEA,MAAA,IAAI,IAAI,CAACxvB,kBAAiB,IAAK7C,KAAK,CAACmZ,OAAO,CAACqoB,WAAW,CAACV,WAAW,CAAC,EAAE;AACnE,QAAA,IAAI,CAAC9P,aAAY,GAAIwQ,WAAW,CAACV,WAAW;AAC5Ce,QAAAA,aAAa,CAACf,cAAc,IAAI,CAAC9P,aAAa;AAClD;AAEA,MAAA,IAAI2Q,SAAA,CAAOH,WAAW,CAAC1+B,YAAW,CAAA,KAAM,QAAO,IAAK0+B,WAAW,CAAC1+B,YAAW,KAAM,IAAI,EAAE;QACnF,IAAI,CAAC2E,KAAK,CAAC,qBAAqB,EAAE+5B,WAAW,CAAC1+B,YAAY,CAAC;AAC3D++B,QAAAA,aAAa,CAAC/+B,eAAe0+B,WAAW,CAAC1+B,YAAY;AACzD;MAEA,IAAI9C,KAAK,CAACmZ,OAAO,CAACqoB,WAAW,CAACp+B,iBAAiB,CAAC,EAAE;QAC9C,IAAI,CAACqE,KAAK,CAAC,0BAA0B,EAAE+5B,WAAW,CAACp+B,iBAAiB,CAAC;AACrEy+B,QAAAA,aAAa,CAACz+B,iBAAgB,GAAIo+B,WAAW,CAACp+B,iBAAiB;AACnE;AAEA,MAAA,IAAIu+B,SAAA,CAAOH,WAAW,CAACx/B,SAAQ,CAAA,KAAM,QAAO,IAAKw/B,WAAW,CAACx/B,SAAQ,KAAM,IAAI,EAAE;AAC7E,QAAA,IAAI2/B,SAAA,CAAOH,WAAW,CAACjqB,aAAY,CAAA,KAAM,QAAO,IAAKiqB,WAAW,CAACjqB,aAAY,KAAM,IAAI,EAAE;AACrF,UAAA,IAAI,CAACwZ,eAAc,GAAIyQ,WAAW,CAACjqB,aAAa;AAChDsqB,UAAAA,aAAa,CAACtqB,aAAY,GAAI,IAAI,CAACwZ,eAAe;AACtD;QACA,IAAI,CAACtpB,KAAK,CAAC,kBAAkB,EAAE+5B,WAAW,CAACx/B,SAAS,CAAC;AACrD6/B,QAAAA,aAAa,CAAC7/B,YAAYw/B,WAAW,CAACx/B,SAAS;AACnD;AAEA,MAAA,IAAI,CAACyF,KAAK,CAAC,eAAe,EAAEo6B,aAAa,CAAC;KAC7C;AACDhB,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACj6B,KAAK,EAAE;MACpB,IAAI+1B,MAAK,GAAI,EAAE;MACf,IAAIC,OAAM,GAAI1D,IAAI,CAAC,IAAI,CAAC5qB,GAAG,EAAE,0CAA0C,CAAC;AAExEsuB,MAAAA,OAAO,CAACrgB,OAAO,CAAC,UAACmS,MAAM,EAAA;QAAA,OAAKiO,MAAM,CAACrhB,IAAI,CAACrI,aAAa,CAACyb,MAAM,CAAC,CAAC;OAAA,CAAC;MAC/D9nB,KAAK,CAACk7B,YAAW,GAAInF,MAAM,CAACoF,IAAI,CAAC,GAAG,CAAC;AAErC,MAAA,IAAI,IAAI,CAACn/B,gBAAe,KAAM,QAAQ,EAAE;AACpCgE,QAAAA,KAAK,CAACu1B,UAAS,GAAIlpB,aAAa,CAAC,IAAI,CAACoS,KAAK,CAAC+T,KAAK,IAAI,IAAI;AAC7D;KACH;AACDiG,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAAC1C,MAAM,EAAE;MACzB,IAAI,CAACE,kBAAkB,EAAE;MAEzB,IAAIC,SAAQ,GAAI,EAAE;AAClB,MAAA,IAAIC,QAAO,GAAA,+BAAA,CAAA51B,MAAA,CAAkC,IAAI,CAAC0X,aAAa,EAAA,2CAAA,CAAA,CAAA1X,MAAA,CAA0C,IAAI,CAACm1B,uBAAsB,GAAI,EAAC,GAAI,oCAAoC,EAAA,qCAAA,CAAmC;AAEpNK,MAAAA,MAAM,CAACpgB,OAAO,CAAC,UAAC8f,KAAK,EAAEj2B,KAAK,EAAK;QAC7B,IAAIV,KAAI,aAAAyB,MAAA,CAAck1B,KAAK,EAAA,4BAAA,CAAA,CAAAl1B,MAAA,CAA6Bk1B,KAAK,EAAA,eAAA,CAAe;AAE5ES,QAAAA,SAAQ,IAAA,YAAA,CAAA31B,MAAA,CACd41B,QAAQ,8DAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,cAAA,CAAA,CAAAe,MAAA,CAC1E41B,QAAQ,8DAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,cAAA,CAAA,CAAAe,MAAA,CAC1E41B,QAAQ,EAAA,0DAAA,CAAA,CAAA51B,MAAA,CAAyDf,KAAI,GAAI,CAAC,EAAA,mBAAA,CAAA,CAAAe,MAAA,CACtEzB,KAAK,EAAA,mBAAA,CAEd;AACO,OAAC,CAAC;AAEF,MAAA,IAAI,CAACu3B,YAAY,CAACH,SAAQ,GAAIA,SAAS;KAC1C;IACDnK,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACP,iBAAiB,EAAE;QACxB,IAAIuK,MAAK,GAAI,IAAI,CAACvK,iBAAiB,CAAC4P,KAAK,CAAC,GAAG,CAAC;QAE9C,IAAI,IAAI,CAACp/B,gBAAe,KAAM,QAAO,IAAK,IAAI,CAACyvB,eAAe,EAAE;UAC5D,IAAI,CAAChN,KAAK,CAAC+T,KAAK,CAAC1zB,KAAK,CAAC22B,QAAQ,IAAI,CAAChK,eAAe;UACnD,IAAI,CAAChN,KAAK,CAAC+T,KAAK,CAAC1zB,KAAK,CAACo2B,QAAO,GAAI,IAAI,CAACzJ,eAAe;AAC1D;AAEA,QAAA,IAAIzW,UAAU,CAAC+gB,MAAM,CAAC,EAAE;AACpB,UAAA,IAAI,CAAC0C,oBAAoB,CAAC1C,MAAM,CAAC;AACrC;AACJ;KACH;AACDjiB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAClT,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAED,KAAK,CAAC;KACtC;AACDmT,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACnT,KAAK,EAAE;AACtB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC;KAC1C;AACDoT,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACpT,KAAK,EAAE;AACpB,MAAA,IAAI,CAACC,KAAK,CAAC,kBAAkB,EAAED,KAAK,CAAC;KACxC;AACD+K,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC/K,KAAK,EAAE;AACjB,MAAA,IAAIy6B,YAAW,GAAI,IAAI,CAACz+B,WAAU,GAAAqtB,kBAAA,CAAQ,IAAI,CAACrtB,WAAW,CAAA,GAAI,EAAE;AAEhEy+B,MAAAA,YAAY,CAAC3mB,IAAI,CAAC9T,KAAK,CAACG,IAAI,CAAC;AAC7B,MAAA,IAAI,CAACF,KAAK,CAAC,oBAAoB,EAAEw6B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACx6B,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDgL,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAChL,KAAK,EAAE;AACjB,MAAA,IAAIy6B,YAAW,GAAApR,kBAAA,CAAQ,IAAI,CAACrtB,WAAW,CAAC;AAExCy+B,MAAAA,YAAY,CAACxe,MAAM,CAAC,IAAI,CAACnK,SAAS,CAAC9R,KAAK,CAACG,IAAI,EAAEs6B,YAAY,CAAC,EAAE,CAAC,CAAC;AAChE,MAAA,IAAI,CAACx6B,KAAK,CAAC,oBAAoB,EAAEw6B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACx6B,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC;KACrC;AACDiL,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACjL,KAAK,EAAE;AACnB,MAAA,IAAIy6B,YAAW,GAAApR,kBAAA,CAAQ,IAAI,CAACrtB,WAAW,CAAC;AAExCy+B,MAAAA,YAAY,CAACxe,MAAM,CAAC,IAAI,CAACnK,SAAS,CAAC9R,KAAK,CAACG,IAAI,EAAEs6B,YAAY,CAAC,EAAE,CAAC,CAAC;AAChE,MAAA,IAAI,CAACx6B,KAAK,CAAC,oBAAoB,EAAEw6B,YAAY,CAAC;AAC9C,MAAA,IAAI,CAACx6B,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC;KACvC;AACDqT,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACrT,KAAK,EAAE;AACvB,MAAA,IAAMG,IAAI,GAA4BH,KAAK,CAArCG,IAAI;QAAEkG,KAAK,GAAqBrG,KAAK,CAA/BqG,KAAK;QAAEzH,KAAK,GAAcoB,KAAK,CAAxBpB,KAAK;QAAE4G,OAAM,GAAMxF,KAAK,CAAjBwF,OAAM;AAChC,MAAA,IAAIC,WAAU,GAAA4I,eAAA,KAAS,IAAI,CAACqb,cAAe;AAC3C,MAAA,IAAI1D,OAAOvgB,WAAW,CAAC7G,KAAK,CAAC;AAE7B,MAAA,IAAI4G,OAAO,EAAE;QACT,CAACwgB,IAAG,KAAMA,IAAG,GAAIvgB,WAAW,CAAC7G,KAAK,CAAA,GAAI;AAAEuB,UAAAA,IAAI,EAAAkO,eAAA,CAAA,EAAA,EAAOlO,IAAG,CAAG;AAAEu6B,UAAAA,MAAM,EAAE;AAAG,SAAC,CAAC;AACxE1U,QAAAA,IAAI,CAAC,QAAQ,CAAC,CAAClS,IAAI,CAACzN,KAAK,CAAC;OAC9B,MAAO,IAAI2f,IAAI,EAAE;QACb,IAAM0U,MAAK,GAAI1U,IAAI,CAAC,QAAQ,CAAC,CAAC7oB,MAAM,CAAC,UAAC4F,CAAC,EAAA;UAAA,OAAKA,CAAA,KAAMsD,KAAK;SAAA,CAAC;AAExD,QAAA,CAACq0B,MAAM,CAACn3B,MAAK,GAAI,OAAOkC,WAAW,CAAC7G,KAAK,CAAA,GAAKonB,IAAI,CAAC,QAAQ,CAAA,GAAI0U,MAAO;AAC1E;MAEA,IAAI,CAAChR,aAAY,GAAIjkB,WAAW;KACnC;IACD+lB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACzvB,QAAQ,EAAE;AACf,QAAA,IAAI,CAAC2tB,aAAY,GAAI,EAAE;AAC3B;KACH;AACDgC,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAAC1rB,KAAK,EAAE;MACvB,OAAO;AACHE,QAAAA,aAAa,EAAEF,KAAK;QACpBlH,KAAK,EAAE,IAAI,CAACiwB,OAAO;QACnBnwB,IAAI,EAAE,IAAI,CAACowB,MAAM;QACjBnvB,SAAS,EAAE,IAAI,CAACovB,WAAW;QAC3BnvB,SAAS,EAAE,IAAI,CAACovB,WAAW;QAC3BjvB,aAAa,EAAE,IAAI,CAACmvB,eAAe;QACnChvB,OAAO,EAAE,IAAI,CAACuvB;OACjB;KACJ;IACDgR,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACvgC,OAAM,IAAKf,MAAM,CAACqJ,SAAS,CAACyrB,cAAc,CAACzqB,IAAI,CAAC,IAAI,CAACtJ,OAAO,EAAE,QAAQ,CAAC;KACtF;AACDwqB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACxqB,OAAO,EAAE;MACpB,IAAI,CAACuvB,SAAQ,GAAIvvB,OAAO;KAC3B;IACDyqB,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,CAACkE,OAAM,GAAI,CAAC;MAChB,IAAI,CAAC9oB,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC8oB,OAAO,CAAC;MACxC,IAAI,CAAC9oB,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC0pB,SAAS,CAAC;MAE5C,IAAI,IAAI,CAAClwB,IAAI,EAAE;QACX,IAAI,CAACwG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAACyrB,mBAAmB,EAAE,CAAC;AACpD;KACH;AACD9B,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACxvB,OAAO,EAAE;MAClB,IAAIwgC,MAAK,GAAI,EAAE;AAEf,MAAA,IAAIxgC,OAAO,EAAE;QACTf,MAAM,CAACs0B,OAAO,CAACvzB,OAAO,CAAC,CAAC2a,OAAO,CAAC,UAAA8lB,KAAA,EAAmB;AAAA,UAAA,IAAAC,KAAA,GAAAvN,cAAA,CAAAsN,KAAA,EAAA,CAAA,CAAA;AAAjB1zB,YAAAA,IAAI,GAAA2zB,KAAA,CAAA,CAAA,CAAA;AAAExiC,YAAAA,KAAK,GAAAwiC,KAAA,CAAA,CAAA,CAAA;AACzCF,UAAAA,MAAM,CAACzzB,IAAI,CAAA,GAAI7O,KAAK,CAACmjB,QAAO,GACtB;YACIA,QAAQ,EAAEnjB,KAAK,CAACmjB,QAAQ;YACxBC,WAAW,EAAEpjB,KAAK,CAACojB,WAAW,CAACsE,GAAG,CAAC,UAACxC,UAAU,EAAK;cAC/C,OAAAnP,eAAA,KAAYmP;aACf;AACL,WAAA,GAAAnP,eAAA,CAAA,EAAA,EACK/V,KAAI,CAAG;AACtB,SAAC,CAAC;AACN;AAEA,MAAA,OAAOsiC,MAAM;KAChB;IACD7C,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAgD,MAAA,GAAA,IAAA;MACvB,IAAIzB,WAAU,GAAI,EAAE;AAEpB,MAAA,IAAI,CAACzpB,OAAO,CAACkF,OAAO,CAAC,UAACnE,GAAG,EAAA;QAAA,OAAK0oB,WAAW,CAACxlB,IAAI,CAACinB,MAAI,CAACx0B,UAAU,CAACqK,GAAG,EAAE,WAAW,CAAA,IAAKmqB,MAAI,CAACx0B,UAAU,CAACqK,GAAG,EAAE,OAAO,CAAC,CAAC;OAAA,CAAC;MACnH,IAAI,CAAC4Y,aAAY,GAAI8P,WAAW;KACnC;IACDjE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA2F,eAAA;MACjB,IAAI,CAACvF,YAAW,GAAIrtB,QAAQ,CAAC6yB,aAAa,CAAC,OAAO,CAAC;AACnD,MAAA,IAAI,CAACxF,YAAY,CAACl9B,IAAG,GAAI,UAAU;AACnCm7B,MAAAA,YAAY,CAAC,IAAI,CAAC+B,YAAY,EAAE,OAAO,EAAA,CAAAuF,eAAA,GAAE,IAAI,CAAC16B,SAAS,MAAA,IAAA,IAAA06B,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBz6B,MAAM,MAAA,IAAA,IAAAy6B,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAtBA,eAAA,CAAwBE,GAAG,cAAAF,eAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,eAAA,CAA6BG,KAAK,CAAC;MAC5E/yB,QAAQ,CAACgzB,IAAI,CAACC,WAAW,CAAC,IAAI,CAAC5F,YAAY,CAAC;KAC/C;IACDpK,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACoK,YAAY,EAAE;QACnBrtB,QAAQ,CAACgzB,IAAI,CAACE,WAAW,CAAC,IAAI,CAAC7F,YAAY,CAAC;QAC5C,IAAI,CAACA,YAAW,GAAI,IAAI;AAC5B;KACH;AACDlF,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACpwB,IAAI,EAAE;AACf,MAAA,IAAMo7B,KAAI,GAAIp7B,QAAQ,IAAI,CAAC0rB,aAAa;AAExC,MAAA,IAAI0P,KAAI,IAAK,IAAI,CAACviC,SAAS,EAAE;QACzB,IAAMF,KAAI,GAAI,IAAI,CAACW,IAAG,GAAI,CAAA,GAAI,IAAI,CAACsvB,OAAO;QAE1C,OAAOwS,KAAK,CAACtK,KAAK,CAACn4B,KAAK,EAAEA,KAAI,GAAI,IAAI,CAACkwB,MAAM,CAAC;AAClD;AAEA,MAAA,OAAOuS,KAAK;KACf;IACDC,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAAC3d,KAAK,CAAC4d,eAAe;KACpC;AACDC,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACx9B,KAAK,EAAE;MAClB,OAAOkW,UAAU,CAAClW,KAAK,CAAC;AAC5B;GACH;AACDkC,EAAAA,QAAQ,EAAE;IACNyP,OAAO,EAAA,SAAPA,OAAOA,GAAG;MACN,IAAM8rB,IAAG,GAAI,IAAI,CAAC/S,SAAS,CAAC3P,GAAG,CAAC,IAAI,CAAC;MAErC,IAAI0iB,IAAG,IAAK,IAAI,CAACtgC,kBAAiB,IAAK,IAAI,CAACmuB,aAAa,EAAE;QACvD,IAAIoS,cAAa,GAAI,EAAE;AAAA,QAAA,IAAAC,UAAA,GAAA7nB,0BAAA,CAED,IAAI,CAACwV,aAAa,CAAA;UAAAsS,MAAA;AAAA,QAAA,IAAA;UAAxC,KAAAD,UAAA,CAAA3nB,CAAA,EAAA,EAAA,CAAA,CAAA4nB,MAAA,GAAAD,UAAA,CAAAz5B,CAAA,EAAA,EAAAuB,IAAA,GAA0C;AAAA,YAAA,IAAjCo4B;YACL,IAAIr9B,SAAS,IAAI,CAACs5B,eAAe,CAAC2D,IAAI,EAAEI,SAAS,CAAC;YAElD,IAAIr9B,MAAK,IAAK,CAAC,IAAI,CAAC6H,UAAU,CAAC7H,MAAM,EAAE,QAAQ,CAAC,EAAE;AAC9Ck9B,cAAAA,cAAc,CAAC9nB,IAAI,CAACpV,MAAM,CAAC;AAC/B;AACJ;AAAA,SAAA,CAAA,OAAA2V,GAAA,EAAA;UAAAwnB,UAAA,CAAA75B,CAAA,CAAAqS,GAAA,CAAA;AAAA,SAAA,SAAA;AAAAwnB,UAAAA,UAAA,CAAA94B,CAAA,EAAA;AAAA;QAEA,OAAA,EAAA,CAAApD,MAAA,CAAWi8B,cAAc,EAAAvS,kBAAA,CAAKsS,IAAI,CAACx+B,MAAM,CAAC,UAAC0f,IAAI,EAAA;AAAA,UAAA,OAAK+e,cAAc,CAAChqB,OAAO,CAACiL,IAAI,IAAI,CAAC;SAAA,CAAC,CAAA,CAAA;AACzF;AAEA,MAAA,OAAO8e,IAAI;KACd;IACDK,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAClT,cAAc,CAAC7P,GAAG,CAAC,IAAI,CAAC;KACvC;IACDgjB,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,kBAAA;QAAAC,MAAA,GAAA,IAAA;AAChB,MAAA,OAAA,CAAAD,kBAAA,GAAO,IAAI,CAACF,YAAY,MAAA,IAAA,IAAAE,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAmBxK,IAAI,CAAC,UAACoH,KAAK,EAAA;QAAA,OAAKqD,MAAI,CAAC51B,UAAU,CAACuyB,KAAK,EAAE,MAAM,MAAM,QAAQ;OAAA,CAAC;KACzF;IACDsD,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,mBAAA;QAAAC,OAAA,GAAA,IAAA;AAChB,MAAA,OAAA,CAAAD,mBAAA,GAAO,IAAI,CAACL,YAAY,MAAA,IAAA,IAAAK,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,mBAAA,CAAmB3K,IAAI,CAAC,UAACoH,KAAK,EAAA;QAAA,OAAKwD,OAAI,CAAC/1B,UAAU,CAACuyB,KAAK,EAAE,MAAM,MAAM,QAAQ;OAAA,CAAC;KACzF;IACDM,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,OAAO,IAAI,CAACh/B,OAAM,IAAKf,MAAM,CAACy1B,IAAI,CAAC,IAAI,CAAC10B,OAAO,CAAC,CAACmJ,MAAK,GAAI,CAAA,IAAK,IAAI,CAACnJ,OAAO,CAACmiC,WAAU,KAAMljC,MAAM;KACrG;IACDwyB,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAA2Q,qBAAA;AACZ,MAAA,IAAIr8B,IAAG,GAAI,IAAI,CAAC7H,SAAS,EAAE;AAE3B,MAAA,IAAI,CAAC,IAAI,CAACmB,QAAQ,GAAA+iC,qBAAA,GAAC,IAAI,CAACpgC,sBAAsB,MAAA,IAAA,IAAAogC,qBAAA,eAA3BA,qBAAA,CAA6B/iC,IAAI,CAAA,EAAE;AAClD,QAAA,IAAI0G,IAAG,IAAKA,IAAI,CAACoD,MAAM,EAAE;UACrB,IAAI,IAAI,CAAC61B,UAAU,EAAE;AACjBj5B,YAAAA,IAAG,GAAI,IAAI,CAAChD,MAAM,CAACgD,IAAI,CAAC;AAC5B;UAEA,IAAI,IAAI,CAACklB,MAAM,EAAE;AACb,YAAA,IAAI,IAAI,CAACnrB,QAAO,KAAM,QAAQ,EAAEiG,IAAG,GAAI,IAAI,CAACqsB,UAAU,CAACrsB,IAAI,CAAC,CAAA,KACvD,IAAI,IAAI,CAACjG,QAAO,KAAM,UAAU,EAAEiG,IAAG,GAAI,IAAI,CAACssB,YAAY,CAACtsB,IAAI,CAAC;AACzE;AACJ;AACJ;AAEA,MAAA,OAAOA,IAAI;KACd;IACDs8B,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,IAAI,CAAChjC,IAAI,EAAE;QACX,OAAO,IAAI,CAACV,YAAY;AAC5B,OAAA,MAAO;AACH,QAAA,IAAMoH,IAAG,GAAI,IAAI,CAAC0rB,aAAa;AAE/B,QAAA,OAAO1rB,IAAG,GAAIA,IAAI,CAACoD,MAAK,GAAI,CAAC;AACjC;KACH;IACDuM,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,IAAM3P,IAAG,GAAI,IAAI,CAAC0rB,aAAa;AAE/B,MAAA,OAAO,CAAC1rB,IAAG,IAAKA,IAAI,CAACoD,MAAK,KAAM,CAAC;KACpC;IACDm5B,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAC1jC,cAAc,IAAI,CAACE,iBAAgB,KAAM,QAAO,IAAK,IAAI,CAACA,sBAAsB,MAAM,CAAC;KACtG;IACDyjC,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAAC3jC,SAAQ,KAAM,IAAI,CAACE,iBAAgB,KAAM,KAAI,IAAK,IAAI,CAACA,sBAAsB,MAAM,CAAC;KACnG;IACDmsB,MAAM,EAAA,SAANA,MAAMA,GAAG;AACL,MAAA,OAAO,IAAI,CAAC4D,WAAU,IAAM,IAAI,CAACG,eAAc,IAAK,IAAI,CAACA,eAAe,CAAC7lB,MAAK,GAAI,CAAE;KACvF;IACDogB,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAAA,MAAA,IAAAiZ,OAAA,GAAA,IAAA;AACd,MAAA,IAAI,IAAI,CAAC9hC,SAAQ,KAAM,IAAI,EAAE;QACzB,OAAO,IAAI,CAACA,SAAS;AACzB,OAAA,MAAO;QACH,IAAM80B,MAAM,IAAI,CAACtzB,WAAU,GAAA,EAAA,CAAAqD,MAAA,CAAA0pB,kBAAA,CAAQ,IAAI,CAAC/sB,WAAW,CAAA,EAAA+sB,kBAAA,CAAK,IAAI,CAACwC,aAAa,CAAA,CAAA,GAAI,IAAI,CAACA,aAAa;QAEhG,OAAOzX,UAAU,CAACwb,GAAG,CAAA,IAAK,IAAI,CAACp1B,SAAQ,IAAKhC,KAAK,CAACmZ,OAAO,CAAC,IAAI,CAACnX,SAAS,CAAA,IAAKo1B,GAAG,CAACiN,KAAK,CAAC,UAAC15B,CAAC,EAAA;AAAA,UAAA,OAAKy5B,OAAI,CAACpiC,SAAS,CAACkW,IAAI,CAAC,UAACwD,CAAC,EAAA;AAAA,YAAA,OAAK0oB,OAAI,CAACjsB,MAAM,CAACuD,CAAC,EAAE/Q,CAAC,CAAC;WAAA,CAAC;SAAA,CAAC;AAChJ;KACH;IACD+hB,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAChB,OAAO,IAAI,CAAChrB,QAAO,KAAM,WAAW,IAAI,CAACL,SAAQ,GAAI,IAAI,CAACyvB,mBAAkB,GAAI,IAAI,CAACA,mBAAmB,CAACjjB,QAAQ,IAAI;KACxH;IACDy2B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAAzuB,eAAA,CAAAA,eAAA,CAAA;AACIlR,QAAAA,MAAM,EAAE;AAAEC,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;AAAK;OAAC,EACzD,IAAI,CAACL,iBAAiB,CAAA,EAAA,EAAA,EAAA;AACzBM,QAAAA,MAAM,EAAA8Q,eAAA,CAAA;AACF7Q,UAAAA,KAAK,EAAE;AAAEJ,YAAAA,QAAQ,EAAE,WAAW;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAEC,YAAAA,OAAO,EAAE;AAAK;AAAC,SAAA,EACxD,IAAI,CAACL,iBAAiB,CAACM,MAAK,CAClC;AACDE,QAAAA,OAAO,EAAA4Q,eAAA,CAAA;AACH3Q,UAAAA,OAAO,EAAE;AAAEN,YAAAA,QAAQ,EAAE,MAAM;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAET,YAAAA,IAAI,EAAE;WAAS;AACxDe,UAAAA,UAAU,EAAE;AAAEP,YAAAA,QAAQ,EAAE,QAAQ;AAAEC,YAAAA,IAAI,EAAE,IAAI;AAAET,YAAAA,IAAI,EAAE;WAAS;AAC7DgB,UAAAA,KAAK,EAAE;AAAEhB,YAAAA,IAAI,EAAE;WAAS;AACxBY,UAAAA,KAAK,EAAE;AAAEK,YAAAA,QAAQ,EAAE,IAAI;AAAEjB,YAAAA,IAAI,EAAE;AAAQ;AAAC,SAAA,EACrC,IAAI,CAACK,iBAAiB,CAACQ,OAAM;AACpC,OAAA,CAAA;KAEP;IACDs/B,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,OAAA1uB,eAAA,CAAAA,eAAA,CAAA,EAAA,EACO;AACCtQ,QAAAA,IAAI,EAAE;AAAEX,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;SAAM;AAC1DU,QAAAA,IAAI,EAAE;AAAEZ,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;SAAM;AAC1DW,QAAAA,MAAM,EAAE;AAAEb,UAAAA,QAAQ,EAAE,WAAW;AAAEC,UAAAA,IAAI,EAAE,IAAI;AAAEC,UAAAA,OAAO,EAAE;AAAK;OAC9D,CAAA,EACE,IAAI,CAACQ,eAAc,CAAA;KAE7B;IACDg3B,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAOkI,OAAO,CAAC,IAAI,CAAC5gC,sBAAsB,CAAA,IAAK,CAAC,IAAI,CAACD,UAAU;KAClE;IACDya,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,OAAOC,EAAE,CAAC;QACN1a,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3B,iBAAiB,EAAE,IAAI,CAACA,UAAS,IAAK,IAAI,CAACE,YAAW,KAAM;AAChE,OAAC,CAAC;AACN;GACH;AACDuE,EAAAA,UAAU,EAAE;AACRq8B,IAAAA,WAAW,EAAEC,SAAS;AACtBC,IAAAA,aAAa,EAAEC,QAAW;AAC1BC,IAAAA,WAAW,EAAEC,QAAS;AACtBC,IAAAA,aAAa,EAAEC,QAAW;AAC1BC,IAAAA,iBAAiB,EAAEC,eAAe;AAClCC,IAAAA,aAAa,EAAEA,aAAa;AAC5BC,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,WAAW,EAAEA;AACjB;AACJ,CAAC;;;;;;;;;;;;;;;;;EC1nEG,OAAAp8B,SAAA,EAAA,EAAA0M,kBAAA,CA8TK,OA9TLtM,UAAA,CA8TK;AA9TC,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,MAAA,CAAA;AAAU,IAAA,sBAAoB,EAAC,sBAAqB;IAAG,QAAM,EAAE9K,QAAA,CAAAwV;KAAezV,IAAA,CAAA28B,IAAI,CAAA,MAAA,CAAA,CAAA,EAAA,CAC7FC,UAAA,CAAY58B,IAAA,CAAA68B,MAAA,EAAA,SAAA,CAAA,EACD78B,IAAA,CAAAzH,OAAO,IAAlB+H,SAAA,EAAA,EAAA0M,kBAAA,CAOK,OAPLtM,UAAA,CAOK;;AAPgB,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,MAAA;KAAkB/K,IAAA,CAAAzB,GAAG,CAAA,MAAA,CAAA,CAAA,EAAA,CACnCyB,IAAA,CAAA68B,MAAM,CAACtkC,OAAO,GAA1BqkC,UAAA,CAAiD58B,IAAA,CAAA68B,MAAA,EAAA,SAAA,EAAA;AAAAj/B,IAAAA,GAAA,EAAA;GAAA,CAAA,iBACjDoP,kBAAA,CAIUQ,QAAA,EAAA;AAAA5P,IAAAA,GAAA,EAAA;GAAA,EAAA,CAHWoC,IAAA,CAAA68B,MAAM,CAACC,WAAW,iBAAnCl9B,WAAA,CAA0FW,uBAAA,CAAhDP,IAAA,CAAA68B,MAAM,CAACC,WAAW,CAAA,EAAA;;AAAG,IAAA,OAAA,iBAAO98B,IAAA,CAAA+K,EAAE,CAAA,aAAA,CAAA;4BAC1D/K,IAAA,CAAAxH,WAAW,IAAzB8H,SAAA,EAAA,EAAA0M,kBAAA,CAA6G,KAA7GtM,UAAA,CAA6G;;AAAjF,IAAA,OAAA,EAAK,CAAGV,IAAA,CAAA+K,EAAE,CAAA,aAAA,CAAA,EAAA,SAAA,EAA4B/K,IAAA,CAAAxH,WAAW;KAAWwH,IAAA,CAAAzB,GAAG,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC3F+B,SAAA,EAAA,EAAAV,WAAA,CAAiFm9B,wBAAjFr8B,UAAA,CAAiF;;AAA7Ds8B,IAAAA,IAAG,EAAH,EAAG;AAAG,IAAA,OAAA,EAAOh9B,IAAA,CAAA+K,EAAE,CAAA,aAAA;KAAyB/K,IAAA,CAAAzB,GAAG,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,+CAG5DyB,IAAA,CAAA68B,MAAM,CAAC9W,MAAM,IAAxBzlB,SAAA,EAAA,EAAA0M,kBAAA,CAEK,OAFLtM,UAAA,CAEK;;AAFsB,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,QAAA;KAAoB/K,IAAA,CAAAzB,GAAG,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDq+B,UAAA,CAA0B58B,IAAA,CAAA68B,MAAA,EAAA,QAAA,CAAA,wCAGpB58B,QAAA,CAAAs7B,YAAY,iBADtB37B,WAAA,CA0Daq9B,sBAAA,EAAA;;IAxDRxlC,IAAI,EAAEyG,KAAA,CAAA2pB,MAAM;IACZlwB,KAAK,EAAEuG,KAAA,CAAA0pB,OAAO;IACdhwB,YAAY,EAAEqI,QAAA,CAAAq7B,kBAAkB;IAChCnjC,YAAY,EAAE6H,IAAA,CAAA7H,YAAY;IAC1B+kC,QAAQ,EAAEl9B,IAAA,CAAA/H,iBAAiB;IAC3BG,kBAAkB,EAAE4H,IAAA,CAAA5H,kBAAkB;IACtCC,yBAAyB,EAAE2H,IAAA,CAAA3H,yBAAyB;AACpD,IAAA,OAAA,iBAAO2H,IAAA,CAAA+K,EAAE,CAAA,aAAA,EAAA;AAAAmS,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AACTkN,IAAAA,MAAI,EAAA1c,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE1N,QAAA,CAAAmqB,MAAM,CAACzc,MAAM,CAAA;AAAA,KAAA,CAAA;IACnBwvB,UAAU,EAAEn9B,IAAA,CAAAhI,mBAAmB;IAC/BkI,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAClB,IAAA,YAAU,EAAE,IAAI;AAChBvB,IAAAA,EAAE,EAAEqB,IAAA,CAAAzB,GAAG,CAAA,aAAA;;;MAEQyB,IAAA,CAAA68B,MAAM,CAACO,kBAAkB;UAAG,WAAS;AACjDC,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADmDC,SAAS,EAAA;MAAA,OAAA,CAC5Du8B,UAAA,CAeO58B,IAAA,CAAA68B,MAAA,EAAA,oBAAA,EAAA;QAbFllC,KAAK,EAAE0I,SAAS,CAAC1I,KAAK;QACtB2lC,IAAI,EAAEj9B,SAAS,CAACi9B,IAAI;QACpB7lC,IAAI,EAAE4I,SAAS,CAAC5I,IAAI;QACpBgzB,IAAI,EAAEpqB,SAAS,CAACoqB,IAAI;QACpBD,SAAS,EAAEnqB,SAAS,CAACmqB,SAAS;QAC9B+S,SAAS,EAAEl9B,SAAS,CAACk9B,SAAS;QAC9B3lC,YAAY,EAAEyI,SAAS,CAACzI,YAAY;QACpC4lC,iBAAiB,EAAEn9B,SAAS,CAACm9B,iBAAiB;QAC9CC,gBAAgB,EAAEp9B,SAAS,CAACo9B,gBAAgB;QAC5CC,gBAAgB,EAAEr9B,SAAS,CAACq9B,gBAAgB;QAC5CC,gBAAgB,EAAEt9B,SAAS,CAACs9B,gBAAgB;QAC5CC,iBAAiB,EAAEv9B,SAAS,CAACu9B,iBAAiB;QAC9CC,kBAAkB,EAAEx9B,SAAS,CAACw9B;;;;iBAGvB79B,IAAA,CAAA68B,MAAM,CAACiB,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlClB,UAAA,CAAkC58B,IAAA,CAAA68B,MAAA,EAAA,gBAAA,CAAA;;;iBAEtB78B,IAAA,CAAA68B,MAAM,CAACkB,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCnB,UAAA,CAAgC58B,IAAA,CAAA68B,MAAA,EAAA,cAAA,CAAA;;;iBAEpB78B,IAAA,CAAA68B,MAAM,CAACmB,0BAA0B;UAAG,mBAAiB;AACjEX,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5Eu8B,UAAA,CAAuE58B,IAAA,CAAA68B,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAEnDL,IAAA,CAAA68B,MAAM,CAACoB,yBAAyB;UAAG,kBAAgB;AAC/DZ,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACqB,yBAAyB;UAAG,kBAAgB;AAC/Db,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACsB,yBAAyB;UAAG,kBAAgB;AAC/Dd,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACuB,+BAA+B;UAAG,wBAAsB;AAC3Ef,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFu8B,UAAA,CAA4E58B,IAAA,CAAA68B,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAExDL,IAAA,CAAA68B,MAAM,CAACwB,gCAAgC;UAAG,yBAAuB;AAC7EhB,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFu8B,UAAA,CAA6E58B,IAAA,CAAA68B,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;qNAG7E0T,kBAAA,CAgLK,OAhLLrT,UAAA,CAgLK;AAhLC,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,gBAAA,CAAA;IAAqBhO,KAAK,EAAA,CAAGiD,IAAA,CAAAoY,EAAE,CAAA,gBAAA,CAAA,EAAA;MAAAkmB,SAAA,EAAiCr+B,QAAA,CAAA0zB,uBAAsB,GAAI3zB,IAAA,CAAA9E,YAAW,GAAA;AAAA,KAAA,CAAA;IAAY,QAAM,EAAE+E,QAAA,CAAAwV;KAAezV,IAAA,CAAAzB,GAAG,CAAA,gBAAA,CAAA,CAAA,EAAA,CACtJ8iB,WAAA,CA8KmBkd,8BA9KnB79B,UAAA,CA8KmB;AA7KfqV,IAAAA,GAAG,EAAC;KACI/V,IAAA,CAAA/E,sBAAsB,EAAA;IAC7BujC,KAAK,EAAEv+B,QAAA,CAAAyqB,aAAa;IACpBhc,OAAO,EAAEzO,QAAA,CAAAyO,OAAO;AAChB3R,IAAAA,KAAK,EAAEiD,IAAA,CAAA9E,YAAW,KAAA,MAAA,GAAA;MAAAw3B,MAAA,EAAyB1yB,IAAA,CAAA9E;QAAiBzC,SAAS;IACrEyC,YAAY,EAAE8E,IAAA,CAAA9E,0BAA0BzC,SAAQ,GAAA,MAAA;IAChD2F,QAAQ,EAAE6B,QAAA,CAAA0zB,uBAAuB;AAClC8K,IAAAA,cAAa,EAAb,EAAa;AACbriC,IAAAA,MAAK,EAAL,EAAK;AACLsiC,IAAAA,QAAO,EAAP,EAAO;AACNC,IAAAA,UAAU,EAAE,KAAK;AACjBhgC,IAAAA,EAAE,EAAEqB,IAAA,CAAAzB,GAAG,CAAA,iBAAA;;AAEGqgC,IAAAA,OAAO,EAAAx+B,OAAA,CACd,UA6JOC,SA9JkB,EAAA;AAAA,MAAA,OAAA,CACzB0T,kBAAA,CA6JO,SA7JPrT,UAAA,CA6JO;AA7JAqV,QAAAA,GAAG,EAAC,OAAM;AAAE9I,QAAAA,IAAI,EAAC,OAAM;QAAG,OAAA,EAAK,CAAGjN,IAAA,CAAA+K,EAAE,CAAA,OAAA,CAAA,EAAW/K,IAAA,CAAArE,UAAU,CAAA;QAAIoB,KAAK,EAAA,CAAGiD,IAAA,CAAAtE,UAAU,EAAE2E,SAAS,CAACw+B,WAAW;AAAgB,OAAA,EAAA3xB,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAlN,IAAA,CAAApE,UAAU,CAAA,EAAKoE,IAAA,CAAAzB,GAAG,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAEjIyB,IAAA,CAAA3E,WAAW,iBADrBuE,WAAA,CAiCCk/B,wBAAA,EAAA;;QA/BIhoB,WAAW,EAAE7W,QAAA,CAAA66B,iBAAiB;QAC9BpsB,OAAO,EAAErO,SAAS,CAACqO,OAAO;QAC1BpU,YAAY,EAAE0F,IAAA,CAAA1F,YAAY;QAC1BC,WAAW,EAAEyF,IAAA,CAAAzF,WAAW;QACxBwpB,iBAAiB,EAAE9jB,QAAA,CAAA8jB,iBAAiB;QACpC7pB,kBAAkB,EAAE8F,IAAA,CAAA9F,kBAAkB;QACtCF,gBAAgB,EAAEgG,IAAA,CAAAhG,gBAAgB;QAClCwoB,eAAe,EAAEviB,QAAA,CAAAuiB,eAAe;QAChC7T,KAAK,EAAE1O,QAAA,CAAA0O,KAAK;QACZ5V,QAAQ,EAAEiH,IAAA,CAAAjH,QAAQ;QAClBL,SAAS,EAAEwF,KAAA,CAAA4pB,WAAW;QACtBnvB,SAAS,EAAEuF,KAAA,CAAA6pB,WAAW;QACtBjvB,aAAa,EAAEoF,KAAA,CAAA+pB,eAAe;QAC9BhvB,OAAO,EAAEiF,KAAA,CAAAsqB,SAAS;QAClB5O,YAAY,EAAE5Z,IAAA,CAAA/G,OAAO;QACrBC,aAAa,EAAE8G,IAAA,CAAA9G,aAAa;QAC5B4C,iBAAiB,EAAEmE,QAAA,CAAA07B,uBAAuB;QAC1C9/B,gBAAgB,EAAEmE,IAAA,CAAAnE,gBAAgB;QAClClE,KAAK,EAAEuG,KAAA,CAAA0pB,OAAO;AACdb,QAAAA,aAAY,EAAArZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA0qB,mBAAmB,CAAChd,MAAM,CAAA;AAAA,SAAA,CAAA;AACxCqZ,QAAAA,iBAAgB,EAAAtZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAu0B,uBAAuB,CAAC7mB,MAAM,CAAA;AAAA,SAAA,CAAA;QAChD8V,cAAa,EAAExjB,QAAA,CAAAwjB,cAAc;QAC7BC,aAAY,EAAEzjB,QAAA,CAAAyjB,aAAa;AAC3BuD,QAAAA,iBAAgB,EAAAvZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAy0B,uBAAuB,CAAC/mB,MAAM,CAAA;AAAA,SAAA,CAAA;AAChDuZ,QAAAA,gBAAe,EAAAxZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAg1B,sBAAsB,CAACtnB,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9CwZ,QAAAA,iBAAgB,EAAAzZ,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAy1B,uBAAuB,CAAC/nB,MAAM,CAAA;AAAA,SAAA,CAAA;AAChDyZ,QAAAA,YAAW,EAAA1Z,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA01B,kBAAkB,CAAChoB,MAAM,CAAA;AAAA,SAAA,CAAA;AACtC0Z,QAAAA,mBAAkB,EAAA3Z,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA8xB,mBAAmB,CAACpkB,MAAM,CAAA;AAAA,SAAA,CAAA;AAC9CmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA2wB,sBAAsB,CAACjjB,MAAM,CAAA;AAAA,SAAA,CAAA;QAC9CzN,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;QAClBvB,EAAE,EAAEqB,IAAA,CAAArB;mZAGCqB,IAAA,CAAA7E,WAAW,iBADrByE,WAAA,CAwDCm/B,sBAAA,EAAA;;AAtDGhpB,QAAAA,GAAG,EAAC,eAAc;QACjB5e,KAAK,EAAE6I,IAAA,CAAA7E,WAAW;AAClB8I,QAAAA,SAAS,EAAE,IAAI;QACfyK,OAAO,EAAErO,SAAS,CAACqO,OAAO;QAC1B/W,KAAK,EAAEuG,KAAA,CAAA0pB,OAAO;QACdtwB,OAAO,EAAE0I,IAAA,CAAA1I,OAAO;QAChB+B,SAAS,EAAE2G,IAAA,CAAA3G,SAAS;QACpBuV,aAAa,EAAE1Q,KAAA,CAAAkqB,eAAe;QAC9B9uB,aAAa,EAAE0G,IAAA,CAAA1G,aAAa;QAC5BM,QAAQ,EAAEoG,IAAA,CAAApG,QAAQ;QAClBH,WAAW,EAAEuG,IAAA,CAAAvG,WAAW;QACxBC,oBAAoB,EAAEsG,IAAA,CAAAtG,oBAAoB;QAC1CY,YAAY,EAAE0F,IAAA,CAAA1F,YAAY;QAC1BC,WAAW,EAAEyF,IAAA,CAAAzF,WAAW;QACxBC,mBAAmB,EAAEwF,IAAA,CAAAxF,mBAAmB;QACxCM,QAAQ,EAAEkF,IAAA,CAAAlF,QAAQ;QAClBC,QAAQ,EAAEiF,IAAA,CAAAjF,QAAQ;QAClBH,QAAQ,EAAEoF,IAAA,CAAApF,QAAQ;QAClBrB,kBAAkB,EAAEyG,IAAA,CAAAzG,kBAAkB;QACtCyB,UAAU,EAAEgF,IAAA,CAAAhF,UAAU;QACtBZ,eAAe,EAAE4F,IAAA,CAAA5F,eAAe;QAChCC,gBAAgB,EAAE2F,IAAA,CAAA3F,gBAAgB;QAClCF,YAAY,EAAE6F,IAAA,CAAA7F,YAAY;QAC1BM,iBAAiB,EAAEuF,IAAA,CAAAvF,iBAAiB;QACpCI,WAAW,EAAEmF,IAAA,CAAAnF,WAAW;QACxBiU,cAAc,EAAE5Q,KAAA,CAAAoqB,gBAAgB;QAChCvZ,SAAS,EAAE/O,IAAA,CAAA68B,MAAM;QACjBlgC,eAAe,EAAEsD,QAAA,CAAA27B,kBAAkB;AACnC5sB,QAAAA,yBAAyB,EAAE,IAAI;QAC/BmH,gBAAe,EAAElW,QAAA,CAAAw3B,cAAc;AAC/BzmB,QAAAA,UAAS,EAAAtD,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA+Q,UAAU,CAACrD,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5ByI,QAAAA,aAAY,EAAA1I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAgR,aAAa,CAACtD,MAAM,CAAA;AAAA,SAAA,CAAA;AAClC0I,QAAAA,eAAc,EAAA3I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAiR,eAAe,CAACvD,MAAM,CAAA;AAAA,SAAA,CAAA;QACtC2I,aAAY,EAAErW,QAAA,CAAAkR,aAAa;QAC3BoF,YAAW,EAAEtW,QAAA,CAAAmR,YAAY;QACzBoF,cAAa,EAAEvW,QAAA,CAAAoR,cAAc;AAC7BoF,QAAAA,cAAa,EAAA/I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAqR,cAAc,CAAC3D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC+I,QAAAA,aAAY,EAAAhJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAsR,aAAa,CAAC5D,MAAM,CAAA;AAAA,SAAA,CAAA;AAClCgJ,QAAAA,cAAa,EAAAjJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAuR,cAAc,CAAC7D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpCiJ,QAAAA,YAAW,EAAAlJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAwR,YAAY,CAAC9D,MAAM,CAAA;AAAA,SAAA,CAAA;AAChC+D,QAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAyR,SAAS,CAAC/D,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1BgE,QAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAoG,SAAS,CAACsH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BkE,QAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAqG,kBAAkB,CAACqH,MAAM,CAAA;AAAA,SAAA,CAAA;AACvCmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAsG,qBAAqB,CAACoH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CoE,QAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA8R,cAAc,CAACpE,MAAM,CAAA;AAAA,SAAA,CAAA;AACrCqE,QAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA+R,kBAAkB,CAACrE,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CsE,QAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAgS,gBAAgB,CAACtE,MAAM,CAAA;AAAA,SAAA,CAAA;AACzC/D,QAAAA,aAAa,EAAA8D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA2J,aAAa,CAAC+D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC9D,QAAAA,aAAa,EAAA6D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA4J,aAAa,CAAC8D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC7D,QAAAA,eAAe,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA6J,eAAe,CAAC6D,MAAM,CAAA;AAAA,SAAA,CAAA;QACvCrJ,WAAW,EAAEpG,KAAA,CAAAqqB,aAAa;QAC1BrW,mBAAmB,EAAEjS,QAAA,CAAAiS,mBAAmB;QACxChS,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;QAClBvB,EAAE,EAAEqB,IAAA,CAAArB;ykBAET0iB,WAAA,CAyDC0d,sBAAA,EAAA;AAxDGhpB,QAAAA,GAAG,EAAC,SAAQ;QACX5e,KAAK,EAAE8I,QAAA,CAAAmvB,YAAY,CAAC/uB,SAAS,CAAC5I,IAAI,CAAA;AAClC,QAAA,OAAA,EAAK+I,cAAA,CAAEH,SAAS,CAAC2+B,UAAU,CAAA;QAC3BtwB,OAAO,EAAErO,SAAS,CAACqO,OAAO;QAC1BC,KAAK,EAAE1O,QAAA,CAAA0O,KAAK;QACZhX,KAAK,EAAEuG,KAAA,CAAA0pB,OAAO;QACdtwB,OAAO,EAAE0I,IAAA,CAAA1I,OAAO;QAChB+B,SAAS,EAAE2G,IAAA,CAAA3G,SAAS;QACpBuV,aAAa,EAAE1Q,KAAA,CAAAkqB,eAAe;QAC9B9uB,aAAa,EAAE0G,IAAA,CAAA1G,aAAa;QAC5BM,QAAQ,EAAEoG,IAAA,CAAApG,QAAQ;QAClBH,WAAW,EAAEuG,IAAA,CAAAvG,WAAW;QACxBC,oBAAoB,EAAEsG,IAAA,CAAAtG,oBAAoB;QAC1CY,YAAY,EAAE0F,IAAA,CAAA1F,YAAY;QAC1BC,WAAW,EAAEyF,IAAA,CAAAzF,WAAW;QACxBC,mBAAmB,EAAEwF,IAAA,CAAAxF,mBAAmB;QACxCM,QAAQ,EAAEkF,IAAA,CAAAlF,QAAQ;QAClBC,QAAQ,EAAEiF,IAAA,CAAAjF,QAAQ;QAClBH,QAAQ,EAAEoF,IAAA,CAAApF,QAAQ;QAClBrB,kBAAkB,EAAEyG,IAAA,CAAAzG,kBAAkB;QACtCyB,UAAU,EAAEgF,IAAA,CAAAhF,UAAU;QACtBZ,eAAe,EAAE4F,IAAA,CAAA5F,eAAe;QAChCC,gBAAgB,EAAE2F,IAAA,CAAA3F,gBAAgB;QAClCF,YAAY,EAAE6F,IAAA,CAAA7F,YAAY;QAC1BM,iBAAiB,EAAEuF,IAAA,CAAAvF,iBAAiB;QACpCI,WAAW,EAAEmF,IAAA,CAAAnF,WAAW;QACxBiU,cAAc,EAAE5Q,KAAA,CAAAoqB,gBAAgB;QAChCvZ,SAAS,EAAE/O,IAAA,CAAA68B,MAAM;QACjBlgC,eAAe,EAAEsD,QAAA,CAAA27B,kBAAkB;AACnCr3B,QAAAA,2BAA2B,EAAElE,SAAS;QACtC2O,yBAAyB,EAAE/O,QAAA,CAAA0zB,uBAAuB;QAClDxd,gBAAe,EAAElW,QAAA,CAAAw3B,cAAc;AAC/BzmB,QAAAA,UAAS,EAAAtD,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA+Q,UAAU,CAACrD,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5ByI,QAAAA,aAAY,EAAA1I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAgR,aAAa,CAACtD,MAAM,CAAA;AAAA,SAAA,CAAA;AAClC0I,QAAAA,eAAc,EAAA3I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAiR,eAAe,CAACvD,MAAM,CAAA;AAAA,SAAA,CAAA;QACtC2I,aAAY,EAAErW,QAAA,CAAAkR,aAAa;AAC3BoF,QAAAA,YAAW,EAAA,SAAXA,YAAWA,CAAA5I,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAmR,YAAY,CAACzD,MAAM,EAAEtN,SAAS,CAAA;SAAA;QAC3CmW,cAAa,EAAEvW,QAAA,CAAAoR,cAAc;AAC7BoF,QAAAA,cAAa,EAAA/I,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAqR,cAAc,CAAC3D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpC+I,QAAAA,aAAY,EAAAhJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAsR,aAAa,CAAC5D,MAAM,CAAA;AAAA,SAAA,CAAA;AAClCgJ,QAAAA,cAAa,EAAAjJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAuR,cAAc,CAAC7D,MAAM,CAAA;AAAA,SAAA,CAAA;AACpCiJ,QAAAA,YAAW,EAAAlJ,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAwR,YAAY,CAAC9D,MAAM,CAAA;AAAA,SAAA,CAAA;AAChC+D,QAAAA,SAAQ,EAAAhE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAyR,SAAS,CAAC/D,MAAM,CAAA;AAAA,SAAA,CAAA;AAC1BgE,QAAAA,WAAU,EAAAjE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAoG,SAAS,CAACsH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC5BkE,QAAAA,aAAY,EAAAnE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAqG,kBAAkB,CAACqH,MAAM,CAAA;AAAA,SAAA,CAAA;AACvCmE,QAAAA,gBAAe,EAAApE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAsG,qBAAqB,CAACoH,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CoE,QAAAA,cAAc,EAAArE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA8R,cAAc,CAACpE,MAAM,CAAA;AAAA,SAAA,CAAA;AACrCqE,QAAAA,kBAAkB,EAAAtE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA+R,kBAAkB,CAACrE,MAAM,CAAA;AAAA,SAAA,CAAA;AAC7CsE,QAAAA,gBAAgB,EAAAvE,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAAgS,gBAAgB,CAACtE,MAAM,CAAA;AAAA,SAAA,CAAA;AACzC/D,QAAAA,aAAa,EAAA8D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA2J,aAAa,CAAC+D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC9D,QAAAA,aAAa,EAAA6D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA4J,aAAa,CAAC8D,MAAM,CAAA;AAAA,SAAA,CAAA;AACnC7D,QAAAA,eAAe,EAAA4D,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,UAAA,OAAE1N,QAAA,CAAA6J,eAAe,CAAC6D,MAAM,CAAA;AAAA,SAAA,CAAA;QACvCrJ,WAAW,EAAEpG,KAAA,CAAAqqB,aAAa;QAC1BrW,mBAAmB,EAAEjS,QAAA,CAAAiS,mBAAmB;QACxChS,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;QAClBvB,EAAE,EAAEqB,IAAA,CAAArB;unBAGCsB,QAAA,CAAAs6B,cAAc,CAACl6B,SAAS,CAACw+B,WAAW,CAAA,IAD9Cv+B,SAAA,EAAA,EAAA0M,kBAAA,CAKQ,SALRtM,UAAA,CAKQ;;AAHH,QAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,uBAAA,CAAA;AACThO,QAAAA,KAAK,EAAA;AAAA21B,UAAAA,MAAA,UAAAl0B,MAAA,CAAoB6B,SAAS,CAACw+B,WAAW,CAACnM,MAAM,EAAA,KAAA,CAAA,CAAAl0B,MAAA,CAAM6B,SAAS,CAAC5I,IAAI,CAAC2K,MAAK,GAAI/B,SAAS,CAAC4+B,QAAQ,EAAA,KAAA;AAAA;SAC9Fj/B,IAAA,CAAAzB,GAAG,CAAA,uBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAEf8iB,WAAA,CAAuF6d,wBAAA,EAAA;QAAvEpoB,WAAW,EAAE7W,QAAA,CAAAg7B,iBAAiB;QAAGvsB,OAAO,EAAErO,SAAS,CAACqO,OAAO;QAAG/P,EAAE,EAAEqB,IAAA,CAAArB;;;;6FAMxFsB,QAAA,CAAAu7B,eAAe,iBADzB57B,WAAA,CA0Daq9B,sBAAA,EAAA;;IAxDRxlC,IAAI,EAAEyG,KAAA,CAAA2pB,MAAM;IACZlwB,KAAK,EAAEuG,KAAA,CAAA0pB,OAAO;IACdhwB,YAAY,EAAEqI,QAAA,CAAAq7B,kBAAkB;IAChCnjC,YAAY,EAAE6H,IAAA,CAAA7H,YAAY;IAC1B+kC,QAAQ,EAAEl9B,IAAA,CAAA/H,iBAAiB;IAC3BG,kBAAkB,EAAE4H,IAAA,CAAA5H,kBAAkB;IACtCC,yBAAyB,EAAE2H,IAAA,CAAA3H,yBAAyB;AACpD,IAAA,OAAA,iBAAO2H,IAAA,CAAA+K,EAAE,CAAA,aAAA,EAAA;AAAAmS,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AACTkN,IAAAA,MAAI,EAAA1c,MAAA,CAAA,EAAA,CAAA,KAAAA,MAAA,CAAA,EAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAE1N,QAAA,CAAAmqB,MAAM,CAACzc,MAAM,CAAA;AAAA,KAAA,CAAA;IACnBwvB,UAAU,EAAEn9B,IAAA,CAAAhI,mBAAmB;IAC/BkI,QAAQ,EAAEF,IAAA,CAAAE,QAAQ;AAClB,IAAA,eAAa,EAAE,IAAI;AACnBvB,IAAAA,EAAE,EAAEqB,IAAA,CAAAzB,GAAG,CAAA,aAAA;;;MAEQyB,IAAA,CAAA68B,MAAM,CAACO,kBAAkB;UAAG,WAAS;AACjDC,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADmDC,SAAS,EAAA;MAAA,OAAA,CAC5Du8B,UAAA,CAeO58B,IAAA,CAAA68B,MAAA,EAAA,oBAAA,EAAA;QAbFllC,KAAK,EAAE0I,SAAS,CAAC1I,KAAK;QACtB2lC,IAAI,EAAEj9B,SAAS,CAACi9B,IAAI;QACpB7lC,IAAI,EAAE4I,SAAS,CAAC5I,IAAI;QACpBgzB,IAAI,EAAEpqB,SAAS,CAACoqB,IAAI;QACpBD,SAAS,EAAEnqB,SAAS,CAACmqB,SAAS;QAC9B+S,SAAS,EAAEl9B,SAAS,CAACk9B,SAAS;QAC9B3lC,YAAY,EAAEyI,SAAS,CAACzI,YAAY;QACpC4lC,iBAAiB,EAAEn9B,SAAS,CAACm9B,iBAAiB;QAC9CC,gBAAgB,EAAEp9B,SAAS,CAACo9B,gBAAgB;QAC5CC,gBAAgB,EAAEr9B,SAAS,CAACq9B,gBAAgB;QAC5CC,gBAAgB,EAAEt9B,SAAS,CAACs9B,gBAAgB;QAC5CC,iBAAiB,EAAEv9B,SAAS,CAACu9B,iBAAiB;QAC9CC,kBAAkB,EAAEx9B,SAAS,CAACw9B;;;;iBAGvB79B,IAAA,CAAA68B,MAAM,CAACiB,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlClB,UAAA,CAAkC58B,IAAA,CAAA68B,MAAA,EAAA,gBAAA,CAAA;;;iBAEtB78B,IAAA,CAAA68B,MAAM,CAACkB,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCnB,UAAA,CAAgC58B,IAAA,CAAA68B,MAAA,EAAA,cAAA,CAAA;;;iBAEpB78B,IAAA,CAAA68B,MAAM,CAACmB,0BAA0B;UAAG,mBAAiB;AACjEX,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5Eu8B,UAAA,CAAuE58B,IAAA,CAAA68B,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAEnDL,IAAA,CAAA68B,MAAM,CAACoB,yBAAyB;UAAG,kBAAgB;AAC/DZ,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACqB,yBAAyB;UAAG,kBAAgB;AAC/Db,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACsB,yBAAyB;UAAG,kBAAgB;AAC/Dd,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1Eu8B,UAAA,CAAsE58B,IAAA,CAAA68B,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAElDL,IAAA,CAAA68B,MAAM,CAACuB,+BAA+B;UAAG,wBAAsB;AAC3Ef,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFu8B,UAAA,CAA4E58B,IAAA,CAAA68B,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;iBAExDL,IAAA,CAAA68B,MAAM,CAACwB,gCAAgC;UAAG,yBAAuB;AAC7EhB,IAAAA,EAAA,EAAAj9B,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFu8B,UAAA,CAA6E58B,IAAA,CAAA68B,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAA,EAAKr8B,cAAA,CAAEH,SAAS,CAAA,OAAA,CAAM;;;;qNAGlEL,IAAA,CAAA68B,MAAM,CAAChmB,MAAM,IAAxBvW,SAAA,EAAA,EAAA0M,kBAAA,CAEK,OAFLtM,UAAA,CAEK;;AAFsB,IAAA,OAAA,EAAOV,IAAA,CAAA+K,EAAE,CAAA,QAAA;KAAoB/K,IAAA,CAAAzB,GAAG,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDq+B,UAAA,CAA0B58B,IAAA,CAAA68B,MAAA,EAAA,QAAA,CAAA,wCAE9B9oB,kBAAA,CAA8H,OAA9HrT,UAAA,CAA8H;AAAzHqV,IAAAA,GAAG,EAAC,cAAa;AAAG,IAAA,OAAA,EAAO/V,IAAA,CAAA+K,EAAE,CAAA,uBAAA,CAAA;AAA2BhO,IAAAA,KAAoB,EAApB;AAAA,MAAA,SAAA,EAAA;AAAA;KAA8BiD,IAAA,CAAAzB,GAAG,CAAA,uBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAClFyB,IAAA,CAAA9F,kBAAkB,IAA9BoG,SAAA,EAAA,EAAA0M,kBAAA,CAEM,QAFNtM,UAAA,CAEM;;AAF0BqV,IAAAA,GAAG,EAAC,oBAAmB;AAAG,IAAA,OAAA,EAAO/V,IAAA,CAAA+K,EAAE,CAAA,uBAAA,CAAA;AAA2BhO,IAAAA,KAAwC,EAAxC;AAAA,MAAA,UAAA,EAAA,UAAA;AAAA,MAAA,SAAA,EAAA;AAAA;KAAkDiD,IAAA,CAAAzB,GAAG,CAAA,uBAAA,CAAA,CAAA,EAAA,EAC/I+B,SAAA,EAAA,EAAAV,WAAA,CAAuGW,wBAAvFP,IAAA,CAAA68B,MAAM,CAACsC,yBAAwB,IAAKn/B,IAAA,CAAA68B,MAAM,CAACuC,sBAAqB,IAAA,eAAA,CAAA,CAAA,yCAExEp/B,IAAA,CAAA9F,kBAAkB,IAA9BoG,SAAA,EAAA,EAAA0M,kBAAA,CAEM,QAFNtM,UAAA,CAEM;;AAF0BqV,IAAAA,GAAG,EAAC,sBAAqB;AAAG,IAAA,OAAA,EAAO/V,IAAA,CAAA+K,EAAE,CAAA,yBAAA,CAAA;AAA6BhO,IAAAA,KAAwC,EAAxC;AAAA,MAAA,UAAA,EAAA,UAAA;AAAA,MAAA,SAAA,EAAA;AAAA;KAAkDiD,IAAA,CAAAzB,GAAG,CAAA,yBAAA,CAAA,CAAA,EAAA,EACnJ+B,SAAA,EAAA,EAAAV,WAAA,CAAyGW,wBAAzFP,IAAA,CAAA68B,MAAM,CAACwC,2BAA0B,IAAKr/B,IAAA,CAAA68B,MAAM,CAACyC,wBAAuB,IAAA,aAAA,CAAA,CAAA;;;;;;;"}
|