@pdg/react-table 1.0.77 → 1.0.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/@types/index.d.ts +1 -1
  2. package/dist/@types/types.d.ts +13 -13
  3. package/dist/@util/companyNo.d.ts +6 -6
  4. package/dist/@util/compare.d.ts +4 -4
  5. package/dist/@util/index.d.ts +9 -9
  6. package/dist/@util/number.d.ts +1 -1
  7. package/dist/@util/personalNo.d.ts +6 -6
  8. package/dist/@util/table.d.ts +8 -8
  9. package/dist/@util/tel.d.ts +1 -1
  10. package/dist/InfoTable/InfoTable.d.ts +7 -7
  11. package/dist/InfoTable/InfoTable.style.d.ts +14 -14
  12. package/dist/InfoTable/InfoTable.types.d.ts +72 -72
  13. package/dist/InfoTable/index.d.ts +4 -4
  14. package/dist/SearchTable/SearchTable.d.ts +8 -8
  15. package/dist/SearchTable/SearchTable.types.d.ts +34 -34
  16. package/dist/SearchTable/index.d.ts +4 -4
  17. package/dist/Table/Table.d.ts +8 -8
  18. package/dist/Table/Table.styles.d.ts +5 -5
  19. package/dist/Table/Table.types.d.ts +115 -115
  20. package/dist/Table/index.d.ts +4 -4
  21. package/dist/TableBodyCell/TableBodyCell.d.ts +4 -4
  22. package/dist/TableBodyCell/TableBodyCell.types.d.ts +18 -18
  23. package/dist/TableBodyCell/index.d.ts +4 -4
  24. package/dist/TableBodyRow/TableBodyRow.d.ts +7 -7
  25. package/dist/TableBodyRow/TableBodyRow.types.d.ts +19 -19
  26. package/dist/TableBodyRow/index.d.ts +4 -4
  27. package/dist/TableButton/TableButton.d.ts +4 -4
  28. package/dist/TableButton/TableButton.types.d.ts +7 -7
  29. package/dist/TableButton/index.d.ts +4 -4
  30. package/dist/TableCommonCell/TableCommonCell.d.ts +4 -4
  31. package/dist/TableCommonCell/TableCommonCell.types.d.ts +11 -11
  32. package/dist/TableCommonCell/index.d.ts +4 -4
  33. package/dist/TableContext/TableContext.d.ts +4 -4
  34. package/dist/TableContext/TableContext.types.d.ts +14 -14
  35. package/dist/TableContext/index.d.ts +5 -5
  36. package/dist/TableContext/useTableState.d.ts +2 -2
  37. package/dist/TableContextProvider/TableContextProvider.d.ts +4 -4
  38. package/dist/TableContextProvider/TableContextProvider.types.d.ts +6 -6
  39. package/dist/TableContextProvider/index.d.ts +4 -4
  40. package/dist/TableFooterCell/TableFooterCell.d.ts +4 -4
  41. package/dist/TableFooterCell/TableFooterCell.types.d.ts +5 -5
  42. package/dist/TableFooterCell/index.d.ts +4 -4
  43. package/dist/TableHeadCell/TableHeadCell.d.ts +4 -4
  44. package/dist/TableHeadCell/TableHeadCell.types.d.ts +11 -11
  45. package/dist/TableHeadCell/index.d.ts +4 -4
  46. package/dist/TableIcon/TableIcon.d.ts +4 -4
  47. package/dist/TableIcon/TableIcon.types.d.ts +5 -5
  48. package/dist/TableIcon/index.d.ts +4 -4
  49. package/dist/TableMenuButton/TableMenuButton.d.ts +4 -4
  50. package/dist/TableMenuButton/TableMenuButton.types.d.ts +13 -13
  51. package/dist/TableMenuButton/index.d.ts +4 -4
  52. package/dist/TablePagination/TablePagination.d.ts +4 -4
  53. package/dist/TablePagination/TablePagination.types.d.ts +13 -13
  54. package/dist/TablePagination/index.d.ts +4 -4
  55. package/dist/TableTopHead/TableTopHead.d.ts +4 -4
  56. package/dist/TableTopHead/TableTopHead.style.d.ts +4 -4
  57. package/dist/TableTopHead/TableTopHead.types.d.ts +18 -18
  58. package/dist/TableTopHead/index.d.ts +4 -4
  59. package/dist/index.d.ts +7 -7
  60. package/dist/index.esm.js +2003 -2003
  61. package/dist/index.js +2003 -2003
  62. package/package.json +5 -5
  63. package/dist/index.esm.js.map +0 -1
  64. package/dist/index.js.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/Table/Table.types.ts","../src/Table/Table.styles.ts","../src/TableBodyRow/TableBodyRow.types.ts","../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../src/@util/compare.ts","../src/@util/number.ts","../src/@util/table.ts","../src/@util/tel.ts","../src/@util/companyNo.ts","../src/@util/personalNo.ts","../src/TableContext/TableContext.types.ts","../src/TableContext/TableContext.ts","../src/TableContext/useTableState.ts","../src/TableCommonCell/TableCommonCell.tsx","../src/TableBodyCell/TableBodyCell.tsx","../src/TableBodyRow/TableBodyRow.tsx","../src/TableFooterCell/TableFooterCell.tsx","../src/TablePagination/TablePagination.tsx","../src/TableContextProvider/TableContextProvider.tsx","../src/TableTopHead/TableTopHead.types.ts","../src/TableTopHead/TableTopHead.style.ts","../src/TableHeadCell/TableHeadCell.tsx","../src/TableTopHead/TableTopHead.tsx","../src/Table/Table.tsx","../src/SearchTable/SearchTable.types.ts","../src/SearchTable/SearchTable.tsx","../src/TableButton/TableButton.types.ts","../src/TableIcon/TableIcon.types.ts","../src/TableIcon/TableIcon.tsx","../src/TableButton/TableButton.tsx","../src/TableMenuButton/TableMenuButton.types.ts","../src/TableMenuButton/TableMenuButton.tsx","../src/InfoTable/InfoTable.types.ts","../src/InfoTable/InfoTable.style.ts","../src/InfoTable/InfoTable.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { TableCellProps, TooltipProps } from '@mui/material';\nimport { TablePaginationProps } from '../TablePagination/TablePagination.types';\nimport { CommonSxProps } from '../@types';\nimport { TableTopHeadProps } from '../TableTopHead';\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface TableItem {\n [key: string]: any;\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface TableColumn<T = TableItem> {\n id?: string;\n type?:\n | 'text'\n | 'number'\n | 'tel'\n | 'date'\n | 'datetime'\n | 'date-hour'\n | 'date-minute'\n | 'company_no'\n | 'personal_no'\n | 'img'\n | 'button'\n | 'buttons'\n | 'check';\n label?: ReactNode;\n name?: keyof T;\n align?: TableCellProps['align'];\n width?: string | number;\n minWidth?: string | number;\n ellipsis?: boolean;\n dateFormat?: string;\n dateTwoLine?: boolean;\n hideAllCheck?: boolean;\n numberPrefix?: string;\n numberSuffix?: string;\n tooltipProps?: Omit<TooltipProps, 'children' | 'title'>;\n display?: { xs?: boolean; sm?: boolean; md?: boolean; lg?: boolean; xl?: boolean };\n paddingLeft?: number;\n paddingRight?: number;\n head?: {\n className?: CommonSxProps['className'];\n style?: CommonSxProps['style'];\n sx?: CommonSxProps['sx'];\n onGetClassName?(): CommonSxProps['className'];\n onGetStyle?(): CommonSxProps['style'];\n onGetSx?(): CommonSxProps['sx'];\n onRender?(): ReactNode;\n };\n footer?: {\n value?: ReactNode;\n className?: CommonSxProps['className'];\n style?: CommonSxProps['style'];\n sx?: CommonSxProps['sx'];\n onGetClassName?(): CommonSxProps['className'];\n onGetStyle?(): CommonSxProps['style'];\n onGetSx?(): CommonSxProps['sx'];\n onRender?(): ReactNode;\n };\n className?: CommonSxProps['className'];\n style?: CommonSxProps['style'];\n sx?: CommonSxProps['sx'];\n onGetClassName?(item: T, index: number): CommonSxProps['className'];\n onGetStyle?(item: T, index: number): CommonSxProps['style'];\n onGetSx?(item: T, index: number): CommonSxProps['sx'];\n onHide?(item: T, index: number): boolean;\n onGetTooltip?(item: T, index: number): ReactNode;\n onRender?(item: T, index: number): ReactNode;\n onClick?(item: T, index: number): void;\n onInitChecked?(item: T): boolean;\n onCheckDisabled?(item: T): boolean;\n onCheckChange?(item: T, checked: boolean): void;\n onCheckDisabledChange?(item: T, checkDisabled: boolean): void;\n}\n\nexport type TableColumns<T = TableItem> = (TableColumn<T> | false | undefined | null)[];\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface TableProps<T = TableItem> extends CommonSxProps {\n caption?: ReactNode;\n topHeadRows?: TableTopHeadProps['rows'];\n columns?: TableColumns<T>;\n defaultAlign?: TableCellProps['align'];\n defaultEllipsis?: boolean;\n stickyHeader?: boolean;\n items?: T[];\n paging?: TablePaginationProps['paging'];\n pagingAlign?: TablePaginationProps['align'];\n height?: string | number;\n maxHeight?: string | number;\n minHeight?: string | number;\n fullHeight?: boolean;\n showOddColor?: boolean;\n showEvenColor?: boolean;\n cellPadding?: string | number;\n footer?: boolean;\n noData?: ReactNode;\n pagination?: {\n className?: CommonSxProps['className'];\n style?: CommonSxProps['style'];\n sx?: CommonSxProps['sx'];\n };\n sortable?: boolean;\n onClick?(item: T, index: number): void;\n onGetBodyRowClassName?(item: T, index: number): CommonSxProps['className'] | undefined;\n onGetBodyRowStyle?(item: T, index: number): CommonSxProps['style'] | undefined;\n onGetBodyRowSx?(item: T, index: number): CommonSxProps['sx'] | undefined;\n onGetBodyColumnClassName?(column: TableColumn<T>, item: T, index: number): CommonSxProps['className'] | undefined;\n onGetBodyColumnStyle?(column: TableColumn<T>, item: T, index: number): CommonSxProps['style'] | undefined;\n onGetBodyColumnSx?(column: TableColumn<T>, item: T, index: number): CommonSxProps['sx'] | undefined;\n onPageChange?(page: number): void;\n onSortChange?(items: T[]): void;\n onCheckChange?(columnId: string, items: T[]): void;\n}\n\nexport const TableDefaultProps: Pick<TableProps, 'defaultAlign' | 'pagingAlign' | 'cellPadding'> = {\n defaultAlign: 'left',\n pagingAlign: 'center',\n cellPadding: 13,\n};\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface TableCommands<T = TableItem> {\n getColumns(): TableProps<T>['columns'];\n setColumns(columns: TableProps<T>['columns']): void;\n getItems(): TableProps<T>['items'];\n setItems(items: TableProps<T>['items']): void;\n getPaging(): TableProps<T>['paging'];\n setItemsPaging(items: TableProps<T>['items'], paging: TableProps<T>['paging']): void;\n resetSort(): void;\n getCheckedItems(columnId: string): T[];\n scrollToTop(): void;\n}\n","import { styled, TableRow, lighten } from '@mui/material';\n\nexport const StyledBodyRow = styled(TableRow)(({ theme }) => ({\n '&.odd-color:nth-of-type(odd):not(:hover)': {\n backgroundColor: lighten(theme.palette.action.hover, 0.4),\n },\n '&.even-color:nth-of-type(even):not(:hover)': {\n backgroundColor: lighten(theme.palette.action.hover, 0.4),\n },\n}));\n\nexport const StyledNoDataDiv = styled('div')`\n text-align: center;\n padding: 30px 0;\n font-weight: 500;\n font-size: 13px;\n color: #94a0b2;\n opacity: 0.8;\n\n .material-icons {\n font-size: 40px;\n margin-bottom: 5px;\n }\n`;\n","import { TableCellProps, TableRowProps } from '@mui/material';\nimport { TableColumn, TableItem, TableProps } from '../Table';\nimport { TableBodyCellProps } from '../TableBodyCell';\nimport { CommonSxProps } from '../@types';\n\nexport interface TableBodyRowProps extends Omit<TableRowProps, 'id' | 'onClick'> {\n id: string | number;\n index: number;\n defaultAlign?: TableCellProps['align'];\n defaultEllipsis?: boolean;\n sortable?: boolean;\n columns: TableColumn[];\n item: TableItem;\n onClick: TableProps['onClick'];\n onCheckChange: TableBodyCellProps['onCheckChange'];\n onGetColumnClassName?(column: TableColumn, item: TableItem, index: number): CommonSxProps['className'] | undefined;\n onGetColumnStyle?(column: TableColumn, item: TableItem, index: number): CommonSxProps['style'] | undefined;\n onGetColumnSx?(column: TableColumn, item: TableItem, index: number): CommonSxProps['sx'] | undefined;\n}\n\nexport const TableBodyRowDefaultProps = {};\n","import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","const empty = function (v: any) {\n let result = false;\n if (v == null) {\n result = true;\n } else if (typeof v === 'string') {\n result = v === '';\n } else if (typeof v === 'object') {\n if (Array.isArray(v)) {\n result = v.length === 0;\n } else if (!(v instanceof Date)) {\n result = Object.entries(v).length === 0;\n }\n }\n return result;\n};\n\nconst notEmpty = function (v: any) {\n return !empty(v);\n};\n\nconst equal = (v1: any, v2: any): boolean => {\n if (v1 === v2) return true;\n if (typeof v1 !== typeof v2) return false;\n if (v1 == null || v2 == null) return false;\n if (Array.isArray(v1) && Array.isArray(v2)) {\n if (v1.length !== v2.length) return false;\n for (let i = 0; i < v1.length; i += 1) {\n if (v1[i] !== v2[i]) return false;\n }\n } else {\n return v1 === v2;\n }\n return true;\n};\n\nexport { empty, notEmpty, equal };\n","export function numberWithThousandSeparator(x: string | number) {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n","import { TableColumn } from '../Table/Table.types';\nimport { CommonSxProps } from '../@types';\nimport { TypographyProps } from '@mui/material';\n\nexport function getTableColumnAlign(column: TableColumn, defaultAlign: TableColumn['align']): TableColumn['align'] {\n switch (column.type) {\n case 'number':\n return column.align ? column.align : 'right';\n default:\n return column.align || defaultAlign;\n }\n}\n\nexport function combineSx(...sx: (boolean | CommonSxProps['sx'])[]): CommonSxProps['sx'] {\n const finalSx: CommonSxProps['sx'] = [];\n if (Array.isArray(finalSx)) {\n sx.forEach((v) => v && finalSx.push(...(Array.isArray(v) ? v : [v])));\n }\n return finalSx;\n}\n\nexport function typographyColorToSxColor(color: TypographyProps['color']) {\n if (typeof color === 'string') {\n if (['primary', 'secondary', 'info', 'warning', 'error'].includes(color)) {\n return `${color}.main`;\n } else if (color === 'text') {\n return 'text.primary';\n } else {\n return color;\n }\n } else {\n return color;\n }\n}\n","export function getTelAutoDash(tel: string | null | undefined): string | null {\n if (tel == null) return null;\n\n const str = tel.replace(/[^0-9*]/g, '');\n const isLastDash = tel.substr(tel.length - 1, 1) === '-';\n\n if (str.substr(0, 1) !== '0' && !['15', '16', '18'].includes(str.substr(0, 2))) {\n return tel;\n }\n\n let tmp = '';\n let preLen;\n\n switch (str.substr(0, 2)) {\n case '02':\n preLen = 2;\n break;\n case '15':\n case '16':\n case '18':\n preLen = 4;\n break;\n default:\n preLen = 3;\n }\n\n if (['15', '16', '18'].includes(str.substr(0, 2))) {\n if (str.length <= preLen) {\n tmp = str;\n } else if (str.length <= preLen + 4) {\n tmp += str.substr(0, preLen);\n tmp += '-';\n tmp += str.substr(preLen);\n } else {\n tmp = str;\n }\n } else if (str.length <= preLen) {\n tmp = str;\n } else if (str.length <= preLen + 3) {\n tmp += str.substr(0, preLen);\n tmp += '-';\n tmp += str.substr(preLen);\n } else if (str.length <= preLen + 7) {\n tmp += str.substr(0, preLen);\n tmp += '-';\n tmp += str.substr(preLen, 3);\n tmp += '-';\n tmp += str.substr(preLen + 3);\n } else if (str.length <= preLen + 8) {\n tmp += str.substr(0, preLen);\n tmp += '-';\n tmp += str.substr(preLen, 4);\n tmp += '-';\n tmp += str.substr(preLen + 4);\n } else {\n tmp = str;\n }\n\n if (isLastDash) {\n if (str.length === preLen) {\n tmp += '-';\n }\n }\n\n return tmp;\n}\n","/********************************************************************************************************************\n * 사업자등록번호 하이픈 추가\n * @param companyNo 사업자등록번호\n * @returns 하이픈이 추가된 사업자등록번호\n * ******************************************************************************************************************/\nexport function companyNoAutoDash(companyNo: string): string {\n const str = companyNo.replace(/[^0-9*]/g, '');\n const values: string[] = [str.slice(0, 3)];\n if (str.length > 3) values.push(str.slice(3, 5));\n if (str.length > 5) values.push(str.slice(5));\n return values.join('-');\n}\n","/********************************************************************************************************************\n * 주민등록번호에 하이픈 추가하는 함수\n * @param personalNo 주민등록번호\n * @returns 하이픈 추가된 주민등록번호\n * ******************************************************************************************************************/\nexport function personalNoAutoDash(personalNo: string): string {\n const str = personalNo.replace(/[^0-9*]/g, '');\n const values: string[] = [str.slice(0, 6)];\n if (str.length > 6) values.push(str.slice(6));\n return values.join('-');\n}\n","import { TableColumn, TableItem } from '../Table';\nimport { TableBodyCellCommands } from '../TableBodyCell';\nimport { TableHeadCellCommands } from '../TableHeadCell';\n\nexport interface TableContextValue {\n menuOpen: boolean;\n openMenuId?: string;\n setMenuOpen(menuOpen: boolean, openMenuId?: string): void;\n setItemColumnChecked(item: TableItem, column: TableColumn, checked: boolean): void;\n setItemColumnCheckDisabled(item: TableItem, column: TableColumn, checkDisabled: boolean): void;\n setItemColumnCommands(item: TableItem, column: TableColumn, commands: TableBodyCellCommands): void;\n setHeadColumnChecked(column: TableColumn, checked: boolean): void;\n setHeadColumnCommands(column: TableColumn, commands: TableHeadCellCommands): void;\n}\n\nexport const TableContextDefaultValue: TableContextValue = {\n menuOpen: false,\n openMenuId: undefined,\n /* eslint-disable */\n setMenuOpen() {},\n setItemColumnChecked() {},\n setItemColumnCheckDisabled() {},\n setItemColumnCommands() {},\n setHeadColumnChecked() {},\n setHeadColumnCommands() {},\n /* eslint-enable */\n};\n","import { createContext } from 'react';\nimport { TableContextDefaultValue, TableContextValue } from './TableContext.types';\n\nconst TableContext = createContext<TableContextValue>(TableContextDefaultValue);\n\nexport default TableContext;\n","import TableContext from './TableContext';\nimport { TableContextValue } from './TableContext.types';\nimport { useContext } from 'react';\n\nexport default function useTableState(): TableContextValue {\n const value = useContext(TableContext);\n if (value === undefined) {\n throw new Error('useFormState should be used within TableContext.Provider');\n }\n return value;\n}\n","import React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { TableCell, styled } from '@mui/material';\nimport { TableCommonCellProps } from './TableCommonCell.types';\nimport { getTableColumnAlign } from '../@util';\nimport { CommonSxProps } from '../@types';\nimport useTableState from '../TableContext/useTableState';\n\nconst StyledTableCell = styled(TableCell)`\n &.ellipsis {\n position: relative;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst TableCommonCell: React.FC<TableCommonCellProps> = ({\n children,\n className: initClassName,\n style: initStyle,\n sx: initSx,\n type,\n column,\n defaultAlign,\n defaultEllipsis: initDefaultEllipsis,\n index,\n item,\n onClick,\n}) => {\n // Use ---------------------------------------------------------------------------------------------------------------\n\n const { menuOpen } = useTableState();\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const align = useMemo(() => getTableColumnAlign(column, defaultAlign), [column, defaultAlign]);\n\n const ellipsis = useMemo(\n () =>\n type !== 'head' &&\n (column.ellipsis ||\n (column.type !== 'img' &&\n column.type !== 'button' &&\n column.type !== 'buttons' &&\n (column.ellipsis == null ? !!initDefaultEllipsis : false))),\n [type, column, initDefaultEllipsis]\n );\n\n const className = useMemo(() => {\n let className: CommonSxProps['className'];\n let getClassName: CommonSxProps['className'];\n\n switch (type) {\n case 'head':\n className = column.head?.className;\n getClassName = column.head?.onGetClassName ? column.head?.onGetClassName() : undefined;\n break;\n case 'body':\n className = column.className;\n if (item != null && index != null) {\n getClassName = column.onGetClassName ? column.onGetClassName(item, index) : undefined;\n }\n break;\n case 'footer':\n className = column.footer?.className;\n getClassName = column.footer?.onGetClassName ? column.footer?.onGetClassName() : undefined;\n break;\n }\n\n if (className || getClassName) {\n return classNames(initClassName, className, getClassName);\n } else {\n return initClassName;\n }\n }, [column, index, initClassName, item, type]);\n\n const style = useMemo(() => {\n let style: CommonSxProps['style'];\n let getStyle: CommonSxProps['style'];\n\n switch (type) {\n case 'head':\n style = column.head?.style;\n getStyle = column.head?.onGetStyle ? column.head?.onGetStyle() : undefined;\n break;\n case 'body':\n style = column.style;\n if (item != null && index != null) {\n getStyle = column.onGetStyle ? column.onGetStyle(item, index) : undefined;\n }\n break;\n case 'footer':\n style = column.footer?.style;\n getStyle = column.footer?.onGetStyle ? column.footer?.onGetStyle() : undefined;\n break;\n }\n\n return {\n ...initStyle,\n width: column.width,\n minWidth: column.minWidth,\n cursor: type === 'body' && (column.onClick || onClick) ? 'pointer' : undefined,\n paddingLeft: column.paddingLeft,\n paddingRight: column.paddingRight,\n ...style,\n ...getStyle,\n };\n }, [column, index, initStyle, item, onClick, type]);\n\n const sx = useMemo(() => {\n let sx: CommonSxProps['sx'];\n let getSx: CommonSxProps['sx'];\n let displaySx: CommonSxProps['sx'];\n\n switch (type) {\n case 'head':\n sx = column.head?.sx;\n getSx = column.head?.onGetSx ? column.head?.onGetSx() : undefined;\n break;\n case 'body':\n sx = column.sx;\n if (item != null && index != null) {\n getSx = column.onGetSx ? column.onGetSx(item, index) : undefined;\n }\n break;\n case 'footer':\n sx = column.footer?.sx;\n getSx = column.footer?.onGetSx ? column.footer?.onGetSx() : undefined;\n break;\n }\n\n if (column.display) {\n type DisplayValue = 'none' | 'table-cell';\n const display: {\n xs?: DisplayValue;\n sm?: DisplayValue;\n md?: DisplayValue;\n lg?: DisplayValue;\n xl?: DisplayValue;\n } = {};\n if (column.display.xs !== undefined) display.xs = column.display.xs ? 'table-cell' : 'none';\n if (column.display.sm !== undefined) display.sm = column.display.sm ? 'table-cell' : 'none';\n if (column.display.md !== undefined) display.md = column.display.md ? 'table-cell' : 'none';\n if (column.display.lg !== undefined) display.lg = column.display.lg ? 'table-cell' : 'none';\n if (column.display.xl !== undefined) display.xl = column.display.xl ? 'table-cell' : 'none';\n displaySx = { display };\n }\n\n const sxList = [];\n if (getSx) sxList.push(getSx);\n if (sx) sxList.push(sx);\n if (initSx) sxList.push(initSx);\n if (displaySx) sxList.push(displaySx);\n\n if (sxList.length > 0) {\n if (sxList.length === 1) {\n return sxList[0];\n } else {\n if (!sxList.find((sx) => typeof sx !== 'object')) {\n return sxList.reduce((res: object, sx: object) => {\n res = { ...res, ...sx };\n return res;\n }, {});\n }\n }\n }\n }, [column, index, initSx, item, type]);\n\n // Event Handler ---------------------------------------------------------------------------------------------------\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLTableCellElement>) => {\n if (\n !menuOpen &&\n column.type !== 'check' &&\n column.type !== 'button' &&\n column.type !== 'buttons' &&\n column.type !== 'img'\n ) {\n e.stopPropagation();\n\n if (type === 'body') {\n if (item != null && index != null) {\n if (column.onClick) {\n column.onClick(item, index);\n } else {\n if (onClick) onClick(item, index);\n }\n }\n }\n }\n },\n [menuOpen, type, item, index, column, onClick]\n );\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return (\n <StyledTableCell\n align={align}\n className={classNames(\n className,\n 'TableCommonCell',\n ellipsis && 'ellipsis',\n column.type ? `column-type-${column.type}` : false\n )}\n style={style}\n sx={sx}\n onClick={type === 'body' ? handleClick : undefined}\n >\n {children}\n </StyledTableCell>\n );\n};\n\nexport default TableCommonCell;\n","import React, { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Box, Checkbox, styled, Tooltip } from '@mui/material';\nimport { TableBodyCellProps as Props } from './TableBodyCell.types';\nimport {\n companyNoAutoDash,\n getTableColumnAlign,\n getTelAutoDash,\n numberWithThousandSeparator,\n personalNoAutoDash,\n} from '../@util';\nimport TableCommonCell from '../TableCommonCell';\nimport { TableItem } from '../Table/Table.types';\nimport dayjs from 'dayjs';\nimport useTableState from '../TableContext/useTableState';\nimport classNames from 'classnames';\n\nconst StyledButtonsBox = styled(Box)`\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n`;\n\nconst TableBodyCell: React.FC<Props> = ({\n className,\n style,\n sx,\n item,\n index,\n column,\n defaultAlign,\n defaultEllipsis,\n onClick,\n onCheckChange,\n}) => {\n // Use ---------------------------------------------------------------------------------------------------------------\n\n const { menuOpen, setItemColumnChecked, setItemColumnCheckDisabled, setItemColumnCommands } = useTableState();\n\n // State -------------------------------------------------------------------------------------------------------------\n\n const [checked, setChecked] = useState(false);\n const [checkDisabled, setCheckDisabled] = useState(false);\n\n // Effect ------------------------------------------------------------------------------------------------------------\n\n useEffect(() => {\n if (column.type === 'check') {\n setChecked(column.onInitChecked ? column.onInitChecked(item) : false);\n setCheckDisabled(column.onCheckDisabled ? column.onCheckDisabled(item) : false);\n }\n\n setItemColumnCommands(item, column, {\n setChecked(checked: boolean) {\n if (column.type === 'check') {\n setChecked(checked);\n }\n },\n setCheckDisabled(disabled: boolean) {\n if (column.type === 'check') {\n setCheckDisabled(disabled);\n }\n },\n });\n }, [column, item, setItemColumnCommands]);\n\n useEffect(() => {\n if (column.type === 'check') {\n setItemColumnChecked(item, column, checked);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checked]);\n\n useEffect(() => {\n if (column.type === 'check') {\n setItemColumnCheckDisabled(item, column, checkDisabled);\n column.onCheckDisabledChange && column.onCheckDisabledChange(item, checkDisabled);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkDisabled]);\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const isHidden = useMemo(() => (column.onHide ? column.onHide(item, index) : false), [column, index, item]);\n\n const buttonsBoxJustifyContent = useMemo(() => {\n switch (getTableColumnAlign(column, defaultAlign)) {\n case 'center':\n return 'center';\n case 'right':\n return 'end';\n default:\n return 'start';\n }\n }, [column, defaultAlign]);\n\n const data = useMemo(() => {\n let data;\n if (column.type !== 'check') {\n if (column.onRender) {\n data = column.onRender(item, index);\n } else if (column.name) {\n data = item[column.name];\n } else {\n data = undefined;\n }\n }\n\n switch (column.type) {\n case 'number':\n if (typeof data === 'string' || typeof data === 'number') {\n data = numberWithThousandSeparator(data);\n }\n if (column.numberPrefix) {\n data = (\n <>\n <span style={{ opacity: 0.5, marginRight: 2 }}>{column.numberPrefix}</span>\n {data}\n </>\n );\n }\n if (column.numberSuffix) {\n data = (\n <>\n {data}\n <span style={{ opacity: 0.5, marginLeft: 2 }}>{column.numberSuffix}</span>\n </>\n );\n }\n break;\n case 'tel':\n if (typeof data === 'string') {\n data = getTelAutoDash(data);\n }\n break;\n case 'company_no':\n if (typeof data === 'string') {\n data = companyNoAutoDash(data);\n }\n break;\n case 'personal_no':\n if (typeof data === 'string') {\n data = personalNoAutoDash(data);\n }\n break;\n case 'check':\n data = (\n <Box className='TableBoxyCell-check-box' onClick={menuOpen ? undefined : (e) => e.stopPropagation()}>\n <Checkbox\n checked={checked}\n disabled={checkDisabled}\n onChange={(e, newChecked) => {\n setChecked(newChecked);\n column.onCheckChange && column.onCheckChange(item, newChecked);\n onCheckChange && onCheckChange(item, column, newChecked);\n }}\n />\n </Box>\n );\n break;\n case 'button':\n data = (\n <Box className='TableBoxyCell-button-box' onClick={menuOpen ? undefined : (e) => e.stopPropagation()}>\n {data}\n </Box>\n );\n break;\n case 'buttons':\n data = (\n <StyledButtonsBox\n className='TableBodyCell-buttons-box'\n justifyContent={buttonsBoxJustifyContent}\n onClick={menuOpen ? undefined : (e) => e.stopPropagation()}\n >\n {data}\n </StyledButtonsBox>\n );\n break;\n case 'img':\n {\n const img = <img src={data} style={{ maxWidth: '100%', verticalAlign: 'middle' }} alt='' />;\n const placement = column.tooltipProps?.placement ? column.tooltipProps?.placement : 'left';\n\n data = (\n <a\n href={data}\n target='_blank'\n onClick={\n menuOpen\n ? undefined\n : (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.stopPropagation();\n }\n }\n >\n <Tooltip\n className='TableBodyCell-tooltip'\n title={<div style={{ paddingTop: 3, paddingBottom: 3 }}>{img}</div>}\n {...column.tooltipProps}\n placement={placement}\n >\n {img}\n </Tooltip>\n </a>\n );\n }\n break;\n case 'date':\n if (data) {\n data = dayjs(data, column.dateFormat).format('YYYY-MM-DD');\n }\n break;\n case 'datetime':\n if (data) {\n const dt = dayjs(data, column.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {column.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH:mm:ss')}</span>\n </>\n );\n }\n break;\n case 'date-hour':\n if (data) {\n const dt = dayjs(data, column.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {column.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH시')}</span>\n </>\n );\n }\n break;\n case 'date-minute':\n if (data) {\n const dt = dayjs(data, column.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {column.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH시 MM분')}</span>\n </>\n );\n }\n break;\n }\n\n if (column.type !== 'img') {\n let tooltip: ReactNode;\n if (column.onGetTooltip) {\n tooltip = column.onGetTooltip(item, index);\n }\n if (tooltip) {\n data = (\n <Tooltip className='TableBodyCell-tooltip' title={tooltip} {...column.tooltipProps}>\n {React.isValidElement(data) ? (\n data.type === React.Fragment ? (\n <span>{data}</span>\n ) : (\n data\n )\n ) : (\n <span>{data}</span>\n )}\n </Tooltip>\n );\n }\n }\n return data;\n }, [column, item, index, menuOpen, checked, checkDisabled, buttonsBoxJustifyContent, onCheckChange]);\n\n // Event Handler ---------------------------------------------------------------------------------------------------\n\n const handleClick = useCallback(\n (item: TableItem, index: number) => {\n if (column.onClick) {\n column.onClick(item, index);\n } else {\n if (onClick) onClick(item, index);\n }\n },\n [column, onClick]\n );\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return (\n <TableCommonCell\n type='body'\n className={classNames('TableBodyCell', className)}\n style={style}\n sx={sx}\n column={column}\n defaultAlign={defaultAlign}\n defaultEllipsis={defaultEllipsis}\n item={item}\n index={index}\n onClick={column.onClick || onClick ? handleClick : undefined}\n >\n {!isHidden && data}\n </TableCommonCell>\n );\n};\n\nexport default TableBodyCell;\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { TableBodyRowProps as Props, TableBodyRowDefaultProps } from './TableBodyRow.types';\nimport { styled, TableRow, lighten } from '@mui/material';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { TableColumn } from '../Table';\nimport TableBodyCell from '../TableBodyCell';\n\nexport const StyledBodyRow = styled(TableRow)(({ theme }) => ({\n '&.odd-color:nth-of-type(odd):not(:hover)': {\n backgroundColor: lighten(theme.palette.action.hover, 0.4),\n },\n '&.even-color:nth-of-type(even):not(:hover)': {\n backgroundColor: lighten(theme.palette.action.hover, 0.4),\n },\n}));\n\nconst TableBodyRow: React.FC<Props> = ({\n className,\n style,\n //--------------------------------------------------------------------------------------------------------------------\n id,\n index,\n defaultAlign,\n defaultEllipsis,\n sortable,\n columns,\n item,\n onClick,\n onCheckChange,\n onGetColumnClassName,\n onGetColumnStyle,\n onGetColumnSx,\n // -------------------------------------------------------------------------------------------------------------------\n ...props\n}) => {\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id });\n\n const finalStyle = useMemo(\n () =>\n sortable\n ? {\n ...style,\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : style,\n [sortable, style, transform, transition]\n );\n\n const sortableProps = useMemo(\n () =>\n sortable\n ? {\n ref: setNodeRef,\n ...attributes,\n ...listeners,\n }\n : {},\n [attributes, listeners, setNodeRef, sortable]\n );\n\n return (\n <StyledBodyRow className={classNames('TableBodyRow', className)} style={finalStyle} {...props} {...sortableProps}>\n {columns.map((column: TableColumn, columnIdx) => (\n <TableBodyCell\n className={onGetColumnClassName ? onGetColumnClassName(column, item, index) : undefined}\n sx={onGetColumnSx ? onGetColumnSx(column, item, index) : undefined}\n style={onGetColumnStyle ? onGetColumnStyle(column, item, index) : undefined}\n key={columnIdx}\n index={index}\n item={item}\n defaultAlign={defaultAlign}\n defaultEllipsis={defaultEllipsis}\n column={column}\n onClick={onClick}\n onCheckChange={onCheckChange}\n />\n ))}\n </StyledBodyRow>\n );\n};\n\nTableBodyRow.displayName = 'TableBodyRow';\nTableBodyRow.defaultProps = TableBodyRowDefaultProps;\n\nexport default TableBodyRow;\n","import React, { useMemo } from 'react';\nimport { TableFooterCellProps } from './TableFooterCell.types';\nimport TableCommonCell from '../TableCommonCell';\n\nconst TableFooterCell: React.FC<TableFooterCellProps> = ({ column, defaultAlign }) => {\n const data = useMemo(() => {\n if (column.footer?.onRender) {\n return column.footer?.onRender();\n } else {\n return column.footer?.value;\n }\n }, [column]);\n\n return (\n <TableCommonCell type='head' className='TableFooterCell' column={column} defaultAlign={defaultAlign}>\n {data}\n </TableCommonCell>\n );\n};\n\nexport default TableFooterCell;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { TablePaginationProps } from './TablePagination.types';\nimport { Pagination, Stack } from '@mui/material';\n\nconst TablePagination: React.FC<TablePaginationProps> = ({ className, style, sx, paging, align, onChange }) => {\n return (\n <Stack alignItems={align}>\n <Pagination\n count={paging.last_page}\n page={paging.current_page}\n color='primary'\n className={classNames('TablePagination', className)}\n style={style}\n sx={sx}\n onChange={(e, page) => {\n if (onChange) onChange(page);\n }}\n />\n </Stack>\n );\n};\n\nexport default TablePagination;\n","import React from 'react';\nimport { TableContextProviderProps as Props } from './TableContextProvider.types';\nimport TableContext from '../TableContext';\n\nconst TableContextProvider: React.FC<Props> = ({ children, value }) => {\n return <TableContext.Provider value={value}>{children}</TableContext.Provider>;\n};\n\nexport default TableContextProvider;\n","import { ReactNode } from 'react';\nimport { TableCellProps } from '@mui/material';\nimport { TableColumn, TableProps } from '../Table/Table.types';\n\nexport interface TableTopHeadRowColumn {\n colSpan?: number;\n rowSpan?: number;\n label?: ReactNode;\n align?: TableCellProps['align'];\n}\n\nexport type TableTopHeadRowColumnValue = TableTopHeadRowColumn | false | undefined | null;\n\nexport interface TableTopHeadProps {\n caption?: ReactNode;\n rows?: TableTopHeadRowColumnValue[] | TableTopHeadRowColumnValue[][];\n columns: TableColumn[];\n defaultAlign: TableProps['defaultAlign'];\n onCheckChange(column: TableColumn, checked: boolean): void;\n}\n\nexport const TableTopHeadDefaultProps = {};\n","import { styled, TableRow } from '@mui/material';\n\nexport const TableTopHeadCaptionRow = styled(TableRow)(({ theme }) => ({\n '> th': {\n backgroundColor: theme.palette.grey.A100,\n textAlign: 'center',\n fontWeight: 700,\n },\n}));\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { TableHeadCellProps } from './TableHeadCell.types';\nimport TableCommonCell from '../TableCommonCell';\nimport { Checkbox } from '@mui/material';\nimport useTableState from '../TableContext/useTableState';\n\nconst TableHeadCell: React.FC<TableHeadCellProps> = ({ column, defaultAlign, top, onCheckChange }) => {\n // Use ---------------------------------------------------------------------------------------------------------------\n\n const { setHeadColumnChecked, setHeadColumnCommands } = useTableState();\n\n // State -------------------------------------------------------------------------------------------------------------\n\n const [checked, setChecked] = useState(false);\n const [checkDisabled, setCheckDisabled] = useState(false);\n\n // Effect ------------------------------------------------------------------------------------------------------------\n\n useEffect(() => {\n if (column.type === 'check') {\n setHeadColumnChecked(column, checked);\n }\n }, [column, checked, setHeadColumnChecked]);\n\n useEffect(() => {\n setHeadColumnCommands(column, {\n setChecked(checked: boolean) {\n if (column.type === 'check') {\n setChecked(checked);\n }\n },\n setCheckDisabled(checkDisabled: boolean) {\n if (column.type === 'check') {\n setCheckDisabled(checkDisabled);\n }\n },\n });\n }, [setHeadColumnCommands, column]);\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const style = useMemo(() => (top !== undefined ? { top } : undefined), [top]);\n\n const data = useMemo(() => {\n if (column.type === 'check') {\n return column.hideAllCheck ? null : (\n <Checkbox\n checked={checked}\n disabled={checkDisabled}\n onChange={(e, newChecked) => {\n setChecked(newChecked);\n onCheckChange && onCheckChange(column, newChecked);\n }}\n />\n );\n } else {\n if (column.head?.onRender) {\n return column.head?.onRender();\n } else {\n if (typeof column.label === 'string') {\n return <div dangerouslySetInnerHTML={{ __html: column.label }} />;\n } else {\n return column.label;\n }\n }\n }\n }, [checkDisabled, checked, column, onCheckChange]);\n\n // Render ------------------------------------------------------------------------------------------------------------\n\n return (\n <TableCommonCell type='head' className='TableHeadCell' style={style} column={column} defaultAlign={defaultAlign}>\n {data}\n </TableCommonCell>\n );\n};\n\nexport default TableHeadCell;\n","import React, { ReactNode, useCallback, useMemo, useRef } from 'react';\nimport { TableTopHeadProps as Props, TableTopHeadDefaultProps, TableTopHeadRowColumnValue } from './TableTopHead.types';\nimport { styled, TableCell, TableHead, TableRow, useTheme } from '@mui/material';\nimport { useResizeDetector } from 'react-resize-detector';\nimport { TableTopHeadCaptionRow } from './TableTopHead.style';\nimport TableHeadCell from '../TableHeadCell';\n\nconst BottomLine = styled('div')`\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n`;\n\nconst TableTopHead: React.FC<Props> = ({ columns, rows, caption, defaultAlign, onCheckChange }) => {\n // Use ---------------------------------------------------------------------------------------------------------------\n\n const theme = useTheme();\n\n // Ref ---------------------------------------------------------------------------------------------------------------\n\n const captionRef = useRef<HTMLTableRowElement>(null);\n const row1Ref = useRef<HTMLTableRowElement>(null);\n const row2Ref = useRef<HTMLTableRowElement>(null);\n const row3Ref = useRef<HTMLTableRowElement>(null);\n\n // ResizeDetector ----------------------------------------------------------------------------------------------------\n\n const { height: captionHeight } = useResizeDetector({\n targetRef: captionRef,\n handleWidth: false,\n handleHeight: true,\n });\n const { height: row1Height } = useResizeDetector({ targetRef: row1Ref, handleWidth: false, handleHeight: true });\n const { height: row2Height } = useResizeDetector({ targetRef: row2Ref, handleWidth: false, handleHeight: true });\n const { height: row3Height } = useResizeDetector({ targetRef: row3Ref, handleWidth: false, handleHeight: true });\n\n // Function ----------------------------------------------------------------------------------------------------------\n\n const captionRow = useMemo(\n () =>\n !!caption && (\n <TableTopHeadCaptionRow ref={captionRef} className='TableTopHeadCaptionRow'>\n <TableCell colSpan={columns.length}>{caption}</TableCell>\n </TableTopHeadCaptionRow>\n ),\n [caption, columns]\n );\n\n const makeRowCells = useCallback(\n (row: TableTopHeadRowColumnValue[], top?: number) => {\n let totalColumns = 0;\n const cells = row\n .map((info, idx) => {\n if (info) {\n totalColumns += info.colSpan || 1;\n return (\n <TableCell\n key={idx}\n colSpan={info.colSpan}\n align={info.align}\n style={{\n top,\n borderBottom: 0,\n }}\n >\n {info.label}\n {info.label != null && <BottomLine style={{ backgroundColor: theme.palette.divider }} />}\n </TableCell>\n );\n }\n })\n .filter((cell) => !!cell) as ReactNode[];\n\n if (totalColumns < columns.length) {\n cells.push(\n <TableCell key={columns.length} colSpan={columns.length - cells.length} style={{ top, borderBottom: 0 }} />\n );\n }\n\n return cells;\n },\n [columns, theme.palette.divider]\n );\n\n const columnRow = useMemo(() => {\n const top = (captionHeight || 0) + (row1Height || 0) + (row2Height || 0) + (row3Height || 0);\n\n return (\n <TableRow>\n {columns.map((column, idx) => (\n <TableHeadCell\n key={idx}\n column={column}\n defaultAlign={defaultAlign}\n top={top}\n onCheckChange={onCheckChange}\n />\n ))}\n </TableRow>\n );\n }, [captionHeight, columns, defaultAlign, onCheckChange, row1Height, row2Height, row3Height]);\n\n // Render ------------------------------------------------------------------------------------------------------------\n\n if (rows) {\n if (Array.isArray(rows[0])) {\n return (\n <TableHead className='TableHead'>\n {captionRow}\n {rows.map((row, idx) => {\n let ref: React.Ref<HTMLTableRowElement> | undefined = undefined;\n let top: number | undefined = undefined;\n\n switch (idx) {\n case 0:\n ref = row1Ref;\n top = captionHeight;\n break;\n case 1:\n ref = row2Ref;\n top = (captionHeight || 0) + (row1Height || 0);\n break;\n case 2:\n ref = row3Ref;\n top = (captionHeight || 0) + (row1Height || 0) + (row2Height || 0);\n break;\n case 3:\n top = (captionHeight || 0) + (row1Height || 0) + (row2Height || 0) + (row3Height || 0);\n }\n return (\n <TableRow key={idx} ref={ref} className='TableHeadRow'>\n {makeRowCells(row as TableTopHeadRowColumnValue[], top)}\n </TableRow>\n );\n })}\n </TableHead>\n );\n } else {\n return (\n <TableHead className='TableHead'>\n {captionRow}\n <TableRow ref={row1Ref} className='TableHeadRow'>\n {makeRowCells(rows as TableTopHeadRowColumnValue[], captionHeight)}\n </TableRow>\n {columnRow}\n </TableHead>\n );\n }\n } else {\n return (\n <TableHead className='TableHead'>\n {captionRow}\n {columnRow}\n </TableHead>\n );\n }\n};\n\nTableTopHead.displayName = 'TableTopHead';\nTableTopHead.defaultProps = TableTopHeadDefaultProps;\n\nexport default TableTopHead;\n","import React, { CSSProperties, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { Table as MuiTable, TableBody, TableRow, TableCell, Paper, Stack, TableFooter, Icon } from '@mui/material';\nimport SimpleBar from 'simplebar-react';\nimport SimpleBarCore from 'simplebar-core';\nimport { useResizeDetector } from 'react-resize-detector';\nimport { TableProps, TableDefaultProps, TableCommands, TableColumn, TableItem } from './Table.types';\nimport { StyledBodyRow, StyledNoDataDiv } from './Table.styles';\nimport TableBodyRow from '../TableBodyRow';\nimport { TableHeadCellCommands } from '../TableHeadCell';\nimport TableFooterCell from '../TableFooterCell';\nimport TablePagination from '../TablePagination';\nimport { useAutoUpdateLayoutState } from '@pdg/react-hook';\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n} from '@dnd-kit/core';\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport 'simplebar-react/dist/simplebar.min.css';\nimport TableContextProvider from '../TableContextProvider';\nimport { v4 as uuid } from 'uuid';\nimport { TableBodyCellCommands } from '../TableBodyCell';\nimport TableTopHead from '../TableTopHead';\n\nfunction columnFilter<T>(v: T | undefined | null | false): v is T {\n return v !== undefined && v !== null && v !== false;\n}\n\ntype TLocalBodyData = Record<\n string | number,\n {\n item: TableItem;\n columns: Record<\n string,\n {\n column: TableColumn;\n checked: boolean;\n checkDisabled: boolean;\n commands?: TableBodyCellCommands;\n }\n >;\n }\n>;\n\ntype TLocalHeaderData = Record<string, { column: TableColumn; checked: boolean; commands?: TableHeadCellCommands }>;\n\ninterface WithForwardRefType<T = TableItem> extends React.FC<TableProps<T>> {\n <T = TableItem>(props: TableProps<T> & React.RefAttributes<TableCommands<T>>): ReturnType<React.FC<TableProps<T>>>;\n}\n\nlet _columnId = 0;\n\nconst Table: WithForwardRefType = React.forwardRef<TableCommands, TableProps>(\n (\n {\n caption,\n topHeadRows,\n columns: initColumns,\n items: initItems,\n paging: initPaging,\n pagingAlign,\n defaultAlign,\n defaultEllipsis,\n stickyHeader: initStickyHeader,\n height,\n minHeight,\n maxHeight,\n fullHeight,\n showOddColor,\n showEvenColor,\n cellPadding,\n footer,\n noData,\n pagination,\n sortable,\n onClick,\n onGetBodyRowClassName,\n onGetBodyRowStyle,\n onGetBodyRowSx,\n onGetBodyColumnClassName,\n onGetBodyColumnStyle,\n onGetBodyColumnSx,\n onPageChange,\n onSortChange,\n onCheckChange,\n // ---------------------------------------------------------------------------------------------------------------\n className,\n style: initStyle,\n sx,\n },\n ref\n ) => {\n // Ref ---------------------------------------------------------------------------------------------------------------\n\n const localHeaderDataRef = useRef<TLocalHeaderData>({});\n const localBodyDataRef = useRef<TLocalBodyData>({});\n const updateHeadCheckTimer = useRef<NodeJS.Timeout>();\n const fireOnCheckChangeTimer = useRef<Record<string, NodeJS.Timeout | undefined>>({});\n const simpleBarRef = useRef<SimpleBarCore>(null);\n const finalColumnsIdRef = useRef<string[] | undefined>([]);\n\n // sortable --------------------------------------------------------------------------------------------------------\n\n const sensors = useSensors(\n useSensor(MouseSensor, {\n // Require the mouse to move by 10 pixels before activating\n activationConstraint: {\n distance: 10,\n },\n }),\n useSensor(TouchSensor, {\n // Press delay of 250ms, with tolerance of 5px of movement\n activationConstraint: {\n delay: 250,\n tolerance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n // State -------------------------------------------------------------------------------------------------------------\n\n const [menuOpen, setMenuOpen] = useState(false);\n const [openMenuId, setOpenMenuId] = useState<string | undefined>(undefined);\n\n // State - containerHeight -------------------------------------------------------------------------------------------\n\n const [containerHeight, setContainerHeight] = useState<number | undefined>();\n\n const { ref: containerHeightDetector } = useResizeDetector({\n handleHeight: true,\n handleWidth: false,\n onResize() {\n if (containerHeightDetector.current) {\n setContainerHeight(containerHeightDetector.current.getBoundingClientRect().height);\n } else {\n setContainerHeight(undefined);\n }\n },\n });\n\n // State - footerHeight --------------------------------------------------------------------------------------------\n\n const [pagingHeight, setPagingHeight] = useState<number | undefined>();\n\n const { ref: pagingHeightResizeDetector } = useResizeDetector({\n handleHeight: true,\n handleWidth: false,\n onResize() {\n if (pagingHeightResizeDetector.current) {\n setPagingHeight(pagingHeightResizeDetector.current.getBoundingClientRect().height);\n } else {\n setPagingHeight(undefined);\n }\n },\n });\n\n // State -----------------------------------------------------------------------------------------------------------\n\n const [columns, setColumns] = useAutoUpdateLayoutState<TableProps['columns']>(initColumns);\n const [finalColumns, setFinalColumns] = useState<TableColumn<TableItem>[]>();\n const [items, setItems] = useAutoUpdateLayoutState<TableProps['items']>(initItems);\n const [sortableItems, setSortableItems] = useState<(TableItem & { id: number | string })[]>();\n const [paging, setPaging] = useAutoUpdateLayoutState<TableProps['paging']>(initPaging);\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const tableSx = useMemo(() => {\n const sx = {\n padding: typeof cellPadding === 'number' ? `${cellPadding}px` : cellPadding,\n };\n\n return {\n '> .MuiTableHead-root > .MuiTableRow-root > .MuiTableCell-root ': sx,\n '> .MuiTableBody-root > .MuiTableRow-root > .MuiTableCell-root ': sx,\n '> .MuiTableFooter-root > .MuiTableRow-root > .MuiTableCell-root ': sx,\n };\n }, [cellPadding]);\n\n // Function --------------------------------------------------------------------------------------------------------\n\n const makeSortableItems = useCallback((items?: TableProps['items']) => {\n return items?.map<TableItem & { id: number | string }>(({ id, ...item }, index) => {\n return { id: id == null ? `${uuid()}_${index}` : id, ...item };\n });\n }, []);\n\n const getFinalColumnId = useCallback(\n (column: TableColumn) => {\n if (finalColumns && finalColumnsIdRef.current) {\n const idx = finalColumns.indexOf(column);\n return finalColumnsIdRef.current[idx];\n } else {\n return '';\n }\n },\n [finalColumns]\n );\n\n const updateHeadCheck = useCallback(\n (column: TableColumn) => {\n if (updateHeadCheckTimer.current) {\n clearTimeout(updateHeadCheckTimer.current);\n updateHeadCheckTimer.current = undefined;\n }\n\n const columnId = getFinalColumnId(column);\n\n const headColumnData = localHeaderDataRef.current[columnId];\n if (headColumnData) {\n updateHeadCheckTimer.current = setTimeout(() => {\n updateHeadCheckTimer.current = undefined;\n\n const enabledCheckExists = !!Object.keys(localBodyDataRef.current).find((key) => {\n const columnData = localBodyDataRef.current[key].columns[columnId];\n if (columnData) {\n if (!columnData.checkDisabled) {\n return true;\n }\n }\n });\n\n const allChecked =\n enabledCheckExists &&\n !Object.keys(localBodyDataRef.current).find((key) => {\n const columnData = localBodyDataRef.current[key].columns[columnId];\n if (columnData) {\n if (!columnData.checkDisabled) {\n return !columnData.checked;\n }\n }\n });\n\n headColumnData.commands?.setCheckDisabled(!enabledCheckExists);\n headColumnData.commands?.setChecked(allChecked);\n }, 100);\n }\n },\n [getFinalColumnId]\n );\n\n const getCheckedItems = useCallback((columnId: string): TableItem[] => {\n const checkedItems: TableItem[] = [];\n Object.keys(localBodyDataRef.current).forEach((key) => {\n const itemData = localBodyDataRef.current[key];\n const columnData = itemData.columns[columnId];\n if (columnData) {\n if (columnData.checked) {\n checkedItems.push(itemData.item);\n }\n }\n });\n return checkedItems;\n }, []);\n\n const stopHeadCheckTimer = useCallback(() => {\n if (updateHeadCheckTimer.current) {\n clearTimeout(updateHeadCheckTimer.current);\n updateHeadCheckTimer.current = undefined;\n }\n }, []);\n\n const clearFireOnCheckChangeTimer = useCallback(() => {\n Object.keys(fireOnCheckChangeTimer.current).forEach((key) => {\n if (fireOnCheckChangeTimer.current[key]) {\n clearTimeout(fireOnCheckChangeTimer.current[key]);\n }\n });\n fireOnCheckChangeTimer.current = {};\n }, []);\n\n const fireOnCheckChange = useCallback(\n (columnId: string) => {\n if (fireOnCheckChangeTimer.current[columnId]) {\n clearTimeout(fireOnCheckChangeTimer.current[columnId]);\n fireOnCheckChangeTimer.current[columnId] = undefined;\n }\n if (onCheckChange) {\n fireOnCheckChangeTimer.current[columnId] = setTimeout(() => {\n fireOnCheckChangeTimer.current[columnId] = undefined;\n\n onCheckChange && onCheckChange(columnId, getCheckedItems(columnId));\n }, 100);\n }\n },\n [getCheckedItems, onCheckChange]\n );\n\n const simpleBarScrollToTop = useCallback(() => {\n simpleBarRef.current?.getScrollElement()?.scrollTo({ top: 0 });\n }, []);\n\n // Effect ----------------------------------------------------------------------------------------------------------\n\n useEffect(() => {\n return () => {\n stopHeadCheckTimer();\n clearFireOnCheckChangeTimer();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n stopHeadCheckTimer();\n clearFireOnCheckChangeTimer();\n\n Object.keys(localHeaderDataRef.current).forEach((key) => {\n if (localHeaderDataRef.current[key].column.type === 'check') {\n localHeaderDataRef.current[key].commands?.setChecked(false);\n }\n });\n\n Object.keys(localBodyDataRef.current).forEach((key) => {\n Object.keys(localBodyDataRef.current[key].columns).forEach((cKey) => {\n localBodyDataRef.current[key].columns[cKey].commands?.setChecked(false);\n });\n });\n\n setSortableItems(makeSortableItems(items));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items]);\n\n useEffect(() => {\n stopHeadCheckTimer();\n clearFireOnCheckChangeTimer();\n\n const newFinalColumns = columns?.filter(columnFilter);\n setFinalColumns(newFinalColumns);\n finalColumnsIdRef.current = newFinalColumns?.map((col) => {\n if (col.id) {\n return col.id;\n } else {\n _columnId += 1;\n return `$c$${_columnId}$`;\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [columns]);\n\n useLayoutEffect(() => {\n clearFireOnCheckChangeTimer();\n\n if (sortableItems) {\n localBodyDataRef.current = sortableItems.reduce<TLocalBodyData>((res, item) => {\n res[item.id] = {\n item,\n columns: {},\n };\n\n if (finalColumns) {\n finalColumns.forEach((c) => {\n const columnId = getFinalColumnId(c);\n\n if (localBodyDataRef.current[item.id]?.columns[columnId]) {\n res[item.id].columns[columnId] = localBodyDataRef.current[item.id].columns[columnId];\n } else {\n res[item.id].columns[columnId] = {\n column: c,\n checked: false,\n checkDisabled: false,\n };\n }\n });\n }\n return res;\n }, {});\n } else {\n localBodyDataRef.current = {};\n }\n }, [sortableItems, finalColumns, clearFireOnCheckChangeTimer, getFinalColumnId]);\n\n useLayoutEffect(() => {\n if (finalColumns) {\n localHeaderDataRef.current = finalColumns.reduce<TLocalHeaderData>((res, c) => {\n res[getFinalColumnId(c)] = { column: c, checked: false };\n return res;\n }, {});\n } else {\n localHeaderDataRef.current = {};\n }\n }, [finalColumns, getFinalColumnId]);\n\n // Commands --------------------------------------------------------------------------------------------------------\n\n useLayoutEffect(() => {\n if (ref) {\n let lastColumns = columns;\n let lastItems = items;\n let lastPaging = paging;\n\n const commands: TableCommands = {\n getColumns: () => lastColumns,\n setColumns: (columns) => {\n lastColumns = columns;\n setColumns(lastColumns);\n },\n getItems: () => lastItems,\n setItems: (items) => {\n lastItems = items;\n setItems(items);\n },\n getPaging: () => lastPaging,\n setItemsPaging: (items, paging) => {\n lastItems = items;\n lastPaging = paging;\n setItems(lastItems);\n setPaging(lastPaging);\n },\n resetSort() {\n setSortableItems(makeSortableItems(lastItems));\n },\n getCheckedItems,\n scrollToTop: simpleBarScrollToTop,\n };\n\n if (typeof ref === 'function') {\n ref(commands);\n } else {\n ref.current = commands;\n }\n }\n }, [\n ref,\n columns,\n items,\n paging,\n makeSortableItems,\n setColumns,\n setItems,\n setPaging,\n getCheckedItems,\n simpleBarScrollToTop,\n ]);\n\n // Event Handler ---------------------------------------------------------------------------------------------------\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (active && over) {\n setSortableItems((items) => {\n if (items) {\n let oldIndex: number | null = null;\n let newIndex: number | null = null;\n\n items.find((item, idx) => {\n if (item.id === active.id) {\n oldIndex = idx;\n } else if (item.id === over.id) {\n newIndex = idx;\n }\n return oldIndex != null && newIndex != null;\n });\n\n if (oldIndex != null && newIndex != null) {\n const finalItems = arrayMove(items, oldIndex, newIndex);\n onSortChange && onSortChange(finalItems);\n return finalItems;\n } else {\n return items;\n }\n } else {\n return items;\n }\n });\n }\n },\n [onSortChange]\n );\n\n const handleHeadCheckChange = useCallback(\n (column: TableColumn, checked: boolean) => {\n Object.keys(localBodyDataRef.current).forEach((key) => {\n const data = localBodyDataRef.current[key].columns[getFinalColumnId(column)];\n if (data) {\n if (!data.checkDisabled) {\n data.commands?.setChecked(checked);\n }\n }\n });\n },\n [getFinalColumnId]\n );\n\n const handleBodyCheckChange = useCallback(\n (item: TableItem, column: TableColumn) => {\n updateHeadCheck(column);\n },\n [updateHeadCheck]\n );\n\n const handlePageChange = useCallback(\n (page: number) => {\n simpleBarScrollToTop();\n onPageChange && onPageChange(page);\n },\n [onPageChange, simpleBarScrollToTop]\n );\n\n // TableContext Function ---------------------------------------------------------------------------------------------\n\n const TableContextSetMenuOpen = useCallback(\n (newMenuOpen: boolean, newOpenMenuId: string | undefined) => {\n if (newMenuOpen) {\n setMenuOpen(newMenuOpen);\n setOpenMenuId(newOpenMenuId);\n } else {\n if (openMenuId === newOpenMenuId) {\n setMenuOpen(false);\n setOpenMenuId(undefined);\n }\n }\n },\n [openMenuId]\n );\n\n const TableContextSetItemColumnChecked = useCallback(\n (item: TableItem, column: TableColumn, checked: boolean) => {\n const columnId = getFinalColumnId(column);\n const data = localBodyDataRef.current[item.id]?.columns[columnId];\n if (data) {\n data.checked = checked;\n fireOnCheckChange(columnId);\n }\n },\n [fireOnCheckChange, getFinalColumnId]\n );\n\n const TableContextSetItemColumnCheckDisabled = useCallback(\n (item: TableItem, column: TableColumn, disabled: boolean) => {\n const data = localBodyDataRef.current[item.id]?.columns[getFinalColumnId(column)];\n if (data) {\n data.checkDisabled = disabled;\n updateHeadCheck(column);\n }\n },\n [getFinalColumnId, updateHeadCheck]\n );\n\n const TableContextSetItemColumnCommands = useCallback(\n (item: TableItem, column: TableColumn, commands: TableBodyCellCommands) => {\n const data = localBodyDataRef.current[item.id]?.columns[getFinalColumnId(column)];\n if (data) {\n data.commands = commands;\n }\n },\n [getFinalColumnId]\n );\n\n const TableContextSetHeadColumnChecked = useCallback(\n (column: TableColumn, checked: boolean) => {\n const data = localHeaderDataRef.current[getFinalColumnId(column)];\n if (data) {\n data.checked = checked;\n }\n },\n [getFinalColumnId]\n );\n\n const TableContextSetHeadColumnCommands = useCallback(\n (column: TableColumn, commands: TableHeadCellCommands) => {\n const data = localHeaderDataRef.current[getFinalColumnId(column)];\n if (data) {\n data.commands = commands;\n }\n },\n [getFinalColumnId]\n );\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const tableContextValue = useMemo(\n () => ({\n menuOpen,\n openMenuId,\n setMenuOpen: TableContextSetMenuOpen,\n setItemColumnChecked: TableContextSetItemColumnChecked,\n setItemColumnCheckDisabled: TableContextSetItemColumnCheckDisabled,\n setItemColumnCommands: TableContextSetItemColumnCommands,\n setHeadColumnChecked: TableContextSetHeadColumnChecked,\n setHeadColumnCommands: TableContextSetHeadColumnCommands,\n }),\n [\n TableContextSetHeadColumnChecked,\n TableContextSetHeadColumnCommands,\n TableContextSetItemColumnCheckDisabled,\n TableContextSetItemColumnChecked,\n TableContextSetItemColumnCommands,\n TableContextSetMenuOpen,\n menuOpen,\n openMenuId,\n ]\n );\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const isNoData = useMemo(() => !!sortableItems && sortableItems.length <= 0, [sortableItems]);\n const finalPagingHeight = useMemo(\n () => (paging && paging.total > 0 ? pagingHeight || 0 : 0),\n [paging, pagingHeight]\n );\n const stickyHeader = useMemo(() => !isNoData && initStickyHeader, [initStickyHeader, isNoData]);\n\n const style = useMemo((): CSSProperties => {\n if (fullHeight) {\n return {\n width: '100%',\n ...initStyle,\n flex: 1,\n justifyContent: 'flex-end',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n };\n } else {\n return { width: '100%', ...initStyle };\n }\n }, [initStyle, fullHeight]);\n\n const simpleBarStyle = useMemo((): CSSProperties => {\n if (fullHeight) {\n return {\n height: (containerHeight || 0) - (finalPagingHeight || 0) - 1,\n flex: 1,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n marginBottom: finalPagingHeight || 0,\n };\n } else {\n return { height, minHeight, maxHeight, marginBottom: -1 };\n }\n }, [fullHeight, containerHeight, finalPagingHeight, height, minHeight, maxHeight]);\n\n const tableStyle = useMemo((): CSSProperties | undefined => {\n if (fullHeight && isNoData) {\n return { flex: 1, height: (containerHeight || 0) - finalPagingHeight - 2 };\n }\n }, [fullHeight, isNoData, containerHeight, finalPagingHeight]);\n\n const pagingStyle = useMemo((): CSSProperties => {\n const style = { padding: '13px 0', borderTop: '1px solid rgba(224, 224, 224, 1)' };\n if (fullHeight) {\n return { position: 'sticky', ...style };\n }\n return style;\n }, [fullHeight]);\n\n const tableTopHead = useMemo(\n () =>\n finalColumns && (\n <TableTopHead\n caption={caption}\n rows={topHeadRows}\n columns={finalColumns}\n defaultAlign={defaultAlign}\n onCheckChange={handleHeadCheckChange}\n />\n ),\n [caption, defaultAlign, finalColumns, handleHeadCheckChange, topHeadRows]\n );\n\n const tableBody = useMemo(\n () =>\n finalColumns && (\n <TableBody>\n {sortableItems ? (\n sortableItems.length > 0 ? (\n <SortableContext items={sortableItems} strategy={verticalListSortingStrategy}>\n {sortableItems.map((item, idx) => (\n <TableBodyRow\n key={item.id}\n className={classNames(\n !!showOddColor && 'odd-color',\n !!showEvenColor && 'even-color',\n onGetBodyRowClassName ? onGetBodyRowClassName(item, idx) : undefined\n )}\n style={onGetBodyRowStyle ? onGetBodyRowStyle(item, idx) : undefined}\n sx={onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined}\n onGetColumnClassName={onGetBodyColumnClassName}\n onGetColumnStyle={onGetBodyColumnStyle}\n onGetColumnSx={onGetBodyColumnSx}\n hover\n id={item.id}\n index={idx}\n defaultAlign={defaultAlign}\n defaultEllipsis={defaultEllipsis}\n sortable={sortable}\n columns={finalColumns}\n item={item}\n onClick={onClick}\n onCheckChange={handleBodyCheckChange}\n />\n ))}\n </SortableContext>\n ) : (\n <StyledBodyRow>\n <TableCell colSpan={finalColumns.length} style={{ flex: 1 }}>\n {noData ? (\n noData\n ) : (\n <StyledNoDataDiv>\n <div>\n <Icon>error</Icon>\n </div>\n <div>검색된 정보가 없습니다.</div>\n </StyledNoDataDiv>\n )}\n </TableCell>\n </StyledBodyRow>\n )\n ) : undefined}\n </TableBody>\n ),\n [\n defaultAlign,\n defaultEllipsis,\n finalColumns,\n handleBodyCheckChange,\n noData,\n onClick,\n onGetBodyColumnClassName,\n onGetBodyColumnStyle,\n onGetBodyColumnSx,\n onGetBodyRowClassName,\n onGetBodyRowStyle,\n onGetBodyRowSx,\n showEvenColor,\n showOddColor,\n sortable,\n sortableItems,\n ]\n );\n\n const tableFooter = useMemo(\n () =>\n finalColumns &&\n !isNoData &&\n footer && (\n <TableFooter>\n <TableRow>\n {finalColumns.map((column, idx) => (\n <TableFooterCell key={idx} column={column} defaultAlign={defaultAlign} />\n ))}\n </TableRow>\n </TableFooter>\n ),\n [defaultAlign, finalColumns, footer, isNoData]\n );\n\n const tablePaging = useMemo(\n () =>\n finalColumns &&\n paging &&\n paging.total > 0 && (\n <Stack ref={fullHeight ? pagingHeightResizeDetector : undefined} alignItems={pagingAlign} style={pagingStyle}>\n <TablePagination\n className={pagination?.className}\n style={pagination?.style}\n sx={pagination?.sx}\n paging={paging}\n align={pagingAlign}\n onChange={handlePageChange}\n />\n </Stack>\n ),\n [\n finalColumns,\n fullHeight,\n handlePageChange,\n pagination?.className,\n pagination?.style,\n pagination?.sx,\n paging,\n pagingAlign,\n pagingHeightResizeDetector,\n pagingStyle,\n ]\n );\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return finalColumns ? (\n <TableContextProvider value={tableContextValue}>\n <Paper\n ref={fullHeight ? containerHeightDetector : undefined}\n className={classNames(\n 'Table',\n className,\n !!stickyHeader && 'sticky-header',\n !!fullHeight && 'full-height',\n !!showOddColor && 'odd-color',\n !!showEvenColor && 'even-color',\n !!sortable && 'sortable'\n )}\n variant='outlined'\n style={style}\n sx={sx}\n >\n <SimpleBar ref={simpleBarRef} style={simpleBarStyle}>\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <MuiTable stickyHeader={stickyHeader} sx={tableSx} style={tableStyle}>\n {tableTopHead}\n {tableBody}\n {tableFooter}\n </MuiTable>\n </DndContext>\n </SimpleBar>\n {tablePaging}\n </Paper>\n </TableContextProvider>\n ) : null;\n }\n);\n\nTable.displayName = 'Table';\nTable.defaultProps = TableDefaultProps;\n\nexport default Table;\n","import React from 'react';\nimport { TableProps, TableCommands, TableItem } from '../Table';\nimport { FormValueMap, SearchCommands, SearchProps } from '@pdg/react-form';\nimport { ReactNode } from 'react';\nimport { CommonSxProps } from '../@types';\n\nexport interface SearchTableData<T = TableItem> {\n items: TableProps<T>['items'];\n paging?: TableProps<T>['paging'];\n}\n\nexport interface SearchTableSearchProps extends Omit<SearchProps, 'ref' | 'color' | 'autoSubmit' | 'onSubmit'> {\n ref?: React.ForwardedRef<SearchCommands>;\n searchGroups?: ReactNode;\n}\n\nexport interface SearchTableTableProps<T = TableItem>\n extends Omit<TableProps<T>, 'ref' | 'items' | 'paging' | 'onPageChange'> {\n ref?: React.ForwardedRef<TableCommands<T>>;\n}\n\nexport interface SearchTableProps<T = TableItem> extends CommonSxProps {\n color?: SearchProps['color'];\n hash?: boolean;\n stickyHeader?: boolean;\n fullHeight?: boolean;\n search?: SearchTableSearchProps;\n table: SearchTableTableProps<T>;\n betweenSearchTableComponent?: ReactNode;\n onGetData?(data: FormValueMap): Promise<SearchTableData<T>>;\n onRequestHashChange?(hash: string): void;\n}\n\nexport const SearchTableDefaultProps = {};\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface SearchTableCommands<T = TableItem> {\n reload(page?: number): void;\n getLastLoadData(): FormValueMap;\n getSearch(): SearchCommands | undefined;\n getTable(): TableCommands<T> | undefined;\n}\n","import React, { CSSProperties, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { Grid } from '@mui/material';\nimport {\n SearchTableProps,\n SearchTableDefaultProps,\n SearchTableSearchProps,\n SearchTableCommands,\n SearchTableData,\n SearchTableTableProps,\n} from './SearchTable.types';\nimport {\n FormCheckValueItemCommands,\n FormDateRangePickerCommands,\n FormDateValueItemCommands,\n FormHidden,\n FormMonthPickerCommands,\n FormMonthRangePickerCommands,\n FormRangeValueItemNameCommands,\n FormValue,\n FormValueMap,\n FormYearRangePickerCommands,\n Search,\n SearchCommands,\n SearchGroup,\n} from '@pdg/react-form';\nimport { Table, TableCommands, TableItem } from '../Table';\nimport { equal, notEmpty } from '../@util';\nimport dayjs from 'dayjs';\n\ninterface HashValueMap {\n [key: string]: string;\n}\n\ninterface SearchInfo {\n ref?: SearchTableSearchProps['ref'];\n searchGroups?: SearchTableSearchProps['searchGroups'];\n props?: Omit<SearchTableSearchProps, 'ref' | 'searchGroups'>;\n}\n\ninterface TableInfo {\n ref?: SearchTableTableProps['ref'];\n props?: Omit<SearchTableTableProps, 'ref'>;\n}\n\ninterface WithForwardRefType<T = TableItem> extends React.FC<SearchTableProps<T>> {\n <T = TableItem>(\n props: SearchTableProps<T> & React.RefAttributes<SearchTableCommands<T>>\n ): ReturnType<React.FC<SearchTableProps<T>>>;\n}\n\nconst SearchTable: WithForwardRefType = React.forwardRef<SearchTableCommands, SearchTableProps>(\n (\n {\n color,\n hash,\n stickyHeader,\n fullHeight,\n search,\n table,\n betweenSearchTableComponent,\n onGetData,\n onRequestHashChange,\n // ---------------------------------------------------------------------------------------------------------------\n className,\n style: initStyle,\n sx,\n },\n ref\n ) => {\n const searchRef = useRef<SearchCommands>();\n const tableRef = useRef<TableCommands>();\n\n //------------------------------------------------------------------------------------------------------------------\n\n const getSearchInfo = useCallback((search: SearchTableProps['search']) => {\n const searchInfo: SearchInfo = {};\n if (search) {\n const { ref, searchGroups, ...props } = search;\n searchInfo.ref = ref;\n searchInfo.searchGroups = searchGroups;\n searchInfo.props = props;\n }\n return searchInfo;\n }, []);\n\n const getTableInfo = useCallback((table: SearchTableProps['table']) => {\n const tableInfo: TableInfo = {};\n if (table) {\n const { ref, ...props } = table;\n tableInfo.ref = ref;\n tableInfo.props = props;\n }\n return tableInfo;\n }, []);\n\n // Ref -------------------------------------------------------------------------------------------------------------\n\n const lastGetDataDataRef = useRef<FormValueMap>({});\n\n // State -----------------------------------------------------------------------------------------------------------\n\n const [isFirstSearchSubmit, setIsFirstSearchSubmit] = useState(true);\n\n const [tableData, setTableData] = useState<SearchTableData>();\n\n // searchInfo ------------------------------------------------------------------------------------------------------\n\n const searchInfoFirstUseEffect = useRef(true);\n const [searchInfo, setSearchInfo] = useState<SearchInfo>(() => getSearchInfo(search));\n useEffect(() => {\n if (searchInfoFirstUseEffect.current) {\n searchInfoFirstUseEffect.current = false;\n } else {\n setSearchInfo(getSearchInfo(search));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n // tableInfo -------------------------------------------------------------------------------------------------------\n\n const tableInfoFirstUseEffect = useRef(true);\n const [tableInfo, setTableInfo] = useState<TableInfo>(() => getTableInfo(table));\n useEffect(() => {\n if (tableInfoFirstUseEffect.current) {\n tableInfoFirstUseEffect.current = false;\n } else {\n setTableInfo(getTableInfo(table));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table]);\n\n // Function - getData ----------------------------------------------------------------------------------------------\n\n const getData = useCallback(\n (data: FormValueMap) => {\n lastGetDataDataRef.current = data;\n\n if (onGetData) {\n onGetData(data).then(setTableData);\n }\n },\n [onGetData]\n );\n\n // Function ----------------------------------------------------------------------------------------------------------\n\n const deHash = useCallback((): HashValueMap => {\n const values: HashValueMap = {};\n const hash = window.location.hash.substring(1);\n hash.replace(/([^=&]+)=([^&]*)/g, (substring, key, value) => {\n values[decodeURIComponent(key)] = decodeURIComponent(value);\n return substring;\n });\n return values;\n }, []);\n\n const hashToSearchValue = useCallback((): FormValueMap | undefined => {\n const commands = searchRef.current;\n if (commands) {\n commands.resetAll();\n\n const hashValues = deHash();\n Object.keys(hashValues).forEach((name) => {\n const value: FormValue = hashValues[name];\n if (name === 'page') {\n commands.setValue(name, Number(value) || 1);\n } else {\n const itemCommands = commands.getItem(name);\n if (itemCommands) {\n switch (itemCommands.getType()) {\n case 'FormCheckbox':\n if (notEmpty(value)) {\n const checkCommands = itemCommands as FormCheckValueItemCommands<any>;\n if (value.toString() === itemCommands.getValue()?.toString()) {\n checkCommands.setChecked(true);\n } else if (value.toString() === checkCommands.getUncheckedValue()?.toString()) {\n checkCommands.setChecked(false);\n }\n }\n break;\n case 'FormDatePicker':\n case 'FormDateTimePicker':\n case 'FormTimePicker':\n {\n if (notEmpty(value)) {\n const dateCommands = itemCommands as FormDateValueItemCommands;\n const format = dateCommands.getFormValueFormat();\n const itemValue = dayjs(value, format);\n itemCommands.setValue(itemValue.isValid() ? itemValue : null);\n } else {\n itemCommands.setValue(null);\n }\n }\n break;\n case 'FormDateRangePicker':\n {\n const dateRangePickerCommands = itemCommands as FormDateRangePickerCommands;\n const fromName = dateRangePickerCommands.getFormValueFromName();\n const toName = dateRangePickerCommands.getFormValueToName();\n const format = dateRangePickerCommands.getFormValueFormat();\n\n if (name === fromName) {\n if (notEmpty(value)) {\n const startValue = dayjs(value, format);\n dateRangePickerCommands.setFromValue(startValue.isValid() ? startValue : null);\n } else {\n dateRangePickerCommands.setFromValue(null);\n }\n } else if (name === toName) {\n if (notEmpty(value)) {\n const endValue = dayjs(value, format);\n dateRangePickerCommands.setToValue(endValue.isValid() ? endValue : null);\n } else {\n dateRangePickerCommands.setToValue(null);\n }\n }\n }\n break;\n case 'FormYearRangePicker':\n {\n const dateRangePickerCommands = itemCommands as FormYearRangePickerCommands;\n const fromName = dateRangePickerCommands.getFormValueFromName();\n const toName = dateRangePickerCommands.getFormValueToName();\n\n if (name === fromName) {\n dateRangePickerCommands.setFromValue(notEmpty(value) ? Number(value) : null);\n } else if (name === toName) {\n dateRangePickerCommands.setToValue(notEmpty(value) ? Number(value) : null);\n }\n }\n break;\n case 'FormMonthPicker':\n {\n const monthCommands = itemCommands as FormMonthPickerCommands;\n const yearName = monthCommands.getFormValueYearName();\n const monthName = monthCommands.getFormValueMonthName();\n\n if (name === yearName) {\n monthCommands.setYear(notEmpty(value) ? Number(value) : null);\n } else if (name === monthName) {\n monthCommands.setMonth(notEmpty(value) ? Number(value) : null);\n }\n }\n break;\n case 'FormMonthRangePicker':\n {\n const monthRangeCommands = itemCommands as FormMonthRangePickerCommands;\n const fromYearName = monthRangeCommands.getFormValueFromYearName();\n const fromMonthName = monthRangeCommands.getFormValueFromMonthName();\n const toYearName = monthRangeCommands.getFormValueToYearName();\n const toMonthName = monthRangeCommands.getFormValueToMonthName();\n\n if (name === fromYearName) {\n monthRangeCommands.setFromYear(notEmpty(value) ? Number(value) : null);\n } else if (name === fromMonthName) {\n monthRangeCommands.setFromMonth(notEmpty(value) ? Number(value) : null);\n } else if (name === toYearName) {\n monthRangeCommands.setToYear(notEmpty(value) ? Number(value) : null);\n } else if (name === toMonthName) {\n monthRangeCommands.setToMonth(notEmpty(value) ? Number(value) : null);\n }\n }\n break;\n default:\n commands.setValue(name, value);\n break;\n }\n }\n }\n });\n return commands.getAllFormValue();\n }\n }, [searchRef, deHash]);\n\n // Commands --------------------------------------------------------------------------------------------------------\n\n useLayoutEffect(() => {\n if (ref) {\n const commands: SearchTableCommands = {\n reload: (page?: number) => {\n if (page != null) {\n tableRef.current?.scrollToTop();\n }\n\n let finalData: FormValueMap;\n if (lastGetDataDataRef.current) {\n finalData = { ...lastGetDataDataRef.current };\n if (page != null) {\n searchRef.current?.setValue('page', page);\n\n finalData.page = page;\n }\n } else {\n if (hash) {\n hashToSearchValue();\n }\n\n if (page != null) {\n searchRef.current?.setValue('page', page);\n }\n\n finalData = searchRef.current?.getAllFormValue() || {};\n }\n\n getData(finalData);\n },\n getLastLoadData: () => lastGetDataDataRef.current || {},\n getSearch: () => searchRef.current,\n getTable: () => tableRef.current,\n };\n\n if (typeof ref === 'function') {\n ref(commands);\n } else {\n ref.current = commands;\n }\n }\n }, [ref, hash, lastGetDataDataRef, searchRef, tableRef, getData, hashToSearchValue]);\n\n //--------------------------------------------------------------------------------------------------------------------\n\n useEffect(() => {\n if (hash) {\n const data = hashToSearchValue();\n if (data) getData(data);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [window.location.hash]);\n\n //--------------------------------------------------------------------------------------------------------------------\n\n const hashChange = useCallback(\n (params: FormValueMap) => {\n if (onRequestHashChange) {\n const hashes: string[] = [];\n Object.keys(params).forEach((name) => {\n const value = params[name];\n if (name === 'page') {\n if (Number(value) > 1) {\n hashes.push(`${name}=${value}`);\n }\n } else {\n if (searchRef.current) {\n const itemCommands = searchRef.current.getItem(name);\n\n if (itemCommands) {\n let resetValue: FormValue | null = null;\n\n switch (itemCommands.getType()) {\n case 'FormDateRangePicker':\n case 'FormYearRangePicker':\n {\n const commands = itemCommands as FormRangeValueItemNameCommands;\n const itemName = itemCommands.getName();\n const fromName = commands.getFormValueFromName();\n const fromSuffix = commands.getFormValueFromNameSuffix();\n const toName = commands.getFormValueToName();\n const toSuffix = commands.getFormValueToNameSuffix();\n\n if (name === fromName) {\n resetValue = searchRef.current.getFormReset(itemName, fromSuffix);\n } else if (name === toName) {\n resetValue = searchRef.current.getFormReset(itemName, toSuffix);\n }\n }\n break;\n case 'FormMonthPicker':\n {\n const commands = itemCommands as FormMonthPickerCommands;\n const itemName = commands.getName();\n const yearName = commands.getFormValueYearName();\n const yearSuffix = commands.getFormValueYearNameSuffix();\n const monthName = commands.getFormValueMonthName();\n const monthSuffix = commands.getFormValueMonthNameSuffix();\n\n if (name === yearName) {\n resetValue = searchRef.current.getFormReset(itemName, yearSuffix);\n } else if (name === monthName) {\n resetValue = searchRef.current.getFormReset(itemName, monthSuffix);\n }\n }\n break;\n case 'FormMonthRangePicker':\n {\n const commands = itemCommands as FormMonthRangePickerCommands;\n const itemName = commands.getName();\n const fromYearName = commands.getFormValueFromYearName();\n const fromYearSuffix = commands.getFormValueFromYearNameSuffix();\n const fromMonthName = commands.getFormValueFromMonthName();\n const fromMonthSuffix = commands.getFormValueFromMonthNameSuffix();\n const toYearName = commands.getFormValueToYearName();\n const toYearSuffix = commands.getFormValueToYearNameSuffix();\n const toMonthName = commands.getFormValueToMonthName();\n const toMonthSuffix = commands.getFormValueToMonthNameSuffix();\n\n if (name === fromYearName) {\n resetValue = searchRef.current.getFormReset(itemName, fromYearSuffix);\n } else if (name === fromMonthName) {\n resetValue = searchRef.current.getFormReset(itemName, fromMonthSuffix);\n } else if (name === toYearName) {\n resetValue = searchRef.current.getFormReset(itemName, toYearSuffix);\n } else if (name === toMonthName) {\n resetValue = searchRef.current.getFormReset(itemName, toMonthSuffix);\n }\n }\n break;\n default:\n resetValue = searchRef.current.getFormReset(name);\n break;\n }\n\n if (resetValue != null && !equal(resetValue, value) && typeof value !== 'object') {\n hashes.push(`${name}=${encodeURIComponent(value)}`);\n }\n }\n }\n }\n });\n const finalHash = hashes.join('&');\n if (window.location.hash.substring(1) === finalHash) {\n getData(params);\n } else {\n onRequestHashChange(hashes.join('&'));\n }\n }\n },\n [onRequestHashChange, getData]\n );\n\n //------------------------------------------------------------------------------------------------------------------\n\n const handlePageChange = useCallback(\n (page: number) => {\n searchRef.current?.setValue('page', page);\n\n let finalData: FormValueMap | undefined;\n if (lastGetDataDataRef.current) {\n finalData = { ...lastGetDataDataRef.current };\n finalData.page = page;\n } else {\n finalData = searchRef.current?.getAllFormValue();\n }\n\n if (hash) {\n hashChange(finalData || {});\n } else {\n getData(finalData || {});\n }\n },\n [searchRef, hash, hashChange, getData]\n );\n\n const handleSearchSubmit = useCallback(\n (data: FormValueMap) => {\n tableRef.current?.scrollToTop();\n\n if (isFirstSearchSubmit) {\n setIsFirstSearchSubmit(false);\n if (!hash) {\n getData(data);\n }\n } else {\n searchRef.current?.setValue('page', 1);\n const finalData: FormValueMap = { ...data, page: 1 };\n if (hash) {\n hashChange(finalData);\n } else {\n getData(finalData);\n }\n }\n },\n [searchRef, hash, hashChange, getData, isFirstSearchSubmit]\n );\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const style = useMemo((): CSSProperties | undefined => {\n if (fullHeight) {\n return { ...initStyle, flex: 1, display: 'flex' };\n } else {\n return initStyle;\n }\n }, [initStyle, fullHeight]);\n\n const tableContainerStyle = useMemo((): CSSProperties | undefined => {\n if (fullHeight) {\n return { flex: 1, display: 'flex', flexDirection: 'column' };\n }\n }, [fullHeight]);\n\n //------------------------------------------------------------------------------------------------------------------\n\n return (\n <Grid\n container\n direction='column'\n spacing={1}\n className={classNames('SearchTable', className)}\n style={style}\n sx={sx}\n >\n <Grid item sx={{ display: searchInfo.searchGroups ? undefined : 'none' }}>\n <Search\n color={color}\n {...searchInfo.props}\n ref={(commands: SearchCommands) => {\n if (searchInfo.ref) {\n if (typeof searchInfo.ref === 'function') {\n searchInfo.ref(commands);\n } else {\n searchInfo.ref.current = commands;\n }\n }\n searchRef.current = commands || undefined;\n }}\n autoSubmit\n onSubmit={handleSearchSubmit}\n >\n <SearchGroup hidden>\n <FormHidden name='page' value={1} />\n </SearchGroup>\n {searchInfo.searchGroups}\n </Search>\n </Grid>\n {betweenSearchTableComponent && <Grid item>{betweenSearchTableComponent}</Grid>}\n <Grid item style={tableContainerStyle}>\n <Table\n {...tableInfo.props}\n stickyHeader={stickyHeader || tableInfo.props?.stickyHeader}\n fullHeight={fullHeight || tableInfo.props?.fullHeight}\n ref={(commands: TableCommands) => {\n if (tableInfo.ref) {\n if (typeof tableInfo.ref === 'function') {\n tableInfo.ref(commands);\n } else {\n tableInfo.ref.current = commands;\n }\n }\n tableRef.current = commands || undefined;\n }}\n items={tableData?.items}\n paging={tableData?.paging}\n onPageChange={handlePageChange}\n />\n </Grid>\n </Grid>\n );\n }\n);\n\nSearchTable.displayName = 'SearchTable';\nSearchTable.defaultProps = SearchTableDefaultProps;\n\nexport default SearchTable;\n","import { ButtonProps } from '@mui/material';\n\nexport interface TableButtonProps extends Omit<ButtonProps, 'size' | 'startIcon' | 'endIcon'> {\n icon?: string;\n startIcon?: string;\n endIcon?: string;\n}\n\nexport const TableButtonDefaultProps: Pick<TableButtonProps, 'variant' | 'color'> = {\n variant: 'outlined',\n color: 'primary',\n};\n","import { IconProps } from '@mui/material';\n\nexport interface TableIconProps extends IconProps {\n children: string;\n}\n\nexport const TableIconDefaultProps = {};\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { Icon } from '@mui/material';\nimport { TableIconProps as Props, TableIconDefaultProps } from './TableIcon.types';\n\nconst TableIcon = React.forwardRef<HTMLAnchorElement, Props>(({ className, children: initChildren, ...props }, ref) => {\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const children = useMemo(\n () => initChildren.replace(/[A-Z]/g, (letter, idx) => `${idx > 0 ? '_' : ''}${letter.toLowerCase()}`),\n [initChildren]\n );\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return (\n <Icon ref={ref} {...props} className={classNames('TableIcon', className)}>\n {children}\n </Icon>\n );\n});\n\nTableIcon.displayName = 'TableIcon';\nTableIcon.defaultProps = TableIconDefaultProps;\n\nexport default TableIcon;\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { Button } from '@mui/material';\nimport { TableButtonProps as Props, TableButtonDefaultProps } from './TableButton.types';\nimport TableIcon from '../TableIcon';\n\nconst TableButton = React.forwardRef<HTMLButtonElement, Props>(\n ({ children, className, sx: initSx, color, icon, startIcon, endIcon, onClick, ...props }, ref) => {\n const sx = useMemo(\n () => ({ minWidth: 0, px: !startIcon && !endIcon ? 0.7 : 1.7, ...initSx }),\n [endIcon, initSx, startIcon]\n );\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return (\n <Button\n ref={ref}\n className={classNames(className, 'TableButton')}\n type='button'\n size='small'\n sx={sx}\n color={color}\n onClick={onClick}\n startIcon={\n startIcon ? (\n <TableIcon fontSize='small' sx={{ mr: -0.5 }}>\n {startIcon}\n </TableIcon>\n ) : undefined\n }\n endIcon={\n endIcon ? (\n <TableIcon fontSize='small' sx={{ ml: -0.5 }}>\n {endIcon}\n </TableIcon>\n ) : undefined\n }\n {...props}\n >\n {icon && (\n <TableIcon fontSize='small' color={color}>\n {icon}\n </TableIcon>\n )}\n {children}\n </Button>\n );\n }\n);\n\nTableButton.displayName = 'TableButton';\nTableButton.defaultProps = TableButtonDefaultProps;\n\nexport default TableButton;\n","import { ButtonProps } from '@mui/material';\nimport { ReactElement } from 'react';\nimport { PopperPlacementType } from '@mui/base/Popper/Popper.types';\n\nexport interface TableMenuButtonProps extends Omit<ButtonProps, 'size' | 'startIcon' | 'endIcon' | 'onClick'> {\n icon?: string;\n startIcon?: string;\n endIcon?: string;\n placement?: PopperPlacementType;\n inModal?: boolean;\n zIndex?: number;\n menuList: ReactElement;\n}\n\nexport const TableMenuButtonDefaultProps: Pick<TableMenuButtonProps, 'variant' | 'color' | 'placement'> = {\n variant: 'outlined',\n color: 'primary',\n placement: 'bottom',\n};\n","import React, { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { Button, ClickAwayListener, Grow, Paper, Popper } from '@mui/material';\nimport { TableMenuButtonProps as Props, TableMenuButtonDefaultProps } from './TableMenuButton.types';\nimport TableIcon from '../TableIcon';\nimport useTableState from '../TableContext/useTableState';\n\nconst TableMenuButton = React.forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n className,\n sx: initSx,\n color,\n icon,\n startIcon,\n endIcon,\n placement,\n inModal,\n zIndex,\n menuList,\n ...props\n },\n ref\n ) => {\n // ID ----------------------------------------------------------------------------------------------------------------\n\n const buttonId = useId();\n const menuId = useId();\n\n // Use ---------------------------------------------------------------------------------------------------------------\n\n const { menuOpen, openMenuId, setMenuOpen } = useTableState();\n\n // Ref ---------------------------------------------------------------------------------------------------------------\n\n const anchorRef = useRef<HTMLButtonElement | null>();\n\n // State -------------------------------------------------------------------------------------------------------------\n\n const [open, setOpen] = useState(false);\n\n // Effect ------------------------------------------------------------------------------------------------------------\n\n useEffect(() => {\n if (open && menuOpen && openMenuId !== menuId) {\n setOpen(false);\n }\n }, [menuId, menuOpen, open, openMenuId]);\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const sx = useMemo(\n () => ({ minWidth: 0, px: !startIcon && !endIcon ? 0.7 : 1.7, ...initSx }),\n [endIcon, initSx, startIcon]\n );\n\n // Event Handler -----------------------------------------------------------------------------------------------------\n\n const handleClick = useCallback(() => {\n setOpen((old) => !old);\n if (!open) {\n setMenuOpen(true, menuId);\n } else {\n setMenuOpen(false, menuId);\n }\n }, [menuId, open, setMenuOpen]);\n\n const handleClose = useCallback(() => {\n if (open) {\n setOpen(false);\n setMenuOpen(false, menuId);\n }\n }, [menuId, open, setMenuOpen]);\n\n const handleListKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (open) {\n setOpen(false);\n setMenuOpen(false, menuId);\n }\n } else if (event.key === 'Escape') {\n if (open) {\n setOpen(false);\n setMenuOpen(false, menuId);\n }\n }\n },\n [menuId, open, setMenuOpen]\n );\n\n // Memo --------------------------------------------------------------------------------------------------------------\n\n const finalMenuList = useMemo(() => {\n return React.cloneElement(menuList, {\n autoFocusItem: open,\n id: menuId,\n 'aria-labelledby': buttonId,\n onKeyDown: handleListKeyDown,\n onClick: handleClose,\n });\n }, [buttonId, handleClose, handleListKeyDown, menuId, menuList, open]);\n\n // Render ----------------------------------------------------------------------------------------------------------\n\n return (\n <span>\n <Button\n ref={(r) => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(r);\n } else {\n ref.current = r;\n }\n }\n anchorRef.current = r;\n }}\n id={buttonId}\n aria-controls={open ? menuId : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n className={classNames(className, 'TableMenuButton')}\n type='button'\n size='small'\n sx={sx}\n color={color}\n onClick={handleClick}\n startIcon={\n startIcon ? (\n <TableIcon fontSize='small' sx={{ mr: -0.5 }}>\n {startIcon}\n </TableIcon>\n ) : undefined\n }\n endIcon={\n endIcon ? (\n <TableIcon fontSize='small' sx={{ ml: -0.5 }}>\n {endIcon}\n </TableIcon>\n ) : undefined\n }\n {...props}\n >\n {icon && (\n <TableIcon fontSize='small' color={color}>\n {icon}\n </TableIcon>\n )}\n {children}\n </Button>\n <Popper\n className='TableMenuButton-Popper'\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n placement={placement}\n transition\n style={{ zIndex: inModal ? (zIndex === undefined ? 1301 : zIndex) : zIndex }}\n >\n {({ TransitionProps, placement }) => {\n const placements = placement.split('-');\n let transformOrigin = '';\n if (placements[0] === 'left') {\n transformOrigin = 'right';\n // if (placements.length > 1) {\n // if (placements[1] === 'start') {\n // transformOrigin += ' top';\n // } else if (placements[1] === 'end') {\n // transformOrigin += ' bottom';\n // }\n // }\n } else if (placements[0] === 'right') {\n transformOrigin = 'left';\n // if (placements.length > 1) {\n // if (placements[1] === 'start') {\n // transformOrigin += ' top';\n // } else if (placements[1] === 'end') {\n // transformOrigin += ' bottom';\n // }\n // }\n } else if (placements[0] === 'top') {\n transformOrigin = 'bottom';\n // if (placements.length > 1) {\n // if (placements[1] === 'start') {\n // transformOrigin += ' left';\n // } else if (placements[1] === 'end') {\n // transformOrigin += ' right';\n // }\n // }\n } else if (placements[0] === 'bottom') {\n transformOrigin = 'top';\n // if (placements.length > 1) {\n // if (placements[1] === 'start') {\n // transformOrigin += ' left';\n // } else if (placements[1] === 'end') {\n // transformOrigin += ' right';\n // }\n // }\n } else {\n transformOrigin = 'top';\n }\n\n return (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin,\n }}\n >\n <Paper>\n <ClickAwayListener onClickAway={handleClose}>{finalMenuList}</ClickAwayListener>\n </Paper>\n </Grow>\n );\n }}\n </Popper>\n </span>\n );\n }\n);\n\nTableMenuButton.displayName = 'TableMenuButton';\nTableMenuButton.defaultProps = TableMenuButtonDefaultProps;\n\nexport default TableMenuButton;\n","import { ReactNode } from 'react';\nimport { BoxProps, GridProps, IconButtonProps, TypographyProps } from '@mui/material';\nimport { CommonSxProps } from '../@types';\n\nexport interface InfoTableInfo {\n [key: string]: any;\n}\n\nexport type InfoTableItemType =\n | 'text'\n | 'number'\n | 'tel'\n | 'url'\n | 'email'\n | 'date'\n | 'datetime'\n | 'date-hour'\n | 'date-minute'\n | 'company_no'\n | 'personal_no'\n | 'divider';\n\nexport interface InfoTableItem<T = InfoTableInfo> {\n icon?: string;\n label?: ReactNode;\n name?: keyof T;\n type?: InfoTableItemType;\n ellipsis?: boolean;\n className?: string;\n dateFormat?: string;\n dateTwoLine?: boolean;\n numberPrefix?: string;\n numberSuffix?: string;\n dividerColor?: TypographyProps['color'];\n dividerLine?: boolean;\n style?: CommonSxProps['style'];\n sx?: BoxProps['sx'];\n labelClassName?: string;\n labelColor?: TypographyProps['color'];\n labelStyle?: CommonSxProps['style'];\n labelSx?: BoxProps['sx'];\n valueClassName?: string;\n valueStyle?: CommonSxProps['style'];\n valueSx?: CommonSxProps['sx'];\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n clipboard?: boolean;\n clipboardIcon?: string;\n clipboardText?: string;\n clipboardProps?: Omit<IconButtonProps, 'children'>;\n onRender?(info: T): ReactNode;\n onRenderEmpty?(info: T): ReactNode;\n}\n\nexport type InfoTableItems<T = InfoTableInfo> = (InfoTableItem<T> | false | undefined | null)[];\n\nexport type InfoTableCols = 1 | 2 | 3 | 4 | 6 | 12;\n\nexport interface InfoTableProps<T = InfoTableInfo> {\n cols:\n | InfoTableCols\n | {\n xs?: InfoTableCols;\n sm?: InfoTableCols;\n md?: InfoTableCols;\n lg?: InfoTableCols;\n xl?: InfoTableCols;\n };\n spacing?: GridProps['spacing'];\n columnSpacing?: GridProps['spacing'];\n rowSpacing?: GridProps['spacing'];\n className?: string;\n style?: CommonSxProps['style'];\n sx?: CommonSxProps['sx'];\n labelClassName?: string;\n labelColor?: TypographyProps['color'];\n labelStyle?: CommonSxProps['style'];\n labelSx?: BoxProps['sx'];\n dividerColor?: TypographyProps['color'];\n valueClassName?: string;\n valueStyle?: CommonSxProps['style'];\n valueSx?: CommonSxProps['sx'];\n ellipsis?: boolean;\n valueUnderline?: boolean;\n info: T;\n items: InfoTableItems<T>;\n onCopyToClipboard?(item: InfoTableItem<T>, text: string): void;\n}\n\nexport const InfoTableDefaultProps: Pick<\n InfoTableProps,\n 'spacing' | 'columnSpacing' | 'rowSpacing' | 'labelColor' | 'dividerColor'\n> = {\n spacing: 2,\n rowSpacing: 3,\n labelColor: 'primary',\n dividerColor: 'gray',\n};\n","import { Box, IconButton, styled } from '@mui/material';\n\nexport const Label = styled(Box)`\n font-size: 12px;\n font-weight: bold;\n`;\n\nexport const ValueWrap = styled(Box)`\n margin-top: 3px;\n position: relative;\n display: flex;\n flex-direction: row;\n`;\n\nexport const Value = styled('div')`\n flex: 1;\n`;\n\nexport const ValueEllipsis = styled('div')`\n flex: 1;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const ValueClipboard = styled('div')``;\n\nexport const ClipboardIconButton = styled(IconButton)`\n margin-top: -10px;\n margin-bottom: -10px;\n`;\n\nexport const Line = styled('div')`\n border-top: 1px solid #efefef;\n height: 1px;\n flex: 1;\n`;\n","import React, { ReactNode, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { InfoTableProps as Props, InfoTableDefaultProps, InfoTableInfo } from './InfoTable.types';\nimport { ClipboardIconButton, Label, Line, Value, ValueClipboard, ValueEllipsis, ValueWrap } from './InfoTable.style';\nimport { Grid, Stack } from '@mui/material';\nimport {\n combineSx,\n companyNoAutoDash,\n empty,\n getTelAutoDash,\n notEmpty,\n numberWithThousandSeparator,\n personalNoAutoDash,\n typographyColorToSxColor,\n} from '../@util';\nimport TableIcon from '../TableIcon';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport dayjs from 'dayjs';\nimport { FormIcon } from '@pdg/react-form';\n\ninterface WithType<T = InfoTableInfo> extends React.FC<Props<T>> {\n <T = InfoTableInfo>(props: Props<T>): ReturnType<React.FC<Props<T>>>;\n}\n\nconst InfoTable: WithType = ({\n cols,\n spacing,\n columnSpacing,\n rowSpacing,\n className,\n style,\n sx,\n labelClassName,\n labelColor,\n labelStyle,\n labelSx,\n dividerColor,\n valueClassName,\n valueStyle,\n valueSx,\n ellipsis,\n valueUnderline,\n info,\n items,\n onCopyToClipboard,\n}: Props) => {\n const sizeProps = useMemo(() => {\n const value: { xs?: number; sm?: number; md?: number; lg?: number; xl?: number } = {};\n if (typeof cols === 'number') {\n value.xs = 12 / cols;\n } else {\n if (cols.xs) value.xs = 12 / cols.xs;\n if (cols.sm) value.sm = 12 / cols.sm;\n if (cols.md) value.md = 12 / cols.md;\n if (cols.lg) value.lg = 12 / cols.lg;\n if (cols.xl) value.xl = 12 / cols.xl;\n }\n return value;\n }, [cols]);\n\n return (\n <Grid\n container\n spacing={spacing}\n columnSpacing={columnSpacing}\n rowSpacing={rowSpacing}\n className={classNames('InfoTable', className)}\n style={style}\n sx={sx}\n >\n {items.map((item, idx) => {\n if (item) {\n const finalLabelColor = typographyColorToSxColor(\n item.type === 'divider' ? item.dividerColor || dividerColor : item.labelColor || labelColor\n );\n const finalLabelSx = combineSx(labelSx, item.labelSx, !!finalLabelColor && { color: finalLabelColor });\n const finalValueSx = combineSx(valueSx, item.valueSx);\n const valueUnderlineStyle = valueUnderline\n ? { borderBottom: '1px solid #efefef', paddingBottom: 5 }\n : undefined;\n\n const finalSizeProps = { ...sizeProps };\n if (item.xs) finalSizeProps.xs = item.xs;\n if (item.sm) finalSizeProps.sm = item.sm;\n if (item.md) finalSizeProps.md = item.md;\n if (item.lg) finalSizeProps.lg = item.lg;\n if (item.xl) finalSizeProps.xl = item.xl;\n\n let data: ReactNode | string | number | undefined = undefined;\n if (item.name !== undefined) {\n if (info[item.name] !== undefined) {\n if (info[item.name] instanceof Date) {\n data = dayjs(info[item.name]).format('YYYY-MM-DD HH:mm:ss');\n } else if (info[item.name] instanceof dayjs) {\n data = info[item.name].format('YYYY-MM-DD HH:mm:ss');\n } else {\n data = info[item.name];\n }\n }\n }\n\n if (item.onRender) {\n data = item.onRender(info);\n } else if (notEmpty(data)) {\n switch (item.type) {\n case 'number':\n if (typeof data === 'string' || typeof data === 'number') {\n data = numberWithThousandSeparator(data);\n\n if (item.numberPrefix) {\n data = (\n <>\n <span style={{ opacity: 0.5, marginRight: 2 }}>{item.numberPrefix}</span>\n {data}\n </>\n );\n }\n if (item.numberSuffix) {\n data = (\n <>\n {data}\n <span style={{ opacity: 0.5, marginLeft: 2 }}>{item.numberSuffix}</span>\n </>\n );\n }\n }\n break;\n case 'tel':\n if (typeof data === 'string') {\n data = getTelAutoDash(data);\n }\n break;\n case 'email':\n if (typeof data === 'string') {\n data = (\n <>\n <a href={`mailto:${data}`}>{data}</a>\n </>\n );\n }\n break;\n case 'url':\n if (typeof data === 'string' && data.toLowerCase().startsWith('http')) {\n data = (\n <>\n <a href={data} target='_blank'>\n {data}\n </a>\n </>\n );\n }\n break;\n case 'company_no':\n if (typeof data === 'string') {\n data = companyNoAutoDash(data);\n }\n break;\n case 'personal_no':\n if (typeof data === 'string') {\n data = personalNoAutoDash(data);\n }\n break;\n case 'date':\n if (typeof data === 'string' || typeof data === 'number') {\n data = dayjs(data, item.dateFormat).format('YYYY-MM-DD');\n }\n break;\n case 'datetime':\n if (typeof data === 'string' || typeof data === 'number') {\n const dt = dayjs(data, item.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {item.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH:mm:ss')}</span>\n </>\n );\n }\n break;\n case 'date-hour':\n if (typeof data === 'string' || typeof data === 'number') {\n const dt = dayjs(data, item.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {item.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH시')}</span>\n </>\n );\n }\n break;\n case 'date-minute':\n if (typeof data === 'string' || typeof data === 'number') {\n const dt = dayjs(data, item.dateFormat);\n data = (\n <>\n <span>{dt.format('YYYY-MM-DD')}</span>\n {item.dateTwoLine ? <br /> : ' '}\n <span style={{ opacity: 0.5 }}>{dt.format('HH시 MM분')}</span>\n </>\n );\n }\n break;\n }\n }\n if (empty(data)) data = item.onRenderEmpty ? item.onRenderEmpty(info) : <>&nbsp;</>;\n\n const copyToClipboardText =\n item.clipboardText || (typeof data === 'string' ? data : typeof data === 'number' ? data.toString() : '');\n\n return item.type === 'divider' ? (\n <Grid key={idx} item xs={12}>\n <Stack direction='row' spacing={0.5} alignItems='center'>\n {item.icon && (\n <FormIcon sx={{ color: item.dividerColor || dividerColor }} fontSize='small'>\n {item.icon}\n </FormIcon>\n )}\n {item.label && (\n <Label\n className={classNames(labelClassName, item.labelClassName)}\n style={{ ...item.labelStyle, ...labelStyle }}\n sx={finalLabelSx}\n >\n {item.label}\n </Label>\n )}\n {item.dividerLine && (\n <>\n {item.icon || item.label ? (\n <div style={{ flex: 1, paddingLeft: 5 }}>\n <Line />\n </div>\n ) : (\n <Line />\n )}\n </>\n )}\n </Stack>\n </Grid>\n ) : (\n <Grid key={idx} item {...finalSizeProps} className={item.className} style={item.style} sx={item.sx}>\n <Stack direction='row' spacing={0.5} alignItems='center'>\n {item.icon && (\n <FormIcon sx={{ color: finalLabelColor }} fontSize='small'>\n CalendarMonth\n </FormIcon>\n )}\n <Label\n className={classNames(labelClassName, item.labelClassName)}\n style={{ ...item.labelStyle, ...labelStyle }}\n sx={finalLabelSx}\n >\n {item.label}\n </Label>\n </Stack>\n <ValueWrap\n className={classNames(valueClassName, item.valueClassName)}\n style={{ ...valueStyle, ...item.valueStyle, ...valueUnderlineStyle }}\n sx={finalValueSx}\n >\n {item.ellipsis || ellipsis ? <ValueEllipsis>{data}</ValueEllipsis> : <Value>{data}</Value>}\n {item.clipboard && notEmpty(copyToClipboardText) && (\n <ValueClipboard>\n <CopyToClipboard\n text={copyToClipboardText}\n onCopy={onCopyToClipboard ? () => onCopyToClipboard(item, copyToClipboardText) : undefined}\n >\n <ClipboardIconButton size='small' color='primary' {...item.clipboardProps}>\n <TableIcon>{item.clipboardIcon || 'ContentPaste'}</TableIcon>\n </ClipboardIconButton>\n </CopyToClipboard>\n </ValueClipboard>\n )}\n </ValueWrap>\n </Grid>\n );\n }\n })}\n </Grid>\n );\n};\n\nInfoTable.displayName = 'InfoTable';\nInfoTable.defaultProps = InfoTableDefaultProps;\n\nexport default InfoTable;\n"],"names":["StyledBodyRow","styled","TableRow","lighten","templateObject_1","createContext","useContext","TableCell","useMemo","useCallback","Box","useState","useEffect","Checkbox","Tooltip","sortable","useSortable","Stack","Pagination","useTheme","useRef","useResizeDetector","TableHead","useSensors","useSensor","MouseSensor","TouchSensor","KeyboardSensor","sortableKeyboardCoordinates","useAutoUpdateLayoutState","uuid","useLayoutEffect","arrayMove","TableBody","SortableContext","verticalListSortingStrategy","Icon","TableFooter","Paper","DndContext","closestCenter","MuiTable","Grid","Search","SearchGroup","FormHidden","Button","useId","Popper","Grow","ClickAwayListener","IconButton","FormIcon","CopyToClipboard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyHa,IAAA,iBAAiB,GAAqE;AACjG,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,WAAW,EAAE,EAAE;EC1HV,IAAMA,eAAa,GAAGC,eAAM,CAACC,iBAAQ,CAAC,CAAC,UAAC,EAAS,EAAA;AAAP,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,QAAC;AAC5D,QAAA,0CAA0C,EAAE;AAC1C,YAAA,eAAe,EAAEC,gBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,eAAe,EAAEA,gBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,SAAA;KACF,EAAC;AAP2D,CAO3D,CAAC,CAAC;AAEG,IAAM,eAAe,GAAGF,eAAM,CAAC,KAAK,CAAC,CAAAG,kBAAA,KAAAA,kBAAA,GAAA,oBAAA,CAAA,CAAA,uMAAA,CAAA,EAAA,CAAA,uMAY3C,CAAA,CAAA,CAAA,CAAA,CAAC;uBCHK,IAAM,wBAAwB,GAAG,EAAE,CC0P1C,MAAM,GAAG,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACvC,EAAE,SAAS,EAAE;AACb,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM;AACZ,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,OAAO,GAAG,SAAS,CAAC;AACpB,MAAM,OAAO,cAAc,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AACpG,KAAK;AACL;AACA,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM;AACZ,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,OAAO,GAAG,SAAS,CAAC;AACpB,MAAM,OAAO,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;AAC7D,KAAK;AACL;AACA,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1F,KAAK;AACL;AACA,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,MAAM,IAAI;AACV,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,OAAO,GAAG,IAAI,CAAC;AACf,MAAM,OAAO,QAAQ,GAAG,GAAG,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AACxD,KAAK;AACL;AACA,GAAG;AACH,CAAC,CAAC,CChUF,IAAM,KAAK,GAAG,UAAU,CAAM,EAAA;IAC5B,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,IAAA,IAAI,CAAC,IAAI,IAAI,EAAE;QACb,MAAM,GAAG,IAAI,CAAC;KACf;AAAM,SAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAChC,QAAA,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;KACnB;AAAM,SAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAChC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AACpB,YAAA,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;SACzB;AAAM,aAAA,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE;YAC/B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;SACzC;KACF;AACD,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAU,CAAM,EAAA;AAC/B,IAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,IAAM,KAAK,GAAG,UAAC,EAAO,EAAE,EAAO,EAAA;IAC7B,IAAI,EAAE,KAAK,EAAE;AAAE,QAAA,OAAO,IAAI,CAAC;AAC3B,IAAA,IAAI,OAAO,EAAE,KAAK,OAAO,EAAE;AAAE,QAAA,OAAO,KAAK,CAAC;AAC1C,IAAA,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;AAAE,QAAA,OAAO,KAAK,CAAC;AAC3C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAC1C,QAAA,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK,CAAC;AAC1C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;SACnC;KACF;SAAM;QACL,OAAO,EAAE,KAAK,EAAE,CAAC;KAClB;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CCjCK,SAAU,2BAA2B,CAAC,CAAkB,EAAA;IAC5D,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AAC5D,CCEgB,SAAA,mBAAmB,CAAC,MAAmB,EAAE,YAAkC,EAAA;AACzF,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AAC/C,QAAA;AACE,YAAA,OAAO,MAAM,CAAC,KAAK,IAAI,YAAY,CAAC;KACvC;AACH,CAAC;SAEe,SAAS,GAAA;IAAC,IAAwC,EAAA,GAAA,EAAA,CAAA;SAAxC,IAAwC,EAAA,GAAA,CAAA,EAAxC,EAAwC,GAAA,SAAA,CAAA,MAAA,EAAxC,EAAwC,EAAA,EAAA;QAAxC,EAAwC,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;IAChE,IAAM,OAAO,GAAwB,EAAE,CAAC;AACxC,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,QAAA,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,IAAI,OAAO,CAAC,IAAI,CAAA,KAAA,CAAZ,OAAO,GAAU,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAlD,EAAkD,CAAC,CAAC;KACvE;AACD,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAEK,SAAU,wBAAwB,CAAC,KAA+B,EAAA;AACtE,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxE,OAAO,EAAA,CAAA,MAAA,CAAG,KAAK,EAAA,OAAA,CAAO,CAAC;SACxB;AAAM,aAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AAC3B,YAAA,OAAO,cAAc,CAAC;SACvB;aAAM;AACL,YAAA,OAAO,KAAK,CAAC;SACd;KACF;SAAM;AACL,QAAA,OAAO,KAAK,CAAC;KACd;AACH,CCjCM,SAAU,cAAc,CAAC,GAA8B,EAAA;IAC3D,IAAI,GAAG,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI,CAAC;IAE7B,IAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACxC,IAAA,IAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;AAEzD,IAAA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9E,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAA,IAAI,MAAM,CAAC;IAEX,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,QAAA,KAAK,IAAI;YACP,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;AACR,QAAA,KAAK,IAAI,CAAC;AACV,QAAA,KAAK,IAAI,CAAC;AACV,QAAA,KAAK,IAAI;YACP,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;AACR,QAAA;YACE,MAAM,GAAG,CAAC,CAAC;KACd;IAED,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACjD,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE;YACxB,GAAG,GAAG,GAAG,CAAC;SACX;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;YACnC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,GAAG,IAAI,GAAG,CAAC;AACX,YAAA,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC3B;aAAM;YACL,GAAG,GAAG,GAAG,CAAC;SACX;KACF;AAAM,SAAA,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE;QAC/B,GAAG,GAAG,GAAG,CAAC;KACX;SAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;QACnC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,IAAI,GAAG,CAAC;AACX,QAAA,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC3B;SAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;QACnC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,IAAI,GAAG,CAAC;QACX,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,GAAG,IAAI,GAAG,CAAC;QACX,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC/B;SAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;QACnC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,IAAI,GAAG,CAAC;QACX,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,GAAG,IAAI,GAAG,CAAC;QACX,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC/B;SAAM;QACL,GAAG,GAAG,GAAG,CAAC;KACX;IAED,IAAI,UAAU,EAAE;AACd,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;YACzB,GAAG,IAAI,GAAG,CAAC;SACZ;KACF;AAED,IAAA,OAAO,GAAG,CAAC;AACb,CCjEA;;;;AAIsH;AAChH,SAAU,iBAAiB,CAAC,SAAiB,EAAA;IACjD,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC9C,IAAA,IAAM,MAAM,GAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,IAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CCXA;;;;AAIsH;AAChH,SAAU,kBAAkB,CAAC,UAAkB,EAAA;IACnD,IAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC/C,IAAA,IAAM,MAAM,GAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CCKO,IAAM,wBAAwB,GAAsB;AACzD,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,UAAU,EAAE,SAAS;;AAErB,IAAA,WAAW,iBAAK;AAChB,IAAA,oBAAoB,iBAAK;AACzB,IAAA,0BAA0B,iBAAK;AAC/B,IAAA,qBAAqB,iBAAK;AAC1B,IAAA,oBAAoB,iBAAK;AACzB,IAAA,qBAAqB,iBAAK;;CAE3B,CCvBD,IAAM,YAAY,GAAGC,mBAAa,CAAoB,wBAAwB,CAAC,CCCjE,SAAU,aAAa,GAAA;AACnC,IAAA,IAAM,KAAK,GAAGC,gBAAU,CAAC,YAAY,CAAC,CAAC;AACvC,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;AACD,IAAA,OAAO,KAAK,CAAC;AACf,CCFA,IAAM,eAAe,GAAGL,eAAM,CAACM,kBAAS,CAAC,CAAAH,kBAAA,KAAAA,kBAAA,GAAA,oBAAA,CAAA,CAAA,oJAAA,CAAA,EAAA,CAAA,oJAQxC,CAAA,CAAA,CAAA,CAAA,CAAC;AAEF,IAAM,eAAe,GAAmC,UAAC,EAYxD,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACG,aAAa,GAAA,EAAA,CAAA,SAAA,EACjB,SAAS,GAAA,EAAA,CAAA,KAAA,EACZ,MAAM,GAAA,EAAA,CAAA,EAAA,EACV,IAAI,UAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,YAAY,GAAA,EAAA,CAAA,YAAA,EACK,mBAAmB,GAAA,EAAA,CAAA,eAAA,EACpC,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,OAAO,GAAA,EAAA,CAAA,OAAA,CAAA;AAIC,IAAA,IAAA,QAAQ,GAAK,aAAa,EAAE,SAApB,CAAqB;;IAIrC,IAAM,KAAK,GAAGI,aAAO,CAAC,cAAM,OAAA,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA,EAAA,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/F,IAAM,QAAQ,GAAGA,aAAO,CACtB,YAAA;QACE,OAAA,IAAI,KAAK,MAAM;aACd,MAAM,CAAC,QAAQ;AACd,iBAAC,MAAM,CAAC,IAAI,KAAK,KAAK;oBACpB,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACxB,MAAM,CAAC,IAAI,KAAK,SAAS;AACzB,qBAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;KAAA,EACjE,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,CACpC,CAAC;IAEF,IAAM,SAAS,GAAGA,aAAO,CAAC,YAAA;;AACxB,QAAA,IAAI,SAAqC,CAAC;AAC1C,QAAA,IAAI,YAAwC,CAAC;QAE7C,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;AACT,gBAAA,SAAS,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;gBACnC,YAAY,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,IAAG,MAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE,GAAG,SAAS,CAAC;gBACvF,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC7B,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACjC,oBAAA,YAAY,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;iBACvF;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,SAAS,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;gBACrC,YAAY,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,IAAG,MAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE,GAAG,SAAS,CAAC;gBAC3F,MAAM;SACT;AAED,QAAA,IAAI,SAAS,IAAI,YAAY,EAAE;YAC7B,OAAO,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;SAC3D;aAAM;AACL,YAAA,OAAO,aAAa,CAAC;SACtB;AACH,KAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/C,IAAM,KAAK,GAAGA,aAAO,CAAC,YAAA;;AACpB,QAAA,IAAI,KAA6B,CAAC;AAClC,QAAA,IAAI,QAAgC,CAAC;QAErC,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;gBAC3B,QAAQ,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,IAAG,MAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,GAAG,SAAS,CAAC;gBAC3E,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACrB,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACjC,oBAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;iBAC3E;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;gBAC7B,QAAQ,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,IAAG,MAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,GAAG,SAAS,CAAC;gBAC/E,MAAM;SACT;QAED,OACK,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,SAAS,KACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,MAAM,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,EAC9E,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,EAC9B,CAAA,EAAA,KAAK,CACL,EAAA,QAAQ,CACX,CAAA;AACJ,KAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpD,IAAM,EAAE,GAAGA,aAAO,CAAC,YAAA;;AACjB,QAAA,IAAI,EAAuB,CAAC;AAC5B,QAAA,IAAI,KAA0B,CAAC;AAC/B,QAAA,IAAI,SAA8B,CAAC;QAEnC,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;AACT,gBAAA,EAAE,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,CAAC;gBACrB,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,IAAG,MAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,GAAG,SAAS,CAAC;gBAClE,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBACf,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACjC,oBAAA,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;iBAClE;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,EAAE,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,CAAC;gBACvB,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,IAAG,MAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,GAAG,SAAS,CAAC;gBACtE,MAAM;SACT;AAED,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAElB,IAAM,OAAO,GAMT,EAAE,CAAC;AACP,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC;AAC5F,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC;AAC5F,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC;AAC5F,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC;AAC5F,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC;AAC5F,YAAA,SAAS,GAAG,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC;SACzB;QAED,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,KAAK;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,QAAA,IAAI,MAAM;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAI,SAAS;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEtC,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,gBAAA,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;aAClB;iBAAM;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,EAAE,EAAA,EAAK,OAAA,OAAO,EAAE,KAAK,QAAQ,GAAA,CAAC,EAAE;AAChD,oBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAC,GAAW,EAAE,EAAU,EAAA;AAC3C,wBAAA,GAAG,GAAQ,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,GAAG,CAAK,EAAA,EAAE,CAAE,CAAC;AACxB,wBAAA,OAAO,GAAG,CAAC;qBACZ,EAAE,EAAE,CAAC,CAAC;iBACR;aACF;SACF;AACH,KAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;;AAIxC,IAAA,IAAM,WAAW,GAAGC,iBAAW,CAC7B,UAAC,CAAyC,EAAA;AACxC,QAAA,IACE,CAAC,QAAQ;YACT,MAAM,CAAC,IAAI,KAAK,OAAO;YACvB,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,MAAM,CAAC,IAAI,KAAK,SAAS;AACzB,YAAA,MAAM,CAAC,IAAI,KAAK,KAAK,EACrB;YACA,CAAC,CAAC,eAAe,EAAE,CAAC;AAEpB,YAAA,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACjC,oBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,wBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qBAC7B;yBAAM;AACL,wBAAA,IAAI,OAAO;AAAE,4BAAA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qBACnC;iBACF;aACF;SACF;AACH,KAAC,EACD,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAC/C,CAAC;;AAIF,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,UAAU,CACnB,SAAS,EACT,iBAAiB,EACjB,QAAQ,IAAI,UAAU,EACtB,MAAM,CAAC,IAAI,GAAG,cAAe,CAAA,MAAA,CAAA,MAAM,CAAC,IAAI,CAAE,GAAG,KAAK,CACnD,EACD,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,IAAI,KAAK,MAAM,GAAG,WAAW,GAAG,SAAS,EAAA,EAEjD,QAAQ,CACO,EAClB;AACJ,CAAC,CAAC;uBCvMF,IAAM,gBAAgB,GAAGR,eAAM,CAACS,YAAG,CAAC,CAAAN,kBAAA,KAAAA,kBAAA,GAAA,oBAAA,CAAA,CAAA,uDAAA,CAAA,EAAA,CAAA,uDAInC,CAAA,CAAA,CAAA,CAAA,CAAC;AAEF,IAAM,aAAa,GAAoB,UAAC,EAWvC,EAAA;;QAVC,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAE,GAAA,EAAA,CAAA,EAAA,EACF,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;AAIP,IAAA,IAAA,EAAwF,GAAA,aAAa,EAAE,EAArG,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EAAE,0BAA0B,GAAA,EAAA,CAAA,0BAAA,EAAE,qBAAqB,2BAAoB,CAAC;;IAIxG,IAAA,EAAA,GAAwBO,cAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;IACxC,IAAA,EAAA,GAAoCA,cAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;;AAI1D,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,UAAU,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;AACtE,YAAA,gBAAgB,CAAC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;SACjF;AAED,QAAA,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE;AAClC,YAAA,UAAU,YAAC,OAAgB,EAAA;AACzB,gBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC3B,UAAU,CAAC,OAAO,CAAC,CAAC;iBACrB;aACF;AACD,YAAA,gBAAgB,YAAC,QAAiB,EAAA;AAChC,gBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC3B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;iBAC5B;aACF;AACF,SAAA,CAAC,CAAC;KACJ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAE1C,IAAAA,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SAC7C;;AAEH,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAEd,IAAAA,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;SACnF;;AAEH,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;;AAIpB,IAAA,IAAM,QAAQ,GAAGJ,aAAO,CAAC,YAAA,EAAM,QAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,EAAnD,EAAoD,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5G,IAAM,wBAAwB,GAAGA,aAAO,CAAC,YAAA;AACvC,QAAA,QAAQ,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/C,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,QAAQ,CAAC;AAClB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA;AACE,gBAAA,OAAO,OAAO,CAAC;SAClB;AACH,KAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3B,IAAM,IAAI,GAAGA,aAAO,CAAC,YAAA;;AACnB,QAAA,IAAI,IAAI,CAAC;AACT,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;AAAM,iBAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACtB,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM;gBACL,IAAI,GAAG,SAAS,CAAC;aAClB;SACF;AAED,QAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,QAAQ;gBACX,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxD,oBAAA,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;iBAC1C;AACD,gBAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,oBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,EAAA,EAAG,MAAM,CAAC,YAAY,CAAQ;wBAC1E,IAAI,CACJ,CACJ,CAAC;iBACH;AACD,gBAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,oBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;wBACG,IAAI;AACL,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,IAAG,MAAM,CAAC,YAAY,CAAQ,CACzE,CACJ,CAAC;iBACH;gBACD,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC7B;gBACD,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBAChC;gBACD,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;iBACjC;gBACD,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,IACF,KAAC,CAAA,aAAA,CAAAE,YAAG,EAAC,EAAA,SAAS,EAAC,yBAAyB,EAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,eAAe,EAAE,CAAA,EAAA,EAAA;AACjG,oBAAA,KAAA,CAAA,aAAA,CAACG,iBAAQ,EAAA,EACP,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,UAAC,CAAC,EAAE,UAAU,EAAA;4BACtB,UAAU,CAAC,UAAU,CAAC,CAAC;4BACvB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;4BAC/D,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;yBAC1D,EAAA,CACD,CACE,CACP,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,IACF,KAAC,CAAA,aAAA,CAAAH,YAAG,IAAC,SAAS,EAAC,0BAA0B,EAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,eAAe,EAAE,GAAA,EAAA,EACjG,IAAI,CACD,CACP,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EACf,SAAS,EAAC,2BAA2B,EACrC,cAAc,EAAE,wBAAwB,EACxC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,CAAnB,EAAmB,IAEzD,IAAI,CACY,CACpB,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,KAAK;gBACR;oBACE,IAAM,GAAG,GAAG,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAC,EAAE,EAAA,CAAG,CAAC;oBAC5F,IAAM,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,IAAG,CAAA,EAAA,GAAA,MAAM,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,GAAG,MAAM,CAAC;AAE3F,oBAAA,IAAI,IACF,KACE,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,OAAO,EACL,QAAQ;AACN,8BAAE,SAAS;8BACT,UAAC,CAAsC,EAAA;gCACrC,CAAC,CAAC,eAAe,EAAE,CAAC;6BACrB,EAAA;AAGP,wBAAA,KAAA,CAAA,aAAA,CAACI,gBAAO,EACN,QAAA,CAAA,EAAA,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,IAAG,GAAG,CAAO,EAC/D,EAAA,MAAM,CAAC,YAAY,EAAA,EACvB,SAAS,EAAE,SAAS,EAEnB,CAAA,EAAA,GAAG,CACI,CACR,CACL,CAAC;iBACH;gBACD,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC5D;gBACD,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,IAAI,EAAE;oBACR,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1C,oBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;wBACrC,MAAM,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAClC,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,CAC5D,CACJ,CAAC;iBACH;gBACD,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,IAAI,EAAE;oBACR,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1C,oBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;wBACrC,MAAM,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAClC,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ,CACvD,CACJ,CAAC;iBACH;gBACD,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,IAAI,EAAE;oBACR,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1C,oBAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;wBACrC,MAAM,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAClC,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAQ,CAC3D,CACJ,CAAC;iBACH;gBACD,MAAM;SACT;AAED,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;YACzB,IAAI,OAAO,SAAW,CAAC;AACvB,YAAA,IAAI,MAAM,CAAC,YAAY,EAAE;gBACvB,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC5C;YACD,IAAI,OAAO,EAAE;gBACX,IAAI,IACF,KAAA,CAAA,aAAA,CAACA,gBAAO,EAAA,QAAA,CAAA,EAAC,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,OAAO,EAAA,EAAM,MAAM,CAAC,YAAY,CAAA,EAC/E,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IACzB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAC1B,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAQ,KAEnB,IAAI,CACL,KAED,KAAO,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAA,IAAI,CAAQ,CACpB,CACO,CACX,CAAC;aACH;SACF;AACD,QAAA,OAAO,IAAI,CAAC;AACd,KAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAC,CAAC;;AAIrG,IAAA,IAAM,WAAW,GAAGL,iBAAW,CAC7B,UAAC,IAAe,EAAE,KAAa,EAAA;AAC7B,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,OAAO;AAAE,gBAAA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;AACH,KAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;;AAIF,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EACd,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,EACjD,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,WAAW,GAAG,SAAS,EAE3D,EAAA,CAAC,QAAQ,IAAI,IAAI,CACF,EAClB;AACJ,CAAC,CAAC;uBCvSK,IAAM,aAAa,GAAGR,eAAM,CAACC,iBAAQ,CAAC,CAAC,UAAC,EAAS,EAAA;AAAP,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,QAAC;AAC5D,QAAA,0CAA0C,EAAE;AAC1C,YAAA,eAAe,EAAEC,gBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,eAAe,EAAEA,gBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,SAAA;KACF,EAAC;AAP2D,CAO3D,CAAC,CAAC;AAEJ,IAAM,YAAY,GAAoB,UAAC,EAkBtC,EAAA;AAjBC,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA;;AAEL,IAAA,EAAE,GAAA,EAAA,CAAA,EAAA,EACF,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,eAAe,GAAA,EAAA,CAAA,eAAA,EACfY,UAAQ,GAAA,EAAA,CAAA,QAAA,EACR,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,oBAAoB,0BAAA,EACpB,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,aAAa,GAAA,EAAA,CAAA,aAAA;;IAEV,KAAK,GAAA,MAAA,CAAA,EAAA,EAjB6B,gMAkBtC,CADS,CAAA;IAEF,IAAA,EAAA,GAA+DC,oBAAW,CAAC,EAAE,EAAE,EAAA,EAAA,EAAE,CAAC,EAAhF,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAwB,CAAC;IAEzF,IAAM,UAAU,GAAGR,aAAO,CACxB,YAAA;AACE,QAAA,OAAAO,UAAQ;AACN,oCACO,KAAK,CAAA,EAAA,EACR,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC5C,UAAU,YAAA,EAEd,CAAA,GAAE,KAAK,CAAA;KAAA,EACX,CAACA,UAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CACzC,CAAC;IAEF,IAAM,aAAa,GAAGP,aAAO,CAC3B,YAAA;AACE,QAAA,OAAAO,UAAQ;cACL,QAAA,CAAA,QAAA,CAAA,EACG,GAAG,EAAE,UAAU,EAAA,EACZ,UAAU,CAAA,EACV,SAAS,CAAA,GAEd,EAAE,CAAA;KAAA,EACR,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAEA,UAAQ,CAAC,CAC9C,CAAC;AAEF,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,QAAA,CAAA,EAAC,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAM,EAAA,KAAK,EAAM,aAAa,CAC7G,EAAA,OAAO,CAAC,GAAG,CAAC,UAAC,MAAmB,EAAE,SAAS,EAAK,EAAA,QAC/C,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAE,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,EACvF,EAAE,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,EAClE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,EAC3E,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,CAAA,EAb6C,EAchD,CAAC,CACY,EAChB;AACJ,CAAC,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAC1C,YAAY,CAAC,YAAY,GAAG,wBAAwB,CCjFpD,IAAM,eAAe,GAAmC,UAAC,EAAwB,EAAA;QAAtB,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;IAC7E,IAAM,IAAI,GAAGP,aAAO,CAAC,YAAA;;AACnB,QAAA,IAAI,MAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE;AAC3B,YAAA,OAAO,MAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;SAClC;aAAM;AACL,YAAA,OAAO,MAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;SAC7B;AACH,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,QACE,oBAAC,eAAe,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,iBAAiB,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAChG,EAAA,IAAI,CACW,EAClB;AACJ,CAAC,CCbD,IAAM,eAAe,GAAmC,UAAC,EAAiD,EAAA;AAA/C,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,EAAE,GAAA,EAAA,CAAA,EAAA,EAAE,MAAM,YAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AACtG,IAAA,QACE,KAAC,CAAA,aAAA,CAAAS,cAAK,EAAC,EAAA,UAAU,EAAE,KAAK,EAAA;AACtB,QAAA,KAAA,CAAA,aAAA,CAACC,mBAAU,EACT,EAAA,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,IAAI,EAAE,MAAM,CAAC,YAAY,EACzB,KAAK,EAAC,SAAS,EACf,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACnD,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,UAAC,CAAC,EAAE,IAAI,EAAA;AAChB,gBAAA,IAAI,QAAQ;oBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC9B,EAAA,CACD,CACI,EACR;AACJ,CAAC,CCjBD,IAAM,oBAAoB,GAAoB,UAAC,EAAmB,EAAA;QAAjB,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAC9D,OAAO,KAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,EAAG,QAAQ,CAAyB,CAAC;AACjF,CAAC,CCeM,IAAM,wBAAwB,GAAG,EAAE,CCnBnC,IAAM,sBAAsB,GAAGjB,eAAM,CAACC,iBAAQ,CAAC,CAAC,UAAC,EAAS,EAAA;AAAP,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,QAAC;AACrE,QAAA,MAAM,EAAE;AACN,YAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AACxC,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA;KACF,EAAC;AANoE,CAMpE,CAAC,CCFH,IAAM,aAAa,GAAiC,UAAC,EAA4C,EAAA;;QAA1C,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,GAAG,GAAA,EAAA,CAAA,GAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;IAGvF,IAAA,EAAA,GAAkD,aAAa,EAAE,EAA/D,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EAAE,qBAAqB,GAAA,EAAA,CAAA,qBAAoB,CAAC;;IAIlE,IAAA,EAAA,GAAwBS,cAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;IACxC,IAAA,EAAA,GAAoCA,cAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;;AAI1D,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACvC;KACF,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE5C,IAAAA,eAAS,CAAC,YAAA;QACR,qBAAqB,CAAC,MAAM,EAAE;AAC5B,YAAA,UAAU,YAAC,OAAgB,EAAA;AACzB,gBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC3B,UAAU,CAAC,OAAO,CAAC,CAAC;iBACrB;aACF;AACD,YAAA,gBAAgB,YAAC,aAAsB,EAAA;AACrC,gBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC3B,gBAAgB,CAAC,aAAa,CAAC,CAAC;iBACjC;aACF;AACF,SAAA,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;;AAIpC,IAAA,IAAM,KAAK,GAAGJ,aAAO,CAAC,YAAM,EAAA,QAAC,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,EAAA,GAAA,EAAE,GAAG,SAAS,EAAxC,EAAyC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9E,IAAM,IAAI,GAAGA,aAAO,CAAC,YAAA;;AACnB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC3B,OAAO,MAAM,CAAC,YAAY,GAAG,IAAI,IAC/B,KAAC,CAAA,aAAA,CAAAK,iBAAQ,EACP,EAAA,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,UAAC,CAAC,EAAE,UAAU,EAAA;oBACtB,UAAU,CAAC,UAAU,CAAC,CAAC;AACvB,oBAAA,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;iBACpD,EAAA,CACD,CACH,CAAC;SACH;aAAM;AACL,YAAA,IAAI,MAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE;AACzB,gBAAA,OAAO,MAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;aAChC;iBAAM;AACL,gBAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;oBACpC,OAAO,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAA,CAAI,CAAC;iBACnE;qBAAM;oBACL,OAAO,MAAM,CAAC,KAAK,CAAC;iBACrB;aACF;SACF;KACF,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;;IAIpD,QACE,KAAC,CAAA,aAAA,CAAA,eAAe,EAAC,EAAA,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAC5G,EAAA,IAAI,CACW,EAClB;AACJ,CAAC,CCpED,IAAM,UAAU,GAAGZ,eAAM,CAAC,KAAK,CAAC,CAAAG,kBAAA,KAAAA,kBAAA,GAAA,oBAAA,CAAA,CAAA,sFAAA,CAAA,EAAA,CAAA,sFAM/B,CAAA,CAAA,CAAA,CAAA,CAAC;AAEF,IAAM,YAAY,GAAoB,UAAC,EAAuD,EAAA;;AAArD,IAAA,IAAA,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;AAG1F,IAAA,IAAM,KAAK,GAAGe,iBAAQ,EAAE,CAAC;;AAIzB,IAAA,IAAM,UAAU,GAAGC,YAAM,CAAsB,IAAI,CAAC,CAAC;AACrD,IAAA,IAAM,OAAO,GAAGA,YAAM,CAAsB,IAAI,CAAC,CAAC;AAClD,IAAA,IAAM,OAAO,GAAGA,YAAM,CAAsB,IAAI,CAAC,CAAC;AAClD,IAAA,IAAM,OAAO,GAAGA,YAAM,CAAsB,IAAI,CAAC,CAAC;;IAI1C,IAAQ,aAAa,GAAKC,qCAAiB,CAAC;AAClD,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,YAAY,EAAE,IAAI;AACnB,KAAA,CAAC,OAJ2B,CAI1B;AACK,IAAA,IAAQ,UAAU,GAAKA,qCAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,OAAtF,CAAuF;AACzG,IAAA,IAAQ,UAAU,GAAKA,qCAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,OAAtF,CAAuF;AACzG,IAAA,IAAQ,UAAU,GAAKA,qCAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,OAAtF,CAAuF;;IAIjH,IAAM,UAAU,GAAGb,aAAO,CACxB,YAAA;AACE,QAAA,OAAA,CAAC,CAAC,OAAO,KACP,KAAC,CAAA,aAAA,CAAA,sBAAsB,EAAC,EAAA,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,wBAAwB,EAAA;YACzE,KAAC,CAAA,aAAA,CAAAD,kBAAS,EAAC,EAAA,OAAO,EAAE,OAAO,CAAC,MAAM,EAAG,EAAA,OAAO,CAAa,CAClC,CAC1B,CAAA;AAJD,KAIC,EACH,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAC;AAEF,IAAA,IAAM,YAAY,GAAGE,iBAAW,CAC9B,UAAC,GAAiC,EAAE,GAAY,EAAA;QAC9C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAM,KAAK,GAAG,GAAG;AACd,aAAA,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG,EAAA;YACb,IAAI,IAAI,EAAE;AACR,gBAAA,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClC,QACE,oBAACF,kBAAS,EAAA,EACR,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE;AACL,wBAAA,GAAG,EAAA,GAAA;AACH,wBAAA,YAAY,EAAE,CAAC;AAChB,qBAAA,EAAA;AAEA,oBAAA,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAC,CAAA,aAAA,CAAA,UAAU,EAAC,EAAA,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAA,CAAI,CAC9E,EACZ;aACH;AACH,SAAC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,CAAC,CAAC,IAAI,CAAA,EAAA,CAAgB,CAAC;AAE3C,QAAA,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE;AACjC,YAAA,KAAK,CAAC,IAAI,CACR,KAAA,CAAA,aAAA,CAACA,kBAAS,EAAC,EAAA,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAA,GAAA,EAAE,YAAY,EAAE,CAAC,EAAE,EAAA,CAAI,CAC5G,CAAC;SACH;AAED,QAAA,OAAO,KAAK,CAAC;KACd,EACD,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CACjC,CAAC;IAEF,IAAM,SAAS,GAAGC,aAAO,CAAC,YAAA;QACxB,IAAM,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC;QAE7F,QACE,oBAACN,iBAAQ,EAAA,IAAA,EACN,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,EAAA,EAAK,QAC5B,KAAA,CAAA,aAAA,CAAC,aAAa,EACZ,EAAA,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,GAC5B,EACH,EAAA,CAAC,CACO,EACX;AACJ,KAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;;IAI9F,IAAI,IAAI,EAAE;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1B,YAAA,QACE,KAAC,CAAA,aAAA,CAAAoB,kBAAS,EAAC,EAAA,SAAS,EAAC,WAAW,EAAA;gBAC7B,UAAU;AACV,gBAAA,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,EAAA;oBACjB,IAAI,GAAG,GAA+C,SAAS,CAAC;oBAChE,IAAI,GAAG,GAAuB,SAAS,CAAC;oBAExC,QAAQ,GAAG;AACT,wBAAA,KAAK,CAAC;4BACJ,GAAG,GAAG,OAAO,CAAC;4BACd,GAAG,GAAG,aAAa,CAAC;4BACpB,MAAM;AACR,wBAAA,KAAK,CAAC;4BACJ,GAAG,GAAG,OAAO,CAAC;AACd,4BAAA,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC;4BAC/C,MAAM;AACR,wBAAA,KAAK,CAAC;4BACJ,GAAG,GAAG,OAAO,CAAC;AACd,4BAAA,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC;4BACnE,MAAM;AACR,wBAAA,KAAK,CAAC;4BACJ,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC1F;oBACD,QACE,KAAC,CAAA,aAAA,CAAApB,iBAAQ,EAAC,EAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,cAAc,EACnD,EAAA,YAAY,CAAC,GAAmC,EAAE,GAAG,CAAC,CAC9C,EACX;iBACH,CAAC,CACQ,EACZ;SACH;aAAM;AACL,YAAA,QACE,KAAC,CAAA,aAAA,CAAAoB,kBAAS,EAAC,EAAA,SAAS,EAAC,WAAW,EAAA;gBAC7B,UAAU;AACX,gBAAA,KAAA,CAAA,aAAA,CAACpB,iBAAQ,EAAC,EAAA,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,cAAc,EAAA,EAC7C,YAAY,CAAC,IAAoC,EAAE,aAAa,CAAC,CACzD;gBACV,SAAS,CACA,EACZ;SACH;KACF;SAAM;AACL,QAAA,QACE,KAAC,CAAA,aAAA,CAAAoB,kBAAS,EAAC,EAAA,SAAS,EAAC,WAAW,EAAA;YAC7B,UAAU;YACV,SAAS,CACA,EACZ;KACH;AACH,CAAC,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAC1C,YAAY,CAAC,YAAY,GAAG,wBAAwB,CAAC;uBC9HrD,SAAS,YAAY,CAAI,CAA+B,EAAA;IACtD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;AACtD,CAAC;AAwBD,IAAI,SAAS,GAAG,CAAC,CAAC;AAEZ,IAAA,KAAK,GAAuB,KAAK,CAAC,UAAU,CAChD,UACE,EAmCC,EACD,GAAG,EAAA;;AAnCD,IAAA,IAAA,OAAO,aAAA,EACP,WAAW,iBAAA,EACF,WAAW,aAAA,EACb,SAAS,GAAA,EAAA,CAAA,KAAA,EACR,UAAU,GAAA,EAAA,CAAA,MAAA,EAClB,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,eAAe,GAAA,EAAA,CAAA,eAAA,EACD,gBAAgB,GAAA,EAAA,CAAA,YAAA,EAC9B,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,MAAM,YAAA,EACN,UAAU,gBAAA,EACVP,UAAQ,cAAA,EACR,OAAO,aAAA,EACP,qBAAqB,2BAAA,EACrB,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EACjB,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,wBAAwB,GAAA,EAAA,CAAA,wBAAA,EACxB,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EACjB,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,aAAa,GAAA,EAAA,CAAA,aAAA;;AAEb,IAAA,SAAS,eAAA,EACF,SAAS,GAAA,EAAA,CAAA,KAAA,EAChB,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;AAMJ,IAAA,IAAM,kBAAkB,GAAGK,YAAM,CAAmB,EAAE,CAAC,CAAC;AACxD,IAAA,IAAM,gBAAgB,GAAGA,YAAM,CAAiB,EAAE,CAAC,CAAC;AACpD,IAAA,IAAM,oBAAoB,GAAGA,YAAM,EAAkB,CAAC;AACtD,IAAA,IAAM,sBAAsB,GAAGA,YAAM,CAA6C,EAAE,CAAC,CAAC;AACtF,IAAA,IAAM,YAAY,GAAGA,YAAM,CAAgB,IAAI,CAAC,CAAC;AACjD,IAAA,IAAM,iBAAiB,GAAGA,YAAM,CAAuB,EAAE,CAAC,CAAC;;AAI3D,IAAA,IAAM,OAAO,GAAGG,eAAU,CACxBC,cAAS,CAACC,gBAAW,EAAE;;AAErB,QAAA,oBAAoB,EAAE;AACpB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA,CAAC,EACFD,cAAS,CAACE,gBAAW,EAAE;;AAErB,QAAA,oBAAoB,EAAE;AACpB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACF,KAAA,CAAC,EACFF,cAAS,CAACG,mBAAc,EAAE;AACxB,QAAA,gBAAgB,EAAEC,oCAA2B;AAC9C,KAAA,CAAC,CACH,CAAC;;IAII,IAAA,EAAA,GAA0BjB,cAAQ,CAAC,KAAK,CAAC,EAAxC,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;IAC1C,IAAA,EAAA,GAA8BA,cAAQ,CAAqB,SAAS,CAAC,EAApE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,aAAa,GAAA,EAAA,CAAA,CAAA,CAA2C,CAAC;;IAItE,IAAA,EAAA,GAAwCA,cAAQ,EAAsB,EAArE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,kBAAkB,GAAA,EAAA,CAAA,CAAA,CAAkC,CAAC;IAErE,IAAK,uBAAuB,GAAKU,qCAAiB,CAAC;AACzD,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAA,YAAA;AACN,YAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;gBACnC,kBAAkB,CAAC,uBAAuB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;aACpF;iBAAM;gBACL,kBAAkB,CAAC,SAAS,CAAC,CAAC;aAC/B;SACF;AACF,KAAA,CAAC,IAVkC,CAUjC;;IAIG,IAAA,EAAA,GAAkCV,cAAQ,EAAsB,EAA/D,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAkC,CAAC;IAE/D,IAAK,0BAA0B,GAAKU,qCAAiB,CAAC;AAC5D,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAA,YAAA;AACN,YAAA,IAAI,0BAA0B,CAAC,OAAO,EAAE;gBACtC,eAAe,CAAC,0BAA0B,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;aACpF;iBAAM;gBACL,eAAe,CAAC,SAAS,CAAC,CAAC;aAC5B;SACF;AACF,KAAA,CAAC,IAVqC,CAUpC;;IAIG,IAAA,EAAA,GAAwBQ,kCAAwB,CAAwB,WAAW,CAAC,EAAnF,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAgE,CAAC;IACrF,IAAA,EAAA,GAAkClB,cAAQ,EAA4B,EAArE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAwC,CAAC;IACvE,IAAA,EAAA,GAAoBkB,kCAAwB,CAAsB,SAAS,CAAC,EAA3E,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAA4D,CAAC;IAC7E,IAAA,EAAA,GAAoClB,cAAQ,EAA2C,EAAtF,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAuD,CAAC;IACxF,IAAA,EAAA,GAAsBkB,kCAAwB,CAAuB,UAAU,CAAC,EAA/E,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,SAAS,GAAA,EAAA,CAAA,CAAA,CAA8D,CAAC;;IAIvF,IAAM,OAAO,GAAGrB,aAAO,CAAC,YAAA;AACtB,QAAA,IAAM,EAAE,GAAG;AACT,YAAA,OAAO,EAAE,OAAO,WAAW,KAAK,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,WAAW,EAAA,IAAA,CAAI,GAAG,WAAW;SAC5E,CAAC;QAEF,OAAO;AACL,YAAA,gEAAgE,EAAE,EAAE;AACpE,YAAA,gEAAgE,EAAE,EAAE;AACpE,YAAA,kEAAkE,EAAE,EAAE;SACvE,CAAC;AACJ,KAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;;AAIlB,IAAA,IAAM,iBAAiB,GAAGC,iBAAW,CAAC,UAAC,KAA2B,EAAA;QAChE,OAAO,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG,CAAsC,UAAC,EAAe,EAAE,KAAK,EAAA;AAApB,YAAA,IAAA,EAAE,GAAA,EAAA,CAAA,EAAA,EAAK,IAAI,GAAA,MAAA,CAAA,EAAA,EAAb,MAAe,CAAF,CAAA;YACnE,OAAS,QAAA,CAAA,EAAA,EAAE,EAAE,EAAE,IAAI,IAAI,GAAG,EAAG,CAAA,MAAA,CAAAqB,OAAI,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,GAAG,EAAE,EAAA,EAAK,IAAI,CAAG,CAAA;AACjE,SAAC,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,gBAAgB,GAAGrB,iBAAW,CAClC,UAAC,MAAmB,EAAA;AAClB,QAAA,IAAI,YAAY,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC7C,IAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACvC;aAAM;AACL,YAAA,OAAO,EAAE,CAAC;SACX;AACH,KAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;AAEF,IAAA,IAAM,eAAe,GAAGA,iBAAW,CACjC,UAAC,MAAmB,EAAA;AAClB,QAAA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAChC,YAAA,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,YAAA,oBAAoB,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1C;AAED,QAAA,IAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE;AAClB,YAAA,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,YAAA;;AACxC,gBAAA,oBAAoB,CAAC,OAAO,GAAG,SAAS,CAAC;AAEzC,gBAAA,IAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAA;AAC1E,oBAAA,IAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACnE,IAAI,UAAU,EAAE;AACd,wBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC7B,4BAAA,OAAO,IAAI,CAAC;yBACb;qBACF;AACH,iBAAC,CAAC,CAAC;gBAEH,IAAM,UAAU,GACd,kBAAkB;AAClB,oBAAA,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAA;AAC9C,wBAAA,IAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACnE,IAAI,UAAU,EAAE;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC7B,gCAAA,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;6BAC5B;yBACF;AACH,qBAAC,CAAC,CAAC;gBAEL,CAAA,EAAA,GAAA,cAAc,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC/D,CAAA,EAAA,GAAA,cAAc,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,UAAU,CAAC,CAAC;aACjD,EAAE,GAAG,CAAC,CAAC;SACT;AACH,KAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;AAEF,IAAA,IAAM,eAAe,GAAGA,iBAAW,CAAC,UAAC,QAAgB,EAAA;QACnD,IAAM,YAAY,GAAgB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;YAChD,IAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,oBAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAClC;aACF;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,YAAY,CAAC;KACrB,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAGA,iBAAW,CAAC,YAAA;AACrC,QAAA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAChC,YAAA,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,YAAA,oBAAoB,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1C;KACF,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,2BAA2B,GAAGA,iBAAW,CAAC,YAAA;QAC9C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;AACtD,YAAA,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aACnD;AACH,SAAC,CAAC,CAAC;AACH,QAAA,sBAAsB,CAAC,OAAO,GAAG,EAAE,CAAC;KACrC,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,iBAAiB,GAAGA,iBAAW,CACnC,UAAC,QAAgB,EAAA;AACf,QAAA,IAAI,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5C,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,YAAA,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;SACtD;QACD,IAAI,aAAa,EAAE;AACjB,YAAA,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,YAAA;AACpD,gBAAA,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;gBAErD,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;aACrE,EAAE,GAAG,CAAC,CAAC;SACT;AACH,KAAC,EACD,CAAC,eAAe,EAAE,aAAa,CAAC,CACjC,CAAC;IAEF,IAAM,oBAAoB,GAAGA,iBAAW,CAAC,YAAA;;AACvC,QAAA,CAAA,EAAA,GAAA,MAAA,YAAY,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;KAChE,EAAE,EAAE,CAAC,CAAC;;AAIP,IAAAG,eAAS,CAAC,YAAA;QACR,OAAO,YAAA;AACL,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,2BAA2B,EAAE,CAAC;AAChC,SAAC,CAAC;;KAEH,EAAE,EAAE,CAAC,CAAC;AAEP,IAAAA,eAAS,CAAC,YAAA;AACR,QAAA,kBAAkB,EAAE,CAAC;AACrB,QAAA,2BAA2B,EAAE,CAAC;QAE9B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;;AAClD,YAAA,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3D,gBAAA,CAAA,EAAA,GAAA,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC,KAAK,CAAC,CAAC;aAC7D;AACH,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;AAChD,YAAA,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;;AAC9D,gBAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1E,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;;AAE7C,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAEZ,IAAAA,eAAS,CAAC,YAAA;AACR,QAAA,kBAAkB,EAAE,CAAC;AACrB,QAAA,2BAA2B,EAAE,CAAC;AAE9B,QAAA,IAAM,eAAe,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACtD,eAAe,CAAC,eAAe,CAAC,CAAC;AACjC,QAAA,iBAAiB,CAAC,OAAO,GAAG,eAAe,KAAf,IAAA,IAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,GAAG,CAAC,UAAC,GAAG,EAAA;AACnD,YAAA,IAAI,GAAG,CAAC,EAAE,EAAE;gBACV,OAAO,GAAG,CAAC,EAAE,CAAC;aACf;iBAAM;gBACL,SAAS,IAAI,CAAC,CAAC;gBACf,OAAO,KAAA,CAAA,MAAA,CAAM,SAAS,EAAA,GAAA,CAAG,CAAC;aAC3B;AACH,SAAC,CAAC,CAAC;;AAEL,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAEd,IAAAmB,qBAAe,CAAC,YAAA;AACd,QAAA,2BAA2B,EAAE,CAAC;QAE9B,IAAI,aAAa,EAAE;YACjB,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAiB,UAAC,GAAG,EAAE,IAAI,EAAA;AACxE,gBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACb,oBAAA,IAAI,EAAA,IAAA;AACJ,oBAAA,OAAO,EAAE,EAAE;iBACZ,CAAC;gBAEF,IAAI,YAAY,EAAE;AAChB,oBAAA,YAAY,CAAC,OAAO,CAAC,UAAC,CAAC,EAAA;;AACrB,wBAAA,IAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAErC,wBAAA,IAAI,CAAA,EAAA,GAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;4BACxD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;yBACtF;6BAAM;4BACL,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;AAC/B,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,OAAO,EAAE,KAAK;AACd,gCAAA,aAAa,EAAE,KAAK;6BACrB,CAAC;yBACH;AACH,qBAAC,CAAC,CAAC;iBACJ;AACD,gBAAA,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;SACR;aAAM;AACL,YAAA,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;SAC/B;KACF,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEjF,IAAAA,qBAAe,CAAC,YAAA;QACd,IAAI,YAAY,EAAE;YAChB,kBAAkB,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAmB,UAAC,GAAG,EAAE,CAAC,EAAA;AACxE,gBAAA,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACzD,gBAAA,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;SACR;aAAM;AACL,YAAA,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;SACjC;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;;AAIrC,IAAAA,qBAAe,CAAC,YAAA;QACd,IAAI,GAAG,EAAE;YACP,IAAI,aAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,WAAS,GAAG,KAAK,CAAC;YACtB,IAAI,YAAU,GAAG,MAAM,CAAC;AAExB,YAAA,IAAM,QAAQ,GAAkB;AAC9B,gBAAA,UAAU,EAAE,YAAA,EAAM,OAAA,aAAW,GAAA;gBAC7B,UAAU,EAAE,UAAC,OAAO,EAAA;oBAClB,aAAW,GAAG,OAAO,CAAC;oBACtB,UAAU,CAAC,aAAW,CAAC,CAAC;iBACzB;AACD,gBAAA,QAAQ,EAAE,YAAA,EAAM,OAAA,WAAS,GAAA;gBACzB,QAAQ,EAAE,UAAC,KAAK,EAAA;oBACd,WAAS,GAAG,KAAK,CAAC;oBAClB,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;AACD,gBAAA,SAAS,EAAE,YAAA,EAAM,OAAA,YAAU,GAAA;AAC3B,gBAAA,cAAc,EAAE,UAAC,KAAK,EAAE,MAAM,EAAA;oBAC5B,WAAS,GAAG,KAAK,CAAC;oBAClB,YAAU,GAAG,MAAM,CAAC;oBACpB,QAAQ,CAAC,WAAS,CAAC,CAAC;oBACpB,SAAS,CAAC,YAAU,CAAC,CAAC;iBACvB;gBACD,SAAS,EAAA,YAAA;AACP,oBAAA,gBAAgB,CAAC,iBAAiB,CAAC,WAAS,CAAC,CAAC,CAAC;iBAChD;AACD,gBAAA,eAAe,EAAA,eAAA;AACf,gBAAA,WAAW,EAAE,oBAAoB;aAClC,CAAC;AAEF,YAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC;aACf;iBAAM;AACL,gBAAA,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;aACxB;SACF;AACH,KAAC,EAAE;QACD,GAAG;QACH,OAAO;QACP,KAAK;QACL,MAAM;QACN,iBAAiB;QACjB,UAAU;QACV,QAAQ;QACR,SAAS;QACT,eAAe;QACf,oBAAoB;AACrB,KAAA,CAAC,CAAC;;AAIH,IAAA,IAAM,aAAa,GAAGtB,iBAAW,CAC/B,UAAC,KAAmB,EAAA;QACV,IAAA,MAAM,GAAW,KAAK,CAAA,MAAhB,EAAE,IAAI,GAAK,KAAK,CAAA,IAAV,CAAW;AAE/B,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,gBAAgB,CAAC,UAAC,KAAK,EAAA;gBACrB,IAAI,KAAK,EAAE;oBACT,IAAI,UAAQ,GAAkB,IAAI,CAAC;oBACnC,IAAI,UAAQ,GAAkB,IAAI,CAAC;AAEnC,oBAAA,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,GAAG,EAAA;wBACnB,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;4BACzB,UAAQ,GAAG,GAAG,CAAC;yBAChB;6BAAM,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;4BAC9B,UAAQ,GAAG,GAAG,CAAC;yBAChB;AACD,wBAAA,OAAO,UAAQ,IAAI,IAAI,IAAI,UAAQ,IAAI,IAAI,CAAC;AAC9C,qBAAC,CAAC,CAAC;oBAEH,IAAI,UAAQ,IAAI,IAAI,IAAI,UAAQ,IAAI,IAAI,EAAE;wBACxC,IAAM,UAAU,GAAGuB,kBAAS,CAAC,KAAK,EAAE,UAAQ,EAAE,UAAQ,CAAC,CAAC;AACxD,wBAAA,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;AACzC,wBAAA,OAAO,UAAU,CAAC;qBACnB;yBAAM;AACL,wBAAA,OAAO,KAAK,CAAC;qBACd;iBACF;qBAAM;AACL,oBAAA,OAAO,KAAK,CAAC;iBACd;AACH,aAAC,CAAC,CAAC;SACJ;AACH,KAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;AAEF,IAAA,IAAM,qBAAqB,GAAGvB,iBAAW,CACvC,UAAC,MAAmB,EAAE,OAAgB,EAAA;QACpC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;;AAChD,YAAA,IAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7E,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACvB,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,OAAO,CAAC,CAAC;iBACpC;aACF;AACH,SAAC,CAAC,CAAC;AACL,KAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;AAEF,IAAA,IAAM,qBAAqB,GAAGA,iBAAW,CACvC,UAAC,IAAe,EAAE,MAAmB,EAAA;QACnC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1B,KAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;AAEF,IAAA,IAAM,gBAAgB,GAAGA,iBAAW,CAClC,UAAC,IAAY,EAAA;AACX,QAAA,oBAAoB,EAAE,CAAC;AACvB,QAAA,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AACrC,KAAC,EACD,CAAC,YAAY,EAAE,oBAAoB,CAAC,CACrC,CAAC;;AAIF,IAAA,IAAM,uBAAuB,GAAGA,iBAAW,CACzC,UAAC,WAAoB,EAAE,aAAiC,EAAA;QACtD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,WAAW,CAAC,CAAC;YACzB,aAAa,CAAC,aAAa,CAAC,CAAC;SAC9B;aAAM;AACL,YAAA,IAAI,UAAU,KAAK,aAAa,EAAE;gBAChC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnB,aAAa,CAAC,SAAS,CAAC,CAAC;aAC1B;SACF;AACH,KAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,IAAM,gCAAgC,GAAGA,iBAAW,CAClD,UAAC,IAAe,EAAE,MAAmB,EAAE,OAAgB,EAAA;;AACrD,QAAA,IAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SAC7B;AACH,KAAC,EACD,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CACtC,CAAC;IAEF,IAAM,sCAAsC,GAAGA,iBAAW,CACxD,UAAC,IAAe,EAAE,MAAmB,EAAE,QAAiB,EAAA;;AACtD,QAAA,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,eAAe,CAAC,MAAM,CAAC,CAAC;SACzB;AACH,KAAC,EACD,CAAC,gBAAgB,EAAE,eAAe,CAAC,CACpC,CAAC;IAEF,IAAM,iCAAiC,GAAGA,iBAAW,CACnD,UAAC,IAAe,EAAE,MAAmB,EAAE,QAA+B,EAAA;;AACpE,QAAA,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;AACH,KAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;AAEF,IAAA,IAAM,gCAAgC,GAAGA,iBAAW,CAClD,UAAC,MAAmB,EAAE,OAAgB,EAAA;QACpC,IAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;AACH,KAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;AAEF,IAAA,IAAM,iCAAiC,GAAGA,iBAAW,CACnD,UAAC,MAAmB,EAAE,QAA+B,EAAA;QACnD,IAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;AACH,KAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;;AAIF,IAAA,IAAM,iBAAiB,GAAGD,aAAO,CAC/B,YAAA,EAAM,QAAC;AACL,QAAA,QAAQ,EAAA,QAAA;AACR,QAAA,UAAU,EAAA,UAAA;AACV,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,oBAAoB,EAAE,gCAAgC;AACtD,QAAA,0BAA0B,EAAE,sCAAsC;AAClE,QAAA,qBAAqB,EAAE,iCAAiC;AACxD,QAAA,oBAAoB,EAAE,gCAAgC;AACtD,QAAA,qBAAqB,EAAE,iCAAiC;KACzD,EAAC,EAAA,EACF;QACE,gCAAgC;QAChC,iCAAiC;QACjC,sCAAsC;QACtC,gCAAgC;QAChC,iCAAiC;QACjC,uBAAuB;QACvB,QAAQ;QACR,UAAU;AACX,KAAA,CACF,CAAC;;IAIF,IAAM,QAAQ,GAAGA,aAAO,CAAC,cAAM,OAAA,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,CAA5C,EAA4C,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9F,IAAA,IAAM,iBAAiB,GAAGA,aAAO,CAC/B,cAAM,QAAC,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,EAAC,EAAA,EAC1D,CAAC,MAAM,EAAE,YAAY,CAAC,CACvB,CAAC;AACF,IAAA,IAAM,YAAY,GAAGA,aAAO,CAAC,YAAM,EAAA,OAAA,CAAC,QAAQ,IAAI,gBAAgB,CAA7B,EAA6B,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEhG,IAAM,KAAK,GAAGA,aAAO,CAAC,YAAA;QACpB,IAAI,UAAU,EAAE;AACd,YAAA,OAAA,QAAA,CAAA,QAAA,CAAA,EACE,KAAK,EAAE,MAAM,EAAA,EACV,SAAS,CAAA,EAAA,EACZ,IAAI,EAAE,CAAC,EACP,cAAc,EAAE,UAAU,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,QAAQ,EACvB,QAAQ,EAAE,UAAU,EACpB,CAAA,CAAA;SACH;aAAM;AACL,YAAA,OAAA,QAAA,CAAA,EAAS,KAAK,EAAE,MAAM,EAAA,EAAK,SAAS,CAAG,CAAA;SACxC;AACH,KAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5B,IAAM,cAAc,GAAGA,aAAO,CAAC,YAAA;QAC7B,IAAI,UAAU,EAAE;YACd,OAAO;AACL,gBAAA,MAAM,EAAE,CAAC,eAAe,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,CAAC,GAAG,CAAC;AAC7D,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,iBAAiB,IAAI,CAAC;aACrC,CAAC;SACH;aAAM;AACL,YAAA,OAAO,EAAE,MAAM,EAAA,MAAA,EAAE,SAAS,EAAA,SAAA,EAAE,SAAS,EAAA,SAAA,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC;SAC3D;AACH,KAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnF,IAAM,UAAU,GAAGA,aAAO,CAAC,YAAA;AACzB,QAAA,IAAI,UAAU,IAAI,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;SAC5E;KACF,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE/D,IAAM,WAAW,GAAGA,aAAO,CAAC,YAAA;QAC1B,IAAM,KAAK,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC;QACnF,IAAI,UAAU,EAAE;AACd,YAAA,OAAA,QAAA,CAAA,EAAS,QAAQ,EAAE,QAAQ,EAAA,EAAK,KAAK,CAAG,CAAA;SACzC;AACD,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAM,YAAY,GAAGA,aAAO,CAC1B,YAAA;QACE,OAAA,YAAY,KACV,KAAC,CAAA,aAAA,CAAA,YAAY,EACX,EAAA,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,qBAAqB,EAAA,CACpC,CACH,CAAA;AARD,KAQC,EACH,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAC1E,CAAC;IAEF,IAAM,SAAS,GAAGA,aAAO,CACvB,YAAA;AACE,QAAA,OAAA,YAAY,KACV,oBAACyB,kBAAS,EAAA,IAAA,EACP,aAAa,IACZ,aAAa,CAAC,MAAM,GAAG,CAAC,IACtB,KAAA,CAAA,aAAA,CAACC,wBAAe,EAAA,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAEC,oCAA2B,EACzE,EAAA,aAAa,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG,EAAK,EAAA,QAChC,KAAC,CAAA,aAAA,CAAA,YAAY,EACX,EAAA,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,SAAS,EAAE,UAAU,CACnB,CAAC,CAAC,YAAY,IAAI,WAAW,EAC7B,CAAC,CAAC,aAAa,IAAI,YAAY,EAC/B,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,CACrE,EACD,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,EACnE,EAAE,EAAE,cAAc,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,EAC1D,oBAAoB,EAAE,wBAAwB,EAC9C,gBAAgB,EAAE,oBAAoB,EACtC,aAAa,EAAE,iBAAiB,EAChC,KAAK,QACL,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAEpB,UAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,qBAAqB,EACpC,CAAA,IACH,CAAC,CACc,KAElB,oBAACf,eAAa,EAAA,IAAA;AACZ,YAAA,KAAA,CAAA,aAAA,CAACO,kBAAS,EAAA,EAAC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAA,EACxD,MAAM,IACL,MAAM,KAEN,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,IAAA;AACd,gBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;oBACE,KAAC,CAAA,aAAA,CAAA6B,aAAI,gBAAa,CACd;gBACN,KAAwB,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,iEAAA,CAAA,CACR,CACnB,CACS,CACE,CACjB,IACC,SAAS,CACH,CACb,CAAA;AAjDD,KAiDC,EACH;QACE,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,qBAAqB;QACrB,MAAM;QACN,OAAO;QACP,wBAAwB;QACxB,oBAAoB;QACpB,iBAAiB;QACjB,qBAAqB;QACrB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,YAAY;QACZrB,UAAQ;QACR,aAAa;AACd,KAAA,CACF,CAAC;IAEF,IAAM,WAAW,GAAGP,aAAO,CACzB,YAAA;AACE,QAAA,OAAA,YAAY;AACZ,YAAA,CAAC,QAAQ;YACT,MAAM,KACJ,KAAA,CAAA,aAAA,CAAC6B,oBAAW,EAAA,IAAA;AACV,YAAA,KAAA,CAAA,aAAA,CAACnC,iBAAQ,EAAA,IAAA,EACN,YAAY,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,EAAK,EAAA,QACjC,KAAA,CAAA,aAAA,CAAC,eAAe,EAAC,EAAA,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAA,CAAI,EADxC,EAElC,CAAC,CACO,CACC,CACf,CAAA;KAAA,EACH,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAC/C,CAAC;IAEF,IAAM,WAAW,GAAGM,aAAO,CACzB,YAAA;AACE,QAAA,OAAA,YAAY;YACZ,MAAM;YACN,MAAM,CAAC,KAAK,GAAG,CAAC,KACd,KAAA,CAAA,aAAA,CAACS,cAAK,EAAA,EAAC,GAAG,EAAE,UAAU,GAAG,0BAA0B,GAAG,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAA;YAC1G,KAAC,CAAA,aAAA,CAAA,eAAe,IACd,SAAS,EAAE,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,SAAS,EAChC,KAAK,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,KAAK,EACxB,EAAE,EAAE,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,CAAA,CACI,CACT,CAAA;AAbD,KAaC,EACH;QACE,YAAY;QACZ,UAAU;QACV,gBAAgB;AAChB,QAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,SAAS;AACrB,QAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,KAAK;AACjB,QAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,EAAE;QACd,MAAM;QACN,WAAW;QACX,0BAA0B;QAC1B,WAAW;AACZ,KAAA,CACF,CAAC;;IAIF,OAAO,YAAY,IACjB,oBAAC,oBAAoB,EAAA,EAAC,KAAK,EAAE,iBAAiB,EAAA;AAC5C,QAAA,KAAA,CAAA,aAAA,CAACqB,cAAK,EAAA,EACJ,GAAG,EAAE,UAAU,GAAG,uBAAuB,GAAG,SAAS,EACrD,SAAS,EAAE,UAAU,CACnB,OAAO,EACP,SAAS,EACT,CAAC,CAAC,YAAY,IAAI,eAAe,EACjC,CAAC,CAAC,UAAU,IAAI,aAAa,EAC7B,CAAC,CAAC,YAAY,IAAI,WAAW,EAC7B,CAAC,CAAC,aAAa,IAAI,YAAY,EAC/B,CAAC,CAACvB,UAAQ,IAAI,UAAU,CACzB,EACD,OAAO,EAAC,UAAU,EAClB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAA;YAEN,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAA;AACjD,gBAAA,KAAA,CAAA,aAAA,CAACwB,eAAU,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAEC,kBAAa,EAAE,SAAS,EAAE,aAAa,EAAA;AACvF,oBAAA,KAAA,CAAA,aAAA,CAACC,cAAQ,EAAA,EAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAA;wBACjE,YAAY;wBACZ,SAAS;wBACT,WAAW,CACH,CACA,CACH;AACX,YAAA,WAAW,CACN,CACa,IACrB,IAAI,CAAC;AACX,CAAC,EACD;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAC5B,KAAK,CAAC,YAAY,GAAG,iBAAiB,CC/xB/B,IAAM,uBAAuB,GAAG,GCkBjC,IAAA,WAAW,GAAuB,KAAK,CAAC,UAAU,CACtD,UACE,EAcC,EACD,GAAG,EAAA;;QAdD,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,2BAA2B,GAAA,EAAA,CAAA,2BAAA,EAC3B,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,mBAAmB,GAAA,EAAA,CAAA,mBAAA;;AAEnB,IAAA,SAAS,eAAA,EACF,SAAS,GAAA,EAAA,CAAA,KAAA,EAChB,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;AAIJ,IAAA,IAAM,SAAS,GAAGrB,YAAM,EAAkB,CAAC;AAC3C,IAAA,IAAM,QAAQ,GAAGA,YAAM,EAAiB,CAAC;;AAIzC,IAAA,IAAM,aAAa,GAAGX,iBAAW,CAAC,UAAC,MAAkC,EAAA;QACnE,IAAM,UAAU,GAAe,EAAE,CAAC;QAClC,IAAI,MAAM,EAAE;AACF,YAAA,IAAA,KAAG,GAA6B,MAAM,CAAnC,GAAA,EAAE,YAAY,GAAe,MAAM,CAArB,YAAA,EAAK,KAAK,GAAK,MAAA,CAAA,MAAM,EAAxC,CAAA,KAAA,EAAA,cAAA,CAA+B,CAAF,CAAY;AAC/C,YAAA,UAAU,CAAC,GAAG,GAAG,KAAG,CAAC;AACrB,YAAA,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;AACvC,YAAA,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1B;AACD,QAAA,OAAO,UAAU,CAAC;KACnB,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,YAAY,GAAGA,iBAAW,CAAC,UAAC,KAAgC,EAAA;QAChE,IAAM,SAAS,GAAc,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE;YACD,IAAA,KAAG,GAAe,KAAK,CAApB,GAAA,EAAK,KAAK,GAAA,MAAA,CAAK,KAAK,EAAzB,CAAiB,KAAA,CAAA,CAAF,CAAW;AAChC,YAAA,SAAS,CAAC,GAAG,GAAG,KAAG,CAAC;AACpB,YAAA,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;SACzB;AACD,QAAA,OAAO,SAAS,CAAC;KAClB,EAAE,EAAE,CAAC,CAAC;;AAIP,IAAA,IAAM,kBAAkB,GAAGW,YAAM,CAAe,EAAE,CAAC,CAAC;;IAI9C,IAAA,EAAA,GAAgDT,cAAQ,CAAC,IAAI,CAAC,EAA7D,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,sBAAsB,GAAA,EAAA,CAAA,CAAA,CAAkB,CAAC;IAE/D,IAAA,EAAA,GAA4BA,cAAQ,EAAmB,EAAtD,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAA+B,CAAC;;AAI9D,IAAA,IAAM,wBAAwB,GAAGS,YAAM,CAAC,IAAI,CAAC,CAAC;AACxC,IAAA,IAAA,KAA8BT,cAAQ,CAAa,cAAM,OAAA,aAAa,CAAC,MAAM,CAAC,CAArB,EAAqB,CAAC,EAA9E,UAAU,QAAA,EAAE,aAAa,QAAqD,CAAC;AACtF,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;SAC1C;aAAM;AACL,YAAA,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;SACtC;;AAEH,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;;AAIb,IAAA,IAAM,uBAAuB,GAAGQ,YAAM,CAAC,IAAI,CAAC,CAAC;AACvC,IAAA,IAAA,KAA4BT,cAAQ,CAAY,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,CAAnB,EAAmB,CAAC,EAAzE,SAAS,QAAA,EAAE,YAAY,QAAkD,CAAC;AACjF,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACnC,YAAA,uBAAuB,CAAC,OAAO,GAAG,KAAK,CAAC;SACzC;aAAM;AACL,YAAA,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SACnC;;AAEH,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;;AAIZ,IAAA,IAAM,OAAO,GAAGH,iBAAW,CACzB,UAAC,IAAkB,EAAA;AACjB,QAAA,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAElC,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC;AACH,KAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;;IAIF,IAAM,MAAM,GAAGA,iBAAW,CAAC,YAAA;QACzB,IAAM,MAAM,GAAiB,EAAE,CAAC;AAChC,QAAA,IAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAA;YACtD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC5D,YAAA,OAAO,SAAS,CAAC;AACnB,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,iBAAiB,GAAGA,iBAAW,CAAC,YAAA;AACpC,QAAA,IAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;QACnC,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEpB,YAAA,IAAM,YAAU,GAAG,MAAM,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,YAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;;AACnC,gBAAA,IAAM,KAAK,GAAc,YAAU,CAAC,IAAI,CAAC,CAAC;AAC1C,gBAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,oBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC7C;qBAAM;oBACL,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,YAAY,EAAE;AAChB,wBAAA,QAAQ,YAAY,CAAC,OAAO,EAAE;AAC5B,4BAAA,KAAK,cAAc;AACjB,gCAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oCACnB,IAAM,aAAa,GAAG,YAA+C,CAAC;AACtE,oCAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAK,CAAA,EAAA,GAAA,YAAY,CAAC,QAAQ,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAA,EAAE;AAC5D,wCAAA,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;qCAChC;AAAM,yCAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAK,CAAA,EAAA,GAAA,aAAa,CAAC,iBAAiB,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAA,EAAE;AAC7E,wCAAA,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;qCACjC;iCACF;gCACD,MAAM;AACR,4BAAA,KAAK,gBAAgB,CAAC;AACtB,4BAAA,KAAK,oBAAoB,CAAC;AAC1B,4BAAA,KAAK,gBAAgB;gCACnB;AACE,oCAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;wCACnB,IAAM,YAAY,GAAG,YAAyC,CAAC;AAC/D,wCAAA,IAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;wCACjD,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,wCAAA,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;qCAC/D;yCAAM;AACL,wCAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qCAC7B;iCACF;gCACD,MAAM;AACR,4BAAA,KAAK,qBAAqB;gCACxB;oCACE,IAAM,uBAAuB,GAAG,YAA2C,CAAC;AAC5E,oCAAA,IAAM,QAAQ,GAAG,uBAAuB,CAAC,oBAAoB,EAAE,CAAC;AAChE,oCAAA,IAAM,MAAM,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;AAC5D,oCAAA,IAAM,MAAM,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;AAE5D,oCAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,wCAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;4CACnB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACxC,4CAAA,uBAAuB,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;yCAChF;6CAAM;AACL,4CAAA,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;yCAC5C;qCACF;AAAM,yCAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AAC1B,wCAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;4CACnB,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtC,4CAAA,uBAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;yCAC1E;6CAAM;AACL,4CAAA,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;yCAC1C;qCACF;iCACF;gCACD,MAAM;AACR,4BAAA,KAAK,qBAAqB;gCACxB;oCACE,IAAM,uBAAuB,GAAG,YAA2C,CAAC;AAC5E,oCAAA,IAAM,QAAQ,GAAG,uBAAuB,CAAC,oBAAoB,EAAE,CAAC;AAChE,oCAAA,IAAM,MAAM,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;AAE5D,oCAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,wCAAA,uBAAuB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCAC9E;AAAM,yCAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AAC1B,wCAAA,uBAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCAC5E;iCACF;gCACD,MAAM;AACR,4BAAA,KAAK,iBAAiB;gCACpB;oCACE,IAAM,aAAa,GAAG,YAAuC,CAAC;AAC9D,oCAAA,IAAM,QAAQ,GAAG,aAAa,CAAC,oBAAoB,EAAE,CAAC;AACtD,oCAAA,IAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAExD,oCAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,wCAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCAC/D;AAAM,yCAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAC7B,wCAAA,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCAChE;iCACF;gCACD,MAAM;AACR,4BAAA,KAAK,sBAAsB;gCACzB;oCACE,IAAM,kBAAkB,GAAG,YAA4C,CAAC;AACxE,oCAAA,IAAM,YAAY,GAAG,kBAAkB,CAAC,wBAAwB,EAAE,CAAC;AACnE,oCAAA,IAAM,aAAa,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,CAAC;AACrE,oCAAA,IAAM,UAAU,GAAG,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;AAC/D,oCAAA,IAAM,WAAW,GAAG,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;AAEjE,oCAAA,IAAI,IAAI,KAAK,YAAY,EAAE;AACzB,wCAAA,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCACxE;AAAM,yCAAA,IAAI,IAAI,KAAK,aAAa,EAAE;AACjC,wCAAA,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCACzE;AAAM,yCAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AAC9B,wCAAA,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCACtE;AAAM,yCAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AAC/B,wCAAA,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;qCACvE;iCACF;gCACD,MAAM;AACR,4BAAA;AACE,gCAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gCAC/B,MAAM;yBACT;qBACF;iBACF;AACH,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,QAAQ,CAAC,eAAe,EAAE,CAAC;SACnC;AACH,KAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;;AAIxB,IAAAsB,qBAAe,CAAC,YAAA;QACd,IAAI,GAAG,EAAE;AACP,YAAA,IAAM,QAAQ,GAAwB;gBACpC,MAAM,EAAE,UAAC,IAAa,EAAA;;AACpB,oBAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,wBAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;qBACjC;AAED,oBAAA,IAAI,SAAuB,CAAC;AAC5B,oBAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,wBAAA,SAAS,GAAQ,QAAA,CAAA,EAAA,EAAA,kBAAkB,CAAC,OAAO,CAAE,CAAC;AAC9C,wBAAA,IAAI,IAAI,IAAI,IAAI,EAAE;4BAChB,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1C,4BAAA,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;yBACvB;qBACF;yBAAM;wBACL,IAAI,IAAI,EAAE;AACR,4BAAA,iBAAiB,EAAE,CAAC;yBACrB;AAED,wBAAA,IAAI,IAAI,IAAI,IAAI,EAAE;4BAChB,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;yBAC3C;wBAED,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,eAAe,EAAE,KAAI,EAAE,CAAC;qBACxD;oBAED,OAAO,CAAC,SAAS,CAAC,CAAC;iBACpB;gBACD,eAAe,EAAE,cAAM,OAAA,kBAAkB,CAAC,OAAO,IAAI,EAAE,CAAA,EAAA;AACvD,gBAAA,SAAS,EAAE,YAAM,EAAA,OAAA,SAAS,CAAC,OAAO,GAAA;AAClC,gBAAA,QAAQ,EAAE,YAAM,EAAA,OAAA,QAAQ,CAAC,OAAO,GAAA;aACjC,CAAC;AAEF,YAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC;aACf;iBAAM;AACL,gBAAA,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;aACxB;SACF;AACH,KAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;;AAIrF,IAAAnB,eAAS,CAAC,YAAA;QACR,IAAI,IAAI,EAAE;AACR,YAAA,IAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;AACjC,YAAA,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SACzB;;KAEF,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;;AAI3B,IAAA,IAAM,UAAU,GAAGH,iBAAW,CAC5B,UAAC,MAAoB,EAAA;QACnB,IAAI,mBAAmB,EAAE;YACvB,IAAM,QAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;AAC/B,gBAAA,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACrB,QAAM,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,IAAI,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,CAAC,CAAC;qBACjC;iBACF;qBAAM;AACL,oBAAA,IAAI,SAAS,CAAC,OAAO,EAAE;wBACrB,IAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAErD,IAAI,YAAY,EAAE;4BAChB,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC,4BAAA,QAAQ,YAAY,CAAC,OAAO,EAAE;AAC5B,gCAAA,KAAK,qBAAqB,CAAC;AAC3B,gCAAA,KAAK,qBAAqB;oCACxB;wCACE,IAAM,QAAQ,GAAG,YAA8C,CAAC;AAChE,wCAAA,IAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;AACxC,wCAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;AACjD,wCAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,0BAA0B,EAAE,CAAC;AACzD,wCAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAC7C,wCAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,wBAAwB,EAAE,CAAC;AAErD,wCAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;4CACrB,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;yCACnE;AAAM,6CAAA,IAAI,IAAI,KAAK,MAAM,EAAE;4CAC1B,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;yCACjE;qCACF;oCACD,MAAM;AACR,gCAAA,KAAK,iBAAiB;oCACpB;wCACE,IAAM,QAAQ,GAAG,YAAuC,CAAC;AACzD,wCAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACpC,wCAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;AACjD,wCAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,0BAA0B,EAAE,CAAC;AACzD,wCAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;AACnD,wCAAA,IAAM,WAAW,GAAG,QAAQ,CAAC,2BAA2B,EAAE,CAAC;AAE3D,wCAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;4CACrB,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;yCACnE;AAAM,6CAAA,IAAI,IAAI,KAAK,SAAS,EAAE;4CAC7B,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;yCACpE;qCACF;oCACD,MAAM;AACR,gCAAA,KAAK,sBAAsB;oCACzB;wCACE,IAAM,QAAQ,GAAG,YAA4C,CAAC;AAC9D,wCAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACpC,wCAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,wBAAwB,EAAE,CAAC;AACzD,wCAAA,IAAM,cAAc,GAAG,QAAQ,CAAC,8BAA8B,EAAE,CAAC;AACjE,wCAAA,IAAM,aAAa,GAAG,QAAQ,CAAC,yBAAyB,EAAE,CAAC;AAC3D,wCAAA,IAAM,eAAe,GAAG,QAAQ,CAAC,+BAA+B,EAAE,CAAC;AACnE,wCAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;AACrD,wCAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,4BAA4B,EAAE,CAAC;AAC7D,wCAAA,IAAM,WAAW,GAAG,QAAQ,CAAC,uBAAuB,EAAE,CAAC;AACvD,wCAAA,IAAM,aAAa,GAAG,QAAQ,CAAC,6BAA6B,EAAE,CAAC;AAE/D,wCAAA,IAAI,IAAI,KAAK,YAAY,EAAE;4CACzB,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;yCACvE;AAAM,6CAAA,IAAI,IAAI,KAAK,aAAa,EAAE;4CACjC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;yCACxE;AAAM,6CAAA,IAAI,IAAI,KAAK,UAAU,EAAE;4CAC9B,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;yCACrE;AAAM,6CAAA,IAAI,IAAI,KAAK,WAAW,EAAE;4CAC/B,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;yCACtE;qCACF;oCACD,MAAM;AACR,gCAAA;oCACE,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oCAClD,MAAM;6BACT;AAED,4BAAA,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChF,gCAAA,QAAM,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC;6BACrD;yBACF;qBACF;iBACF;AACH,aAAC,CAAC,CAAC;YACH,IAAM,SAAS,GAAG,QAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,YAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACnD,OAAO,CAAC,MAAM,CAAC,CAAC;aACjB;iBAAM;gBACL,mBAAmB,CAAC,QAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACvC;SACF;AACH,KAAC,EACD,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAC/B,CAAC;;AAIF,IAAA,IAAM,gBAAgB,GAAGA,iBAAW,CAClC,UAAC,IAAY,EAAA;;QACX,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1C,QAAA,IAAI,SAAmC,CAAC;AACxC,QAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,YAAA,SAAS,GAAQ,QAAA,CAAA,EAAA,EAAA,kBAAkB,CAAC,OAAO,CAAE,CAAC;AAC9C,YAAA,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,SAAS,GAAG,MAAA,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,eAAe,EAAE,CAAC;SAClD;QAED,IAAI,IAAI,EAAE;AACR,YAAA,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;SAC1B;KACF,EACD,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CACvC,CAAC;AAEF,IAAA,IAAM,kBAAkB,GAAGA,iBAAW,CACpC,UAAC,IAAkB,EAAA;;AACjB,QAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;QAEhC,IAAI,mBAAmB,EAAE;YACvB,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;SACF;aAAM;YACL,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvC,IAAM,SAAS,yBAAsB,IAAI,CAAA,EAAA,EAAE,IAAI,EAAE,CAAC,GAAE,CAAC;YACrD,IAAI,IAAI,EAAE;gBACR,UAAU,CAAC,SAAS,CAAC,CAAC;aACvB;iBAAM;gBACL,OAAO,CAAC,SAAS,CAAC,CAAC;aACpB;SACF;AACH,KAAC,EACD,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAC5D,CAAC;;IAIF,IAAM,KAAK,GAAGD,aAAO,CAAC,YAAA;QACpB,IAAI,UAAU,EAAE;YACd,OAAY,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,SAAS,KAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAG,CAAA,CAAA;SACnD;aAAM;AACL,YAAA,OAAO,SAAS,CAAC;SAClB;AACH,KAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5B,IAAM,mBAAmB,GAAGA,aAAO,CAAC,YAAA;QAClC,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;SAC9D;AACH,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;;AAIjB,IAAA,QACE,KAAA,CAAA,aAAA,CAACkC,aAAI,EAAA,EACH,SAAS,EAAA,IAAA,EACT,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,EAC/C,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAA;QAEN,KAAC,CAAA,aAAA,CAAAA,aAAI,IAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,EAAE,EAAA;AACtE,YAAA,KAAA,CAAA,aAAA,CAACC,gBAAM,EAAA,QAAA,CAAA,EACL,KAAK,EAAE,KAAK,EAAA,EACR,UAAU,CAAC,KAAK,EAAA,EACpB,GAAG,EAAE,UAAC,QAAwB,EAAA;AAC5B,oBAAA,IAAI,UAAU,CAAC,GAAG,EAAE;AAClB,wBAAA,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU,EAAE;AACxC,4BAAA,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;yBAC1B;6BAAM;AACL,4BAAA,UAAU,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;yBACnC;qBACF;AACD,oBAAA,SAAS,CAAC,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC;AAC5C,iBAAC,EACD,UAAU,EACV,IAAA,EAAA,QAAQ,EAAE,kBAAkB,EAAA,CAAA;gBAE5B,KAAC,CAAA,aAAA,CAAAC,qBAAW,IAAC,MAAM,EAAA,IAAA,EAAA;oBACjB,KAAC,CAAA,aAAA,CAAAC,oBAAU,EAAC,EAAA,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAA,CAAI,CACxB;gBACb,UAAU,CAAC,YAAY,CACjB,CACJ;AACN,QAAA,2BAA2B,IAAI,KAAC,CAAA,aAAA,CAAAH,aAAI,IAAC,IAAI,EAAA,IAAA,EAAA,EAAE,2BAA2B,CAAQ;AAC/E,QAAA,KAAA,CAAA,aAAA,CAACA,aAAI,EAAC,EAAA,IAAI,EAAC,IAAA,EAAA,KAAK,EAAE,mBAAmB,EAAA;AACnC,YAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,QAAA,CAAA,EAAA,EACA,SAAS,CAAC,KAAK,EACnB,EAAA,YAAY,EAAE,YAAY,KAAI,CAAA,EAAA,GAAA,SAAS,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAA,EAC3D,UAAU,EAAE,UAAU,KAAI,MAAA,SAAS,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAA,EACrD,GAAG,EAAE,UAAC,QAAuB,EAAA;AAC3B,oBAAA,IAAI,SAAS,CAAC,GAAG,EAAE;AACjB,wBAAA,IAAI,OAAO,SAAS,CAAC,GAAG,KAAK,UAAU,EAAE;AACvC,4BAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;yBACzB;6BAAM;AACL,4BAAA,SAAS,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;yBAClC;qBACF;AACD,oBAAA,QAAQ,CAAC,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC;AAC3C,iBAAC,EACD,KAAK,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,KAAK,EACvB,MAAM,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,MAAM,EACzB,YAAY,EAAE,gBAAgB,EAC9B,CAAA,CAAA,CACG,CACF,EACP;AACJ,CAAC,EACD;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AACxC,WAAW,CAAC,YAAY,GAAG,uBAAuB,CChiBrC,IAAA,uBAAuB,GAAgD;AAClF,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,KAAK,EAAE,SAAS;ECJX,IAAM,qBAAqB,GAAG,GCD/B,IAAA,SAAS,GAAG,KAAK,CAAC,UAAU,CAA2B,UAAC,EAA+C,EAAE,GAAG,EAAA;;IAAlD,IAAA,SAAS,eAAA,EAAY,YAAY,cAAA,EAAK,KAAK,GAA7C,MAAA,CAAA,EAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAA+C,CAAF,CAAA;IAGzG,IAAM,QAAQ,GAAGlC,aAAO,CACtB,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAC,MAAM,EAAE,GAAG,IAAK,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAG,CAAA,MAAA,CAAA,MAAM,CAAC,WAAW,EAAE,CAAE,CAA9C,EAA8C,CAAC,CAA/F,EAA+F,EACrG,CAAC,YAAY,CAAC,CACf,CAAC;;IAIF,QACE,oBAAC4B,aAAI,EAAA,QAAA,CAAA,EAAC,GAAG,EAAE,GAAG,EAAM,EAAA,KAAK,EAAE,EAAA,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EACrE,CAAA,EAAA,QAAQ,CACJ,EACP;AACJ,CAAC,EAAE;AAEH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AACpC,SAAS,CAAC,YAAY,GAAG,qBAAqB,CCjBxC,IAAA,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,UAAC,EAAuF,EAAE,GAAG,EAAA;IAA1F,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAM,MAAM,GAAA,EAAA,CAAA,EAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAK,KAAK,GAArF,MAAA,CAAA,EAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAuF,CAAF,CAAA;AACpF,IAAA,IAAM,EAAE,GAAG5B,aAAO,CAChB,YAAM,EAAA,mBAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,EAAK,EAAA,MAAM,GAAjE,EAAoE,EAC1E,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAC7B,CAAC;;IAIF,QACE,oBAACsC,eAAM,EAAA,QAAA,CAAA,EACL,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,EAC/C,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EACP,SAAS,IACP,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,EACzC,SAAS,CACA,IACV,SAAS,EAEf,OAAO,EACL,OAAO,IACL,oBAAC,SAAS,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,EACzC,OAAO,CACE,IACV,SAAS,EAAA,EAEX,KAAK,CAAA;AAER,QAAA,IAAI,KACH,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,EAAE,KAAK,EACrC,EAAA,IAAI,CACK,CACb;QACA,QAAQ,CACF,EACT;AACJ,CAAC,EACD;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AACxC,WAAW,CAAC,YAAY,GAAG,uBAAuB,CCtCrC,IAAA,2BAA2B,GAAkE;AACxG,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,SAAS,EAAE,QAAQ;ECVf,IAAA,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,UACE,EAaC,EACD,GAAG,EAAA;;AAbD,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACL,MAAM,GAAA,EAAA,CAAA,EAAA,EACV,KAAK,WAAA,EACL,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,OAAO,aAAA,EACP,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACL,KAAK,GAAA,MAAA,CAAA,EAAA,EAZV,sHAaC,CADS,CAAA;AAMV,IAAA,IAAM,QAAQ,GAAGC,WAAK,EAAE,CAAC;AACzB,IAAA,IAAM,MAAM,GAAGA,WAAK,EAAE,CAAC;;AAIjB,IAAA,IAAA,EAAwC,GAAA,aAAa,EAAE,EAArD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAoB,CAAC;;AAI9D,IAAA,IAAM,SAAS,GAAG3B,YAAM,EAA4B,CAAC;;IAI/C,IAAA,EAAA,GAAkBT,cAAQ,CAAC,KAAK,CAAC,EAAhC,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;;AAIxC,IAAAC,eAAS,CAAC,YAAA;QACR,IAAI,IAAI,IAAI,QAAQ,IAAI,UAAU,KAAK,MAAM,EAAE;YAC7C,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;KACF,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;;AAIzC,IAAA,IAAM,EAAE,GAAGJ,aAAO,CAChB,YAAM,EAAA,mBAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,EAAK,EAAA,MAAM,GAAjE,EAAoE,EAC1E,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAC7B,CAAC;;IAIF,IAAM,WAAW,GAAGC,iBAAW,CAAC,YAAA;QAC9B,OAAO,CAAC,UAAC,GAAG,EAAK,EAAA,OAAA,CAAC,GAAG,CAAA,EAAA,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC3B;aAAM;AACL,YAAA,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC5B;KACF,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,IAAM,WAAW,GAAGA,iBAAW,CAAC,YAAA;QAC9B,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC;AACf,YAAA,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC5B;KACF,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhC,IAAA,IAAM,iBAAiB,GAAGA,iBAAW,CACnC,UAAC,KAA0B,EAAA;AACzB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC;AACf,gBAAA,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC5B;SACF;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC;AACf,gBAAA,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC5B;SACF;KACF,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAC5B,CAAC;;IAIF,IAAM,aAAa,GAAGD,aAAO,CAAC,YAAA;AAC5B,QAAA,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;AAClC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,OAAO,EAAE,WAAW;AACrB,SAAA,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;;AAIvE,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA;AACE,QAAA,KAAA,CAAA,aAAA,CAACsC,eAAM,EAAA,QAAA,CAAA,EACL,GAAG,EAAE,UAAC,CAAC,EAAA;gBACL,IAAI,GAAG,EAAE;AACP,oBAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;wBAC7B,GAAG,CAAC,CAAC,CAAC,CAAC;qBACR;yBAAM;AACL,wBAAA,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;qBACjB;iBACF;AACD,gBAAA,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;aACvB,EACD,EAAE,EAAE,QAAQ,EAAA,eAAA,EACG,IAAI,GAAG,MAAM,GAAG,SAAS,EACzB,eAAA,EAAA,IAAI,GAAG,MAAM,GAAG,SAAS,EAC1B,eAAA,EAAA,MAAM,EACpB,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACnD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,SAAS,EACP,SAAS,IACP,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,EACzC,SAAS,CACA,IACV,SAAS,EAEf,OAAO,EACL,OAAO,IACL,KAAC,CAAA,aAAA,CAAA,SAAS,EAAC,EAAA,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,EACzC,OAAO,CACE,IACV,SAAS,EAAA,EAEX,KAAK,CAAA;AAER,YAAA,IAAI,KACH,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,EAAE,KAAK,EACrC,EAAA,IAAI,CACK,CACb;AACA,YAAA,QAAQ,CACF;QACT,KAAC,CAAA,aAAA,CAAAE,eAAM,EACL,EAAA,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,CAAC,OAAO,EAC3B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,UAAU,EACV,IAAA,EAAA,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,MAAM,KAAK,SAAS,GAAG,IAAI,GAAG,MAAM,IAAI,MAAM,EAAE,EAE3E,EAAA,UAAC,EAA8B,EAAA;gBAA5B,eAAe,GAAA,EAAA,CAAA,eAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;YAC5B,IAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;gBAC5B,eAAe,GAAG,OAAO,CAAC;;;;;;;;aAQ3B;AAAM,iBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;gBACpC,eAAe,GAAG,MAAM,CAAC;;;;;;;;aAQ1B;AAAM,iBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBAClC,eAAe,GAAG,QAAQ,CAAC;;;;;;;;aAQ5B;AAAM,iBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACrC,eAAe,GAAG,KAAK,CAAC;;;;;;;;aAQzB;iBAAM;gBACL,eAAe,GAAG,KAAK,CAAC;aACzB;AAED,YAAA,QACE,KAAC,CAAA,aAAA,CAAAC,aAAI,eACC,eAAe,EAAA,EACnB,KAAK,EAAE;AACL,oBAAA,eAAe,EAAA,eAAA;AAChB,iBAAA,EAAA,CAAA;AAED,gBAAA,KAAA,CAAA,aAAA,CAACX,cAAK,EAAA,IAAA;oBACJ,KAAC,CAAA,aAAA,CAAAY,0BAAiB,EAAC,EAAA,WAAW,EAAE,WAAW,EAAG,EAAA,aAAa,CAAqB,CAC1E,CACH,EACP;SACH,CACM,CACJ,EACP;AACJ,CAAC,EACD;AAEF,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAChD,eAAe,CAAC,YAAY,GAAG,2BAA2B,CCrI7C,IAAA,qBAAqB,GAG9B;AACF,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,MAAM;ECjGf,IAAM,KAAK,GAAGjD,eAAM,CAACS,YAAG,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,8CAAA,CAAA,EAAA,CAAA,8CAG/B,CAAA,CAAA,CAAA,CAAA,CAAC;AAEK,IAAM,SAAS,GAAGT,eAAM,CAACS,YAAG,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,yFAAA,CAAA,EAAA,CAAA,yFAKnC,CAAA,CAAA,CAAA,CAAA,CAAC;AAEK,IAAM,KAAK,GAAGT,eAAM,CAAC,KAAK,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,gBAEjC,CAAA,CAAA,CAAA,CAAA,CAAC;AAEK,IAAM,aAAa,GAAGA,eAAM,CAAC,KAAK,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,gHAAA,CAAA,EAAA,CAAA,gHAMzC,CAAA,CAAA,CAAA,CAAA,CAAC;AAEK,IAAM,cAAc,GAAGA,eAAM,CAAC,KAAK,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAE,CAAA,CAAA,CAAA,CAAA,CAAC;AAEvC,IAAM,mBAAmB,GAAGA,eAAM,CAACkD,mBAAU,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,mDAAA,CAAA,EAAA,CAAA,mDAGpD,CAAA,CAAA,CAAA,CAAA,CAAC;AAEK,IAAM,IAAI,GAAGlD,eAAM,CAAC,KAAK,CAAC,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,kEAAA,CAAA,EAAA,CAAA,kEAIhC,CAAA,CAAA,CAAA,CAAA,CAAC;iICbI,IAAA,SAAS,GAAa,UAAC,EAqBrB,EAAA;QApBN,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAE,GAAA,EAAA,CAAA,EAAA,EACF,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,iBAAiB,GAAA,EAAA,CAAA,iBAAA,CAAA;IAEjB,IAAM,SAAS,GAAGO,aAAO,CAAC,YAAA;QACxB,IAAM,KAAK,GAAwE,EAAE,CAAC;AACtF,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;SACtB;aAAM;YACL,IAAI,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;SACtC;AACD,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAEX,IAAA,QACE,KAAC,CAAA,aAAA,CAAAkC,aAAI,IACH,SAAS,EAAA,IAAA,EACT,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAC7C,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAA,EAEL,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG,EAAA;QACnB,IAAI,IAAI,EAAE;YACR,IAAM,eAAe,GAAG,wBAAwB,CAC9C,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAC5F,CAAC;YACF,IAAM,YAAY,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YACvG,IAAM,YAAY,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,IAAM,mBAAmB,GAAG,cAAc;kBACtC,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;kBACvD,SAAS,CAAC;AAEd,YAAA,IAAM,cAAc,GAAA,QAAA,CAAA,EAAA,EAAQ,SAAS,CAAE,CAAC;YACxC,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAEzC,IAAI,IAAI,GAA4C,SAAS,CAAC;AAC9D,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;oBACjC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE;AACnC,wBAAA,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;qBAC7D;yBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE;AAC3C,wBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;qBACtD;yBAAM;AACL,wBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB;iBACF;aACF;AAED,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC5B;AAAM,iBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AACzB,gBAAA,QAAQ,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,QAAQ;wBACX,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxD,4BAAA,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAEzC,4BAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gCAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,oCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,EAAA,EAAG,IAAI,CAAC,YAAY,CAAQ;oCACxE,IAAI,CACJ,CACJ,CAAC;6BACH;AACD,4BAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gCAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;oCACG,IAAI;AACL,oCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,IAAG,IAAI,CAAC,YAAY,CAAQ,CACvE,CACJ,CAAC;6BACH;yBACF;wBACD,MAAM;AACR,oBAAA,KAAK,KAAK;AACR,wBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,4BAAA,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;yBAC7B;wBACD,MAAM;AACR,oBAAA,KAAK,OAAO;AACV,wBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,4BAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;gCACE,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,IAAI,EAAE,SAAA,CAAA,MAAA,CAAU,IAAI,CAAE,IAAG,IAAI,CAAK,CACpC,CACJ,CAAC;yBACH;wBACD,MAAM;AACR,oBAAA,KAAK,KAAK;AACR,wBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACrE,4BAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,gCAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAA,EAC3B,IAAI,CACH,CACH,CACJ,CAAC;yBACH;wBACD,MAAM;AACR,oBAAA,KAAK,YAAY;AACf,wBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,4BAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;yBAChC;wBACD,MAAM;AACR,oBAAA,KAAK,aAAa;AAChB,wBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,4BAAA,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;yBACjC;wBACD,MAAM;AACR,oBAAA,KAAK,MAAM;wBACT,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxD,4BAAA,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;yBAC1D;wBACD,MAAM;AACR,oBAAA,KAAK,UAAU;wBACb,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BACxD,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,4BAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;gCACrC,IAAI,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAChC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,CAC5D,CACJ,CAAC;yBACH;wBACD,MAAM;AACR,oBAAA,KAAK,WAAW;wBACd,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BACxD,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,4BAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;gCACrC,IAAI,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAChC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ,CACvD,CACJ,CAAC;yBACH;wBACD,MAAM;AACR,oBAAA,KAAK,aAAa;wBAChB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BACxD,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,4BAAA,IAAI,IACF,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAQ;gCACrC,IAAI,CAAC,WAAW,GAAG,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA,GAAG,GAAG;AAChC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,EAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAQ,CAC3D,CACJ,CAAC;yBACH;wBACD,MAAM;iBACT;aACF;YACD,IAAI,KAAK,CAAC,IAAI,CAAC;AAAE,gBAAA,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,mDAAW,CAAC;AAEpF,YAAA,IAAM,qBAAmB,GACvB,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5G,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAC5B,KAAA,CAAA,aAAA,CAACA,aAAI,EAAC,EAAA,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,IAAA,EAAA,EAAE,EAAE,EAAE,EAAA;AACzB,gBAAA,KAAA,CAAA,aAAA,CAACzB,cAAK,EAAA,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAC,QAAQ,EAAA;oBACrD,IAAI,CAAC,IAAI,KACR,KAAA,CAAA,aAAA,CAACmC,kBAAQ,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE,EAAE,QAAQ,EAAC,OAAO,EAAA,EACzE,IAAI,CAAC,IAAI,CACD,CACZ;AACA,oBAAA,IAAI,CAAC,KAAK,KACT,oBAAC,KAAK,EAAA,EACJ,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1D,KAAK,EAAO,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,GAAK,UAAU,CAAA,EAC1C,EAAE,EAAE,YAAY,EAEf,EAAA,IAAI,CAAC,KAAK,CACL,CACT;oBACA,IAAI,CAAC,WAAW,KACf,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IACtB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAA;wBACrC,KAAC,CAAA,aAAA,CAAA,IAAI,OAAG,CACJ,KAEN,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,IAAA,CAAG,CACT,CACA,CACJ,CACK,CACH,KAEP,KAAA,CAAA,aAAA,CAACV,aAAI,EAAA,QAAA,CAAA,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAA,IAAA,EAAA,EAAK,cAAc,EAAE,EAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAA,CAAA;AAChG,gBAAA,KAAA,CAAA,aAAA,CAACzB,cAAK,EAAA,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAC,QAAQ,EAAA;AACrD,oBAAA,IAAI,CAAC,IAAI,KACR,KAAC,CAAA,aAAA,CAAAmC,kBAAQ,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAC,OAAO,oBAE/C,CACZ;AACD,oBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1D,KAAK,EAAO,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,CAAK,EAAA,UAAU,CAC1C,EAAA,EAAE,EAAE,YAAY,EAEf,EAAA,IAAI,CAAC,KAAK,CACL,CACF;gBACR,KAAC,CAAA,aAAA,CAAA,SAAS,EACR,EAAA,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1D,KAAK,EAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAO,UAAU,CAAA,EAAK,IAAI,CAAC,UAAU,CAAA,EAAK,mBAAmB,CAAA,EAClE,EAAE,EAAE,YAAY,EAAA;AAEf,oBAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,GAAG,KAAC,CAAA,aAAA,CAAA,aAAa,QAAE,IAAI,CAAiB,GAAG,oBAAC,KAAK,EAAA,IAAA,EAAE,IAAI,CAAS;oBACzF,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,qBAAmB,CAAC,KAC9C,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA;wBACb,KAAC,CAAA,aAAA,CAAAC,oCAAe,EACd,EAAA,IAAI,EAAE,qBAAmB,EACzB,MAAM,EAAE,iBAAiB,GAAG,cAAM,OAAA,iBAAiB,CAAC,IAAI,EAAE,qBAAmB,CAAC,CAAA,EAAA,GAAG,SAAS,EAAA;AAE1F,4BAAA,KAAA,CAAA,aAAA,CAAC,mBAAmB,EAAA,QAAA,CAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAA,EAAK,IAAI,CAAC,cAAc,CAAA;AACvE,gCAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,IAAI,CAAC,aAAa,IAAI,cAAc,CAAa,CACzC,CACN,CACH,CAClB,CACS,CACP,CACR,CAAC;SACH;KACF,CAAC,CACG,EACP;AACJ,EAAE;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AACpC,SAAS,CAAC,YAAY,GAAG,qBAAqB","x_google_ignoreList":[3]}