@tanstack/react-table 8.2.4 → 8.2.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../../table-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {//\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return { ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + pad(resultEndTime, 5) + \" /\" + pad(depEndTime, 5) + \" ms\", \"\\n font-size: .6rem;\\n font-weight: bold;\\n color: hsl(\" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + \"deg 100% 31%);\", opts == null ? void 0 : opts.key);\n }\n }\n\n return result;\n };\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n\n const defaultColumn = table._getDefaultColumnDef();\n\n const resolvedColumnDef = { ...defaultColumn,\n ...columnDef\n };\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : resolvedColumnDef.accessorKey) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? \"Columns require an id when using an accessorFn\" : \"Columns require an id when using a non-string header\");\n }\n\n throw new Error();\n }\n\n let column = {\n id: \"\" + String(id),\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n }\n }),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n\n return [column];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n })\n };\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));\n }, column); // Yes, we have to convert table to uknown, because we know more than the compiler here.\n\n return column;\n}\n\n//\nfunction createHeader(table, column, options) {\n var _options$id;\n\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n\n leafHeaders.push(h);\n };\n\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));\n });\n\n return header;\n}\n\nconst Headers = {\n createTable: table => {\n return {\n // Header Groups\n getHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;\n }\n }),\n getCenterHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;\n }\n }),\n getLeftHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;\n }\n }),\n getRightHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;\n }\n }),\n // Footer Groups\n getFooterGroups: memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _table$options$debugA6;\n\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _table$options$debugA7;\n\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _table$options$debugA8;\n\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;\n }\n }),\n // Flat Headers\n getFlatHeaders: memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _table$options$debugA9;\n\n return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _table$options$debugA10;\n\n return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _table$options$debugA11;\n\n return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _table$options$debugA12;\n\n return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;\n }\n }),\n // Leaf Headers\n getCenterLeafHeaders: memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _table$options$debugA13;\n\n return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;\n }\n }),\n getLeftLeafHeaders: memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _table$options$debugA14;\n\n return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;\n }\n }),\n getRightLeafHeaders: memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _table$options$debugA15;\n\n return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;\n }\n }),\n getLeafHeaders: memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _table$options$debugA16;\n\n return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;\n }\n })\n };\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n let maxDepth = 0;\n\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n\n findMaxDepth(allColumns);\n let headerGroups = [];\n\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, \"\" + depth].filter(Boolean).join('_'),\n headers: []\n }; // The parent columns we're going to scan next\n\n const pendingParentHeaders = []; // Scan each column for parents\n\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? \"\" + pendingParentHeaders.filter(d => d.column === column).length : undefined,\n depth,\n index: pendingParentHeaders.length\n }); // Add the headerToGroup as a subHeader of the new header\n\n header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n\n pendingParentHeaders.push(header);\n }\n\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\n//\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\n\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\n\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n return {\n getSize: () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n },\n getStart: position => {\n const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n\n return 0;\n },\n resetSize: () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n getCanResize: () => {\n var _column$columnDef$ena, _table$options$enable;\n\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, table) => {\n return {\n getSize: () => {\n let sum = 0;\n\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n\n recurse(header);\n return sum;\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n\n return 0;\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id);\n const canResize = column.getCanResize();\n return e => {\n if (!canResize) {\n return;\n }\n e.persist == null ? void 0 : e.persist();\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n\n let newColumnSizing = {};\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n\n const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return { ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({ ...old,\n ...newColumnSizing\n }));\n }\n };\n\n const onMove = clientXPos => updateOffset('move', clientXPos);\n\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({ ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n\n if (isTouchStartEvent(e)) ; else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n\n table.setColumnSizingInfo(old => ({ ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n }\n };\n },\n createTable: table => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _table$initialState$c;\n\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n },\n resetHeaderSizeInfo: defaultState => {\n var _table$initialState$c2;\n\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n },\n getTotalSize: () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n },\n getLeftTotalSize: () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n },\n getCenterTotalSize: () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n },\n getRightTotalSize: () => {\n var _table$getRightHeader, _table$getRightHeader2;\n\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n }\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n\n };\n\n const noop = () => {};\n\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n\n passiveSupported = supported;\n return passiveSupported;\n}\n\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\nconst Expanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetExpanded: () => {\n var _ref, _table$options$autoRe;\n\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n },\n setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n },\n resetExpanded: defaultState => {\n var _table$initialState$e, _table$initialState;\n\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n table.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded; // If expanded is true, save some cycles and return true\n\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n\n if (!Object.keys(expanded).length) {\n return false;\n } // If any row is not expanded, return false\n\n\n if (table.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false;\n } // They must all be expanded :shrug:\n\n\n return true;\n },\n getExpandedDepth: () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n\n return table._getExpandedRowModel();\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n var _expanded;\n\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n\n if (!exists && expanded) {\n return { ...oldExpanded,\n [row.id]: true\n };\n }\n\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n\n return old;\n });\n },\n getIsExpanded: () => {\n var _table$options$getIsR;\n\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n },\n getCanExpand: () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n\n return ((_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : true) && ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue;\n\n const search = filterValue.toLowerCase();\n return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);\n};\n\nincludesString.autoRemove = val => testFalsey(val);\n\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n\n return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);\n};\n\nincludesStringSensitive.autoRemove = val => testFalsey(val);\n\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : _row$getValue3.toLowerCase()) === filterValue.toLowerCase();\n};\n\nequalsString.autoRemove = val => testFalsey(val);\n\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\n\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\n\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\n\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\n\nequals.autoRemove = val => testFalsey(val);\n\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\n\nweakEquals.autoRemove = val => testFalsey(val);\n\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\n\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n\n return [min, max];\n};\n\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]); // Export\n\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n\n// Utils\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\nconst Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode, _table$getCoreRowMode2;\n\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();\n return typeof value === 'string';\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n\n return filterFns.weakEquals;\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : filterFns[column.columnDef.filterFn];\n },\n getCanFilter: () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n },\n getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _table$options$enable3, _table$options$enable4, _table$options$getCol;\n\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _table$getState$colum, _table$getState$colum2;\n\n return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;\n },\n getFilterIndex: () => {\n var _table$getState$colum3, _table$getState$colum4;\n\n return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;\n },\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //\n\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n\n if (previousfilter) {\n var _old$map;\n\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n\n return d;\n })) != null ? _old$map : [];\n }\n\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n\n return [newFilterObj];\n });\n },\n _getFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n\n return column._getFacetedMinMaxValues();\n } // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n\n };\n },\n createRow: (row, table) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createTable: table => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : filterFns[globalFilterFn];\n },\n setColumnFilters: updater => {\n const leafColumns = table.getAllLeafColumns();\n\n const updateFn = old => {\n var _functionalUpdate;\n\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n\n if (column) {\n const filterFn = column.getFilterFn();\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n table.options.onColumnFiltersChange == null ? void 0 : table.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange == null ? void 0 : table.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n },\n resetColumnFilters: defaultState => {\n var _table$initialState$c, _table$initialState;\n\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n },\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n _getFilteredRowModel: table.options.getFilteredRowModel && table.options.getFilteredRowModel(table),\n getFilteredRowModel: () => {\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return table._getFilteredRowModel();\n },\n _getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return table._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n\n return table._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n\n return table._getGlobalFacetedMinMaxValues();\n }\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\n\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\n\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\n\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\n\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\n\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n\n let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 2;\n};\n\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\n\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\n\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\n\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\nconst Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n\n return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n\n return [...(old != null ? old : []), column.id];\n });\n },\n getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n getIsGrouped: () => {\n var _table$getState$group;\n\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n },\n getGroupedIndex: () => {\n var _table$getState$group2;\n\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n },\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : aggregationFns[column.columnDef.aggregationFn];\n }\n };\n },\n createTable: table => {\n return {\n setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),\n resetGrouping: defaultState => {\n var _table$initialState$g, _table$initialState;\n\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n },\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n\n return table._getGroupedRowModel();\n }\n };\n },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, table) => {\n\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n }\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\nconst Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createTable: table => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _table$initialState$c;\n\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n },\n _getOrderColumnsFn: memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = []; // If there is no order, return the normal columns\n\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder]; // If there is an order, make a copy of the columns\n\n const columnsCopy = [...columns]; // And make a new ordered array of the columns\n // Loop over the columns and place them in order into the new array\n\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n } // If there are any columns left, add them to the end\n\n\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn' // debug: () => table.options.debugAll ?? table.options.debugTable,\n\n })\n };\n }\n};\n\n//\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\n\nconst Pagination = {\n getInitialState: state => {\n return { ...state,\n pagination: { ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetPageIndex: () => {\n var _ref, _table$options$autoRe;\n\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n },\n setPagination: updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n },\n resetPagination: defaultState => {\n var _table$initialState$p;\n\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);\n return { ...old,\n pageIndex\n };\n });\n },\n resetPageIndex: defaultState => {\n var _table$initialState$p2, _table$initialState, _table$initialState$p3;\n\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _table$initialState$p4, _table$initialState2, _table$initialState2$;\n\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return { ...old,\n pageIndex,\n pageSize\n };\n });\n },\n setPageCount: updater => table.setPagination(old => {\n var _table$options$pageCo;\n\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n\n return { ...old,\n pageCount: newPageCount\n };\n }),\n getPageOptions: memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n\n return pageOptions;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n getCanNextPage: () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n\n if (pageCount === -1) {\n return true;\n }\n\n if (pageCount === 0) {\n return false;\n }\n\n return pageIndex < pageCount - 1;\n },\n previousPage: () => {\n return table.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n\n return table._getPaginationRowModel();\n },\n getPageCount: () => {\n var _table$options$pageCo2;\n\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\n\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n return {\n pin: position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n\n if (position === 'right') {\n var _old$left, _old$right;\n\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n\n if (position === 'left') {\n var _old$left2, _old$right2;\n\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n },\n getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _table$options$enable;\n\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);\n });\n },\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n },\n getPinnedIndex: () => {\n var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;\n\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n }\n };\n },\n createRow: (row, table) => {\n return {\n getCenterVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getLeftVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n }),\n getRightVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n return {\n setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _table$initialState$c, _table$initialState;\n\n return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());\n },\n getIsSomeColumnsPinned: position => {\n var _pinningState$positio;\n\n const pinningState = table.getState().columnPinning;\n\n if (!position) {\n var _pinningState$left, _pinningState$right;\n\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n },\n getLeftLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getRightLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getCenterLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _table$options$debugA6;\n\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;\n }\n })\n };\n }\n};\n\n//\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n\n };\n },\n createTable: table => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _table$initialState$r;\n\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n },\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = { ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n\n return rowSelection;\n });\n },\n toggleAllPageRowsSelected: value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = { ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table);\n });\n return rowSelection;\n }),\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n // let include = false\n // const selectedRowIds = {}\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n // if (include) {\n // addRow(row)\n // }\n // })\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getFilteredSelectedRowModel: memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;\n }\n }),\n getGroupedSelectedRowModel: memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;\n }\n }),\n ///\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n // if (!row) {\n // throw new Error()\n // }\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n // return table.options.enableGroupingRowSelection ?? false\n // },\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = table.getPreFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n\n return isAllRowsSelected;\n },\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n\n return isAllPageRowsSelected;\n },\n getIsSomeRowsSelected: () => {\n var _table$getState$rowSe;\n\n return !table.getIsAllRowsSelected() && !!Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n },\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());\n },\n getToggleAllRowsSelectedHandler: () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n\n if (isSelected === value) {\n return old;\n }\n\n const selectedRowIds = { ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, table);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n },\n getIsAllSubRowsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n },\n getCanSelect: () => {\n var _table$options$enable;\n\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n },\n getCanSelectSubRows: () => {\n var _table$options$enable2;\n\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n },\n getCanMultiSelect: () => {\n var _table$options$enable3;\n\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst mutateRowIsSelected = (selectedRowIds, id, value, table) => {\n var _row$subRows;\n\n const row = table.getRow(id); // const isGrouped = row.getIsGrouped()\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n } // }\n\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, table));\n }\n};\n\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {}; // Filters top level and nested rows\n\n const recurseRows = function (rows, depth) {\n\n return rows.map(row => {\n var _row$subRows2;\n\n const isSelected = isRowSelected(row, rowSelection);\n\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = { ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n }\n\n return false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId); // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n\n return a > b ? 1 : a < b ? -1 : 0;\n};\n\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n}; // Utils\n\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n\n return String(a);\n }\n\n if (typeof a === 'string') {\n return a;\n }\n\n return '';\n} // Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\n\n\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While\n\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort(); // Both are string\n\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n\n if (bb > aa) {\n return -1;\n }\n\n continue;\n } // One is a string, one is a number\n\n\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n } // Both are numbers\n\n\n if (an > bn) {\n return 1;\n }\n\n if (bn > an) {\n return -1;\n }\n }\n\n return a.length - b.length;\n} // Exports\n\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n\n if (typeof value === 'string') {\n isString = true;\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n\n if (isString) {\n return sortingFns.text;\n }\n\n return sortingFns.basic;\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return 'asc';\n }\n\n return 'desc';\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : sortingFns[column.columnDef.sortingFn];\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = []; // What should we do with this sort action?\n\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'; // Multi-mode\n\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n } // Handle toggle states that will remove the sorting\n\n\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n\n if (sortAction === 'add') {\n var _table$options$maxMul;\n\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }]; // Take latest n columns\n\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return { ...d,\n desc: nextDesc\n };\n }\n\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n\n return newSorting;\n });\n },\n getFirstSortDir: () => {\n var _ref, _column$columnDef$sor;\n\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n },\n getNextSortingOrder: multi => {\n var _table$options$enable, _table$options$enable2;\n\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n\n if (!isSorted) {\n return firstSortDirection;\n }\n\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && ( // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n\n return isSorted === 'desc' ? 'asc' : 'desc';\n },\n getCanSort: () => {\n var _column$columnDef$ena, _table$options$enable3;\n\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref2, _column$columnDef$ena2;\n\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n },\n getIsSorted: () => {\n var _table$getState$sorti;\n\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n },\n getSortIndex: () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n },\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n },\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createTable: table => {\n return {\n setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),\n resetSorting: defaultState => {\n var _table$initialState$s, _table$initialState;\n\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n\n return table._getSortedRowModel();\n }\n };\n }\n};\n\n//\nconst Visibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({ ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _table$getState$colum, _table$getState$colum2;\n\n return (_table$getState$colum = (_table$getState$colum2 = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum2[column.id]) != null ? _table$getState$colum : true;\n },\n getCanHide: () => {\n var _column$columnDef$ena, _table$options$enable;\n\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n },\n getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, {\n key,\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n });\n };\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns()),\n setColumnVisibility: updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _table$initialState$c;\n\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n },\n toggleAllColumnsVisible: value => {\n var _value;\n\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({ ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n },\n getIsAllColumnsVisible: () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing]; //\n\nfunction createTable(options) {\n var _options$initialState;\n\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n\n let table = {\n _features: features\n };\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n\n return { ...defaultOptions,\n ...options\n };\n };\n\n const coreInitialState = {};\n let initialState = { ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features: features,\n options: { ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n\n if (!queuedTimeout) {\n queuedTimeout = true; // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null ? void 0 : table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : \"\" + (parent ? [parent.id, index].join('.') : index);\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n getRow: id => {\n const row = table.getRowModel().rowsById[id];\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"getRow expected an ID, but got \" + id);\n }\n\n throw new Error();\n }\n\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null ? void 0 : _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n\n return recurseColumns(columnDefs);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"[Table] Column with id \" + columnId + \" does not exist.\");\n }\n\n throw new Error();\n }\n\n return column;\n }\n };\n Object.assign(table, coreInstance);\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable == null ? void 0 : feature.createTable(table));\n });\n\n return table;\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n\n const cell = {\n id: row.id + \"_\" + column.id,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: () => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n })\n };\n\n table._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));\n }, {});\n\n return cell;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n const column = table.getColumn(columnId);\n\n if (!column.accessorFn) {\n return undefined;\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));\n }\n\n return row;\n};\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n\n const accessRows = function (originalRows, depth, parent) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = [];\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array\n\n rowModel.flatRows.push(row); // Also keep track of every row by its ID\n\n rowModel.rowsById[row.id] = row; // Push table row into parent\n\n rows.push(row); // Get the original subrows\n\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n\n row.originalSubRows = table.options.getSubRows(originalRows[i], i); // Then recursively access them\n\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n\n return rows;\n };\n\n rowModel.rows = accessRows(data);\n return rowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n\n const rows = []; // Filter from children up first\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n\n let row = rowsToFilter[i];\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth);\n newRow.columnFilters = row.columnFilters;\n newRow.subRows = recurseFilterRows(row.subRows);\n\n if (!newRow.subRows.length) {\n continue;\n }\n\n row = newRow;\n }\n\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {}; // Filters top level and nested rows\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n\n // Filter from parents downward first\n const rows = []; // Apply the filter to any subRows\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n\n if (pass) {\n var _row$subRows2;\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth);\n newRow.subRows = recurseFilterRows(row.subRows);\n row = newRow;\n }\n\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n\n return rowModel;\n }\n\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n\n const column = table.getColumn(d.id);\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Table: Could not find a column to filter with columnId: \" + d.id);\n }\n }\n\n const filterFn = column.getFilterFn();\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Could not find a valid 'column.filterFn' for column with the ID: \" + column.id + \".\");\n }\n\n return;\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = columnFilters.map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n\n let currentColumnFilter;\n let currentGlobalFilter; // Flag the prefiltered row model with each filter state\n\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id; // Tag the row with the column filter state\n\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id; // Tag the row with the first truthy global filter state\n\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n\n return true;\n }; // Filter final rows using all of the active filters\n\n\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n\n return true;\n };\n\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n let facetedUniqueValues = new Map();\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat;\n\n const value = (_facetedRowModel$flat = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n\n return facetedUniqueValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n var _facetedRowModel$flat;\n\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n\n let facetedMinMaxValues = [firstValue, firstValue];\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const value = facetedRowModel.flatRows[i].getValue(columnId);\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n\n const sortingState = table.getState().sorting;\n const sortedFlatRows = []; // Filter out sortings that correspond to non existing columns\n\n const availableSorting = sortingState.filter(sort => table.getColumn(sort.id).getCanSort());\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice();\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n } // This function should always return in ascending order\n\n\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n\n return sortInt;\n }\n }\n\n return rowA.index - rowB.index;\n }); // If there are sub-rows, sort them\n\n sortedData.forEach(row => {\n sortedFlatRows.push(row);\n\n if (!row.subRows || row.subRows.length <= 1) {\n return;\n }\n\n row.subRows = sortData(row.subRows);\n });\n return sortedData;\n };\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel;\n } // Filter the grouping list down to columns that exist\n\n\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n // Recursively group the data\n\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1);\n }\n\n return row;\n });\n }\n\n const columnId = existingGrouping[depth]; // Group the rows together for this level\n\n const rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group\n\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = columnId + \":\" + groupingValue;\n id = parentId ? parentId + \">\" + id : id; // First, Recurse to group sub rows before aggregation\n\n const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group\n\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n\n return row._valuesCache[columnId];\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n } // Aggregate the values\n\n\n const column = table.getColumn(columnId);\n const aggregateFn = column.getAggregationFn();\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '');\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded();\n\n table._autoResetPageIndex();\n });\n }\n });\n}\n\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = \"\" + row.getValue(columnId);\n const previous = map.get(resKey);\n\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n map.set(resKey, [...previous, row]);\n }\n\n return map;\n }, groupMap);\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || // Do not expand if rows are not included in pagination\n !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n\n return expandRows(rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\nfunction expandRows(rowModel, table) {\n const expandedRows = [];\n\n const handleRow = row => {\n var _row$subRows;\n\n expandedRows.push(row);\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel()], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n\n paginatedRowModel.flatRows = [];\n\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createColumn, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.js.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n TableOptions,\n TableOptionsResolved,\n RowData,\n createTable,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> = React.ReactNode | React.ComponentType<TProps>\n\n//\n\nexport function flexRender<TProps extends object>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode | JSX.Element {\n return !Comp ? null : isReactComponent<TProps>(Comp) ? (\n <Comp {...props} />\n ) : (\n Comp\n )\n}\n\nfunction isReactComponent<TProps>(\n component: unknown\n): component is React.ComponentType<TProps> {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport function useReactTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...options,\n }\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable<TData>(resolvedOptions),\n }))\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState)\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return tableRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","table","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","_getDefaultColumnDef","accessorFn","id","accessorKey","header","undefined","originalRow","Error","column","columns","getFlatColumns","_column$columns","flatMap","_table$options$debugA","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_table$options$debugA2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","getContext","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","includes","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_table$options$debugA3","getRightHeaderGroups","_right$map$filter2","_table$options$debugA4","getFooterGroups","headerGroups","reverse","_table$options$debugA5","getLeftFooterGroups","_table$options$debugA6","getCenterFooterGroups","_table$options$debugA7","getRightFooterGroups","_table$options$debugA8","getFlatHeaders","headers","_table$options$debugA9","getLeftFlatHeaders","_table$options$debugA10","getCenterFlatHeaders","_table$options$debugA11","getRightFlatHeaders","_table$options$debugA12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_table$options$debugA13","getLeftLeafHeaders","_header$subHeaders2","_table$options$debugA14","getRightLeafHeaders","_header$subHeaders3","_table$options$debugA15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_table$options$debugA16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_table$options$enable","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","mouseEvents","moveHandler","onMove","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_table$initialState$c","initialState","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","_table$initialState","getCanSomeRowsExpand","getRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getIsExpanded","getExpandedDepth","rowsById","splitId","split","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","search","toLowerCase","getValue","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","_table$getCoreRowMode2","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","value","Array","isArray","getFilterFn","getCanFilter","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","_table$getState$colum4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_toString","_props$getValue","toString","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","preFilteredFlatRows","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","a","b","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sort","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","defaultColumn","_defaultColumn","footer","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","_getAllFlatColumnsById","flatColumns","acc","original","rowIndex","_valuesCache","hasOwnProperty","renderFallbackValue","getLeafRows","_cell$getValue","filterRows","filterRowImpl","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","filterRowModelFromRoot","expandRows","expandedRows","handleRow","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","j","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","tableRef","useState","current","prev"],"mappings":"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"}
1
+ {"version":3,"file":"index.production.js","sources":["../../../table-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {//\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return { ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + pad(resultEndTime, 5) + \" /\" + pad(depEndTime, 5) + \" ms\", \"\\n font-size: .6rem;\\n font-weight: bold;\\n color: hsl(\" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + \"deg 100% 31%);\", opts == null ? void 0 : opts.key);\n }\n }\n\n return result;\n };\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n\n const defaultColumn = table._getDefaultColumnDef();\n\n const resolvedColumnDef = { ...defaultColumn,\n ...columnDef\n };\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : resolvedColumnDef.accessorKey) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? \"Columns require an id when using an accessorFn\" : \"Columns require an id when using a non-string header\");\n }\n\n throw new Error();\n }\n\n let column = {\n id: \"\" + String(id),\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n }\n }),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n\n return [column];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n })\n };\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));\n }, column); // Yes, we have to convert table to uknown, because we know more than the compiler here.\n\n return column;\n}\n\n//\nfunction createHeader(table, column, options) {\n var _options$id;\n\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n\n leafHeaders.push(h);\n };\n\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));\n });\n\n return header;\n}\n\nconst Headers = {\n createTable: table => {\n return {\n // Header Groups\n getHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;\n }\n }),\n getCenterHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;\n }\n }),\n getLeftHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;\n }\n }),\n getRightHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;\n }\n }),\n // Footer Groups\n getFooterGroups: memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _table$options$debugA6;\n\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _table$options$debugA7;\n\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _table$options$debugA8;\n\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;\n }\n }),\n // Flat Headers\n getFlatHeaders: memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _table$options$debugA9;\n\n return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _table$options$debugA10;\n\n return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _table$options$debugA11;\n\n return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _table$options$debugA12;\n\n return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;\n }\n }),\n // Leaf Headers\n getCenterLeafHeaders: memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _table$options$debugA13;\n\n return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;\n }\n }),\n getLeftLeafHeaders: memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _table$options$debugA14;\n\n return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;\n }\n }),\n getRightLeafHeaders: memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _table$options$debugA15;\n\n return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;\n }\n }),\n getLeafHeaders: memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _table$options$debugA16;\n\n return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;\n }\n })\n };\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n let maxDepth = 0;\n\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n\n findMaxDepth(allColumns);\n let headerGroups = [];\n\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, \"\" + depth].filter(Boolean).join('_'),\n headers: []\n }; // The parent columns we're going to scan next\n\n const pendingParentHeaders = []; // Scan each column for parents\n\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? \"\" + pendingParentHeaders.filter(d => d.column === column).length : undefined,\n depth,\n index: pendingParentHeaders.length\n }); // Add the headerToGroup as a subHeader of the new header\n\n header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n\n pendingParentHeaders.push(header);\n }\n\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\n//\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\n\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\n\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n return {\n getSize: () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n },\n getStart: position => {\n const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n\n return 0;\n },\n resetSize: () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n getCanResize: () => {\n var _column$columnDef$ena, _table$options$enable;\n\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, table) => {\n return {\n getSize: () => {\n let sum = 0;\n\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n\n recurse(header);\n return sum;\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n\n return 0;\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id);\n const canResize = column.getCanResize();\n return e => {\n if (!canResize) {\n return;\n }\n e.persist == null ? void 0 : e.persist();\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n\n let newColumnSizing = {};\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n\n const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return { ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({ ...old,\n ...newColumnSizing\n }));\n }\n };\n\n const onMove = clientXPos => updateOffset('move', clientXPos);\n\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({ ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n\n if (isTouchStartEvent(e)) ; else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n\n table.setColumnSizingInfo(old => ({ ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n }\n };\n },\n createTable: table => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _table$initialState$c;\n\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n },\n resetHeaderSizeInfo: defaultState => {\n var _table$initialState$c2;\n\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n },\n getTotalSize: () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n },\n getLeftTotalSize: () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n },\n getCenterTotalSize: () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n },\n getRightTotalSize: () => {\n var _table$getRightHeader, _table$getRightHeader2;\n\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n }\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n\n };\n\n const noop = () => {};\n\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n\n passiveSupported = supported;\n return passiveSupported;\n}\n\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\nconst Expanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetExpanded: () => {\n var _ref, _table$options$autoRe;\n\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n },\n setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n },\n resetExpanded: defaultState => {\n var _table$initialState$e, _table$initialState;\n\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n table.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded; // If expanded is true, save some cycles and return true\n\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n\n if (!Object.keys(expanded).length) {\n return false;\n } // If any row is not expanded, return false\n\n\n if (table.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false;\n } // They must all be expanded :shrug:\n\n\n return true;\n },\n getExpandedDepth: () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n\n return table._getExpandedRowModel();\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n var _expanded;\n\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n\n if (!exists && expanded) {\n return { ...oldExpanded,\n [row.id]: true\n };\n }\n\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n\n return old;\n });\n },\n getIsExpanded: () => {\n var _table$options$getIsR;\n\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n },\n getCanExpand: () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue;\n\n const search = filterValue.toLowerCase();\n return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);\n};\n\nincludesString.autoRemove = val => testFalsey(val);\n\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n\n return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);\n};\n\nincludesStringSensitive.autoRemove = val => testFalsey(val);\n\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : _row$getValue3.toLowerCase()) === filterValue.toLowerCase();\n};\n\nequalsString.autoRemove = val => testFalsey(val);\n\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\n\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\n\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\n\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\n\nequals.autoRemove = val => testFalsey(val);\n\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\n\nweakEquals.autoRemove = val => testFalsey(val);\n\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\n\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n\n return [min, max];\n};\n\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]); // Export\n\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n\n// Utils\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\nconst Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode, _table$getCoreRowMode2;\n\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();\n return typeof value === 'string';\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n\n return filterFns.weakEquals;\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : filterFns[column.columnDef.filterFn];\n },\n getCanFilter: () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n },\n getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _table$options$enable3, _table$options$enable4, _table$options$getCol;\n\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _table$getState$colum, _table$getState$colum2;\n\n return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;\n },\n getFilterIndex: () => {\n var _table$getState$colum3, _table$getState$colum4;\n\n return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;\n },\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //\n\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n\n if (previousfilter) {\n var _old$map;\n\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n\n return d;\n })) != null ? _old$map : [];\n }\n\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n\n return [newFilterObj];\n });\n },\n _getFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n\n return column._getFacetedMinMaxValues();\n } // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n\n };\n },\n createRow: (row, table) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createTable: table => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : filterFns[globalFilterFn];\n },\n setColumnFilters: updater => {\n const leafColumns = table.getAllLeafColumns();\n\n const updateFn = old => {\n var _functionalUpdate;\n\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n\n if (column) {\n const filterFn = column.getFilterFn();\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n table.options.onColumnFiltersChange == null ? void 0 : table.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange == null ? void 0 : table.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n },\n resetColumnFilters: defaultState => {\n var _table$initialState$c, _table$initialState;\n\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n },\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n _getFilteredRowModel: table.options.getFilteredRowModel && table.options.getFilteredRowModel(table),\n getFilteredRowModel: () => {\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return table._getFilteredRowModel();\n },\n _getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n\n return table._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n\n return table._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n\n return table._getGlobalFacetedMinMaxValues();\n }\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\n\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\n\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\n\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\n\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\n\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n\n let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 2;\n};\n\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\n\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\n\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\n\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\nconst Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n\n return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n\n return [...(old != null ? old : []), column.id];\n });\n },\n getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n getIsGrouped: () => {\n var _table$getState$group;\n\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n },\n getGroupedIndex: () => {\n var _table$getState$group2;\n\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n },\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : aggregationFns[column.columnDef.aggregationFn];\n }\n };\n },\n createTable: table => {\n return {\n setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),\n resetGrouping: defaultState => {\n var _table$initialState$g, _table$initialState;\n\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n },\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n\n return table._getGroupedRowModel();\n }\n };\n },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, table) => {\n\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n }\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\nconst Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createTable: table => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _table$initialState$c;\n\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n },\n _getOrderColumnsFn: memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = []; // If there is no order, return the normal columns\n\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder]; // If there is an order, make a copy of the columns\n\n const columnsCopy = [...columns]; // And make a new ordered array of the columns\n // Loop over the columns and place them in order into the new array\n\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n } // If there are any columns left, add them to the end\n\n\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn' // debug: () => table.options.debugAll ?? table.options.debugTable,\n\n })\n };\n }\n};\n\n//\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\n\nconst Pagination = {\n getInitialState: state => {\n return { ...state,\n pagination: { ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetPageIndex: () => {\n var _ref, _table$options$autoRe;\n\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n },\n setPagination: updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n },\n resetPagination: defaultState => {\n var _table$initialState$p;\n\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);\n return { ...old,\n pageIndex\n };\n });\n },\n resetPageIndex: defaultState => {\n var _table$initialState$p2, _table$initialState, _table$initialState$p3;\n\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _table$initialState$p4, _table$initialState2, _table$initialState2$;\n\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return { ...old,\n pageIndex,\n pageSize\n };\n });\n },\n setPageCount: updater => table.setPagination(old => {\n var _table$options$pageCo;\n\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n\n return { ...old,\n pageCount: newPageCount\n };\n }),\n getPageOptions: memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n\n return pageOptions;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n getCanNextPage: () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n\n if (pageCount === -1) {\n return true;\n }\n\n if (pageCount === 0) {\n return false;\n }\n\n return pageIndex < pageCount - 1;\n },\n previousPage: () => {\n return table.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n\n return table._getPaginationRowModel();\n },\n getPageCount: () => {\n var _table$options$pageCo2;\n\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\n\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n return {\n pin: position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n\n if (position === 'right') {\n var _old$left, _old$right;\n\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n\n if (position === 'left') {\n var _old$left2, _old$right2;\n\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n },\n getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _table$options$enable;\n\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);\n });\n },\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n },\n getPinnedIndex: () => {\n var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;\n\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n }\n };\n },\n createRow: (row, table) => {\n return {\n getCenterVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getLeftVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n }),\n getRightVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n return {\n setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _table$initialState$c, _table$initialState;\n\n return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());\n },\n getIsSomeColumnsPinned: position => {\n var _pinningState$positio;\n\n const pinningState = table.getState().columnPinning;\n\n if (!position) {\n var _pinningState$left, _pinningState$right;\n\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n },\n getLeftLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getRightLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getCenterLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _table$options$debugA6;\n\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;\n }\n })\n };\n }\n};\n\n//\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n\n };\n },\n createTable: table => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _table$initialState$r;\n\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n },\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = { ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n\n return rowSelection;\n });\n },\n toggleAllPageRowsSelected: value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = { ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table);\n });\n return rowSelection;\n }),\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n // let include = false\n // const selectedRowIds = {}\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n // if (include) {\n // addRow(row)\n // }\n // })\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getFilteredSelectedRowModel: memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;\n }\n }),\n getGroupedSelectedRowModel: memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;\n }\n }),\n ///\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n // if (!row) {\n // throw new Error()\n // }\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n // return table.options.enableGroupingRowSelection ?? false\n // },\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = table.getPreFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n\n return isAllRowsSelected;\n },\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n\n return isAllPageRowsSelected;\n },\n getIsSomeRowsSelected: () => {\n var _table$getState$rowSe;\n\n return !table.getIsAllRowsSelected() && !!Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n },\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());\n },\n getToggleAllRowsSelectedHandler: () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n\n if (isSelected === value) {\n return old;\n }\n\n const selectedRowIds = { ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, table);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n },\n getIsAllSubRowsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n },\n getCanSelect: () => {\n var _table$options$enable;\n\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n },\n getCanSelectSubRows: () => {\n var _table$options$enable2;\n\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n },\n getCanMultiSelect: () => {\n var _table$options$enable3;\n\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst mutateRowIsSelected = (selectedRowIds, id, value, table) => {\n var _row$subRows;\n\n const row = table.getRow(id); // const isGrouped = row.getIsGrouped()\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n } // }\n\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, table));\n }\n};\n\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {}; // Filters top level and nested rows\n\n const recurseRows = function (rows, depth) {\n\n return rows.map(row => {\n var _row$subRows2;\n\n const isSelected = isRowSelected(row, rowSelection);\n\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = { ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n }\n\n return false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId); // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n\n return a > b ? 1 : a < b ? -1 : 0;\n};\n\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n}; // Utils\n\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n\n return String(a);\n }\n\n if (typeof a === 'string') {\n return a;\n }\n\n return '';\n} // Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\n\n\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While\n\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort(); // Both are string\n\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n\n if (bb > aa) {\n return -1;\n }\n\n continue;\n } // One is a string, one is a number\n\n\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n } // Both are numbers\n\n\n if (an > bn) {\n return 1;\n }\n\n if (bn > an) {\n return -1;\n }\n }\n\n return a.length - b.length;\n} // Exports\n\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n\n if (typeof value === 'string') {\n isString = true;\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n\n if (isString) {\n return sortingFns.text;\n }\n\n return sortingFns.basic;\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return 'asc';\n }\n\n return 'desc';\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : sortingFns[column.columnDef.sortingFn];\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = []; // What should we do with this sort action?\n\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'; // Multi-mode\n\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n } // Handle toggle states that will remove the sorting\n\n\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n\n if (sortAction === 'add') {\n var _table$options$maxMul;\n\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }]; // Take latest n columns\n\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return { ...d,\n desc: nextDesc\n };\n }\n\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n\n return newSorting;\n });\n },\n getFirstSortDir: () => {\n var _ref, _column$columnDef$sor;\n\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n },\n getNextSortingOrder: multi => {\n var _table$options$enable, _table$options$enable2;\n\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n\n if (!isSorted) {\n return firstSortDirection;\n }\n\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && ( // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n\n return isSorted === 'desc' ? 'asc' : 'desc';\n },\n getCanSort: () => {\n var _column$columnDef$ena, _table$options$enable3;\n\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref2, _column$columnDef$ena2;\n\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n },\n getIsSorted: () => {\n var _table$getState$sorti;\n\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n },\n getSortIndex: () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n },\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n },\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createTable: table => {\n return {\n setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),\n resetSorting: defaultState => {\n var _table$initialState$s, _table$initialState;\n\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n\n return table._getSortedRowModel();\n }\n };\n }\n};\n\n//\nconst Visibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({ ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _table$getState$colum, _table$getState$colum2;\n\n return (_table$getState$colum = (_table$getState$colum2 = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum2[column.id]) != null ? _table$getState$colum : true;\n },\n getCanHide: () => {\n var _column$columnDef$ena, _table$options$enable;\n\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n },\n getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, {\n key,\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n });\n };\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns()),\n setColumnVisibility: updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _table$initialState$c;\n\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n },\n toggleAllColumnsVisible: value => {\n var _value;\n\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({ ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n },\n getIsAllColumnsVisible: () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing]; //\n\nfunction createTable(options) {\n var _options$initialState;\n\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n\n let table = {\n _features: features\n };\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n\n return { ...defaultOptions,\n ...options\n };\n };\n\n const coreInitialState = {};\n let initialState = { ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features: features,\n options: { ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n\n if (!queuedTimeout) {\n queuedTimeout = true; // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null ? void 0 : table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : \"\" + (parent ? [parent.id, index].join('.') : index);\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n getRow: id => {\n const row = table.getRowModel().rowsById[id];\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"getRow expected an ID, but got \" + id);\n }\n\n throw new Error();\n }\n\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null ? void 0 : _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n\n return recurseColumns(columnDefs);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _table$options$debugA3;\n\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _table$options$debugA4;\n\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"[Table] Column with id \" + columnId + \" does not exist.\");\n }\n\n throw new Error();\n }\n\n return column;\n }\n };\n Object.assign(table, coreInstance);\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable == null ? void 0 : feature.createTable(table));\n });\n\n return table;\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n\n const cell = {\n id: row.id + \"_\" + column.id,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: () => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n })\n };\n\n table._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));\n }, {});\n\n return cell;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n const column = table.getColumn(columnId);\n\n if (!column.accessorFn) {\n return undefined;\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _table$options$debugA2;\n\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));\n }\n\n return row;\n};\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n\n const accessRows = function (originalRows, depth, parent) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = [];\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array\n\n rowModel.flatRows.push(row); // Also keep track of every row by its ID\n\n rowModel.rowsById[row.id] = row; // Push table row into parent\n\n rows.push(row); // Get the original subrows\n\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n\n row.originalSubRows = table.options.getSubRows(originalRows[i], i); // Then recursively access them\n\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n\n return rows;\n };\n\n rowModel.rows = accessRows(data);\n return rowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n\n const rows = []; // Filter from children up first\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n\n let row = rowsToFilter[i];\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth);\n newRow.columnFilters = row.columnFilters;\n newRow.subRows = recurseFilterRows(row.subRows);\n\n if (!newRow.subRows.length) {\n continue;\n }\n\n row = newRow;\n }\n\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {}; // Filters top level and nested rows\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n\n // Filter from parents downward first\n const rows = []; // Apply the filter to any subRows\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n\n if (pass) {\n var _row$subRows2;\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth);\n newRow.subRows = recurseFilterRows(row.subRows);\n row = newRow;\n }\n\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n\n return rowModel;\n }\n\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n\n const column = table.getColumn(d.id);\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Table: Could not find a column to filter with columnId: \" + d.id);\n }\n }\n\n const filterFn = column.getFilterFn();\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Could not find a valid 'column.filterFn' for column with the ID: \" + column.id + \".\");\n }\n\n return;\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = columnFilters.map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n\n let currentColumnFilter;\n let currentGlobalFilter; // Flag the prefiltered row model with each filter state\n\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id; // Tag the row with the column filter state\n\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id; // Tag the row with the first truthy global filter state\n\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n\n return true;\n }; // Filter final rows using all of the active filters\n\n\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n\n return true;\n };\n\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n let facetedUniqueValues = new Map();\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat;\n\n const value = (_facetedRowModel$flat = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n\n return facetedUniqueValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n var _facetedRowModel$flat;\n\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n\n let facetedMinMaxValues = [firstValue, firstValue];\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const value = facetedRowModel.flatRows[i].getValue(columnId);\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n\n const sortingState = table.getState().sorting;\n const sortedFlatRows = []; // Filter out sortings that correspond to non existing columns\n\n const availableSorting = sortingState.filter(sort => table.getColumn(sort.id).getCanSort());\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice();\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n } // This function should always return in ascending order\n\n\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n\n return sortInt;\n }\n }\n\n return rowA.index - rowB.index;\n }); // If there are sub-rows, sort them\n\n sortedData.forEach(row => {\n sortedFlatRows.push(row);\n\n if (!row.subRows || row.subRows.length <= 1) {\n return;\n }\n\n row.subRows = sortData(row.subRows);\n });\n return sortedData;\n };\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel;\n } // Filter the grouping list down to columns that exist\n\n\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n // Recursively group the data\n\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1);\n }\n\n return row;\n });\n }\n\n const columnId = existingGrouping[depth]; // Group the rows together for this level\n\n const rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group\n\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = columnId + \":\" + groupingValue;\n id = parentId ? parentId + \">\" + id : id; // First, Recurse to group sub rows before aggregation\n\n const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group\n\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n\n return row._valuesCache[columnId];\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n } // Aggregate the values\n\n\n const column = table.getColumn(columnId);\n const aggregateFn = column.getAggregationFn();\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '');\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded();\n\n table._autoResetPageIndex();\n });\n }\n });\n}\n\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = \"\" + row.getValue(columnId);\n const previous = map.get(resKey);\n\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n map.set(resKey, [...previous, row]);\n }\n\n return map;\n }, groupMap);\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || // Do not expand if rows are not included in pagination\n !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n\n return expandRows(rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\nfunction expandRows(rowModel, table) {\n const expandedRows = [];\n\n const handleRow = row => {\n var _row$subRows;\n\n expandedRows.push(row);\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel()], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n\n paginatedRowModel.flatRows = [];\n\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _table$options$debugA;\n\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createColumn, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.js.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n TableOptions,\n TableOptionsResolved,\n RowData,\n createTable,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> = React.ReactNode | React.ComponentType<TProps>\n\n//\n\nexport function flexRender<TProps extends object>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode | JSX.Element {\n return !Comp ? null : isReactComponent<TProps>(Comp) ? (\n <Comp {...props} />\n ) : (\n Comp\n )\n}\n\nfunction isReactComponent<TProps>(\n component: unknown\n): component is React.ComponentType<TProps> {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport function useReactTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...options,\n }\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable<TData>(resolvedOptions),\n }))\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState)\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return tableRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","table","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","_getDefaultColumnDef","accessorFn","id","accessorKey","header","undefined","originalRow","Error","column","columns","getFlatColumns","_column$columns","flatMap","_table$options$debugA","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_table$options$debugA2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","getContext","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","includes","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_table$options$debugA3","getRightHeaderGroups","_right$map$filter2","_table$options$debugA4","getFooterGroups","headerGroups","reverse","_table$options$debugA5","getLeftFooterGroups","_table$options$debugA6","getCenterFooterGroups","_table$options$debugA7","getRightFooterGroups","_table$options$debugA8","getFlatHeaders","headers","_table$options$debugA9","getLeftFlatHeaders","_table$options$debugA10","getCenterFlatHeaders","_table$options$debugA11","getRightFlatHeaders","_table$options$debugA12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_table$options$debugA13","getLeftLeafHeaders","_header$subHeaders2","_table$options$debugA14","getRightLeafHeaders","_header$subHeaders3","_table$options$debugA15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_table$options$debugA16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_table$options$enable","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","mouseEvents","moveHandler","onMove","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_table$initialState$c","initialState","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","_table$initialState","getCanSomeRowsExpand","getRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getIsExpanded","getExpandedDepth","rowsById","splitId","split","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","search","toLowerCase","getValue","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","_table$getCoreRowMode2","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","value","Array","isArray","getFilterFn","getCanFilter","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","_table$getState$colum4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_toString","_props$getValue","toString","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","preFilteredFlatRows","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","a","b","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sort","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","defaultColumn","_defaultColumn","footer","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","_getAllFlatColumnsById","flatColumns","acc","original","rowIndex","_valuesCache","hasOwnProperty","renderFallbackValue","getLeafRows","_cell$getValue","filterRows","filterRowImpl","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","filterRowModelFromRoot","expandRows","expandedRows","handleRow","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","j","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","tableRef","useState","current","prev"],"mappings":";;;;;;;;;;;;;;;;;;;;KAUA,SAASA,EAAiBC,EAASC,GACjC,MAA0B,mBAAZD,EAAyBA,EAAQC,GAASD,EAI1D,SAASE,EAAiBC,EAAKC,GAC7B,OAAOJ,IACLI,EAASC,UAASC,IACT,IAAKA,EACVH,CAACA,GAAMJ,EAAiBC,EAASM,EAAIH,SAK7C,SAASI,EAAWC,GAClB,OAAOA,aAAaC,SAEtB,SAASC,EAAUC,EAAKC,GACtB,MAAMC,EAAO,GAEPC,EAAUC,IACdA,EAAOC,SAAQC,IACbJ,EAAKK,KAAKD,GACV,MAAME,EAAWP,EAAYK,GAEb,MAAZE,GAAoBA,EAASC,QAC/BN,EAAQK,OAMd,OADAL,EAAQH,GACDE,EAET,SAASQ,EAAKC,EAASC,EAAIC,GACzB,IACIC,EADAC,EAAO,GAEX,MAAO,KACL,IAAIC,EACAH,EAAKrB,KAAOqB,EAAKI,QAAOD,EAAUE,KAAKC,OAC3C,MAAMC,EAAUT,IAGhB,KAFoBS,EAAQX,SAAWM,EAAKN,QAAUW,EAAQC,MAAK,CAACC,EAAKC,IAAUR,EAAKQ,KAAWD,KAGjG,OAAOR,EAIT,IAAIU,EAKJ,GANAT,EAAOK,EAEHP,EAAKrB,KAAOqB,EAAKI,QAAOO,EAAaN,KAAKC,OAC9CL,EAASF,KAAMQ,GACP,MAARP,GAAyC,MAAjBA,EAAKY,UAA4BZ,EAAKY,SAASX,GAEnED,EAAKrB,KAAOqB,EAAKI,OACP,MAARJ,GAAgBA,EAAKI,QAAS,CAChC,MAAMS,EAAaC,KAAKC,MAA+B,KAAxBV,KAAKC,MAAQH,IAAkB,IACxDa,EAAgBF,KAAKC,MAAkC,KAA3BV,KAAKC,MAAQK,IAAqB,IAC9DM,EAAsBD,EAAgB,GAEtCE,EAAM,CAACC,EAAKC,KAGhB,IAFAD,EAAME,OAAOF,GAENA,EAAIvB,OAASwB,GAClBD,EAAM,IAAMA,EAGd,OAAOA,GAGTG,QAAQC,KAAK,OAAcL,EAAIF,EAAe,GAAK,KAAOE,EAAIL,EAAY,GAAK,MAAO,2FAA6FC,KAAKU,IAAI,EAAGV,KAAKW,IAAI,IAAM,IAAMR,EAAqB,MAAQ,iBAA0B,MAARjB,OAAe,EAASA,EAAKrB,KAIpS,OAAOsB,GAIX,SAASyB,EAAaC,EAAOC,EAAWC,EAAOC,GAC7C,IAAIC,EAAMC,EAEV,MAEMC,EAAoB,IAFJN,EAAMO,0BAGvBN,GAEL,IACIO,EADAC,EAAgI,OAA1HL,EAAyD,OAAjDC,EAAwBC,EAAkBG,IAAcJ,EAAwBC,EAAkBI,aAAuBN,EAA2C,iBAA7BE,EAAkBK,OAAsBL,EAAkBK,YAASC,EAS5N,GANIN,EAAkBE,WACpBA,EAAaF,EAAkBE,WACtBF,EAAkBI,cAC3BF,EAAaK,GAAeA,EAAYP,EAAkBI,eAGvDD,EAKH,MAAM,IAAIK,MAGZ,IAAIC,EAAS,CACXN,GAAI,GAAKf,OAAOe,GAChBD,aACAL,OAAQA,EACRD,QACAD,UAAWK,EACXU,QAAS,GACTC,eAAgB/C,GAAK,IAAM,EAAC,KAAO,KACjC,IAAIgD,EAEJ,MAAO,CAACH,KAAkD,OAArCG,EAAkBH,EAAOC,cAAmB,EAASE,EAAgBC,SAAQ9D,GAAKA,EAAE4D,sBACxG,CACDjE,IAA8C,wBAC9CyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQE,gBAG5GC,eAAgBtD,GAAK,IAAM,CAAC8B,EAAMyB,wBAAuBC,IACvD,IAAIC,EAEJ,GAA2C,OAAtCA,EAAmBZ,EAAOC,UAAoBW,EAAiB1D,OAAQ,CAC1E,IAAI2D,EAAcb,EAAOC,QAAQG,SAAQJ,GAAUA,EAAOS,mBAC1D,OAAOE,EAAaE,GAGtB,MAAO,CAACb,KACP,CACD/D,IAA8C,wBAC9CyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQE,iBAQhH,OAJAR,EAASf,EAAM8B,UAAUC,QAAO,CAACC,EAAKC,IAC7BC,OAAOC,OAAOH,EAA6B,MAAxBC,EAAQlC,kBAAuB,EAASkC,EAAQlC,aAAagB,EAAQf,KAC9Fe,GAEIA,EAIT,SAASqB,EAAapC,EAAOe,EAAQM,GACnC,IAAIgB,EAGJ,IAAI1B,EAAS,CACXF,GAFuC,OAA7B4B,EAAchB,EAAQZ,IAAc4B,EAActB,EAAON,GAGnEM,SACAhC,MAAOsC,EAAQtC,MACfuD,gBAAiBjB,EAAQiB,cACzBC,cAAelB,EAAQkB,cACvBrC,MAAOmB,EAAQnB,MACfsC,WAAY,GACZC,QAAS,EACTC,QAAS,EACTC,YAAa,KACbC,eAAgB,KACd,MAAMC,EAAc,GAEdC,EAAgBC,IAChBA,EAAEP,YAAcO,EAAEP,WAAWvE,QAC/B8E,EAAEP,WAAWQ,IAAIF,GAGnBD,EAAY9E,KAAKgF,IAInB,OADAD,EAAcnC,GACPkC,GAETI,WAAY,KAAO,CACjBjD,QACAW,OAAQA,EACRI,YAQJ,OAJAf,EAAM8B,UAAUjE,SAAQoE,IACtBC,OAAOC,OAAOxB,EAAgC,MAAxBsB,EAAQG,kBAAuB,EAASH,EAAQG,aAAazB,EAAQX,OAGtFW,EAGJ,MAACuC,EAAU,CACdC,YAAanD,IACJ,CAELoD,gBAAiBlF,GAAK,IAAM,CAAC8B,EAAMqD,gBAAiBrD,EAAMsD,wBAAyBtD,EAAMuD,WAAWC,cAAcC,KAAMzD,EAAMuD,WAAWC,cAAcE,SAAQ,CAACC,EAAY/B,EAAa6B,EAAMC,KAC7L,IAAIE,EAAkBC,EAEtB,MAAMC,EAA6I,OAA9HF,EAA2B,MAARH,OAAe,EAASA,EAAKT,KAAIe,GAAYnC,EAAYoC,MAAK3G,GAAKA,EAAEoD,KAAOsD,MAAWE,OAAOC,UAAoBN,EAAmB,GACvKO,EAAiJ,OAAjIN,EAA6B,MAATH,OAAgB,EAASA,EAAMV,KAAIe,GAAYnC,EAAYoC,MAAK3G,GAAKA,EAAEoD,KAAOsD,MAAWE,OAAOC,UAAoBL,EAAoB,GAGlL,OADqBO,EAAkBT,EAAY,IAAIG,KADjClC,EAAYqC,QAAOlD,KAAoB,MAAR0C,GAAgBA,EAAKY,SAAStD,EAAON,KAAmB,MAATiD,GAAiBA,EAAMW,SAAStD,EAAON,UAClD0D,GAAenE,KAEvG,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQiD,gBAG5GC,sBAAuBrG,GAAK,IAAM,CAAC8B,EAAMqD,gBAAiBrD,EAAMsD,wBAAyBtD,EAAMuD,WAAWC,cAAcC,KAAMzD,EAAMuD,WAAWC,cAAcE,SAAQ,CAACC,EAAY/B,EAAa6B,EAAMC,IAE5LU,EAAkBT,EADzB/B,EAAcA,EAAYqC,QAAOlD,KAAoB,MAAR0C,GAAgBA,EAAKY,SAAStD,EAAON,KAAmB,MAATiD,GAAiBA,EAAMW,SAAStD,EAAON,OACjFT,EAAO,WACxD,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQiD,gBAG9GE,oBAAqBtG,GAAK,IAAM,CAAC8B,EAAMqD,gBAAiBrD,EAAMsD,wBAAyBtD,EAAMuD,WAAWC,cAAcC,QAAO,CAACE,EAAY/B,EAAa6B,KACrJ,IAAIgB,EAGJ,OAAOL,EAAkBT,EADkI,OAA/Hc,EAA4B,MAARhB,OAAe,EAASA,EAAKT,KAAIe,GAAYnC,EAAYoC,MAAK3G,GAAKA,EAAEoD,KAAOsD,MAAWE,OAAOC,UAAoBO,EAAoB,GAC7HzE,EAAO,UAC/D,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAIiG,EAEJ,OAA4D,OAApDA,EAAyB1E,EAAMqB,QAAQC,UAAoBoD,EAAyB1E,EAAMqB,QAAQiD,gBAG9GK,qBAAsBzG,GAAK,IAAM,CAAC8B,EAAMqD,gBAAiBrD,EAAMsD,wBAAyBtD,EAAMuD,WAAWC,cAAcE,SAAQ,CAACC,EAAY/B,EAAa8B,KACvJ,IAAIkB,EAGJ,OAAOR,EAAkBT,EADqI,OAAlIiB,EAA8B,MAATlB,OAAgB,EAASA,EAAMV,KAAIe,GAAYnC,EAAYoC,MAAK3G,GAAKA,EAAEoD,KAAOsD,MAAWE,OAAOC,UAAoBU,EAAqB,GACjI5E,EAAO,WAC/D,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAIoG,EAEJ,OAA4D,OAApDA,EAAyB7E,EAAMqB,QAAQC,UAAoBuD,EAAyB7E,EAAMqB,QAAQiD,gBAI9GQ,gBAAiB5G,GAAK,IAAM,CAAC8B,EAAMoD,qBAAoB2B,GAC9C,IAAIA,GAAcC,WACxB,CACDhI,KAAK,EACLyB,MAAO,KACL,IAAIwG,EAEJ,OAA4D,OAApDA,EAAyBjF,EAAMqB,QAAQC,UAAoB2D,EAAyBjF,EAAMqB,QAAQiD,gBAG9GY,oBAAqBhH,GAAK,IAAM,CAAC8B,EAAMwE,yBAAwBO,GACtD,IAAIA,GAAcC,WACxB,CACDhI,KAAK,EACLyB,MAAO,KACL,IAAI0G,EAEJ,OAA4D,OAApDA,EAAyBnF,EAAMqB,QAAQC,UAAoB6D,EAAyBnF,EAAMqB,QAAQiD,gBAG9Gc,sBAAuBlH,GAAK,IAAM,CAAC8B,EAAMuE,2BAA0BQ,GAC1D,IAAIA,GAAcC,WACxB,CACDhI,KAAK,EACLyB,MAAO,KACL,IAAI4G,EAEJ,OAA4D,OAApDA,EAAyBrF,EAAMqB,QAAQC,UAAoB+D,EAAyBrF,EAAMqB,QAAQiD,gBAG9GgB,qBAAsBpH,GAAK,IAAM,CAAC8B,EAAM2E,0BAAyBI,GACxD,IAAIA,GAAcC,WACxB,CACDhI,KAAK,EACLyB,MAAO,KACL,IAAI8G,EAEJ,OAA4D,OAApDA,EAAyBvF,EAAMqB,QAAQC,UAAoBiE,EAAyBvF,EAAMqB,QAAQiD,gBAI9GkB,eAAgBtH,GAAK,IAAM,CAAC8B,EAAMoD,qBAAoB2B,GAC7CA,EAAa/B,KAAIL,GACfA,EAAY8C,UAClB/H,QACF,CACDV,KAAK,EACLyB,MAAO,KACL,IAAIiH,EAEJ,OAA4D,OAApDA,EAAyB1F,EAAMqB,QAAQC,UAAoBoE,EAAyB1F,EAAMqB,QAAQiD,gBAG9GqB,mBAAoBzH,GAAK,IAAM,CAAC8B,EAAMwE,yBAAwBf,GACrDA,EAAKT,KAAIL,GACPA,EAAY8C,UAClB/H,QACF,CACDV,KAAK,EACLyB,MAAO,KACL,IAAImH,EAEJ,OAA6D,OAArDA,EAA0B5F,EAAMqB,QAAQC,UAAoBsE,EAA0B5F,EAAMqB,QAAQiD,gBAGhHuB,qBAAsB3H,GAAK,IAAM,CAAC8B,EAAMuE,2BAA0Bd,GACzDA,EAAKT,KAAIL,GACPA,EAAY8C,UAClB/H,QACF,CACDV,KAAK,EACLyB,MAAO,KACL,IAAIqH,EAEJ,OAA6D,OAArDA,EAA0B9F,EAAMqB,QAAQC,UAAoBwE,EAA0B9F,EAAMqB,QAAQiD,gBAGhHyB,oBAAqB7H,GAAK,IAAM,CAAC8B,EAAM2E,0BAAyBlB,GACvDA,EAAKT,KAAIL,GACPA,EAAY8C,UAClB/H,QACF,CACDV,KAAK,EACLyB,MAAO,KACL,IAAIuH,EAEJ,OAA6D,OAArDA,EAA0BhG,EAAMqB,QAAQC,UAAoB0E,EAA0BhG,EAAMqB,QAAQiD,gBAIhH2B,qBAAsB/H,GAAK,IAAM,CAAC8B,EAAM6F,0BAAyBK,GACxDA,EAAYjC,QAAOtD,IACxB,IAAIwF,EAEJ,QAAqD,OAA3CA,EAAqBxF,EAAO6B,aAAuB2D,EAAmBlI,YAEjF,CACDjB,KAAK,EACLyB,MAAO,KACL,IAAI2H,EAEJ,OAA6D,OAArDA,EAA0BpG,EAAMqB,QAAQC,UAAoB8E,EAA0BpG,EAAMqB,QAAQiD,gBAGhH+B,mBAAoBnI,GAAK,IAAM,CAAC8B,EAAM2F,wBAAuBO,GACpDA,EAAYjC,QAAOtD,IACxB,IAAI2F,EAEJ,QAAsD,OAA5CA,EAAsB3F,EAAO6B,aAAuB8D,EAAoBrI,YAEnF,CACDjB,KAAK,EACLyB,MAAO,KACL,IAAI8H,EAEJ,OAA6D,OAArDA,EAA0BvG,EAAMqB,QAAQC,UAAoBiF,EAA0BvG,EAAMqB,QAAQiD,gBAGhHkC,oBAAqBtI,GAAK,IAAM,CAAC8B,EAAM+F,yBAAwBG,GACtDA,EAAYjC,QAAOtD,IACxB,IAAI8F,EAEJ,QAAsD,OAA5CA,EAAsB9F,EAAO6B,aAAuBiE,EAAoBxI,YAEnF,CACDjB,KAAK,EACLyB,MAAO,KACL,IAAIiI,EAEJ,OAA6D,OAArDA,EAA0B1G,EAAMqB,QAAQC,UAAoBoF,EAA0B1G,EAAMqB,QAAQiD,gBAGhH1B,eAAgB1E,GAAK,IAAM,CAAC8B,EAAMwE,sBAAuBxE,EAAMuE,wBAAyBvE,EAAM2E,0BAAyB,CAAClB,EAAMkD,EAAQjD,KACpI,IAAIkD,EAAiBC,EAAQC,EAAmBC,EAAUC,EAAkBC,EAE5E,MAAO,IAAiF,OAA3EL,EAAwC,OAArBC,EAASpD,EAAK,SAAc,EAASoD,EAAOpB,SAAmBmB,EAAkB,MAA6F,OAAnFE,EAA8C,OAAzBC,EAAWJ,EAAO,SAAc,EAASI,EAAStB,SAAmBqB,EAAoB,MAAyF,OAA/EE,EAA2C,OAAvBC,EAAUvD,EAAM,SAAc,EAASuD,EAAQxB,SAAmBuB,EAAmB,IAAKhE,KAAIrC,GAC5VA,EAAOiC,mBACblF,SACF,CACDV,KAAK,EACLyB,MAAO,KACL,IAAIyI,EAEJ,OAA6D,OAArDA,EAA0BlH,EAAMqB,QAAQC,UAAoB4F,EAA0BlH,EAAMqB,QAAQiD,mBAMtH,SAASF,EAAkBT,EAAYwD,EAAgBnH,EAAOoH,GAC5D,IAAIC,EAAuBC,EAO3B,IAAIC,EAAW,EAEf,MAAMC,EAAe,SAAUxG,EAASd,QACxB,IAAVA,IACFA,EAAQ,GAGVqH,EAAWpI,KAAKU,IAAI0H,EAAUrH,GAC9Bc,EAAQiD,QAAOlD,GAAUA,EAAO0G,iBAAgB5J,SAAQkD,IACtD,IAAIG,EAEsC,OAArCA,EAAkBH,EAAOC,UAAoBE,EAAgBjD,QAChEuJ,EAAazG,EAAOC,QAASd,EAAQ,KAEtC,IAGLsH,EAAa7D,GACb,IAAIoB,EAAe,GAEnB,MAAM2C,EAAoB,CAACC,EAAgBzH,KAEzC,MAAMyC,EAAc,CAClBzC,QACAO,GAAI,CAAC2G,EAAc,GAAKlH,GAAO+D,OAAOC,SAAS0D,KAAK,KACpDnC,QAAS,IAGLoC,EAAuB,GAE7BF,EAAe9J,SAAQiK,IAErB,MAAMC,EAA4B,IAAIF,GAAsB7C,UAAU,GAEtE,IAAIjE,EACAuB,GAAgB,EAWpB,GAbqBwF,EAAc/G,OAAOb,QAAUyC,EAAYzC,OAI5C4H,EAAc/G,OAAOZ,OAEvCY,EAAS+G,EAAc/G,OAAOZ,QAG9BY,EAAS+G,EAAc/G,OACvBuB,GAAgB,GAGdyF,IAA2D,MAA7BA,OAAoC,EAASA,EAA0BhH,UAAYA,EAEnHgH,EAA0BvF,WAAWzE,KAAK+J,OACrC,CAEL,MAAMnH,EAASyB,EAAapC,EAAOe,EAAQ,CACzCN,GAAI,CAAC2G,EAAclH,EAAOa,EAAON,GAAqB,MAAjBqH,OAAwB,EAASA,EAAcrH,IAAIwD,OAAOC,SAAS0D,KAAK,KAC7GtF,gBACAC,cAAeD,EAAgB,GAAKuF,EAAqB5D,QAAO5G,GAAKA,EAAE0D,SAAWA,IAAQ9C,YAAS2C,EACnGV,QACAnB,MAAO8I,EAAqB5J,SAG9B0C,EAAO6B,WAAWzE,KAAK+J,GAGvBD,EAAqB9J,KAAK4C,GAG5BgC,EAAY8C,QAAQ1H,KAAK+J,GACzBA,EAAcnF,YAAcA,KAE9BoC,EAAahH,KAAK4E,GAEdzC,EAAQ,GACVwH,EAAkBG,EAAsB3H,EAAQ,IAI9C8H,EAAgBb,EAAenE,KAAI,CAACjC,EAAQhC,IAAUqD,EAAapC,EAAOe,EAAQ,CACtFb,MAAOqH,EACPxI,YAEF2I,EAAkBM,EAAeT,EAAW,GAC5CxC,EAAaC,UAIb,MAAMiD,EAAyBxC,GACLA,EAAQxB,QAAOtD,GAAUA,EAAOI,OAAO0G,iBACxCzE,KAAIrC,IACzB,IAAI8B,EAAU,EACVC,EAAU,EACVwF,EAAgB,CAAC,GAEjBvH,EAAO6B,YAAc7B,EAAO6B,WAAWvE,QACzCiK,EAAgB,GAChBD,EAAuBtH,EAAO6B,YAAY3E,SAAQuC,IAChD,IACEqC,QAAS0F,EACTzF,QAAS0F,GACPhI,EACJqC,GAAW0F,EACXD,EAAcnK,KAAKqK,OAGrB3F,EAAU,EAOZ,OAHAC,GADwBvD,KAAKW,OAAOoI,GAEpCvH,EAAO8B,QAAUA,EACjB9B,EAAO+B,QAAUA,EACV,CACLD,UACAC,cAMN,OADAuF,EAAiI,OAAzGZ,EAA8D,OAArCC,EAAiBvC,EAAa,SAAc,EAASuC,EAAe7B,SAAmB4B,EAAwB,IACzJtC,EAIJ,MAACsD,EAAsB,CAC1BC,KAAM,IACNC,QAAS,GACTC,QAASC,OAAOC,kBAYZC,EAAe,CACnBC,oBAAqB,IACZP,EAETQ,gBAAiBC,IACR,CACLC,aAAc,GACdC,iBAhByC,CAC7CC,YAAa,KACbC,UAAW,KACXC,YAAa,KACbC,gBAAiB,KACjBC,kBAAkB,EAClBC,kBAAmB,OAWZR,IAGPS,kBAAmBvJ,IACV,CACLwJ,iBAAkB,QAClBC,qBAAsB1M,EAAiB,eAAgBiD,GACvD0J,yBAA0B3M,EAAiB,mBAAoBiD,KAGnED,aAAc,CAACgB,EAAQf,KACd,CACL2J,QAAS,KACP,IAAIC,EAAuBxJ,EAAMyJ,EAEjC,MAAMC,EAAa9J,EAAMuD,WAAWwF,aAAahI,EAAON,IACxD,OAAOtB,KAAKW,IAAIX,KAAKU,IAA0D,OAArD+J,EAAwB7I,EAAOd,UAAUsI,SAAmBqB,EAAwBvB,EAAoBE,QAA6E,OAAnEnI,EAAqB,MAAd0J,EAAqBA,EAAa/I,EAAOd,UAAUqI,MAAgBlI,EAAOiI,EAAoBC,MAA6D,OAArDuB,EAAwB9I,EAAOd,UAAUuI,SAAmBqB,EAAwBxB,EAAoBG,UAEnWuB,SAAUC,IACR,MAAMhJ,EAAWgJ,EAAwD,SAAbA,EAAsBhK,EAAMiK,4BAA8BjK,EAAMkK,6BAAhGlK,EAAMsD,wBAC5BvE,EAAQiC,EAAQmJ,WAAU9M,GAAKA,EAAEoD,KAAOM,EAAON,KAErD,GAAI1B,EAAQ,EAAG,CACb,MAAMqL,EAAoBpJ,EAAQjC,EAAQ,GAC1C,OAAOqL,EAAkBL,SAASC,GAAYI,EAAkBT,UAGlE,OAAO,GAETU,UAAW,KACTrK,EAAMsK,iBAAgBC,IACpB,IACE,CAACxJ,EAAON,IAAK+J,KACVC,GACDF,EACJ,OAAOE,MAGXC,aAAc,KACZ,IAAIC,EAAuBC,EAE3B,OAAqE,OAA5DD,EAAwB5J,EAAOd,UAAU4K,iBAA0BF,KAAkG,OAA/DC,EAAwB5K,EAAMqB,QAAQyJ,uBAAgCF,IAEvLG,cAAe,IACN/K,EAAMuD,WAAWyF,iBAAiBK,mBAAqBtI,EAAON,KAI3E2B,aAAc,CAACzB,EAAQX,KACd,CACL2J,QAAS,KACP,IAAIqB,EAAM,EAEV,MAAMrN,EAAUgD,IAIZ,IAAIsK,EAHFtK,EAAO6B,WAAWvE,OACpB0C,EAAO6B,WAAW3E,QAAQF,GAI1BqN,GAA4D,OAApDC,EAAwBtK,EAAOI,OAAO4I,WAAqBsB,EAAwB,GAK/F,OADAtN,EAAQgD,GACDqK,GAETjB,SAAU,KACR,GAAIpJ,EAAO5B,MAAQ,EAAG,CACpB,MAAMmM,EAAoBvK,EAAOgC,YAAY8C,QAAQ9E,EAAO5B,MAAQ,GACpE,OAAOmM,EAAkBnB,WAAamB,EAAkBvB,UAG1D,OAAO,GAETwB,iBAAkB,KAChB,MAAMpK,EAASf,EAAMoL,UAAUzK,EAAOI,OAAON,IACvC4K,EAAYtK,EAAO2J,eACzB,OAAOY,IACL,IAAKD,EACH,OAIF,GAFa,MAAbC,EAAEC,SAA2BD,EAAEC,UAE3BC,EAAkBF,IAEhBA,EAAEG,SAAWH,EAAEG,QAAQxN,OAAS,EAClC,OAIJ,MAAMiL,EAAYvI,EAAOgJ,UACnBL,EAAoB3I,EAASA,EAAOiC,iBAAiBI,KAAI3F,GAAK,CAACA,EAAE0D,OAAON,GAAIpD,EAAE0D,OAAO4I,aAAc,CAAC,CAAC5I,EAAON,GAAIM,EAAO4I,YACvH+B,EAAUF,EAAkBF,GAAKnM,KAAKC,MAAMkM,EAAEG,QAAQ,GAAGC,SAAWJ,EAAEI,QAEtEC,EAAe,CAACC,EAAWC,KAC/B,GAA0B,iBAAfA,EACT,OAGF,IAAIC,EAAkB,GACtB9L,EAAM+L,qBAAoB5O,IACxB,IAAI6O,EAAkBC,EAEtB,MAAM9C,EAAc0C,GAA6E,OAA9DG,EAA0B,MAAP7O,OAAc,EAASA,EAAI8L,aAAuB+C,EAAmB,GACrH5C,EAAkBjK,KAAKU,IAAIsJ,GAA0E,OAA1D8C,EAAwB,MAAP9O,OAAc,EAASA,EAAI+L,WAAqB+C,EAAiB,IAAK,SAKxI,OAJA9O,EAAImM,kBAAkBzL,SAAQqO,IAC5B,IAAKnI,EAAUoI,GAAcD,EAC7BJ,EAAgB/H,GAAY5E,KAAKC,MAA+D,IAAzDD,KAAKU,IAAIsM,EAAaA,EAAa/C,EAAiB,IAAY,OAElG,IAAKjM,EACVgM,cACAC,sBAImC,aAAnCpJ,EAAMqB,QAAQmI,kBAAiD,QAAdoC,GACnD5L,EAAMsK,iBAAgBnN,IAAQ,IAAKA,KAC9B2O,OAmBHM,EAAc,CAClBC,YAAaf,IAAKgB,OAfLT,EAeYP,EAAEI,QAfAC,EAAa,OAAQE,GAAnCA,OAgBbU,UAAWjB,IAdCO,MAeVW,SAASC,oBAAoB,YAAaL,EAAYC,aACtDG,SAASC,oBAAoB,UAAWL,EAAYG,WAhB1CV,EAiBJP,EAAEI,QAhBVC,EAAa,MAAOE,GACpB7L,EAAM+L,qBAAoB5O,IAAQ,IAAKA,EACrCkM,kBAAkB,EAClBJ,YAAa,KACbC,UAAW,KACXC,YAAa,KACbC,gBAAiB,KACjBE,kBAAmB,SAYjBoD,IAAqBC,KAA0B,CACnDC,SAAS,GAGPpB,EAAkBF,KACpBkB,SAASK,iBAAiB,YAAaT,EAAYC,YAAaK,GAChEF,SAASK,iBAAiB,UAAWT,EAAYG,UAAWG,IAG9D1M,EAAM+L,qBAAoB5O,IAAQ,IAAKA,EACrC8L,YAAayC,EACbxC,YACAC,YAAa,EACbC,gBAAiB,EACjBE,oBACAD,iBAAkBtI,EAAON,WAMnC0C,YAAanD,IACJ,CACLsK,gBAAiBzN,GAAiD,MAAtCmD,EAAMqB,QAAQoI,0BAA+B,EAASzJ,EAAMqB,QAAQoI,qBAAqB5M,GACrHkP,oBAAqBlP,GAAqD,MAA1CmD,EAAMqB,QAAQqI,8BAAmC,EAAS1J,EAAMqB,QAAQqI,yBAAyB7M,GACjIiQ,kBAAmBC,IACjB,IAAIC,EAEJhN,EAAMsK,gBAAgByC,EAAe,GAAkE,OAA5DC,EAAwBhN,EAAMiN,aAAalE,cAAwBiE,EAAwB,KAExIE,oBAAqBH,IACnB,IAAII,EAEJnN,EAAM+L,oBAAoBgB,EAlMa,CAC7C9D,YAAa,KACbC,UAAW,KACXC,YAAa,KACbC,gBAAiB,KACjBC,kBAAkB,EAClBC,kBAAmB,IA4LkI,OAAjE6D,EAAyBnN,EAAMiN,aAAajE,kBAA4BmE,EAlM/G,CAC7ClE,YAAa,KACbC,UAAW,KACXC,YAAa,KACbC,gBAAiB,KACjBC,kBAAkB,EAClBC,kBAAmB,MA8Lf8D,aAAc,KACZ,IAAIC,EAAuBC,EAE3B,OAEU,OAFFD,EAAiF,OAAxDC,EAAyBtN,EAAMoD,kBAAkB,SAAc,EAASkK,EAAuB7H,QAAQ1D,QAAO,CAACiJ,EAAKrK,IAC5IqK,EAAMrK,EAAOgJ,WACnB,IAAc0D,EAAwB,GAE3CE,iBAAkB,KAChB,IAAIC,EAAuBC,EAE3B,OAEU,OAFFD,EAAqF,OAA5DC,EAAyBzN,EAAMwE,sBAAsB,SAAc,EAASiJ,EAAuBhI,QAAQ1D,QAAO,CAACiJ,EAAKrK,IAChJqK,EAAMrK,EAAOgJ,WACnB,IAAc6D,EAAwB,GAE3CE,mBAAoB,KAClB,IAAIC,EAAuBC,EAE3B,OAEU,OAFFD,EAAuF,OAA9DC,EAAyB5N,EAAMuE,wBAAwB,SAAc,EAASqJ,EAAuBnI,QAAQ1D,QAAO,CAACiJ,EAAKrK,IAClJqK,EAAMrK,EAAOgJ,WACnB,IAAcgE,EAAwB,GAE3CE,kBAAmB,KACjB,IAAIC,EAAuBC,EAE3B,OAEU,OAFFD,EAAsF,OAA7DC,EAAyB/N,EAAM2E,uBAAuB,SAAc,EAASoJ,EAAuBtI,QAAQ1D,QAAO,CAACiJ,EAAKrK,IACjJqK,EAAMrK,EAAOgJ,WACnB,IAAcmE,EAAwB,MAKjD,IAAIE,EAAmB,KACvB,SAASrB,IACP,GAAgC,kBAArBqB,EAAgC,OAAOA,EAClD,IAAIC,GAAY,EAEhB,IACE,MAAM5M,EAAU,CACVuL,cAEF,OADAqB,GAAY,GACL,IAKLC,EAAO,OAEbC,OAAOtB,iBAAiB,OAAQqB,EAAM7M,GACtC8M,OAAO1B,oBAAoB,OAAQyB,GACnC,MAAOE,GACPH,GAAY,EAId,OADAD,EAAmBC,EACZD,EAGT,SAASxC,EAAkBF,GACzB,MAAkB,eAAXA,EAAE+C,KAIN,MAACC,EAAY,CAChBzF,gBAAiBC,IACR,CACLyF,SAAU,MACPzF,IAGPS,kBAAmBvJ,IACV,CACLwO,iBAAkBzR,EAAiB,WAAYiD,GAC/CyO,sBAAsB,IAG1BtL,YAAanD,IACX,IAAI0O,GAAa,EACbC,GAAS,EACb,MAAO,CACLC,mBAAoB,KAClB,IAAIxO,EAAMyO,EAEV,GAAKH,GAQL,GAAuI,OAAlItO,EAA+D,OAAvDyO,EAAwB7O,EAAMqB,QAAQyN,cAAwBD,EAAwB7O,EAAMqB,QAAQ0N,mBAA6B3O,GAAQJ,EAAMqB,QAAQ2N,gBAAiB,CACnL,GAAIL,EAAQ,OACZA,GAAS,EAET3O,EAAMiP,QAAO,KACXjP,EAAMkP,gBACNP,GAAS,WAbX3O,EAAMiP,QAAO,KACXP,GAAa,MAgBnBS,YAAatS,GAA6C,MAAlCmD,EAAMqB,QAAQmN,sBAA2B,EAASxO,EAAMqB,QAAQmN,iBAAiB3R,GACzGuS,sBAAuBb,KACL,MAAZA,EAAmBA,GAAYvO,EAAMqP,wBACvCrP,EAAMmP,aAAY,GAElBnP,EAAMmP,YAAY,KAGtBD,cAAenC,IACb,IAAIuC,EAAuBC,EAE3BvP,EAAMmP,YAAYpC,EAAe,GAA6H,OAAvHuC,EAAsE,OAA7CC,EAAsBvP,EAAMiN,mBAAwB,EAASsC,EAAoBhB,UAAoBe,EAAwB,KAE/LE,qBAAsB,IACbxP,EAAMyP,cAAcC,SAAS7Q,MAAK8Q,GAAOA,EAAIC,iBAEtDC,gCAAiC,IACxBvE,IACQ,MAAbA,EAAEC,SAA2BD,EAAEC,UAC/BvL,EAAMoP,yBAGVU,sBAAuB,KACrB,MAAMvB,EAAWvO,EAAMuD,WAAWgL,SAClC,OAAoB,IAAbA,GAAqBrM,OAAO6N,OAAOxB,GAAU1P,KAAKqF,UAE3DmL,qBAAsB,KACpB,MAAMd,EAAWvO,EAAMuD,WAAWgL,SAElC,MAAwB,kBAAbA,GACW,IAAbA,IAGJrM,OAAO8N,KAAKzB,GAAUtQ,SAKvB+B,EAAMyP,cAAcC,SAAS7Q,MAAK8Q,GAAOA,EAAIM,mBAOnDC,iBAAkB,KAChB,IAAI3I,EAAW,EAMf,QAL6C,IAA9BvH,EAAMuD,WAAWgL,SAAoBrM,OAAO8N,KAAKhQ,EAAMyP,cAAcU,UAAYjO,OAAO8N,KAAKhQ,EAAMuD,WAAWgL,WACtH1Q,SAAQ4C,IACb,MAAM2P,EAAU3P,EAAG4P,MAAM,KACzB9I,EAAWpI,KAAKU,IAAI0H,EAAU6I,EAAQnS,WAEjCsJ,GAET+I,uBAAwB,IAAMtQ,EAAMuQ,oBACpCC,oBAAqB,MACdxQ,EAAMyQ,sBAAwBzQ,EAAMqB,QAAQmP,sBAC/CxQ,EAAMyQ,qBAAuBzQ,EAAMqB,QAAQmP,oBAAoBxQ,IAG7DA,EAAMqB,QAAQ2N,kBAAoBhP,EAAMyQ,qBACnCzQ,EAAMsQ,yBAGRtQ,EAAMyQ,0BAInBC,UAAW,CAACf,EAAK3P,KACR,CACL2Q,eAAgBpC,IACdvO,EAAMmP,aAAYhS,IAChB,IAAIyT,EAEJ,MAAMC,GAAiB,IAAR1T,KAAgC,MAAPA,IAAeA,EAAIwS,EAAIlP,KAC/D,IAAIqQ,EAAc,GAYlB,IAVY,IAAR3T,EACF+E,OAAO8N,KAAKhQ,EAAMyP,cAAcU,UAAUtS,SAAQkT,IAChDD,EAAYC,IAAS,KAGvBD,EAAc3T,EAGhBoR,EAAqC,OAAzBqC,EAAYrC,GAAoBqC,GAAaC,GAEpDA,GAAUtC,EACb,MAAO,IAAKuC,EACV,CAACnB,EAAIlP,KAAK,GAId,GAAIoQ,IAAWtC,EAAU,CACvB,MACE,CAACoB,EAAIlP,IAAK+J,KACPC,GACDqG,EACJ,OAAOrG,EAGT,OAAOtN,MAGX8S,cAAe,KACb,IAAIe,EAEJ,MAAMzC,EAAWvO,EAAMuD,WAAWgL,SAClC,SAA6H,OAAlHyC,EAA0D,MAAlChR,EAAMqB,QAAQ4P,sBAA2B,EAASjR,EAAMqB,QAAQ4P,iBAAiBtB,IAAgBqB,GAAqC,IAAbzC,IAAkC,MAAZA,OAAmB,EAASA,EAASoB,EAAIlP,OAE7NmP,aAAc,KACZ,IAAIsB,EAAuBtG,EAAuBuG,EAElD,OAAwH,OAAhHD,EAAyD,MAAjClR,EAAMqB,QAAQ+P,qBAA0B,EAASpR,EAAMqB,QAAQ+P,gBAAgBzB,IAAgBuB,GAAoF,OAA1DtG,EAAwB5K,EAAMqB,QAAQgQ,kBAA2BzG,MAAoE,OAA/BuG,EAAexB,EAAI2B,WAAoBH,EAAalT,SAErTsT,yBAA0B,KACxB,MAAMC,EAAY7B,EAAIC,eACtB,MAAO,KACA4B,GACL7B,EAAIgB,sBAORc,EAAiB,CAAC9B,EAAK5L,EAAU2N,KACrC,IAAIC,EAEJ,MAAMC,EAASF,EAAYG,cAC3B,OAAmD,OAA3CF,EAAgBhC,EAAImC,SAAS/N,SAAqB,EAAS4N,EAAcE,cAAcxN,SAASuN,IAG1GH,EAAeM,WAAaC,GAAOC,EAAWD,GAE9C,MAAME,EAA0B,CAACvC,EAAK5L,EAAU2N,KAC9C,IAAIS,EAEJ,OAAoD,OAA5CA,EAAiBxC,EAAImC,SAAS/N,SAAqB,EAASoO,EAAe9N,SAASqN,IAG9FQ,EAAwBH,WAAaC,GAAOC,EAAWD,GAEvD,MAAMI,EAAe,CAACzC,EAAK5L,EAAU2N,KACnC,IAAIW,EAEJ,OAAqD,OAA5CA,EAAiB1C,EAAImC,SAAS/N,SAAqB,EAASsO,EAAeR,iBAAmBH,EAAYG,eAGrHO,EAAaL,WAAaC,GAAOC,EAAWD,GAE5C,MAAMM,EAAc,CAAC3C,EAAK5L,EAAU2N,KAClC,IAAIa,EAEJ,OAAoD,OAA5CA,EAAiB5C,EAAImC,SAAS/N,SAAqB,EAASwO,EAAelO,SAASqN,IAG9FY,EAAYP,WAAaC,GAAOC,EAAWD,MAAiB,MAAPA,GAAeA,EAAI/T,QAExE,MAAMuU,EAAiB,CAAC7C,EAAK5L,EAAU2N,KAC7BA,EAAY7S,MAAKmT,IACvB,IAAIS,EAEJ,QAAsD,OAA5CA,EAAiB9C,EAAImC,SAAS/N,KAAsB0O,EAAepO,SAAS2N,OAI1FQ,EAAeT,WAAaC,GAAOC,EAAWD,MAAiB,MAAPA,GAAeA,EAAI/T,QAE3E,MAAMyU,EAAkB,CAAC/C,EAAK5L,EAAU2N,IAC/BA,EAAY7S,MAAKmT,IACtB,IAAIW,EAEJ,OAAoD,OAA5CA,EAAiBhD,EAAImC,SAAS/N,SAAqB,EAAS4O,EAAetO,SAAS2N,MAIhGU,EAAgBX,WAAaC,GAAOC,EAAWD,MAAiB,MAAPA,GAAeA,EAAI/T,QAE5E,MAAM2U,EAAS,CAACjD,EAAK5L,EAAU2N,IACtB/B,EAAImC,SAAS/N,KAAc2N,EAGpCkB,EAAOb,WAAaC,GAAOC,EAAWD,GAEtC,MAAMa,EAAa,CAAClD,EAAK5L,EAAU2N,IAC1B/B,EAAImC,SAAS/N,IAAa2N,EAGnCmB,EAAWd,WAAaC,GAAOC,EAAWD,GAE1C,MAAMc,EAAgB,CAACnD,EAAK5L,EAAU2N,KACpC,IAAK5R,EAAKD,GAAO6R,EACjB,MAAMqB,EAAWpD,EAAImC,SAAS/N,GAC9B,OAAOgP,GAAYjT,GAAOiT,GAAYlT,GAGxCiT,EAAcE,mBAAqBhB,IACjC,IAAKiB,EAAWC,GAAalB,EACzBmB,EAAiC,iBAAdF,EAAyBG,WAAWH,GAAaA,EACpEI,EAAiC,iBAAdH,EAAyBE,WAAWF,GAAaA,EACpEpT,EAAoB,OAAdmT,GAAsBxK,OAAO6K,MAAMH,IAAcI,IAAWJ,EAClEtT,EAAoB,OAAdqT,GAAsBzK,OAAO6K,MAAMD,GAAaE,IAAWF,EAErE,GAAIvT,EAAMD,EAAK,CACb,MAAM2T,EAAO1T,EACbA,EAAMD,EACNA,EAAM2T,EAGR,MAAO,CAAC1T,EAAKD,IAGfiT,EAAcf,WAAaC,GAAOC,EAAWD,IAAQC,EAAWD,EAAI,KAAOC,EAAWD,EAAI,IAGrF,MAACyB,EAAY,CAChBhC,iBACAS,0BACAE,eACAE,cACAE,iBACAE,kBACAE,SACAC,aACAC,iBAIF,SAASb,EAAWD,GAClB,OAAOA,SAA6C,KAARA,EAIzC,MAAC0B,EAAU,CACd9K,oBAAqB,KACZ,CACL+K,SAAU,SAGd9K,gBAAiBC,IACR,CACL8K,cAAe,GACfC,kBAAcjT,KAGXkI,IAGPS,kBAAmBvJ,IACV,CACL8T,sBAAuB/W,EAAiB,gBAAiBiD,GACzD+T,qBAAsBhX,EAAiB,eAAgBiD,GACvDgU,oBAAoB,EACpBC,eAAgB,OAChBC,yBAA0BnT,IACxB,IAAIoT,EAAuBC,EAG3B,MAAwB,iBADuD,OAAhED,EAAwBnU,EAAMqU,kBAAkB3E,SAAS,KAA+G,OAAvF0E,EAAyBD,EAAsBG,yBAAyBvT,EAAON,UAAzF,EAAiH2T,EAAuBtC,eAKpO/R,aAAc,CAACgB,EAAQf,KACd,CACLuU,gBAAiB,KACf,MAAMC,EAAWxU,EAAMqU,kBAAkB3E,SAAS,GAC5C+E,EAAoB,MAAZD,OAAmB,EAASA,EAAS1C,SAAS/Q,EAAON,IAEnE,MAAqB,iBAAVgU,EACFhB,EAAUhC,eAGE,iBAAVgD,EACFhB,EAAUX,cAGE,kBAAV2B,GAIG,OAAVA,GAAmC,iBAAVA,EAHpBhB,EAAUb,OAOf8B,MAAMC,QAAQF,GACThB,EAAUnB,YAGZmB,EAAUZ,YAEnB+B,YAAa,IACJxX,EAAW2D,EAAOd,UAAU0T,UAAY5S,EAAOd,UAAU0T,SAAyC,SAA9B5S,EAAOd,UAAU0T,SAAsB5S,EAAOwT,kBAAoBd,EAAU1S,EAAOd,UAAU0T,UAE1KkB,aAAc,KACZ,IAAIlK,EAAuBC,EAAuBkK,EAElD,OAAyE,OAAhEnK,EAAwB5J,EAAOd,UAAU8U,qBAA8BpK,KAAiG,OAA9DC,EAAwB5K,EAAMqB,QAAQ2T,sBAA+BpK,KAA4F,OAAzDkK,EAAyB9U,EAAMqB,QAAQ4T,gBAAyBH,MAAoC/T,EAAOP,YAExU0U,mBAAoB,KAClB,IAAIC,EAAwBC,EAAwBC,EAAwBC,EAE5E,OAA0E,OAAjEH,EAAyBpU,EAAOd,UAAUsV,qBAA8BJ,KAAkG,OAA9DC,EAAyBpV,EAAMqB,QAAQkU,qBAA8BH,KAA6F,OAAzDC,EAAyBrV,EAAMqB,QAAQ4T,gBAAyBI,KAAyK,OAArIC,EAAkE,MAA1CtV,EAAMqB,QAAQ6S,8BAAmC,EAASlU,EAAMqB,QAAQ6S,yBAAyBnT,KAAmBuU,MAAmCvU,EAAOP,YAE1fgV,cAAe,IAAMzU,EAAO0U,kBAAoB,EAChDC,eAAgB,KACd,IAAIC,EAAuBC,EAE3B,OAAmE,OAA3DD,EAAwB3V,EAAMuD,WAAWqQ,gBAAoH,OAAjFgC,EAAyBD,EAAsB3R,MAAK3G,GAAKA,EAAEoD,KAAOM,EAAON,WAAnF,EAA2GmV,EAAuBnB,OAE9MgB,eAAgB,KACd,IAAII,EAAwBC,EAE5B,OAA4K,OAApKD,EAAsF,OAA5DC,EAAyB9V,EAAMuD,WAAWqQ,oBAAyB,EAASkC,EAAuB3L,WAAU9M,GAAKA,EAAEoD,KAAOM,EAAON,MAAeoV,GAA0B,GAE/ME,eAAgBtB,IACdzU,EAAMgW,kBAAiB7Y,IACrB,MAAMwW,EAAW5S,EAAO6T,cAClBqB,EAAwB,MAAP9Y,OAAc,EAASA,EAAI6G,MAAK3G,GAAKA,EAAEoD,KAAOM,EAAON,KACtEyV,EAAYtZ,EAAiB6X,EAAOwB,EAAiBA,EAAexB,WAAQ7T,GAGhF,IAAIuV,EADN,GAAIC,EAAuBzC,EAAUuC,EAAWnV,GAG9C,OAAqF,OAA7EoV,EAAqB,MAAPhZ,OAAc,EAASA,EAAI8G,QAAO5G,GAAKA,EAAEoD,KAAOM,EAAON,MAAe0V,EAAc,GAG5G,MAAME,EAAe,CACnB5V,GAAIM,EAAON,GACXgU,MAAOyB,GAIP,IAAII,EADN,OAAIL,EASK,OANCK,EAAkB,MAAPnZ,OAAc,EAASA,EAAI6F,KAAI3F,GAC5CA,EAAEoD,KAAOM,EAAON,GACX4V,EAGFhZ,KACKiZ,EAAW,GAGhB,MAAPnZ,GAAeA,EAAIc,OACd,IAAId,EAAKkZ,GAGX,CAACA,OAGZE,oBAAqBvW,EAAMqB,QAAQmV,oBAAsBxW,EAAMqB,QAAQmV,mBAAmBxW,EAAOe,EAAON,IACxG+V,mBAAoB,IACbzV,EAAOwV,oBAILxV,EAAOwV,sBAHLvW,EAAMyW,yBAKjBC,wBAAyB1W,EAAMqB,QAAQsV,wBAA0B3W,EAAMqB,QAAQsV,uBAAuB3W,EAAOe,EAAON,IACpHkW,uBAAwB,IACjB5V,EAAO2V,wBAIL3V,EAAO2V,0BAHL,IAAIE,IAKfC,wBAAyB7W,EAAMqB,QAAQyV,wBAA0B9W,EAAMqB,QAAQyV,uBAAuB9W,EAAOe,EAAON,IACpHqW,uBAAwB,KACtB,GAAK/V,EAAO8V,wBAIZ,OAAO9V,EAAO8V,6BAMpBnG,UAAW,CAACf,EAAK3P,KACR,CACL4T,cAAe,GACfmD,kBAAmB,KAGvB5T,YAAanD,IACJ,CACLgX,sBAAuB,IACdvD,EAAUhC,eAEnBwF,kBAAmB,KACjB,MACEhD,eAAgBA,GACdjU,EAAMqB,QACV,OAAOjE,EAAW6W,GAAkBA,EAAoC,SAAnBA,EAA4BjU,EAAMgX,wBAA0BvD,EAAUQ,IAE7H+B,iBAAkBnZ,IAChB,MAAM+E,EAAc5B,EAAMkX,oBAoBa,MAAvClX,EAAMqB,QAAQyS,uBAAyC9T,EAAMqB,QAAQyS,uBAlBpD3W,IACf,IAAIga,EAEJ,OAA+D,OAAvDA,EAAoBva,EAAiBC,EAASM,SAAgB,EAASga,EAAkBlT,QAAOA,IACtG,MAAMlD,EAASa,EAAYoC,MAAK3G,GAAKA,EAAEoD,KAAOwD,EAAOxD,KAErD,GAAIM,EAAQ,CAGV,GAAIqV,EAFarV,EAAO6T,cAEa3Q,EAAOwQ,MAAO1T,GACjD,OAAO,EAIX,OAAO,SAMbqW,gBAAiBva,IACuB,MAAtCmD,EAAMqB,QAAQ0S,sBAAwC/T,EAAMqB,QAAQ0S,qBAAqBlX,IAE3Fwa,kBAAmBtK,IACjB/M,EAAMoX,gBAAgBrK,OAAenM,EAAYZ,EAAMiN,aAAa4G,eAEtEyD,mBAAoBvK,IAClB,IAAIC,EAAuBuC,EAE3BvP,EAAMgW,iBAAiBjJ,EAAe,GAAkI,OAA5HC,EAAsE,OAA7CuC,EAAsBvP,EAAMiN,mBAAwB,EAASsC,EAAoBqE,eAAyB5G,EAAwB,KAEzMyJ,uBAAwB,IAAMzW,EAAMqU,kBACpCkD,qBAAsBvX,EAAMqB,QAAQmW,qBAAuBxX,EAAMqB,QAAQmW,oBAAoBxX,GAC7FwX,oBAAqB,IACfxX,EAAMqB,QAAQoW,kBAAoBzX,EAAMuX,qBACnCvX,EAAMyW,yBAGRzW,EAAMuX,uBAEfG,0BAA2B1X,EAAMqB,QAAQmV,oBAAsBxW,EAAMqB,QAAQmV,mBAAmBxW,EAAO,cACvG2X,yBAA0B,IACpB3X,EAAMqB,QAAQoW,kBAAoBzX,EAAM0X,0BACnC1X,EAAMyW,yBAGRzW,EAAM0X,4BAEfE,8BAA+B5X,EAAMqB,QAAQsV,wBAA0B3W,EAAMqB,QAAQsV,uBAAuB3W,EAAO,cACnH6X,6BAA8B,IACvB7X,EAAM4X,8BAIJ5X,EAAM4X,gCAHJ,IAAIhB,IAKfkB,8BAA+B9X,EAAMqB,QAAQyV,wBAA0B9W,EAAMqB,QAAQyV,uBAAuB9W,EAAO,cACnH+X,6BAA8B,KAC5B,GAAK/X,EAAM8X,8BAIX,OAAO9X,EAAM8X,oCAKrB,SAAS1B,EAAuBzC,EAAUc,EAAO1T,GAC/C,SAAQ4S,IAAYA,EAAS5B,aAAa4B,EAAS5B,WAAW0C,EAAO1T,SAAqC,IAAV0T,GAA0C,iBAAVA,IAAuBA,EAGzJ,MA+FMuD,EAAiB,CACrBhN,IAhGU,CAACjH,EAAUkU,EAAWC,IAGzBA,EAAUnW,QAAO,CAACiJ,EAAKmN,KAC5B,MAAMC,EAAYD,EAAKrG,SAAS/N,GAChC,OAAOiH,GAA4B,iBAAdoN,EAAyBA,EAAY,KACzD,GA2FHtY,IAxFU,CAACiE,EAAUkU,EAAWC,KAChC,IAAIpY,EAQJ,OAPAoY,EAAUra,SAAQ8R,IAChB,MAAM8E,EAAQ9E,EAAImC,SAAS/N,GAEd,MAAT0Q,IAAkB3U,EAAM2U,QAAiB7T,IAARd,GAAqB2U,GAASA,KACjE3U,EAAM2U,MAGH3U,GAgFPD,IA7EU,CAACkE,EAAUkU,EAAWC,KAChC,IAAIrY,EAQJ,OAPAqY,EAAUra,SAAQ8R,IAChB,MAAM8E,EAAQ9E,EAAImC,SAAS/N,GAEd,MAAT0Q,IAAkB5U,EAAM4U,QAAiB7T,IAARf,GAAqB4U,GAASA,KACjE5U,EAAM4U,MAGH5U,GAqEPwY,OAlEa,CAACtU,EAAUkU,EAAWC,KACnC,IAAIpY,EACAD,EAaJ,OAZAqY,EAAUra,SAAQ8R,IAChB,MAAM8E,EAAQ9E,EAAImC,SAAS/N,GAEd,MAAT0Q,SACU7T,IAARd,EACE2U,GAASA,IAAO3U,EAAMD,EAAM4U,IAE5B3U,EAAM2U,IAAO3U,EAAM2U,GACnB5U,EAAM4U,IAAO5U,EAAM4U,QAItB,CAAC3U,EAAKD,IAoDbyY,KAjDW,CAACvU,EAAUwU,KACtB,IAAIC,EAAQ,EACRxN,EAAM,EAQV,GAPAuN,EAAS1a,SAAQ8R,IACf,IAAI8E,EAAQ9E,EAAImC,SAAS/N,GAEZ,MAAT0Q,IAAkBA,GAASA,IAAUA,MACrC+D,EAAOxN,GAAOyJ,MAGhB+D,EAAO,OAAOxN,EAAMwN,GAwCxBC,OApCa,CAAC1U,EAAUwU,KACxB,IAAKA,EAASta,OACZ,OAGF,IAAI6B,EAAM,EACND,EAAM,EASV,OARA0Y,EAAS1a,SAAQ8R,IACf,IAAI8E,EAAQ9E,EAAImC,SAAS/N,GAEJ,iBAAV0Q,IACT3U,EAAMX,KAAKW,IAAIA,EAAK2U,GACpB5U,EAAMV,KAAKU,IAAIA,EAAK4U,QAGhB3U,EAAMD,GAAO,GAsBrB6Y,OAnBa,CAAC3U,EAAUwU,IACjB7D,MAAMiE,KAAK,IAAIC,IAAIL,EAASvV,KAAI3F,GAAKA,EAAEyU,SAAS/N,MAAYgM,UAmBnE8I,YAhBkB,CAAC9U,EAAUwU,IACtB,IAAIK,IAAIL,EAASvV,KAAI3F,GAAKA,EAAEyU,SAAS/N,MAAYuE,KAgBxDkQ,MAbY,CAACM,EAAWP,IACjBA,EAASta,QAgBZ8a,EAAW,CACfnQ,oBAAqB,KACZ,CACLoQ,eAAgBC,IACd,IAAIC,EAAWC,EAEf,OAAuJ,OAA/ID,EAAoD,OAAvCC,EAAkBF,EAAMnH,aAA2D,MAA5BqH,EAAgBC,cAAzB,EAAqDD,EAAgBC,YAAsBF,EAAY,MAE5KG,cAAe,SAGnBxQ,gBAAiBC,IACR,CACLwQ,SAAU,MACPxQ,IAGPS,kBAAmBvJ,IACV,CACLuZ,iBAAkBxc,EAAiB,WAAYiD,GAC/CwZ,kBAAmB,YAGvBzZ,aAAc,CAACgB,EAAQf,KACd,CACLyZ,eAAgB,KACdzZ,EAAM0Z,aAAYvc,GAEL,MAAPA,GAAeA,EAAIkH,SAAStD,EAAON,IAC9BtD,EAAI8G,QAAO5G,GAAKA,IAAM0D,EAAON,KAG/B,IAAY,MAAPtD,EAAcA,EAAM,GAAK4D,EAAON,OAGhDkZ,YAAa,KACX,IAAIvZ,EAAMmK,EAAO2B,EAAOvB,EAExB,OAA8M,OAAtMvK,EAA8K,OAAtKmK,EAAsH,OAA7G2B,EAAqE,OAA5DvB,EAAwB5J,EAAOd,UAAU2Z,iBAA0BjP,GAAwCuB,EAAQlM,EAAMqB,QAAQuY,iBAA0BrP,GAAwBnK,IAASW,EAAOP,YAEvOqZ,aAAc,KACZ,IAAIC,EAEJ,OAA8D,OAAtDA,EAAwB9Z,EAAMuD,WAAW+V,eAAoB,EAASQ,EAAsBzV,SAAStD,EAAON,KAEtHsZ,gBAAiB,KACf,IAAIC,EAEJ,OAA+D,OAAvDA,EAAyBha,EAAMuD,WAAW+V,eAAoB,EAASU,EAAuBC,QAAQlZ,EAAON,KAEvHyZ,yBAA0B,KACxB,MAAMC,EAAWpZ,EAAO4Y,cACxB,MAAO,KACAQ,GACLpZ,EAAO0Y,mBAGXW,qBAAsB,KACpB,MAAM5F,EAAWxU,EAAMqU,kBAAkB3E,SAAS,GAC5C+E,EAAoB,MAAZD,OAAmB,EAASA,EAAS1C,SAAS/Q,EAAON,IAEnE,MAAqB,iBAAVgU,EACFuD,EAAehN,IAGsB,kBAA1C9I,OAAOmY,UAAUjB,SAASkB,KAAK7F,GAC1BuD,EAAeK,YADxB,GAIFkC,iBAAkB,KAChB,IAAKxZ,EACH,MAAM,IAAID,MAGZ,OAAO1D,EAAW2D,EAAOd,UAAUoZ,eAAiBtY,EAAOd,UAAUoZ,cAAmD,SAAnCtY,EAAOd,UAAUoZ,cAA2BtY,EAAOqZ,uBAAyBpC,EAAejX,EAAOd,UAAUoZ,kBAIvMlW,YAAanD,IACJ,CACL0Z,YAAa7c,GAA6C,MAAlCmD,EAAMqB,QAAQkY,sBAA2B,EAASvZ,EAAMqB,QAAQkY,iBAAiB1c,GACzG2d,cAAezN,IACb,IAAI0N,EAAuBlL,EAE3BvP,EAAM0Z,YAAY3M,EAAe,GAA6H,OAAvH0N,EAAsE,OAA7ClL,EAAsBvP,EAAMiN,mBAAwB,EAASsC,EAAoB+J,UAAoBmB,EAAwB,KAE/LC,sBAAuB,IAAM1a,EAAMwX,sBACnCmD,mBAAoB,MACb3a,EAAM4a,qBAAuB5a,EAAMqB,QAAQsZ,qBAC9C3a,EAAM4a,oBAAsB5a,EAAMqB,QAAQsZ,mBAAmB3a,IAG3DA,EAAMqB,QAAQwZ,iBAAmB7a,EAAM4a,oBAClC5a,EAAM0a,wBAGR1a,EAAM4a,yBAInBlK,UAAWf,IACF,CACLkK,aAAc,MAAQlK,EAAImL,iBAC1BC,qBAAsB,KAG1BC,WAAY,CAACC,EAAMla,EAAQ4O,EAAK3P,KAEvB,CACL6Z,aAAc,IAAM9Y,EAAO8Y,gBAAkB9Y,EAAON,KAAOkP,EAAImL,iBAC/DI,iBAAkB,KAAOD,EAAKpB,gBAAkB9Y,EAAO8Y,eACvDsB,gBAAiB,KACf,IAAIhK,EAEJ,OAAQ8J,EAAKpB,iBAAmBoB,EAAKC,sBAAyD,OAA/B/J,EAAexB,EAAI2B,WAAoBH,EAAalT,YAK3H,SAASyD,EAAaE,EAAa0X,EAAUE,GAC3C,GAAkB,MAAZF,IAAoBA,EAASrb,SAAYub,EAC7C,OAAO5X,EAGT,MAAMwZ,EAAqBxZ,EAAYqC,QAAOoX,IAAQ/B,EAASjV,SAASgX,EAAI5a,MAE5E,GAA0B,WAAtB+Y,EACF,OAAO4B,EAIT,MAAO,IADiB9B,EAAStW,KAAIsY,GAAK1Z,EAAYoC,MAAKqX,GAAOA,EAAI5a,KAAO6a,MAAIrX,OAAOC,YACzDkX,GAI5B,MAACG,EAAW,CACf1S,gBAAiBC,IACR,CACL0S,YAAa,MACV1S,IAGPS,kBAAmBvJ,IACV,CACLyb,oBAAqB1e,EAAiB,cAAeiD,KAGzDmD,YAAanD,IACJ,CACL0b,eAAgB7e,GAAgD,MAArCmD,EAAMqB,QAAQoa,yBAA8B,EAASzb,EAAMqB,QAAQoa,oBAAoB5e,GAClH8e,iBAAkB5O,IAChB,IAAIC,EAEJhN,EAAM0b,eAAe3O,EAAe,GAAiE,OAA3DC,EAAwBhN,EAAMiN,aAAauO,aAAuBxO,EAAwB,KAEtIvL,mBAAoBvD,GAAK,IAAM,CAAC8B,EAAMuD,WAAWiY,YAAaxb,EAAMuD,WAAW+V,SAAUtZ,EAAMqB,QAAQmY,qBAAoB,CAACgC,EAAalC,EAAUE,IAAsBxY,IAGvK,IAAI4a,EAAiB,GAErB,GAAqB,MAAfJ,GAAuBA,EAAYvd,OAElC,CACL,MAAM4d,EAAkB,IAAIL,GAEtBM,EAAc,IAAI9a,GAGxB,KAAO8a,EAAY7d,QAAU4d,EAAgB5d,QAAQ,CACnD,MAAM8d,EAAiBF,EAAgBG,QACjCC,EAAaH,EAAY3R,WAAU9M,GAAKA,EAAEoD,KAAOsb,IAEnDE,GAAc,GAChBL,EAAe7d,KAAK+d,EAAYI,OAAOD,EAAY,GAAG,IAK1DL,EAAiB,IAAIA,KAAmBE,QAjBxCF,EAAiB5a,EAoBnB,OAAOU,EAAaka,EAAgBtC,EAAUE,KAC7C,CACDxc,KAAK,OAgBPmf,EAAa,CACjBtT,gBAAiBC,IACR,IAAKA,EACVsT,WAAY,CAPhBC,UAJuB,EAKvBC,SAJsB,MAWH,MAATxT,OAAgB,EAASA,EAAMsT,cAIzC7S,kBAAmBvJ,IACV,CACLuc,mBAAoBxf,EAAiB,aAAciD,KAGvDmD,YAAanD,IACX,IAAI0O,GAAa,EACbC,GAAS,EACb,MAAO,CACL6N,oBAAqB,KACnB,IAAIpc,EAAMyO,EAEV,GAAKH,GAQL,GAAwI,OAAnItO,EAA+D,OAAvDyO,EAAwB7O,EAAMqB,QAAQyN,cAAwBD,EAAwB7O,EAAMqB,QAAQob,oBAA8Brc,GAAQJ,EAAMqB,QAAQqb,iBAAkB,CACrL,GAAI/N,EAAQ,OACZA,GAAS,EAET3O,EAAMiP,QAAO,KACXjP,EAAM2c,iBACNhO,GAAS,WAbX3O,EAAMiP,QAAO,KACXP,GAAa,MAgBnBkO,cAAe/f,GAM8B,MAApCmD,EAAMqB,QAAQkb,wBAA6B,EAASvc,EAAMqB,QAAQkb,oBALrDpf,GACHP,EAAiBC,EAASM,KAM7C0f,gBAAiB9P,IACf,IAAI+P,EAEJ9c,EAAM4c,cAAc7P,EAtDa,CACvCsP,UAJuB,EAKvBC,SAJsB,IAwD4G,OAA1DQ,EAAwB9c,EAAMiN,aAAamP,YAAsBU,EAtDlG,CACvCT,UAJuB,EAKvBC,SAJsB,MA0DlBS,aAAclgB,IACZmD,EAAM4c,eAAczf,IAClB,IAAIkf,EAAYzf,EAAiBC,EAASM,EAAIkf,WAC9C,MAAMW,OAAkD,IAA5Bhd,EAAMqB,QAAQ4b,YAA0D,IAA7Bjd,EAAMqB,QAAQ4b,UAAmBxU,OAAOC,iBAAmB1I,EAAMqB,QAAQ4b,UAAY,EAE5J,OADAZ,EAAYld,KAAKW,IAAIX,KAAKU,IAAI,EAAGwc,GAAYW,GACtC,IAAK7f,EACVkf,iBAINM,eAAgB5P,IACd,IAAImQ,EAAwB3N,EAAqB4N,EAEjDnd,EAAM+c,aAAahQ,EAxEF,EAwE8O,OAAzMmQ,EAAuE,OAA7C3N,EAAsBvP,EAAMiN,eAA8F,OAA5DkQ,EAAyB5N,EAAoB6M,iBAAvD,EAAsFe,EAAuBd,WAAqBa,EAxErP,IA0EnBE,cAAerQ,IACb,IAAIsQ,EAAwBC,EAAsBC,EAElDvd,EAAMwd,YAAYzQ,EA5EF,GA4E4O,OAAxMsQ,EAAwE,OAA9CC,EAAuBtd,EAAMiN,eAA8F,OAA5DsQ,EAAwBD,EAAqBlB,iBAAvD,EAAsFmB,EAAsBjB,UAAoBe,EA5EnP,KA8ElBG,YAAa3gB,IACXmD,EAAM4c,eAAczf,IAClB,MAAMmf,EAAWnd,KAAKU,IAAI,EAAGjD,EAAiBC,EAASM,EAAImf,WACrDmB,EAActgB,EAAImf,SAAWnf,EAAIkf,UACjCA,EAAYld,KAAKue,MAAMD,EAAcnB,GAC3C,MAAO,IAAKnf,EACVkf,YACAC,gBAINqB,aAAc9gB,GAAWmD,EAAM4c,eAAczf,IAC3C,IAAIygB,EAEJ,IAAIC,EAAejhB,EAAiBC,EAA8D,OAApD+gB,EAAwB5d,EAAMqB,QAAQ4b,WAAqBW,GAAyB,GAMlI,MAJ4B,iBAAjBC,IACTA,EAAe1e,KAAKU,KAAK,EAAGge,IAGvB,IAAK1gB,EACV8f,UAAWY,MAGfC,eAAgB5f,GAAK,IAAM,CAAC8B,EAAM+d,kBAAiBd,IACjD,IAAIe,EAAc,GAMlB,OAJIf,GAAaA,EAAY,IAC3Be,EAAc,IAAI,IAAItJ,MAAMuI,IAAYgB,KAAK,MAAMjb,KAAI,CAACwH,EAAG0T,IAAMA,KAG5DF,IACN,CACDhhB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,cAG5GC,mBAAoB,IAAMpe,EAAMuD,WAAW6Y,WAAWC,UAAY,EAClEgC,eAAgB,KACd,MAAMhC,UACJA,GACErc,EAAMuD,WAAW6Y,WACfa,EAAYjd,EAAM+d,eAExB,OAAmB,IAAfd,GAIc,IAAdA,GAIGZ,EAAYY,EAAY,GAEjCqB,aAAc,IACLte,EAAM+c,cAAa5f,GAAOA,EAAM,IAEzCohB,SAAU,IACDve,EAAM+c,cAAa5f,GACjBA,EAAM,IAGjBqhB,yBAA0B,IAAMxe,EAAMwQ,sBACtCiO,sBAAuB,MAChBze,EAAM0e,wBAA0B1e,EAAMqB,QAAQod,wBACjDze,EAAM0e,uBAAyB1e,EAAMqB,QAAQod,sBAAsBze,IAGjEA,EAAMqB,QAAQqb,mBAAqB1c,EAAM0e,uBACpC1e,EAAMwe,2BAGRxe,EAAM0e,0BAEfX,aAAc,KACZ,IAAIY,EAEJ,OAA6D,OAArDA,EAAyB3e,EAAMqB,QAAQ4b,WAAqB0B,EAAyBxf,KAAKyf,KAAK5e,EAAMwe,2BAA2BK,KAAK5gB,OAAS+B,EAAMuD,WAAW6Y,WAAWE,cAYpLwC,EAAU,CACdjW,gBAAiBC,IACR,CACLtF,cARgC,CACpCC,KAAM,GACNC,MAAO,OAOAoF,IAGPS,kBAAmBvJ,IACV,CACL+e,sBAAuBhiB,EAAiB,gBAAiBiD,KAG7DD,aAAc,CAACgB,EAAQf,KACd,CACLgf,IAAKhV,IACH,MAAMiV,EAAYle,EAAOS,iBAAiBwB,KAAI3F,GAAKA,EAAEoD,KAAIwD,OAAOC,SAChElE,EAAMkf,kBAAiB/hB,IACrB,IAAIgiB,EAAYC,EAGVC,EAAWC,EASXC,EAAYC,EAVlB,MAAiB,UAAbxV,EAGK,CACLvG,MAAwD,OAAhD4b,EAAmB,MAAPliB,OAAc,EAASA,EAAIsG,MAAgB4b,EAAY,IAAIpb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,MACrIqG,MAAO,KAAwD,OAAlD4b,EAAoB,MAAPniB,OAAc,EAASA,EAAIuG,OAAiB4b,EAAa,IAAIrb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,SAAS4hB,IAIzI,SAAbjV,EAGK,CACLvG,KAAM,KAAuD,OAAjD8b,EAAoB,MAAPpiB,OAAc,EAASA,EAAIsG,MAAgB8b,EAAa,IAAItb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,SAAS4hB,GACpJvb,OAA4D,OAAnD8b,EAAqB,MAAPriB,OAAc,EAASA,EAAIuG,OAAiB8b,EAAc,IAAIvb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,OAIxI,CACLoG,MAAyD,OAAjD0b,EAAoB,MAAPhiB,OAAc,EAASA,EAAIsG,MAAgB0b,EAAa,IAAIlb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,MACvIqG,OAA4D,OAAnD0b,EAAqB,MAAPjiB,OAAc,EAASA,EAAIuG,OAAiB0b,EAAc,IAAInb,QAAO5G,KAAoB,MAAb4hB,GAAqBA,EAAU5a,SAAShH,WAIjJoiB,UAAW,IACW1e,EAAOS,iBACR3C,MAAKxB,IACtB,IAAIqiB,EAAuB9U,EAE3B,OAA+D,OAAtD8U,EAAwBriB,EAAE4C,UAAU0f,gBAAyBD,KAA2F,OAAxD9U,EAAwB5K,EAAMqB,QAAQse,gBAAyB/U,MAG5KgV,YAAa,KACX,MAAMC,EAAgB9e,EAAOS,iBAAiBwB,KAAI3F,GAAKA,EAAEoD,MACnDgD,KACJA,EAAIC,MACJA,GACE1D,EAAMuD,WAAWC,cACfsc,EAASD,EAAchhB,MAAKxB,GAAa,MAARoG,OAAe,EAASA,EAAKY,SAAShH,KACvE0iB,EAAUF,EAAchhB,MAAKxB,GAAc,MAATqG,OAAgB,EAASA,EAAMW,SAAShH,KAChF,OAAOyiB,EAAS,SAASC,GAAU,SAErCC,eAAgB,KACd,IAAIrK,EAAuBC,EAAwBC,EAEnD,MAAM7L,EAAWjJ,EAAO6e,cACxB,OAAO5V,EAA8O,OAAlO2L,EAAqF,OAA5DC,EAAyB5V,EAAMuD,WAAWC,gBAAiG,OAA9DqS,EAAyBD,EAAuB5L,SAA1D,EAAwF6L,EAAuBoE,QAAQlZ,EAAON,KAAekV,GAAyB,EAAI,KAI/RjF,UAAW,CAACf,EAAK3P,KACR,CACLigB,sBAAuB/hB,GAAK,IAAM,CAACyR,EAAIuQ,sBAAuBlgB,EAAMuD,WAAWC,cAAcC,KAAMzD,EAAMuD,WAAWC,cAAcE,SAAQ,CAACyc,EAAU1c,EAAMC,KACzJ,MAAM0c,EAAe,IAAa,MAAR3c,EAAeA,EAAO,MAAkB,MAATC,EAAgBA,EAAQ,IACjF,OAAOyc,EAASlc,QAAO5G,IAAM+iB,EAAa/b,SAAShH,EAAE0D,OAAON,QAC3D,CACDzD,IAA8C,4BAC9CyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQgf,aAG5GC,oBAAqBpiB,GAAK,IAAM,CAACyR,EAAIuQ,sBAAuBlgB,EAAMuD,WAAWC,cAAcC,KAAO,KAAE,CAAC0c,EAAU1c,KACtF,MAARA,EAAeA,EAAO,IAAIT,KAAIe,GAAYoc,EAASnc,MAAKiX,GAAQA,EAAKla,OAAON,KAAOsD,MAAWE,OAAOC,SAASlB,KAAI3F,IAAM,IAAKA,EAC1I2M,SAAU,YAGX,CACDhN,IAA8C,0BAC9CyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQgf,aAG9GE,qBAAsBriB,GAAK,IAAM,CAACyR,EAAIuQ,sBAAuBlgB,EAAMuD,WAAWC,cAAcE,SAAQ,CAACyc,EAAUzc,KACrF,MAATA,EAAgBA,EAAQ,IAAIV,KAAIe,GAAYoc,EAASnc,MAAKiX,GAAQA,EAAKla,OAAON,KAAOsD,MAAWE,OAAOC,SAASlB,KAAI3F,IAAM,IAAKA,EAC5I2M,SAAU,YAGX,CACDhN,IAA8C,2BAC9CyB,MAAO,KACL,IAAIiG,EAEJ,OAA4D,OAApDA,EAAyB1E,EAAMqB,QAAQC,UAAoBoD,EAAyB1E,EAAMqB,QAAQgf,eAKlHld,YAAanD,IACJ,CACLkf,iBAAkBriB,GAAkD,MAAvCmD,EAAMqB,QAAQ0d,2BAAgC,EAAS/e,EAAMqB,QAAQ0d,sBAAsBliB,GACxH2jB,mBAAoBzT,IAClB,IAAIC,EAAuBuC,EAE3B,OAAOvP,EAAMkf,iBAAiBnS,EAzHA,CACpCtJ,KAAM,GACNC,MAAO,IAuHoM,OAA5HsJ,EAAsE,OAA7CuC,EAAsBvP,EAAMiN,mBAAwB,EAASsC,EAAoB/L,eAAyBwJ,EAzH9K,CACpCvJ,KAAM,GACNC,MAAO,MAyHH+c,uBAAwBzW,IACtB,IAAI0W,EAEJ,MAAMC,EAAe3gB,EAAMuD,WAAWC,cAGpC,IAAIod,EAAoBC,EAD1B,OAAK7W,EAME9F,QAA4D,OAAnDwc,EAAwBC,EAAa3W,SAAqB,EAAS0W,EAAsBziB,QAHhGiG,SAAqD,OAA3C0c,EAAqBD,EAAald,WAAgB,EAASmd,EAAmB3iB,UAA0D,OAA7C4iB,EAAsBF,EAAajd,YAAiB,EAASmd,EAAoB5iB,UAKjM6iB,mBAAoB5iB,GAAK,IAAM,CAAC8B,EAAMkX,oBAAqBlX,EAAMuD,WAAWC,cAAcC,QAAO,CAACE,EAAYF,KAC5F,MAARA,EAAeA,EAAO,IAAIT,KAAIe,GAAYJ,EAAWK,MAAKjD,GAAUA,EAAON,KAAOsD,MAAWE,OAAOC,UAC3G,CACDlH,KAAK,EACLyB,MAAO,KACL,IAAIoG,EAEJ,OAA4D,OAApDA,EAAyB7E,EAAMqB,QAAQC,UAAoBuD,EAAyB7E,EAAMqB,QAAQE,gBAG9Gwf,oBAAqB7iB,GAAK,IAAM,CAAC8B,EAAMkX,oBAAqBlX,EAAMuD,WAAWC,cAAcE,SAAQ,CAACC,EAAYD,KAC7F,MAATA,EAAgBA,EAAQ,IAAIV,KAAIe,GAAYJ,EAAWK,MAAKjD,GAAUA,EAAON,KAAOsD,MAAWE,OAAOC,UAC7G,CACDlH,KAAK,EACLyB,MAAO,KACL,IAAIwG,EAEJ,OAA4D,OAApDA,EAAyBjF,EAAMqB,QAAQC,UAAoB2D,EAAyBjF,EAAMqB,QAAQE,gBAG9Gyf,qBAAsB9iB,GAAK,IAAM,CAAC8B,EAAMkX,oBAAqBlX,EAAMuD,WAAWC,cAAcC,KAAMzD,EAAMuD,WAAWC,cAAcE,SAAQ,CAACC,EAAYF,EAAMC,KAC1J,MAAM0c,EAAe,IAAa,MAAR3c,EAAeA,EAAO,MAAkB,MAATC,EAAgBA,EAAQ,IACjF,OAAOC,EAAWM,QAAO5G,IAAM+iB,EAAa/b,SAAShH,EAAEoD,QACtD,CACDzD,KAAK,EACLyB,MAAO,KACL,IAAI0G,EAEJ,OAA4D,OAApDA,EAAyBnF,EAAMqB,QAAQC,UAAoB6D,EAAyBnF,EAAMqB,QAAQE,mBAQ9G0f,EAAe,CACnBpY,gBAAiBC,IACR,CACLoY,aAAc,MACXpY,IAGPS,kBAAmBvJ,IACV,CACLmhB,qBAAsBpkB,EAAiB,eAAgBiD,GACvDohB,oBAAoB,EACpBC,yBAAyB,EACzBC,uBAAuB,IAM3Bne,YAAanD,IACJ,CACLuhB,gBAAiB1kB,GAAiD,MAAtCmD,EAAMqB,QAAQ8f,0BAA+B,EAASnhB,EAAMqB,QAAQ8f,qBAAqBtkB,GACrH2kB,kBAAmBzU,IACjB,IAAI0U,EAEJ,OAAOzhB,EAAMuhB,gBAAgBxU,EAAe,GAAkE,OAA5D0U,EAAwBzhB,EAAMiN,aAAaiU,cAAwBO,EAAwB,KAE/IC,sBAAuBjN,IACrBzU,EAAMuhB,iBAAgBpkB,IACpBsX,OAAyB,IAAVA,EAAwBA,GAASzU,EAAM2hB,uBACtD,MAAMT,EAAe,IAAK/jB,GAEpBykB,EAAqB5hB,EAAM0a,wBAAwBhL,SAiBzD,OAdI+E,EACFmN,EAAmB/jB,SAAQ8R,IACpBA,EAAIkS,iBAITX,EAAavR,EAAIlP,KAAM,MAGzBmhB,EAAmB/jB,SAAQ8R,WAClBuR,EAAavR,EAAIlP,OAIrBygB,MAGXY,0BAA2BrN,GAASzU,EAAMuhB,iBAAgBpkB,IACxD,MAAM4kB,OAAiC,IAAVtN,EAAwBA,GAASzU,EAAMgiB,2BAC9Dd,EAAe,IAAK/jB,GAK1B,OAHA6C,EAAMyP,cAAcoP,KAAKhhB,SAAQ8R,IAC/BsS,EAAoBf,EAAcvR,EAAIlP,GAAIshB,EAAe/hB,MAEpDkhB,KAoDTgB,uBAAwB,IAAMliB,EAAMqU,kBACpC8N,oBAAqBjkB,GAAK,IAAM,CAAC8B,EAAMuD,WAAW2d,aAAclhB,EAAMqU,qBAAoB,CAAC6M,EAAckB,IAClGlgB,OAAO8N,KAAKkR,GAAcjjB,OAQxBokB,EAAariB,EAAOoiB,GAPlB,CACLvD,KAAM,GACNnP,SAAU,GACVS,SAAU,KAKb,CACDnT,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,cAG5GmE,4BAA6BpkB,GAAK,IAAM,CAAC8B,EAAMuD,WAAW2d,aAAclhB,EAAMwX,yBAAwB,CAAC0J,EAAckB,IAC9GlgB,OAAO8N,KAAKkR,GAAcjjB,OAQxBokB,EAAariB,EAAOoiB,GAPlB,CACLvD,KAAM,GACNnP,SAAU,GACVS,SAAU,KAKb,CACDnT,IAA8C,8BAC9CyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQ8c,cAG9GoE,2BAA4BrkB,GAAK,IAAM,CAAC8B,EAAMuD,WAAW2d,aAAclhB,EAAMuQ,uBAAsB,CAAC2Q,EAAckB,IAC3GlgB,OAAO8N,KAAKkR,GAAcjjB,OAQxBokB,EAAariB,EAAOoiB,GAPlB,CACLvD,KAAM,GACNnP,SAAU,GACVS,SAAU,KAKb,CACDnT,IAA8C,6BAC9CyB,MAAO,KACL,IAAIiG,EAEJ,OAA4D,OAApDA,EAAyB1E,EAAMqB,QAAQC,UAAoBoD,EAAyB1E,EAAMqB,QAAQ8c,cAc9GwD,qBAAsB,KACpB,MAAMa,EAAsBxiB,EAAMyW,yBAAyB/G,UACrDwR,aACJA,GACElhB,EAAMuD,WACV,IAAIkf,EAAoBve,QAAQse,EAAoBvkB,QAAUiE,OAAO8N,KAAKkR,GAAcjjB,QAQxF,OANIwkB,GACED,EAAoB3jB,MAAK8Q,IAAQuR,EAAavR,EAAIlP,QACpDgiB,GAAoB,GAIjBA,GAETT,yBAA0B,KACxB,MAAMU,EAAqB1iB,EAAMye,wBAAwB/O,UACnDwR,aACJA,GACElhB,EAAMuD,WACV,IAAIof,IAA0BD,EAAmBzkB,OAMjD,OAJI0kB,GAAyBD,EAAmB7jB,MAAK8Q,IAAQuR,EAAavR,EAAIlP,QAC5EkiB,GAAwB,GAGnBA,GAETC,sBAAuB,KACrB,IAAIC,EAEJ,OAAQ7iB,EAAM2hB,0BAA4Bzf,OAAO8N,KAAgE,OAA1D6S,EAAwB7iB,EAAMuD,WAAW2d,cAAwB2B,EAAwB,IAAI5kB,QAEtJ6kB,0BAA2B,KACzB,MAAMJ,EAAqB1iB,EAAMye,wBAAwB/O,SACzD,OAAO1P,EAAMgiB,4BAAqCU,EAAmB7jB,MAAKxB,GAAKA,EAAE0lB,iBAAmB1lB,EAAE2lB,uBAExGC,gCAAiC,IACxB3X,IACLtL,EAAM0hB,sBAAsBpW,EAAE4X,OAAOC,UAGzCC,oCAAqC,IAC5B9X,IACLtL,EAAM8hB,0BAA0BxW,EAAE4X,OAAOC,YAKjDzS,UAAW,CAACf,EAAK3P,KACR,CACLqjB,eAAgB5O,IACd,MAAM6O,EAAa3T,EAAIoT,gBACvB/iB,EAAMuhB,iBAAgBpkB,IAGpB,GAAImmB,KAFJ7O,OAAyB,IAAVA,EAAwBA,GAAS6O,GAG9C,OAAOnmB,EAGT,MAAMomB,EAAiB,IAAKpmB,GAG5B,OADA8kB,EAAoBsB,EAAgB5T,EAAIlP,GAAIgU,EAAOzU,GAC5CujB,MAGXR,cAAe,KACb,MAAM7B,aACJA,GACElhB,EAAMuD,WACV,OAAOigB,EAAc7T,EAAKuR,IAE5B8B,kBAAmB,KACjB,MAAM9B,aACJA,GACElhB,EAAMuD,WACV,MAA+C,SAAxCkgB,EAAiB9T,EAAKuR,IAE/BwC,wBAAyB,KACvB,MAAMxC,aACJA,GACElhB,EAAMuD,WACV,MAA+C,QAAxCkgB,EAAiB9T,EAAKuR,IAE/BW,aAAc,KACZ,IAAIjX,EAEJ,MAAgD,mBAArC5K,EAAMqB,QAAQ+f,mBAChBphB,EAAMqB,QAAQ+f,mBAAmBzR,GAG2B,OAA7D/E,EAAwB5K,EAAMqB,QAAQ+f,qBAA8BxW,GAE9E+Y,oBAAqB,KACnB,IAAI7O,EAEJ,MAAmD,mBAAxC9U,EAAMqB,QAAQigB,sBAChBthB,EAAMqB,QAAQigB,sBAAsB3R,GAG4B,OAAjEmF,EAAyB9U,EAAMqB,QAAQigB,wBAAiCxM,GAElF8O,kBAAmB,KACjB,IAAIxO,EAEJ,MAAqD,mBAA1CpV,EAAMqB,QAAQggB,wBAChBrhB,EAAMqB,QAAQggB,wBAAwB1R,GAG4B,OAAnEyF,EAAyBpV,EAAMqB,QAAQggB,0BAAmCjM,GAEpFyO,yBAA0B,KACxB,MAAMC,EAAYnU,EAAIkS,eACtB,OAAOvW,IACL,IAAIyY,EAECD,GACLnU,EAAI0T,eAAuC,OAAvBU,EAAUzY,EAAE4X,aAAkB,EAASa,EAAQZ,cAOvElB,EAAsB,CAACsB,EAAgB9iB,EAAIgU,EAAOzU,KACtD,IAAImR,EAEJ,MAAMxB,EAAM3P,EAAMgkB,OAAOvjB,GAMrBgU,GACG9E,EAAIiU,qBACP1hB,OAAO8N,KAAKuT,GAAgB1lB,SAAQb,UAAcumB,EAAevmB,KAG/D2S,EAAIkS,iBACN0B,EAAe9iB,IAAM,WAGhB8iB,EAAe9iB,GAIY,OAA/B0Q,EAAexB,EAAI2B,UAAoBH,EAAalT,QAAU0R,EAAIgU,uBACrEhU,EAAI2B,QAAQzT,SAAQ8R,GAAOsS,EAAoBsB,EAAgB5T,EAAIlP,GAAIgU,EAAOzU,MAIlF,SAASqiB,EAAariB,EAAOoiB,GAC3B,MAAMlB,EAAelhB,EAAMuD,WAAW2d,aAChC+C,EAAsB,GACtBC,EAAsB,GAEtBC,EAAc,SAAUtF,EAAM3e,GAElC,OAAO2e,EAAK7b,KAAI2M,IACd,IAAIyU,EAEJ,MAAMd,EAAaE,EAAc7T,EAAKuR,GAatC,GAXIoC,IACFW,EAAoBlmB,KAAK4R,GACzBuU,EAAoBvU,EAAIlP,IAAMkP,GAGK,OAAhCyU,EAAgBzU,EAAI2B,UAAoB8S,EAAcnmB,SACzD0R,EAAM,IAAKA,EACT2B,QAAS6S,EAAYxU,EAAI2B,WAIzBgS,EACF,OAAO3T,KAER1L,OAAOC,UAGZ,MAAO,CACL2a,KAAMsF,EAAY/B,EAASvD,MAC3BnP,SAAUuU,EACV9T,SAAU+T,GAGd,SAASV,EAAc7T,EAAK0U,GAC1B,IAAIC,EAEJ,OAAkD,OAA1CA,EAAoBD,EAAU1U,EAAIlP,MAAe6jB,EAE3D,SAASb,EAAiB9T,EAAK0U,EAAWrkB,GACxC,GAAI2P,EAAI2B,SAAW3B,EAAI2B,QAAQrT,OAAQ,CACrC,IAAIsmB,GAAsB,EACtBC,GAAe,EAanB,OAZA7U,EAAI2B,QAAQzT,SAAQ4mB,IAEdD,IAAiBD,IAIjBf,EAAciB,EAAQJ,GACxBG,GAAe,EAEfD,GAAsB,MAGnBA,EAAsB,QAAQC,GAAe,OAGtD,OAAO,EAGH,MAAAE,EAAsB,aAoC5B,SAASC,EAAaC,EAAGC,GACvB,OAAOD,IAAMC,EAAI,EAAID,EAAIC,EAAI,GAAK,EAGpC,SAASzL,EAASwL,GAChB,MAAiB,iBAANA,EACLtR,MAAMsR,IAAMA,IAAMrR,KAAYqR,KAAOrR,IAChC,GAGF7T,OAAOklB,GAGC,iBAANA,EACFA,EAGF,GAMT,SAASE,EAAoBC,EAAMC,GAGjC,MAAMJ,EAAIG,EAAK1U,MAAMqU,GAAqBzgB,OAAOC,SAC3C2gB,EAAIG,EAAK3U,MAAMqU,GAAqBzgB,OAAOC,SAEjD,KAAO0gB,EAAE3mB,QAAU4mB,EAAE5mB,QAAQ,CAC3B,MAAMgnB,EAAKL,EAAE5I,QACPkJ,EAAKL,EAAE7I,QACPmJ,EAAKC,SAASH,EAAI,IAClBI,EAAKD,SAASF,EAAI,IAClBI,EAAQ,CAACH,EAAIE,GAAIE,OAEvB,GAAIjS,MAAMgS,EAAM,IAAhB,CACE,GAAIL,EAAKC,EACP,OAAO,EAGT,GAAIA,EAAKD,EACP,OAAQ,MANZ,CAaA,GAAI3R,MAAMgS,EAAM,IACd,OAAOhS,MAAM6R,IAAO,EAAI,EAI1B,GAAIA,EAAKE,EACP,OAAO,EAGT,GAAIA,EAAKF,EACP,OAAQ,GAIZ,OAAOP,EAAE3mB,OAAS4mB,EAAE5mB,OAIjB,MAACunB,EAAa,CACjBC,aAtGmB,CAACC,EAAMC,EAAM5hB,IACzB+gB,EAAoB1L,EAASsM,EAAK5T,SAAS/N,IAAW8N,cAAeuH,EAASuM,EAAK7T,SAAS/N,IAAW8N,eAsG9G+T,0BAnGgC,CAACF,EAAMC,EAAM5hB,IACtC+gB,EAAoB1L,EAASsM,EAAK5T,SAAS/N,IAAYqV,EAASuM,EAAK7T,SAAS/N,KAmGrF8hB,KA9FW,CAACH,EAAMC,EAAM5hB,IACjB4gB,EAAavL,EAASsM,EAAK5T,SAAS/N,IAAW8N,cAAeuH,EAASuM,EAAK7T,SAAS/N,IAAW8N,eA8FvGiU,kBAzFwB,CAACJ,EAAMC,EAAM5hB,IAC9B4gB,EAAavL,EAASsM,EAAK5T,SAAS/N,IAAYqV,EAASuM,EAAK7T,SAAS/N,KAyF9EgiB,SAtFe,CAACL,EAAMC,EAAM5hB,KAC5B,MAAM6gB,EAAIc,EAAK5T,SAAS/N,GAClB8gB,EAAIc,EAAK7T,SAAS/N,GAIxB,OAAO6gB,EAAIC,EAAI,EAAID,EAAIC,GAAK,EAAI,GAiFhCmB,MA9EY,CAACN,EAAMC,EAAM5hB,IAClB4gB,EAAae,EAAK5T,SAAS/N,GAAW4hB,EAAK7T,SAAS/N,KAiFvDkiB,EAAU,CACdpd,gBAAiBC,IACR,CACLod,QAAS,MACNpd,IAGPF,oBAAqB,KACZ,CACLud,UAAW,SAGf5c,kBAAmBvJ,IACV,CACLomB,gBAAiBrpB,EAAiB,UAAWiD,GAC7CqmB,iBAAkB/a,GACTA,EAAEgb,WAIfvmB,aAAc,CAACgB,EAAQf,KACd,CACLumB,iBAAkB,KAChB,MAAMC,EAAYxmB,EAAMwX,sBAAsB9H,SAAS+W,MAAM,IAC7D,IAAIC,GAAW,EAEf,IAAK,MAAM/W,KAAO6W,EAAW,CAC3B,MAAM/R,EAAe,MAAP9E,OAAc,EAASA,EAAImC,SAAS/Q,EAAON,IAEzD,GAA8C,kBAA1CyB,OAAOmY,UAAUjB,SAASkB,KAAK7F,GACjC,OAAO+Q,EAAWO,SAGpB,GAAqB,iBAAVtR,IACTiS,GAAW,EAEPjS,EAAMpE,MAAMqU,GAAqBzmB,OAAS,GAC5C,OAAOunB,EAAWC,aAKxB,OAAIiB,EACKlB,EAAWK,KAGbL,EAAWQ,OAEpBW,eAAgB,KACd,MAAMnS,EAAWxU,EAAMwX,sBAAsB9H,SAAS,GAGtD,MAAqB,iBAFK,MAAZ8E,OAAmB,EAASA,EAAS1C,SAAS/Q,EAAON,KAG1D,MAGF,QAETmmB,aAAc,KACZ,IAAK7lB,EACH,MAAM,IAAID,MAGZ,OAAO1D,EAAW2D,EAAOd,UAAUkmB,WAAaplB,EAAOd,UAAUkmB,UAA2C,SAA/BplB,EAAOd,UAAUkmB,UAAuBplB,EAAOwlB,mBAAqBf,EAAWzkB,EAAOd,UAAUkmB,YAE/KU,cAAe,CAACC,EAAMC,KAUpB,MAAMC,EAAmBjmB,EAAOkmB,sBAC1BC,EAAiB,MAAOJ,EAC9B9mB,EAAMmnB,YAAWhqB,IAEf,MAAMiqB,EAAyB,MAAPjqB,OAAc,EAASA,EAAI6G,MAAK3G,GAAKA,EAAEoD,KAAOM,EAAON,KACvE4mB,EAAuB,MAAPlqB,OAAc,EAASA,EAAIgN,WAAU9M,GAAKA,EAAEoD,KAAOM,EAAON,KAChF,IAEI6mB,EAFAC,EAAa,GAGbC,EAAWN,EAAiBJ,EAA4B,SAArBE,EA+BrC,IAAIS,GA3BFH,EAFO,MAAPnqB,GAAeA,EAAIc,QAAU8C,EAAO2mB,mBAAqBX,EACvDK,EACW,SAEA,MAIJ,MAAPjqB,GAAeA,EAAIc,QAAUopB,IAAkBlqB,EAAIc,OAAS,EACjD,UACJmpB,EACI,SAEA,UAKE,WAAfE,IAEGJ,GAEEF,IACHM,EAAa,WAKA,QAAfA,IAGFC,EAAa,IAAIpqB,EAAK,CACpBsD,GAAIM,EAAON,GACXqmB,KAAMU,IAGRD,EAAWrL,OAAO,EAAGqL,EAAWtpB,QAA0E,OAA/DwpB,EAAwBznB,EAAMqB,QAAQsmB,sBAAgCF,EAAwBhf,OAAOC,oBAGhJ6e,EAFwB,WAAfD,EAEInqB,EAAI6F,KAAI3F,GACfA,EAAEoD,KAAOM,EAAON,GACX,IAAKpD,EACVypB,KAAMU,GAIHnqB,IAEe,WAAfiqB,EACInqB,EAAI8G,QAAO5G,GAAKA,EAAEoD,KAAOM,EAAON,KAEhC,CAAC,CACZA,GAAIM,EAAON,GACXqmB,KAAMU,IAIV,OAAOD,MAGXK,gBAAiB,KACf,IAAIxnB,EAAMynB,EAGV,OADyJ,OAAlIznB,EAAmE,OAA3DynB,EAAwB9mB,EAAOd,UAAU6nB,eAAyBD,EAAwB7nB,EAAMqB,QAAQymB,eAAyB1nB,EAAmC,SAA5BW,EAAO4lB,kBACvJ,OAAS,OAElCM,oBAAqBF,IACnB,IAAInc,EAAuBkK,EAE3B,MAAMiT,EAAqBhnB,EAAO6mB,kBAC5BI,EAAWjnB,EAAOknB,cAExB,OAAKD,KAIDA,IAAaD,GAAuF,OAA/Dnd,EAAwB5K,EAAMqB,QAAQ6mB,wBAAgCtd,GAC/Gmc,GAAsE,OAA7DjS,EAAyB9U,EAAMqB,QAAQ8mB,qBAA6BrT,KAKzD,SAAbkT,EAAsB,MAAQ,QAT5BD,GAWXK,WAAY,KACV,IAAIzd,EAAuByK,EAE3B,OAAoE,OAA3DzK,EAAwB5J,EAAOd,UAAUooB,gBAAyB1d,KAA4F,OAAzDyK,EAAyBpV,EAAMqB,QAAQgnB,gBAAyBjT,MAAoCrU,EAAOP,YAE3NknB,gBAAiB,KACf,IAAInd,EAAO4K,EAEX,OAAiJ,OAAzI5K,EAAuE,OAA9D4K,EAAyBpU,EAAOd,UAAUqoB,iBAA2BnT,EAAyBnV,EAAMqB,QAAQinB,iBAA2B/d,IAAUxJ,EAAOP,YAE3KynB,YAAa,KACX,IAAIM,EAEJ,MAAMC,EAAmE,OAArDD,EAAwBvoB,EAAMuD,WAAW2iB,cAAmB,EAASqC,EAAsBvkB,MAAK3G,GAAKA,EAAEoD,KAAOM,EAAON,KACzI,QAAQ+nB,IAAqBA,EAAW1B,KAAO,OAAS,QAE1D2B,aAAc,KACZ,IAAIC,EAAwBC,EAE5B,OAAsK,OAA9JD,EAAgF,OAAtDC,EAAyB3oB,EAAMuD,WAAW2iB,cAAmB,EAASyC,EAAuBxe,WAAU9M,GAAKA,EAAEoD,KAAOM,EAAON,MAAeioB,GAA0B,GAEzME,aAAc,KAEZ5oB,EAAMmnB,YAAWhqB,GAAc,MAAPA,GAAeA,EAAIc,OAASd,EAAI8G,QAAO5G,GAAKA,EAAEoD,KAAOM,EAAON,KAAM,MAE5FooB,wBAAyB,KACvB,MAAMC,EAAU/nB,EAAOqnB,aACvB,OAAO9c,IACAwd,IACQ,MAAbxd,EAAEC,SAA2BD,EAAEC,UACP,MAAxBxK,EAAO8lB,eAAiC9lB,EAAO8lB,mBAAcjmB,IAAWG,EAAO2mB,oBAAsD,MAAlC1nB,EAAMqB,QAAQglB,sBAA2B,EAASrmB,EAAMqB,QAAQglB,iBAAiB/a,UAK5LnI,YAAanD,IACJ,CACLmnB,WAAYtqB,GAA4C,MAAjCmD,EAAMqB,QAAQ+kB,qBAA0B,EAASpmB,EAAMqB,QAAQ+kB,gBAAgBvpB,GACtGksB,aAAchc,IACZ,IAAIic,EAAuBzZ,EAE3BvP,EAAMmnB,WAAWpa,EAAe,GAA4H,OAAtHic,EAAsE,OAA7CzZ,EAAsBvP,EAAMiN,mBAAwB,EAASsC,EAAoB2W,SAAmB8C,EAAwB,KAE7LC,qBAAsB,IAAMjpB,EAAM2a,qBAClCpK,kBAAmB,MACZvQ,EAAMkpB,oBAAsBlpB,EAAMqB,QAAQkP,oBAC7CvQ,EAAMkpB,mBAAqBlpB,EAAMqB,QAAQkP,kBAAkBvQ,IAGzDA,EAAMqB,QAAQ8nB,gBAAkBnpB,EAAMkpB,mBACjClpB,EAAMipB,uBAGRjpB,EAAMkpB,yBAOfE,EAAa,CACjBvgB,gBAAiBC,IACR,CACLugB,iBAAkB,MACfvgB,IAGPS,kBAAmBvJ,IACV,CACLspB,yBAA0BvsB,EAAiB,mBAAoBiD,KAGnED,aAAc,CAACgB,EAAQf,KACd,CACLupB,iBAAkB9U,IACZ1T,EAAOyoB,cACTxpB,EAAMypB,qBAAoBtsB,IAAQ,IAAKA,EACrC,CAAC4D,EAAON,IAAc,MAATgU,EAAgBA,GAAS1T,EAAO0G,oBAInDA,aAAc,KACZ,IAAIkO,EAAuBC,EAE3B,OAAsJ,OAA9ID,EAAwF,OAA/DC,EAAyB5V,EAAMuD,WAAW8lB,uBAA4B,EAASzT,EAAuB7U,EAAON,MAAekV,GAE/J6T,WAAY,KACV,IAAI7e,EAAuBC,EAE3B,OAAmE,OAA1DD,EAAwB5J,EAAOd,UAAUypB,eAAwB/e,KAA0F,OAAvDC,EAAwB5K,EAAMqB,QAAQqoB,eAAwB9e,IAE7K+e,2BAA4B,IACnBre,IACsB,MAA3BvK,EAAOwoB,kBAAoCxoB,EAAOwoB,iBAAiBje,EAAE4X,OAAOC,YAKpFzS,UAAW,CAACf,EAAK3P,KACR,CACLkgB,oBAAqBhiB,GAAK,IAAM,CAACyR,EAAIia,cAAe5pB,EAAMuD,WAAW8lB,oBAAmBQ,GAC/EA,EAAM5lB,QAAOgX,GAAQA,EAAKla,OAAO0G,kBACvC,CACDzK,IAA8C,0BAC9CyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQgf,aAG5GyJ,gBAAiB5rB,GAAK,IAAM,CAACyR,EAAI2Q,sBAAuB3Q,EAAIsQ,wBAAyBtQ,EAAI4Q,0BAAyB,CAAC9c,EAAMkD,EAAQjD,IAAU,IAAID,KAASkD,KAAWjD,IAAQ,CACzK1G,KAAK,EACLyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQgf,eAKlHld,YAAanD,IACX,MAAM+pB,EAA2B,CAAC/sB,EAAKgtB,IAC9B9rB,GAAK,IAAM,CAAC8rB,IAAcA,IAAa/lB,QAAO5G,GAAKA,EAAEoK,iBAAgBzE,KAAI3F,GAAKA,EAAEoD,KAAImH,KAAK,QAAO5G,GAC9FA,EAAQiD,QAAO5G,GAAuB,MAAlBA,EAAEoK,kBAAuB,EAASpK,EAAEoK,kBAC9D,CACDzK,MACAyB,MAAO,KACL,IAAIiG,EAEJ,OAA4D,OAApDA,EAAyB1E,EAAMqB,QAAQC,UAAoBoD,EAAyB1E,EAAMqB,QAAQE,gBAKhH,MAAO,CACL0oB,sBAAuBF,EAAyB,yBAAyB,IAAM/pB,EAAMkqB,sBACrF5mB,sBAAuBymB,EAAyB,yBAAyB,IAAM/pB,EAAMkX,sBACrFjN,0BAA2B8f,EAAyB,6BAA6B,IAAM/pB,EAAM8gB,uBAC7F5W,2BAA4B6f,EAAyB,8BAA8B,IAAM/pB,EAAM+gB,wBAC/FoJ,4BAA6BJ,EAAyB,+BAA+B,IAAM/pB,EAAMghB,yBACjGyI,oBAAqB5sB,GAAqD,MAA1CmD,EAAMqB,QAAQioB,8BAAmC,EAAStpB,EAAMqB,QAAQioB,yBAAyBzsB,GACjIutB,sBAAuBrd,IACrB,IAAIC,EAEJhN,EAAMypB,oBAAoB1c,EAAe,GAAsE,OAAhEC,EAAwBhN,EAAMiN,aAAaoc,kBAA4Brc,EAAwB,KAEhJqd,wBAAyB5V,IACvB,IAAI6V,EAEJ7V,EAA4B,OAAnB6V,EAAS7V,GAAiB6V,GAAUtqB,EAAMuqB,yBACnDvqB,EAAMypB,oBAAoBzpB,EAAMkX,oBAAoBnV,QAAO,CAACC,EAAKjB,KAAY,IAAKiB,EAChF,CAACjB,EAAON,IAAMgU,KAA+B,MAArB1T,EAAOyoB,YAAsBzoB,EAAOyoB,iBAC1D,MAENe,uBAAwB,KAAOvqB,EAAMkX,oBAAoBrY,MAAKkC,KAAmC,MAAvBA,EAAO0G,cAAwB1G,EAAO0G,kBAChH+iB,wBAAyB,IAAMxqB,EAAMkX,oBAAoBrY,MAAKkC,GAAiC,MAAvBA,EAAO0G,kBAAuB,EAAS1G,EAAO0G,iBACtHgjB,qCAAsC,IAC7Bnf,IACL,IAAIyY,EAEJ/jB,EAAMqqB,wBAAgD,OAAvBtG,EAAUzY,EAAE4X,aAAkB,EAASa,EAAQZ,aAOlFuH,EAAW,CAACxnB,EAASkmB,EAAY7N,EAAUuD,EAASpL,EAASuS,EAASlN,EAAUzK,EAAW6N,EAAY8E,EAActY,GAE3H,SAASxF,EAAY9B,GACnB,IAAIspB,GAEAtpB,EAAQC,UAAYD,EAAQ8c,aAC9Bxe,QAAQC,KAAK,8BAGf,IAAII,EAAQ,CACV8B,UAAW4oB,GAGb,MAAME,EAAiB5qB,EAAM8B,UAAUC,QAAO,CAACC,EAAKC,IAC3CC,OAAOC,OAAOH,EAAkC,MAA7BC,EAAQsH,uBAA4B,EAAStH,EAAQsH,kBAAkBvJ,KAChG,IAaH,IAAIiN,EAAe,IACqC,OAAjD0d,EAAwBtpB,EAAQ4L,cAAwB0d,EAAwB,IAGvF3qB,EAAM8B,UAAUjE,SAAQoE,IACtB,IAAI4oB,EAEJ5d,EAA6H,OAA7G4d,EAAmD,MAA3B5oB,EAAQ4G,qBAA0B,EAAS5G,EAAQ4G,gBAAgBoE,IAAyB4d,EAAwB5d,KAG9J,MAAM0B,EAAS,GACf,IAAImc,GAAgB,EACpB,MAAMC,EAAe,CACnBjpB,UAAW4oB,EACXrpB,QAAS,IAAKupB,KACTvpB,GAEL4L,eACAgC,OAAQ+b,IACNrc,EAAO5Q,KAAKitB,GAEPF,IACHA,GAAgB,EAGhBG,QAAQC,UAAUC,MAAK,KACrB,KAAOxc,EAAO1Q,QACZ0Q,EAAOqN,OAAPrN,GAGFmc,GAAgB,KACfM,OAAMC,GAASC,YAAW,KAC3B,MAAMD,SAIZE,MAAO,KACLvrB,EAAM9C,SAAS8C,EAAMiN,eAEvBue,WAAY3uB,IACV,MAAM4uB,EAAa7uB,EAAiBC,EAASmD,EAAMqB,SACnDrB,EAAMqB,QApDWA,IACfrB,EAAMqB,QAAQqqB,aACT1rB,EAAMqB,QAAQqqB,aAAad,EAAgBvpB,GAG7C,IAAKupB,KACPvpB,GA8CaqqB,CAAaD,IAE/BloB,SAAU,IACDvD,EAAMqB,QAAQyH,MAEvB5L,SAAUL,IACuB,MAA/BmD,EAAMqB,QAAQsqB,eAAiC3rB,EAAMqB,QAAQsqB,cAAc9uB,IAE7E+uB,UAAW,CAACjc,EAAK5Q,EAAOoB,KACtB,IAAI+Q,EAEJ,OAAyH,OAAjHA,EAAkD,MAA1BlR,EAAMqB,QAAQwqB,cAAmB,EAAS7rB,EAAMqB,QAAQwqB,SAASlc,EAAK5Q,EAAOoB,IAAmB+Q,EAAwB,IAAM/Q,EAAS,CAACA,EAAOM,GAAI1B,GAAO6I,KAAK,KAAO7I,IAExMsV,gBAAiB,KACVrU,EAAM8rB,mBACT9rB,EAAM8rB,iBAAmB9rB,EAAMqB,QAAQgT,gBAAgBrU,IAGlDA,EAAM8rB,oBAIfrc,YAAa,IACJzP,EAAMye,wBAEfuF,OAAQvjB,IACN,MAAMkP,EAAM3P,EAAMyP,cAAcU,SAAS1P,GAEzC,IAAKkP,EAKH,MAAM,IAAI7O,MAGZ,OAAO6O,GAETpP,qBAAsBrC,GAAK,IAAM,CAAC8B,EAAMqB,QAAQ0qB,iBAAgBA,IAC9D,IAAIC,EAGJ,OADAD,EAAoD,OAAnCC,EAAiBD,GAAyBC,EAAiB,GACrE,CACLrrB,OAAQsY,GAASA,EAAMtY,OAAOI,OAAON,GACrCwrB,OAAQhT,GAASA,EAAMtY,OAAOI,OAAON,GACrCwa,KAAMhC,IACJ,IAAIiT,EAAuBC,EAE3B,OAA+K,OAAvKD,EAAsE,OAA7CC,EAAqBlT,EAAMmT,gBAAiE,MAA/BD,EAAmB/S,cAA5B,EAAwD+S,EAAmB/S,YAAsB8S,EAAwB,SAE7MlsB,EAAM8B,UAAUC,QAAO,CAACC,EAAKC,IACvBC,OAAOC,OAAOH,EAAoC,MAA/BC,EAAQ2G,yBAA8B,EAAS3G,EAAQ2G,wBAChF,OACAmjB,KAEJ,CACDttB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQE,cAE1GvE,KAAK,IAEPqvB,eAAgB,IAAMrsB,EAAMqB,QAAQL,QACpCqC,cAAenF,GAAK,IAAM,CAAC8B,EAAMqsB,oBAAmBC,IAClD,MAAMC,EAAiB,SAAUD,EAAYnsB,EAAQD,GAKnD,YAJc,IAAVA,IACFA,EAAQ,GAGHosB,EAAWtpB,KAAI/C,IACpB,MAAMc,EAAShB,EAAaC,EAAOC,EAAWC,EAAOC,GAErD,OADAY,EAAOC,QAAUf,EAAUe,QAAUurB,EAAetsB,EAAUe,QAASD,EAAQb,EAAQ,GAAK,GACrFa,MAIX,OAAOwrB,EAAeD,KACrB,CACDtvB,KAAK,EACLyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQE,gBAG9G2oB,kBAAmBhsB,GAAK,IAAM,CAAC8B,EAAMqD,mBAAkBM,GAC9CA,EAAWxC,SAAQJ,GACjBA,EAAOE,oBAEf,CACDjE,KAAK,EACLyB,MAAO,KACL,IAAIiG,EAEJ,OAA4D,OAApDA,EAAyB1E,EAAMqB,QAAQC,UAAoBoD,EAAyB1E,EAAMqB,QAAQE,gBAG9GirB,uBAAwBtuB,GAAK,IAAM,CAAC8B,EAAMkqB,uBAAsBuC,GACvDA,EAAY1qB,QAAO,CAAC2qB,EAAK3rB,KAC9B2rB,EAAI3rB,EAAON,IAAMM,EACV2rB,IACN,KACF,CACD1vB,KAAK,EACLyB,MAAO,KACL,IAAIoG,EAEJ,OAA4D,OAApDA,EAAyB7E,EAAMqB,QAAQC,UAAoBuD,EAAyB7E,EAAMqB,QAAQE,gBAG9G2V,kBAAmBhZ,GAAK,IAAM,CAAC8B,EAAMqD,gBAAiBrD,EAAMyB,wBAAuB,CAACkC,EAAYjC,IAEvFA,EADWiC,EAAWxC,SAAQJ,GAAUA,EAAOS,qBAErD,CACDxE,KAAK,EACLyB,MAAO,KACL,IAAIwG,EAEJ,OAA4D,OAApDA,EAAyBjF,EAAMqB,QAAQC,UAAoB2D,EAAyBjF,EAAMqB,QAAQE,gBAG9G6J,UAAWrH,IACT,MAAMhD,EAASf,EAAMwsB,yBAAyBzoB,GAE9C,IAAKhD,EAKH,MAAM,IAAID,MAGZ,OAAOC,IASX,OANAmB,OAAOC,OAAOnC,EAAO+qB,GAErB/qB,EAAM8B,UAAUjE,SAAQoE,GACfC,OAAOC,OAAOnC,EAA8B,MAAvBiC,EAAQkB,iBAAsB,EAASlB,EAAQkB,YAAYnD,MAGlFA,EAiCJ,MAAC0Q,EAAY,CAAC1Q,EAAOS,EAAIksB,EAAUC,EAAU1sB,EAAOoR,KACvD,IAAI3B,EAAM,CACRlP,KACA1B,MAAO6tB,EACPD,WACAzsB,QACA2sB,aAAc,GACd/a,SAAU/N,IACR,GAAI4L,EAAIkd,aAAaC,eAAe/oB,GAClC,OAAO4L,EAAIkd,aAAa9oB,GAG1B,MAAMhD,EAASf,EAAMoL,UAAUrH,GAE/B,OAAKhD,EAAOP,YAIZmP,EAAIkd,aAAa9oB,GAAYhD,EAAOP,WAAWmP,EAAIgd,SAAUC,GACtDjd,EAAIkd,aAAa9oB,SALxB,GAOFqoB,YAAaroB,IACX,IAAI4N,EAEJ,OAAmD,OAA3CA,EAAgBhC,EAAImC,SAAS/N,IAAqB4N,EAAgB3R,EAAMqB,QAAQ0rB,qBAE1Fzb,QAAoB,MAAXA,EAAkBA,EAAU,GACrC0b,YAAa,IAAMzvB,EAAUoS,EAAI2B,SAASjU,GAAKA,EAAEiU,UACjDsY,YAAa1rB,GAAK,IAAM,CAAC8B,EAAMkX,uBAAsBtV,GAC5CA,EAAYoB,KAAIjC,GA3D7B,SAAoBf,EAAO2P,EAAK5O,EAAQgD,GACtC,MAMMkX,EAAO,CACXxa,GAAIkP,EAAIlP,GAAK,IAAMM,EAAON,GAC1BkP,MACA5O,SACA+Q,SAAU,IAAMnC,EAAImC,SAAS/N,GAC7BqoB,YAXqB,KACrB,IAAIa,EAEJ,OAA6C,OAArCA,EAAiBhS,EAAKnJ,YAAsBmb,EAAiBjtB,EAAMqB,QAAQ0rB,qBASnF9pB,WAAY,KAAO,CACjBjD,QACAe,SACA4O,MACAsL,KAAMA,EACNnJ,SAAUmJ,EAAKnJ,SACfsa,YAAanR,EAAKmR,eAQtB,OAJApsB,EAAM8B,UAAUjE,SAAQoE,IACtBC,OAAOC,OAAO8Y,EAA4B,MAAtBhZ,EAAQ+Y,gBAAqB,EAAS/Y,EAAQ+Y,WAAWC,EAAMla,EAAQ4O,EAAK3P,MAC/F,IAEIib,EAiCMD,CAAWhb,EAAO2P,EAAK5O,EAAQA,EAAON,OAE9C,CACDzD,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQgf,aAG5G/L,uBAAwBpW,GAAK,IAAM,CAACyR,EAAIia,iBAAgBzJ,GAC/CA,EAASpe,QAAO,CAAC2qB,EAAKzR,KAC3ByR,EAAIzR,EAAKla,OAAON,IAAMwa,EACfyR,IACN,KACF,CACD1vB,IAA8C,4BAC9CyB,MAAO,KACL,IAAIoD,EAEJ,OAA4D,OAApDA,EAAyB7B,EAAMqB,QAAQC,UAAoBO,EAAyB7B,EAAMqB,QAAQgf,cAKhH,IAAK,IAAInC,EAAI,EAAGA,EAAIle,EAAM8B,UAAU7D,OAAQigB,IAAK,CAC/C,MAAMjc,EAAUjC,EAAM8B,UAAUoc,GAChChc,OAAOC,OAAOwN,EAAgB,MAAX1N,GAAgD,MAArBA,EAAQyO,eAAjB,EAA8CzO,EAAQyO,UAAUf,EAAK3P,IAG5G,OAAO2P,GA+DT,SAASud,EAAWrO,EAAMsO,EAAentB,GACvC,OAAIA,EAAMqB,QAAQ2S,mBAMpB,SAAiCoZ,EAAcC,EAAWrtB,GACxD,MAAMstB,EAAsB,GACtBC,EAAsB,GAEtBC,EAAoB,SAAUJ,EAAcltB,GAEhD,MAAM2e,EAAO,GAEb,IAAK,IAAIX,EAAI,EAAGA,EAAIkP,EAAanvB,OAAQigB,IAAK,CAC5C,IAAI/M,EAEJ,IAAIxB,EAAMyd,EAAalP,GAEvB,GAAoC,OAA/B/M,EAAexB,EAAI2B,UAAoBH,EAAalT,OAAQ,CAC/D,MAAMwvB,EAAS/c,EAAU1Q,EAAO2P,EAAIlP,GAAIkP,EAAIgd,SAAUhd,EAAI5Q,MAAO4Q,EAAIzP,OAIrE,GAHAutB,EAAO7Z,cAAgBjE,EAAIiE,cAC3B6Z,EAAOnc,QAAUkc,EAAkB7d,EAAI2B,UAElCmc,EAAOnc,QAAQrT,OAClB,SAGF0R,EAAM8d,EAGJJ,EAAU1d,KACZkP,EAAK9gB,KAAK4R,GACV4d,EAAoB5d,EAAIlP,IAAMkP,EAC9B4d,EAAoBrP,GAAKvO,GAI7B,OAAOkP,GAGT,MAAO,CACLA,KAAM2O,EAAkBJ,GACxB1d,SAAU4d,EACVnd,SAAUod,GA3CHG,CAAwB7O,EAAMsO,EAAentB,GA8CxD,SAAgCotB,EAAcC,EAAWrtB,GACvD,MAAMstB,EAAsB,GACtBC,EAAsB,GAEtBC,EAAoB,SAAUJ,EAAcltB,GAGhD,MAAM2e,EAAO,GAEb,IAAK,IAAIX,EAAI,EAAGA,EAAIkP,EAAanvB,OAAQigB,IAAK,CAC5C,IAAIvO,EAAMyd,EAAalP,GAGvB,GAFamP,EAAU1d,GAEb,CACR,IAAIyU,EAEJ,GAAqC,OAAhCA,EAAgBzU,EAAI2B,UAAoB8S,EAAcnmB,OAAQ,CACjE,MAAMwvB,EAAS/c,EAAU1Q,EAAO2P,EAAIlP,GAAIkP,EAAIgd,SAAUhd,EAAI5Q,MAAO4Q,EAAIzP,OACrEutB,EAAOnc,QAAUkc,EAAkB7d,EAAI2B,SACvC3B,EAAM8d,EAGR5O,EAAK9gB,KAAK4R,GACV2d,EAAoBvvB,KAAK4R,GACzB4d,EAAoB5d,EAAIlP,IAAMkP,GAIlC,OAAOkP,GAGT,MAAO,CACLA,KAAM2O,EAAkBJ,GACxB1d,SAAU4d,EACVnd,SAAUod,GA7ELI,CAAuB9O,EAAMsO,EAAentB,GAyiBrD,SAAS4tB,GAAWxL,EAAUpiB,GAC5B,MAAM6tB,EAAe,GAEfC,EAAYne,IAChB,IAAIwB,EAEJ0c,EAAa9vB,KAAK4R,GAEkB,OAA/BwB,EAAexB,EAAI2B,UAAoBH,EAAalT,QAAU0R,EAAIM,iBACrEN,EAAI2B,QAAQzT,QAAQiwB,IAKxB,OADA1L,EAASvD,KAAKhhB,QAAQiwB,GACf,CACLjP,KAAMgP,EACNne,SAAU0S,EAAS1S,SACnBS,SAAUiS,EAASjS,2UChoHhB,SACL4d,EACA9U,GAEA,OAAQ8U,EAiBV,SAA0BC,GACxB,MACuB,mBAAdA,GACP,MACE,MAAMC,EAAQ/rB,OAAOgsB,eAAeF,GACpC,OAAOC,EAAM5T,WAAa4T,EAAM5T,UAAU8T,kBAF5C,GATAC,CAHFJ,EAR+CD,IAYxB,mBAAdC,GAeX,SAA2BA,GACzB,MACuB,iBAAdA,GACuB,iBAAvBA,EAAUK,UACjB,CAAC,aAAc,qBAAqBhqB,SAAS2pB,EAAUK,SAASC,aAlBhEC,CAAkBP,GAZlBQ,gBAACT,EAAS9U,GAEV8U,EAHa,KAOjB,IACEC,0CDy/FF,WACE,OAAOhuB,GAAS9B,GAAK,IAAM,CAAC8B,EAAMqB,QAAQotB,QAAOA,IAC/C,MAAMrM,EAAW,CACfvD,KAAM,GACNnP,SAAU,GACVS,SAAU,IAGNue,EAAa,SAAUC,EAAczuB,EAAOC,QAClC,IAAVD,IACFA,EAAQ,GAGV,MAAM2e,EAAO,GAEb,IAAK,IAAIX,EAAI,EAAGA,EAAIyQ,EAAa1wB,OAAQigB,IAAK,CAQ5C,MAAMvO,EAAMe,EAAU1Q,EAAOA,EAAM4rB,UAAU+C,EAAazQ,GAAIA,EAAG/d,GAASwuB,EAAazQ,GAAIA,EAAGhe,GAS5F,IAAI0uB,EADN,GANAxM,EAAS1S,SAAS3R,KAAK4R,GAEvByS,EAASjS,SAASR,EAAIlP,IAAMkP,EAE5BkP,EAAK9gB,KAAK4R,GAEN3P,EAAMqB,QAAQwtB,WAGhBlf,EAAImf,gBAAkB9uB,EAAMqB,QAAQwtB,WAAWF,EAAazQ,GAAIA,GAEZ,OAA/C0Q,EAAuBjf,EAAImf,kBAA4BF,EAAqB3wB,SAC/E0R,EAAI2B,QAAUod,EAAW/e,EAAImf,gBAAiB5uB,EAAQ,EAAGyP,IAK/D,OAAOkP,GAIT,OADAuD,EAASvD,KAAO6P,EAAWD,GACpBrM,IACN,CACDplB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,KACRe,EAAMwc,gDAkiBZ,WACE,OAAOxc,GAAS9B,GAAK,IAAM,CAAC8B,EAAMuD,WAAWgL,SAAUvO,EAAMsQ,yBAA0BtQ,EAAMqB,QAAQoN,wBAAuB,CAACF,EAAU6T,EAAU3T,IAC1I2T,EAASvD,KAAK5gB,QAClBwQ,KAAqC,IAAbF,GAAsBrM,OAAO8N,KAAiB,MAAZzB,EAAmBA,EAAW,IAAItQ,QAItF2vB,GAAWxL,GAHTA,GAIR,CACDplB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,wCA/R9G,WACE,MAAO,CAACne,EAAO+D,IAAa7F,GAAK,IAAM,CAAC8B,EAAMoL,UAAUrH,GAAUyS,wBAAuBuY,IACvF,IAAIC,EAEJ,MAAMC,EAAsE,OAAxDD,EAAwBD,EAAgBrf,SAAS,SAAc,EAASsf,EAAsBld,SAAS/N,GAE3H,QAA0B,IAAfkrB,EACT,OAGF,IAAIC,EAAsB,CAACD,EAAYA,GAEvC,IAAK,IAAI/Q,EAAI,EAAGA,EAAI6Q,EAAgBrf,SAASzR,OAAQigB,IAAK,CACxD,MAAMzJ,EAAQsa,EAAgBrf,SAASwO,GAAGpM,SAAS/N,GAE/C0Q,EAAQya,EAAoB,GAC9BA,EAAoB,GAAKza,EAChBA,EAAQya,EAAoB,KACrCA,EAAoB,GAAKza,GAI7B,OAAOya,IACN,CACDlyB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,+BA3Fd,WACE,MAAO,CAACe,EAAO+D,IAAa7F,GAAK,IAAM,CAAC8B,EAAMyW,yBAA0BzW,EAAMuD,WAAWqQ,cAAe5T,EAAMuD,WAAWsQ,aAAc7T,EAAMwX,yBAAwB,CAAC2X,EAAavb,EAAeC,KAChM,IAAKsb,EAAYtQ,KAAK5gB,SAA6B,MAAjB2V,IAAyBA,EAAc3V,UAAY4V,EACnF,OAAOsb,EAGT,MAAMC,EAAgB,IAAIxb,EAAc5Q,KAAI3F,GAAKA,EAAEoD,KAAIwD,QAAO5G,GAAKA,IAAM0G,IAAW8P,EAAe,kBAAejT,GAAWqD,OAAOC,SAapI,OAAOgpB,EAAWiC,EAAYtQ,MAXPlP,IAErB,IAAK,IAAIuO,EAAI,EAAGA,EAAIkR,EAAcnxB,OAAQigB,IACxC,IAA4C,IAAxCvO,EAAIiE,cAAcwb,EAAclR,IAClC,OAAO,EAIX,OAAO,IAG2Cle,KACnD,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,mCAId,WACE,MAAO,CAACe,EAAO+D,IAAa7F,GAAK,IAAM,CAAC8B,EAAMoL,UAAUrH,GAAUyS,wBAAuBuY,IACvF,IAAIM,EAAsB,IAAIzY,IAE9B,IAAK,IAAIsH,EAAI,EAAGA,EAAI6Q,EAAgBrf,SAASzR,OAAQigB,IAAK,CACxD,IAAI8Q,EAEJ,MAAMva,EAAiE,OAAxDua,EAAwBD,EAAgBrf,SAASwO,SAAc,EAAS8Q,EAAsBld,SAAS/N,GAGpH,IAAIurB,EADN,GAAID,EAAoBE,IAAI9a,GAG1B4a,EAAoBG,IAAI/a,GAAoE,OAA3D6a,EAAwBD,EAAoBI,IAAIhb,IAAkB6a,EAAwB,GAAK,QAEhID,EAAoBG,IAAI/a,EAAO,GAInC,OAAO4a,IACN,CACDryB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,gCAjLd,WACE,OAAOe,GAAS9B,GAAK,IAAM,CAAC8B,EAAMyW,yBAA0BzW,EAAMuD,WAAWqQ,cAAe5T,EAAMuD,WAAWsQ,gBAAe,CAACuO,EAAUxO,EAAeC,KACpJ,IAAKuO,EAASvD,KAAK5gB,SAA6B,MAAjB2V,IAAyBA,EAAc3V,UAAY4V,EAAc,CAC9F,IAAK,IAAIqK,EAAI,EAAGA,EAAIkE,EAAS1S,SAASzR,OAAQigB,IAC5CkE,EAAS1S,SAASwO,GAAGtK,cAAgB,GACrCwO,EAAS1S,SAASwO,GAAGnH,kBAAoB,GAG3C,OAAOqL,EAGT,MAAMsN,EAAwB,GACxBC,EAAwB,IACZ,MAAjB/b,EAAwBA,EAAgB,IAAI/V,SAAQR,IACnD,IAAIuyB,EAEJ,MAQMjc,EARS3T,EAAMoL,UAAU/N,EAAEoD,IAQTmU,cAEnBjB,GAQL+b,EAAsB3xB,KAAK,CACzB0C,GAAIpD,EAAEoD,GACNkT,WACAoO,cAAgI,OAAhH6N,EAAuD,MAA/Bjc,EAASX,wBAA6B,EAASW,EAASX,mBAAmB3V,EAAEoX,QAAkBmb,EAAwBvyB,EAAEoX,WAGrK,MAAM2a,EAAgBxb,EAAc5Q,KAAI3F,GAAKA,EAAEoD,KACzCwT,EAAiBjU,EAAMiX,oBACvB4Y,EAA4B7vB,EAAMkX,oBAAoBjT,QAAOlD,GAAUA,EAAOmU,uBAepF,IAAI4a,EACAC,EAdAlc,GAAgBI,GAAkB4b,EAA0B5xB,SAC9DmxB,EAAcrxB,KAAK,cACnB8xB,EAA0BhyB,SAAQkD,IAChC,IAAIivB,EAEJL,EAAsB5xB,KAAK,CACzB0C,GAAIM,EAAON,GACXkT,SAAUM,EACV8N,cAAiJ,OAAjIiO,EAA6D,MAArC/b,EAAejB,wBAA6B,EAASiB,EAAejB,mBAAmBa,IAAyBmc,EAAwBnc,QAQtL,IAAK,IAAIoc,EAAI,EAAGA,EAAI7N,EAAS1S,SAASzR,OAAQgyB,IAAK,CACjD,MAAMtgB,EAAMyS,EAAS1S,SAASugB,GAG9B,GAFAtgB,EAAIiE,cAAgB,GAEhB8b,EAAsBzxB,OACxB,IAAK,IAAIigB,EAAI,EAAGA,EAAIwR,EAAsBzxB,OAAQigB,IAAK,CACrD4R,EAAsBJ,EAAsBxR,GAC5C,MAAMzd,EAAKqvB,EAAoBrvB,GAE/BkP,EAAIiE,cAAcnT,GAAMqvB,EAAoBnc,SAAShE,EAAKlP,EAAIqvB,EAAoB/N,eAAemO,IAC/FvgB,EAAIoH,kBAAkBtW,GAAMyvB,KAKlC,GAAIP,EAAsB1xB,OAAQ,CAChC,IAAK,IAAIigB,EAAI,EAAGA,EAAIyR,EAAsB1xB,OAAQigB,IAAK,CACrD6R,EAAsBJ,EAAsBzR,GAC5C,MAAMzd,EAAKsvB,EAAoBtvB,GAE/B,GAAIsvB,EAAoBpc,SAAShE,EAAKlP,EAAIsvB,EAAoBhO,eAAemO,IAC3EvgB,EAAIoH,kBAAkBtW,GAAMyvB,KAC1B,CACFvgB,EAAIiE,cAAcuc,YAAa,EAC/B,QAIiC,IAAjCxgB,EAAIiE,cAAcuc,aACpBxgB,EAAIiE,cAAcuc,YAAa,IAiBrC,OAAOjD,EAAW9K,EAASvD,MAZJlP,IAErB,IAAK,IAAIuO,EAAI,EAAGA,EAAIkR,EAAcnxB,OAAQigB,IACxC,IAA4C,IAAxCvO,EAAIiE,cAAcwb,EAAclR,IAClC,OAAO,EAIX,OAAO,IAIwCle,KAChD,CACDhD,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,KACRe,EAAMwc,+CAgMZ,WACE,OAAOxc,GAAS9B,GAAK,IAAM,CAAC8B,EAAMuD,WAAW+V,SAAUtZ,EAAM0a,2BAA0B,CAACpB,EAAU8I,KAChG,IAAKA,EAASvD,KAAK5gB,SAAWqb,EAASrb,OACrC,OAAOmkB,EAIT,MAAMgO,EAAmB9W,EAASrV,QAAOF,GAAY/D,EAAMoL,UAAUrH,KAC/DssB,EAAkB,GAClBC,EAAkB,GAMlBC,EAAqB,SAAU1R,EAAM3e,EAAOswB,GAOhD,QANc,IAAVtwB,IACFA,EAAQ,GAKNA,GAASkwB,EAAiBnyB,OAC5B,OAAO4gB,EAAK7b,KAAI2M,IACdA,EAAIzP,MAAQA,EACZmwB,EAAgBtyB,KAAK4R,GACrB2gB,EAAgB3gB,EAAIlP,IAAMkP,EAEtBA,EAAI2B,UACN3B,EAAI2B,QAAUif,EAAmB5gB,EAAI2B,QAASpR,EAAQ,IAGjDyP,KAIX,MAAM5L,EAAWqsB,EAAiBlwB,GAE5BuwB,EA8FZ,SAAiB5R,EAAM9a,GACrB,MAAM2sB,EAAW,IAAI9Z,IACrB,OAAOiI,EAAK9c,QAAO,CAACiB,EAAK2M,KACvB,MAAMghB,EAAS,GAAKhhB,EAAImC,SAAS/N,GAC3B6sB,EAAW5tB,EAAIysB,IAAIkB,GAQzB,OANKC,EAGH5tB,EAAIwsB,IAAImB,EAAQ,IAAIC,EAAUjhB,IAF9B3M,EAAIwsB,IAAImB,EAAQ,CAAChhB,IAKZ3M,IACN0tB,GA3GsBG,CAAQhS,EAAM9a,GAE7B+sB,EAAwBpc,MAAMiE,KAAK8X,EAAaM,WAAW/tB,KAAI,CAAC5C,EAAMrB,KAC1E,IAAKiyB,EAAeC,GAAe7wB,EAC/BK,EAAKsD,EAAW,IAAMitB,EAC1BvwB,EAAK+vB,EAAWA,EAAW,IAAM/vB,EAAKA,EAEtC,MAAM6Q,EAAUif,EAAmBU,EAAa/wB,EAAQ,EAAGO,GAErD8X,EAAWrY,EAAQ3C,EAAU0zB,GAAathB,GAAOA,EAAI2B,UAAW2f,EAChEthB,EAAMe,EAAU1Q,EAAOS,EAAI8X,EAAS,GAAGoU,SAAU5tB,EAAOmB,GA8C9D,OA7CAgC,OAAOC,OAAOwN,EAAK,CACjBmL,iBAAkB/W,EAClBitB,gBACA1f,UACAiH,WACAzG,SAAU/N,IAER,GAAIqsB,EAAiB/rB,SAASN,GAAW,CACvC,GAAI4L,EAAIkd,aAAaC,eAAe/oB,GAClC,OAAO4L,EAAIkd,aAAa9oB,GAIxB,IAAImtB,EADN,GAAID,EAAY,GAGdthB,EAAIkd,aAAa9oB,GAA2E,OAA9DmtB,EAAwBD,EAAY,GAAGnf,SAAS/N,IAAqBmtB,OAAwBtwB,EAG7H,OAAO+O,EAAIkd,aAAa9oB,GAG1B,GAAI4L,EAAIoL,qBAAqB+R,eAAe/oB,GAC1C,OAAO4L,EAAIoL,qBAAqBhX,GAIlC,MACMotB,EADSnxB,EAAMoL,UAAUrH,GACJwW,mBAE3B,OAAI4W,GACFxhB,EAAIoL,qBAAqBhX,GAAYotB,EAAYptB,EAAUwU,EAAU0Y,GAC9DthB,EAAIoL,qBAAqBhX,SAFlC,KAMJuN,EAAQzT,SAAQ4mB,IACd4L,EAAgBtyB,KAAK0mB,GACrB6L,EAAgB7L,EAAOhkB,IAAMgkB,KAQxB9U,KAET,OAAOmhB,GAGHG,EAAcV,EAAmBnO,EAASvD,KAAM,EAAG,IAWzD,OAVAoS,EAAYpzB,SAAQ4mB,IAClB4L,EAAgBtyB,KAAK0mB,GACrB6L,EAAgB7L,EAAOhkB,IAAMgkB,KAQxB,CACL5F,KAAMoS,EACNvhB,SAAU2gB,EACVlgB,SAAUmgB,KAEX,CACDtzB,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,KACRe,EAAMiP,QAAO,KACXjP,EAAM4O,qBAEN5O,EAAMwc,qDA4Dd,SAA+Bne,GAC7B,OAAO2B,GAAS9B,GAAK,IAAM,CAAC8B,EAAMuD,WAAW6Y,WAAYpc,EAAMwe,8BAA6B,CAACpC,EAAYgG,KACvG,IAAKA,EAASvD,KAAK5gB,OACjB,OAAOmkB,EAGT,MAAM9F,SACJA,EAAQD,UACRA,GACED,EACJ,IAAIyC,KACFA,EAAInP,SACJA,EAAQS,SACRA,GACEiS,EACJ,MAAMgP,EAAY9U,EAAWD,EACvBgV,EAAUD,EAAY9U,EAE5B,IAAIgV,EADJzS,EAAOA,EAAK4H,MAAM2K,EAAWC,GAU3BC,EAPGtxB,EAAMqB,QAAQoN,qBAOG,CAClBoQ,OACAnP,WACAS,YATkByd,GAAW,CAC7B/O,OACAnP,WACAS,aAUJmhB,EAAkB5hB,SAAW,GAE7B,MAAMoe,EAAYne,IAChB2hB,EAAkB5hB,SAAS3R,KAAK4R,GAE5BA,EAAI2B,QAAQrT,QACd0R,EAAI2B,QAAQzT,QAAQiwB,IAKxB,OADAwD,EAAkBzS,KAAKhhB,QAAQiwB,GACxBwD,IACN,CACDt0B,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,mCAzU9G,WACE,OAAOne,GAAS9B,GAAK,IAAM,CAAC8B,EAAMuD,WAAW2iB,QAASlmB,EAAMipB,0BAAyB,CAAC/C,EAAS9D,KAC7F,IAAKA,EAASvD,KAAK5gB,QAAuB,MAAXioB,IAAmBA,EAAQjoB,OACxD,OAAOmkB,EAGT,MAAMmP,EAAevxB,EAAMuD,WAAW2iB,QAChCsL,EAAiB,GAEjBC,EAAmBF,EAAattB,QAAOshB,GAAQvlB,EAAMoL,UAAUma,EAAK9kB,IAAI2nB,eACxEsJ,EAAiB,GACvBD,EAAiB5zB,SAAQ8zB,IACvB,MAAM5wB,EAASf,EAAMoL,UAAUumB,EAAUlxB,IACzCixB,EAAeC,EAAUlxB,IAAM,CAC7BmxB,cAAe7wB,EAAOd,UAAU2xB,cAChCC,cAAe9wB,EAAOd,UAAU4xB,cAChC1L,UAAWplB,EAAO6lB,mBAItB,MAAMkL,EAAWjT,IAGf,MAAMkT,EAAalT,EAAK4H,QAgDxB,OA/CAsL,EAAWxM,MAAK,CAACG,EAAMC,KACrB,IAAK,IAAIzH,EAAI,EAAGA,EAAIuT,EAAiBxzB,OAAQigB,GAAK,EAAG,CACnD,IAAI8T,EAEJ,MAAML,EAAYF,EAAiBvT,GAC7B+T,EAAaP,EAAeC,EAAUlxB,IACtCyxB,EAA4E,OAAlEF,EAA+B,MAAbL,OAAoB,EAASA,EAAU7K,OAAgBkL,EAEzF,GAAIC,EAAWL,cAAe,CAC5B,MAEMO,OAA+B,IAFtBzM,EAAK5T,SAAS6f,EAAUlxB,IAGjC2xB,OAA+B,IAFtBzM,EAAK7T,SAAS6f,EAAUlxB,IAIvC,GAAI0xB,GAAcC,EAChB,OAAOD,GAAcC,EAAa,EAAID,EAAaF,EAAWL,eAAiBK,EAAWL,cAK9F,IAAIS,EAAUJ,EAAW9L,UAAUT,EAAMC,EAAMgM,EAAUlxB,IAEzD,GAAgB,IAAZ4xB,EASF,OARIH,IACFG,IAAY,GAGVJ,EAAWJ,gBACbQ,IAAY,GAGPA,EAIX,OAAO3M,EAAK3mB,MAAQ4mB,EAAK5mB,SAG3BgzB,EAAWl0B,SAAQ8R,IACjB6hB,EAAezzB,KAAK4R,IAEfA,EAAI2B,SAAW3B,EAAI2B,QAAQrT,QAAU,IAI1C0R,EAAI2B,QAAUwgB,EAASniB,EAAI2B,aAEtBygB,GAGT,MAAO,CACLlT,KAAMiT,EAAS1P,EAASvD,MACxBnP,SAAU8hB,EACVrhB,SAAUiS,EAASjS,YAEpB,CACDnT,KAAK,EACLyB,MAAO,KACL,IAAI2C,EAEJ,OAA2D,OAAnDA,EAAwBpB,EAAMqB,QAAQC,UAAoBF,EAAwBpB,EAAMqB,QAAQ8c,YAE1Glf,SAAU,KACRe,EAAMwc,qHAt8GZ,2JCwCO,SACLnb,GAGA,MAAMixB,EAA+C,CACnDxpB,MAAO,GACP6iB,cAAe,OACfoB,oBAAqB,QAClB1rB,IAIEkxB,GAAY/D,EAAMgE,UAAS,KAAO,CACvCC,QAAStvB,EAAmBmvB,QAIvBxpB,EAAO5L,GAAYsxB,EAAMgE,UAAS,IAAMD,EAASE,QAAQxlB,eAmBhE,OAfAslB,EAASE,QAAQjH,YAAWkH,IAAI,IAC3BA,KACArxB,EACHyH,MAAO,IACFA,KACAzH,EAAQyH,OAIb6iB,cAAe9uB,IACbK,EAASL,GACT,MAAAwE,EAAQsqB,eAARtqB,EAAQsqB,cAAgB9uB,QAIrB01B,EAASE"}