quill-table-up 2.1.9 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -34
- package/dist/index.css +1 -1
- package/dist/index.d.ts +53 -17
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +16 -16
- package/src/__tests__/e2e/editor-page.ts +6 -0
- package/src/__tests__/e2e/table-blots.test.ts +52 -0
- package/src/__tests__/e2e/table-caption.test.ts +93 -0
- package/src/__tests__/e2e/table-hack.test.ts +43 -0
- package/src/__tests__/e2e/table-resize.test.ts +136 -5
- package/src/__tests__/e2e/table-selection.test.ts +7 -10
- package/src/__tests__/e2e/utils.ts +2 -2
- package/src/__tests__/unit/table-blots.test.ts +223 -0
- package/src/__tests__/unit/table-caption.test.ts +237 -0
- package/src/__tests__/unit/table-clipboard.test.ts +6 -6
- package/src/__tests__/unit/table-hack.test.ts +137 -63
- package/src/__tests__/unit/table-insert.test.ts +4 -4
- package/src/__tests__/unit/table-redo-undo.test.ts +252 -3
- package/src/__tests__/unit/utils.test.ts +2 -2
- package/src/__tests__/unit/utils.ts +44 -25
- package/src/__tests__/unit/vitest.d.ts +0 -1
- package/src/formats/index.ts +1 -0
- package/src/formats/overrides/scroll.ts +6 -0
- package/src/formats/table-caption-format.ts +115 -0
- package/src/formats/table-cell-format.ts +63 -33
- package/src/formats/table-cell-inner-format.ts +3 -3
- package/src/formats/table-col-format.ts +16 -12
- package/src/formats/table-colgroup-format.ts +2 -2
- package/src/formats/table-main-format.ts +0 -9
- package/src/formats/table-wrapper-format.ts +2 -2
- package/src/modules/table-clipboard.ts +21 -3
- package/src/modules/table-menu/constants.ts +18 -2
- package/src/modules/table-menu/table-menu-common.ts +0 -5
- package/src/modules/table-resize/table-resize-box.ts +74 -31
- package/src/modules/table-resize/table-resize-common.ts +8 -7
- package/src/modules/table-resize/table-resize-scale.ts +12 -5
- package/src/modules/table-scrollbar.ts +12 -7
- package/src/modules/table-selection.ts +16 -19
- package/src/style/color-picker.less +4 -2
- package/src/style/index.less +19 -0
- package/src/style/table-resize.less +16 -1
- package/src/svg/arrow-up-down.svg +11 -0
- package/src/svg/auto-full.svg +11 -1
- package/src/svg/background.svg +10 -1
- package/src/svg/border.svg +10 -1
- package/src/svg/color.svg +10 -1
- package/src/svg/copy.svg +8 -1
- package/src/svg/cut.svg +7 -1
- package/src/svg/insert-bottom.svg +6 -1
- package/src/svg/insert-left.svg +6 -1
- package/src/svg/insert-right.svg +6 -1
- package/src/svg/insert-top.svg +6 -1
- package/src/svg/merge-cell.svg +6 -1
- package/src/svg/remove-column.svg +6 -1
- package/src/svg/remove-row.svg +6 -1
- package/src/svg/remove-table.svg +6 -1
- package/src/svg/split-cell.svg +6 -1
- package/src/svg/table-head.svg +4 -0
- package/src/table-up.ts +149 -112
- package/src/utils/bem.ts +2 -2
- package/src/utils/blot-helper.ts +12 -0
- package/src/utils/color.ts +12 -12
- package/src/utils/components/button.ts +2 -2
- package/src/utils/components/color-picker.ts +2 -2
- package/src/utils/components/dialog.ts +2 -2
- package/src/utils/components/input.ts +2 -2
- package/src/utils/components/table/creator.ts +2 -2
- package/src/utils/components/table/select-box.ts +2 -2
- package/src/utils/components/tooltip.ts +2 -2
- package/src/utils/constants.ts +5 -3
- package/src/utils/position.ts +2 -2
- package/src/utils/resize-observer-helper.ts +2 -2
- package/src/utils/transformer.ts +5 -0
- package/src/utils/transition-event-helper.ts +2 -2
- package/src/utils/types.ts +5 -1
- package/src/utils/utils.ts +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/constants.ts","../src/utils/bem.ts","../src/utils/blot-helper.ts","../src/utils/color.ts","../src/utils/is.ts","../src/utils/components/button.ts","../src/utils/components/color-picker.ts","../src/utils/components/dialog.ts","../src/utils/components/input.ts","../src/utils/components/table/select-box.ts","../src/utils/components/table/creator.ts","../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/.pnpm/@floating-ui+core@1.6.8/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/.pnpm/@floating-ui+dom@1.6.13/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../src/utils/components/tooltip.ts","../src/utils/transition-event-helper.ts","../src/utils/position.ts","../src/utils/resize-observer-helper.ts","../src/utils/scroll-event-handle.ts","../src/utils/utils.ts","../src/formats/container-format.ts","../src/formats/overrides/block.ts","../src/formats/utils.ts","../src/formats/table-cell-inner-format.ts","../src/utils/transformer.ts","../src/formats/overrides/scroll.ts","../src/formats/table-row-format.ts","../src/formats/table-body-format.ts","../src/formats/table-cell-format.ts","../src/formats/table-col-format.ts","../src/formats/table-main-format.ts","../src/formats/table-colgroup-format.ts","../src/formats/table-wrapper-format.ts","../src/modules/table-align.ts","../src/modules/table-clipboard.ts","../src/modules/table-menu/constants.ts","../src/modules/table-menu/table-menu-common.ts","../src/modules/table-menu/table-menu-contextmenu.ts","../src/modules/table-menu/table-menu-select.ts","../src/modules/table-resize/utils.ts","../src/modules/table-resize/table-resize-common.ts","../src/modules/table-resize/table-resize-box.ts","../src/modules/table-resize/table-resize-line.ts","../src/modules/table-resize/table-resize-scale.ts","../src/modules/table-scrollbar.ts","../src/modules/table-selection.ts","../src/table-up.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,"/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["blotName","container","tableWrapper","tableMain","tableColgroup","tableCol","tableBody","tableRow","tableCell","tableCellInner","tableUpSize","colMinWidthPre","colMinWidthPx","colDefaultWidth","rowMinHeightPx","tableUpEvent","AFTER_TABLE_RESIZE","tableUpInternal","moduleName","defaultColorMap","tableCantInsert","Set","isForbidInTable","current","parent","blot","has","statics","createBEM","b","n","prefix","be","e","bm","m","bem","ns","s","bs","cv","v","is","findParentBlot","targetBlotName","target","scroll","Error","findParentBlots","targetBlotNames","resultBlots","Array","length","blotNameIndexMaps","Map","map","name","i","size","get","delete","from","keys","join","findAllParentBlot","Blot","blots","set","mixinProps","source","prop","Object","getOwnPropertyNames","test","defineProperty","getOwnPropertyDescriptor","normalizeValue","value","max","Math","min","Number","parseFloat","abs","validateHSB","hsb","h","a","RGBtoHSB","rgb","r","g","d","HSBtoRGB","floor","f","p","q","t","mod","round","RGBtoHEX","hex","toString","key","HSBtoHEX","isFunction","val","isArray","isString","isObject","createButton","options","type","content","btn","document","createElement","classList","add","textContent","appendChild","createColorPicker","contentWidth","contentHeight","handleSizeSec","hsbValue","color","startsWith","slice","parseInt","toFixed","root","colorSelector","colorBackground","colorHandle","colorAlpha","alphaBg","alphaHandle","colorHue","colorHueHandle","action","colorRInput","colorGInput","colorBInput","colorAInput","item","label","toUpperCase","colorInput","addEventListener","replaceAll","updateValue","assign","updateUI","colorDragging","hueDragging","alphaDragging","updateInput","input","entries","String","style","left","top","backgroundColor","background","updateAlphaBg","onChange","pickColor","event","rect","getBoundingClientRect","window","pageYOffset","documentElement","scrollTop","body","scrollLeft","pageX","pageY","pickHue","pickAlpha","width","onDrag","preventDefault","onColorSelectorDragEnd","removeEventListener","onColorHueDragEnd","onColorAlphaDragEnd","zindex","createDialog","child","beforeClose","appendTo","dialog","zIndex","overlay","stopPropagation","originOverflow","getComputedStyle","overflow","close","remove","createInputItem","inputItem","inputLabel","inputInput","setAttribute","errorTip","msg","contains","querySelector","removeError","createSelectBox","selectDom","selectBlock","row","c","col","selectItem","dataset","updateSelectBlockItems","querySelectorAll","childs","children","childRow","childCol","removeAttribute","onSelect","customBtn","texts","selectCustom","customBtnText","async","res","box","inputContent","rowItem","rowInput","rowErrorTip","rowText","colItem","colInput","colErrorTip","colText","control","confirmBtn","confirmText","cancelBtn","cancelText","validateInput","isNaN","notPositiveNumberError","keyboardClose","Promise","resolve","reject","focus","result","showTableCreator","createCoords","x","y","oppositeSideMap","right","bottom","oppositeAlignmentMap","start","end","clamp","evaluate","param","getSide","placement","split","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","includes","getAlignmentAxis","getOppositeAlignmentPlacement","replace","alignment","getOppositePlacement","side","rectToClientRect","height","computeCoordsFromPlacement","_ref","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","state","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","expandPaddingObject","getPaddingObject","element","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","hasWindow","getNodeName","node","isNode","nodeName","toLowerCase","getWindow","_node$ownerDocument","ownerDocument","defaultView","Node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","isTableElement","isTopLayer","some","selector","matches","isContainingBlock","elementOrCss","webkit","isWebKit","css","containerType","backdropFilter","filter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollX","scrollY","getParentNode","assignedSlot","parentNode","host","getNearestOverflowAncestor","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","concat","visualViewport","getPrototypeOf","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","ignoreScrollbarX","htmlRect","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scrollWidth","scrollHeight","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","position","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","htmlOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","currentNode","getContainingBlock","topLayer","clippingAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","this","_c","firstClippingAncestor","clippingRect","reduce","accRect","getElementRects","data","getOffsetParentFn","getDimensionsFn","getDimensions","floatingDimensions","getClientRects","isRTL","rectsAreEqual","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","forEach","passive","cleanupIo","onMove","timeoutId","io","cleanup","_io","clearTimeout","disconnect","refresh","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","setTimeout","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","fn","_middlewareData$offse","_middlewareData$arrow","middlewareData","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","convertValueToCoords","arrow","alignmentOffset","shift","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","flip","_middlewareData$flip","initialPlacement","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","isBasePlacement","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","push","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","getAlignmentSides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","index","nextPlacement","reset","resetPlacement","sort","_overflowsData$filter2","currentSideAxis","acc","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","computePosition","mergedOptions","platformWithCache","config","middleware","validMiddleware","Boolean","statefulPlacement","resetCount","nextX","nextY","computePosition$1","tooltipContainer","createTooltip","delay","onOpen","onClose","closed","onDestroy","tooltip","showTimer","closeTimer","then","transitionendHandler","removeChild","openTooltip","force","allow","closeTooltip","domNode","duration","handler","lastTimer","handleIfTransitionend","once","clickDisplay","show","prepare","hide","destroy","displayMethods","hover","eventListeners","bind","undefined","open","listener","click","destroyDisplay","isRectanglesIntersect","tolerance","edgeJudge","minAx","minAy","x1","maxAx","y1","maxAy","minBx","minBy","maxBx","maxBy","notOverlapX","notOverlapY","limitDomInViewPort","leftLimited","topLimited","createResizeObserver","callback","ignoreFirstBindSymbol","Symbol","observeEls","observer","ignoreFirstBind","entry","originVal","originObserve","call","originUnobserve","originDisconnect","values","addScrollEvent","dom","handle","scrollHandler","clearScrollEvent","randomId","random","debounce","timestamp","args","apply","Parchment","Quill","import","Container","Block","BlockEmbed","ContainerFormat","static","Scope","BLOCK_BLOT","create","_value","tagName","className","insertAt","def","find","defaultChild","super","optimize","_context","next","checkMerge","moveChildren","enforceAllowedChildren","allowedChildren","scope","splitAfter","prev","unwrap","ParentBlot","BlockOverride","replaceWith","replacement","selfParent","insertBefore","block","selfRow","attributes","copy","format","console","error","getValidCellspan","isValidCellspan","TableCellInnerFormat","isAllowStyle","str","allowStyle","tableId","rowId","colId","rowspan","colspan","formats","constructor","isEnabled","setFormatValue","isStyle","allowDataAttrs","attrName","blocks","descendants","getColumnIndex","getColIds","indexOf","formatAt","cssText","styleObject","styles","trim","colonPosition","property","cssTextToObject","blotValue","afterBlock","wrap","uiNode","firstChild","ref","cellInnerBlot","cellInnerBlotValue","selfValue","selfCell","newCellInner","forEachAt","cell","ScrollBlot","ScrollOverride","enable","tableCellInnerFormat","inners","inner","createBlock","refBlot","createBlotName","query","BLOCK","BLOT","TableRowFormat","setHeight","foreachCellInner","cellInner","getCellByColId","colIds","targetIndex","iterator","cur","curIndex","insertCell","getCellInner","skipRowNum","getCellByColumIndex","stopIndex","cellEndIndex","removeCell","columnIndexData","func","context","TableBodyFormat","insertRow","tableBlot","rows","insertColIds","colIndex","TableCellFormat","getAttribute","inlineStyles","allowAttrs","setStyleBoder","head","setValue","descendant","startColIndex","endColIndex","borderColIds","_","prevTr","trReachCurrent","TableColFormat","validWidth","full","widthNumber","align","hasOwn","table","closest","lines","text","pop","line","tableColgroupBlot","tableMainBlot","tableBodyBlot","insertBlot","nextBlotRef","cellInners","newBlock","newTableBody","TableMainFormat","updateAlign","colWidthFillTable","cols","getCols","colsWidth","sum","setFull","tableWidth","colgroup","cancelFull","marginLeft","marginRight","getRows","getRowIds","TableColgroupFormat","findCol","insertColByIndex","TypeError","removeColByIndex","TableWrapperFormat","dataTransfer","dropEffect","emitter","on","events","TEXT_CHANGE","insertLineAround","deleteAt","tableBodys","tableColgroups","off","BlockBlot","TableAlign","tableModule","quill","tableWrapperBlot","alignBox","buildTool","updateWhenTextChange","addContainer","icons","alignIcons","center","iconStr","innerHTML","setTableAlign","SCROLL_OPTIMIZE","tableSelection","tableResize","tableResizeScale","tableScrollbar","Delta","Clipboard","getCellWidth","styleWidth","TableClipboard","rowspanCount","cellCount","colCount","addMatcher","matchTable","matchColgroup","matchCol","matchTr","matchTd","ELEMENT_NODE","matchTdAttributor","delta","ops","insert","attrs","newCols","tableNode","colNums","colWidths","fill","cells","cellWidth","calculateCols","colOps","unshift","op","span","cellFormat","border","other","endsWith","toLocaleLowerCase","bgTemp","cellTemp","convert","menuColorSelectClassName","tableMenuTools","Break","CopyCell","tip","icon","selectedTds","getTextByCell","getHTMLByCell","clipboardItem","ClipboardItem","Blob","navigator","clipboard","write","hideTableTools","CutCell","InsertTop","appendRow","InsertRight","appendCol","InsertBottom","InsertLeft","MergeCell","mergeCells","SplitCell","splitCell","DeleteRow","removeRow","DeleteColumn","removeCol","DeleteTable","deleteTable","BackgroundColor","isColorChoose","setCellAttrs","BorderColor","SwitchWidth","colorClassName","selectWrapper","used","mapRow","TableMenuCommon","usedColors","menu","isMenuDisplay","isColorPicking","updateUsedColor","tooltipItem","activeTooltip","colorItemClass","colorChooseTooltipOption","resolveOptions","storageValue","localStorage","getItem","localstorageKey","colorValue","JSON","parse","saveColors","clear","setItem","stringify","usedColorWrappers","usedColorWrapper","newColorItem","colorItem","tipText","tools","buildTools","toolBox","tool","attrKey","iconDom","createColorChoose","getSelectedTds","createTipText","colorSelectWrapper","colorMap","colors","colorMapRow","marginTop","transparentColor","transparent","clearColor","customColor","custom","colorPicker","hideColorPicker","destroyColorPicker","usedColorWrap","recordColor","hideDisplay","setActiveTooltip","updateWithSelectedTds","showDisplay","isColorPick","tipTextDom","TableMenuContextmenu","listenContextmenu","path","composedPath","clientX","clientY","items","getElementsByClassName","isDisplaySelection","menuRect","limitLeft","limitTop","TableMenuSelect","cellSelect","isTableAlignRight","TableResizeCommon","dragging","dragColBreak","handleColMouseUpFunc","handleColMouseUp","handleColMouseMoveFunc","handleColMouseMove","handleColMouseDownFunc","handleColMouseDown","rowIndex","dragRowBreak","handleRowMouseUpFunc","handleRowMouseUp","handleRowMouseMoveFunc","handleRowMouseMove","handleRowMouseDownFunc","handleRowMouseDown","dragBEM","findCurrentColIndex","_e","colWidthChange","_i","_w","_isFull","createConfirmDialog","message","confirm","cancel","fontSize","lineHeight","btnWrapper","justifyContent","gap","w","isFull","needUpdate","updateInfo","pre","oldWidthPre","totalWidthNextPre","resultWidth","skipColIndex","perWidthInsufficient","info","px","emit","changeColRect","tableRect","resX","minWidth","maxRange","minRange","button","tableMainRect","fullWidth","colWidthAttr","divDom","styleValue","findCurrentRowIndex","rowHeightChange","_h","resY","TableResizeBox","tableCols","tableRows","rowHeadWrapper","colHeadWrapper","corner","lastHeaderSelect","handleResizerHeader","isX","shiftKey","currentBoundary","computeSelectedTds","bindColEvents","tableColHeads","tableColHeadSeparators","bindRowEvents","tableRowHeads","tableRowHeadSeparators","tableBodyRect","rootRect","tableWrapperRect","cornerTranslateX","rowHeadWrapperTranslateX","transform","colHeadStr","colHead","maxWidth","rowHeadStr","rowHead","maxHeight","TableResizeLine","colResizer","rowResizer","currentTableCell","curColIndex","curRowIndex","tableCellBlot","mousemoveHandler","hideWhenTextChange","findTableCell","updateColResizer","updateRowResizer","tableBodyect","tableCellRect","findIndex","currentRow","tableBodynRect","TableResizeScale","startX","startY","resizeobserver","buildResizer","blockSize","originColWidth","originRowHeight","handleMouseMove","isRight","diffX","diffY","itemWidth","itemHeight","handleMouseUp","isTableOutofEditor","editorRect","rootWidth","rootHeight","blockStyle","Scrollbar","scrollbarContainer","minSize","move","cursorDown","cursorLeave","ratioY","ratioX","sizeWidth","sizeHeight","thumbState","X","Y","ob","scrollbar","thumb","propertyMap","parentElement","scrollDirection","scrollSize","client","calculateSize","createScrollbar","setScrollbarPosition","showScrollbar","editorScrollX","editorScrollY","containerOffsetLeft","containerOffsetTop","containerWidth","containerHeight","tableHeight","containerScrollHandler","originalHeight","originalWidth","originDocSelect","mouseMoveDocumentHandler","prevPage","offsetRatio","thumbPositionPercentage","mouseUpDocumentHandler","hideScrollbar","onselectstart","startDrag","stopImmediatePropagation","ctrlKey","getSelection","removeAllRanges","currentTarget","displayListener","hideScrollbarTransitionend","TableVirtualScrollbar","TableSelection","startScrollX","startScrollY","selectedTableScrollX","selectedTableScrollY","selectedEditorScrollX","selectedEditorScrollY","cellSelectWrap","tableMenu","lastSelection","anchorNode","anchorOffset","focusNode","focusOffset","helpLinesInitial","updateAfterEvent","mouseDownHandler","selectionChangeHandler","SELECTION_CHANGE","quillSelectionChangeHandler","tableMenuOptions","getFirstTextNode","childNodes","nodeType","TEXT_NODE","getLastTextNode","getNodeTailOffset","tempRange","createRange","selectNodeContents","collapse","startOffset","range","_oldRange","sources","API","getFormat","getLine","isInCell","containsLine","td","setSelectionData","selection","selectionData","isUpFromDown","selectionDirectionUp","setStart","setEnd","addRange","extend","nodePosition","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","findWrapSelection","points","startNode","endNode","endOffset","selectColor","anchorBlot","focusBlot","anchorNames","focusNames","isAnchorInColgroup","isFocusInColgroup","newAnchorNode","newAnchorOffset","newFocusNode","newFocusOffset","isAnchorInCellInner","isFocusInCellInner","isNotSameCellInner","anchorCellBlot","focusCellBlot","setProperty","startPoint","endPoint","tableCells","tableScrollX","tableScrollY","getTableViewScroll","getQuillViewScroll","startPointX","startPointY","selectedCells","findEnd","__rect","targetRect","containerRect","getRelativeRect","mousedownEvent","closestTable","setSelectionTable","startTableId","mouseMoveHandler","mousemoveEvent","movePoint","blur","mouseUpHandler","Infinity","wrapLeft","wrapTop","createCell","updateTableConstants","TableUp","toolName","defaultCustomSelect","picker","insertTable","generateTableArrowHandler","up","collapsed","bindInHead","childDirection","aroundLine","targetRow","cellIndex","targetCell","targetChild","setSelection","USER","offsetInline","tail","register","requiredContainer","overrides","formatMap","base","mixins","targetClass","props","prototype","mixinClass","fixTableByLisenter","balanceTables","tableAlign","toolboxBEM","scrollbarBEM","selectionOptions","toolbar","getModule","theme","pickers","select","controls","buildCustomSelect","customSelect","selectRect","labelRect","keyboard","keyboradHandler","bindings","addBinding","evt","showTableTools","quillHack","listenBalanceCells","classes","classname","resolveTexts","fullSwitch","alignOptions","scrollbarOptions","resizeOptions","resizeScaleOptions","fullCheckboxText","originGetSemanticHTML","getSemanticHTML","originFormat","EmbedBlot","tableUpModule","setOrigin","tdRanges","innerTd","resultValue","lastIndex","retain","updateDelta","updateContents","modules","cleanHandler","handlers","clean","cleanFormatExcludeTable","cleanCellStyle","getText","suffixLength","suffix","contents","getContents","diff","deltaIndex","nullValue","tableCellInnerValue","cellDiff","resize","resizeScale","isFulllLabel","isFullCheckbox","checked","isFullCheckboxText","attr","tds","isCut","tdParentMain","colgroupBlot","tbodyBlot","getElementTags","startTag","endTag","tdRows","lastTrId","getIndex","htmlStr","doc","DOMParser","parseFromString","tr","colgroupStartTag","colgroupEndTag","colStr","convertCols","clone","totalWidth","total","part","tableMainDom","cloneNode","mainStartTag","mainEndTag","wrapperStartTag","wrapperEndTag","columns","currentBlot","getLeaf","borderWidth","calculateTableCellBorderWidth","rootStyle","paddingRight","colWidth","j","SILENT","tableStr","div","visibility","tempTableStyle","fixUnusuaDeletelTable","trBlots","tableColIds","cellSpanMap","indexTr","indexTd","indexCol","curCellSpan","curTd","mutations","mutation","isDown","baseTd","baseTdParentTr","insertRowIndex","columnIndex","newColId","trs","spanCols","spanCol","nextSpanCols","fixTableByRemove","colIdMap","idMap","reverseTrBlots","reverse","removeTr","count","endTrIndex","nextTrIndex","patchTds","nextTr","colspanMap","colspanCount","counts","selectTd","rowCount","baseTr","curTr","id"],"mappings":"qBAEa,MAAAA,EAAW,CACtBC,UAAW,qBACXC,aAAc,WACdC,UAAW,gBACXC,cAAe,oBACfC,SAAU,eACVC,UAAW,gBACXC,SAAU,eACVC,UAAW,gBACXC,eAAgB,uBAGLC,EAAc,CACzBC,eAAgB,EAChBC,cAAe,GACfC,gBAAiB,IACjBC,eAAgB,IAGLC,EAAe,CAC1BC,mBAAoB,sBAGTC,EAAkB,CAC7BC,WAAY,YAGDC,EAAkB,CAC7B,CACE,qBACA,eACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,mBACA,qBAEF,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEF,CACE,qBACA,kBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEF,CACE,qBACA,kBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEF,CACE,qBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,mBACA,oBAEF,CACE,qBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,oBAOSC,EAA+B,IAAIC,IAAI,CAACrB,EAASS,iBAGjDa,EAAmBC,IAC9BA,aAAWA,EAAQC,UAFeC,EAGVF,EAAQC,SAH+BJ,EAAgBM,IAAID,EAAKE,QAAQ3B,WAK1FsB,EAAgBC,EAAQC,SALG,IAACC,CAMzB,ECjHEG,EAAY,CAACC,EAAWC,EDsGT,cCrG1B,MAAMC,EAASD,EAAI,GAAGA,KAAO,GAC7B,MAAO,CAELD,EAAG,IAAM,GAAGE,IAASF,IAErBG,GAAKC,GAAeA,EAAI,GAAGF,IAASF,MAAMI,IAAM,GAEhDC,GAAKC,GAAeA,EAAI,GAAGJ,IAASF,MAAMM,IAAM,GAEhDC,IAAK,CAACH,EAAYE,IAAeF,GAAKE,EAAI,GAAGJ,IAASF,MAAMI,MAAME,IAAM,GAExEE,GAAKC,GAAeA,EAAI,GAAGP,IAASO,IAAM,GAE1CC,GAAKD,GAAeA,EAAI,GAAGP,IAASF,KAAKS,IAAM,GAE/CE,GAAKC,GAAeA,EAAI,KAAKV,IAASU,IAAM,GAE5CC,GAAKZ,GAAc,MAAMA,IAC1B,ECFa,SAAAa,EACdlB,EACAmB,GAEA,IAAIC,EAASpB,EAAKD,OAClB,KAAOqB,GAAUA,EAAOlB,QAAQ3B,WAAa4C,GAAkBC,IAAWpB,EAAKqB,QAC7ED,EAASA,EAAOrB,OAElB,GAAIqB,IAAWpB,EAAKqB,OAClB,MAAM,IAAIC,MAAM,GAAGtB,EAAKE,QAAQ3B,+BAA+B4C,KAEjE,OAAOC,CACT,CAEgB,SAAAG,EACdvB,EACAwB,GAEA,MAAMC,EAAsC,IAAIC,MAAMF,EAAgBG,QAChEC,EAAoB,IAAIC,IAAoBL,EAAgBM,KAAI,CAACC,EAAMC,IAAM,CAACD,EAAMC,MAC1F,IAAIZ,EAASpB,EAAKD,OAClB,KAAOqB,GAAUA,IAAWpB,EAAKqB,QACA,IAA3BO,EAAkBK,MADiB,CAEvC,GAAIL,EAAkB3B,IAAImB,EAAOlB,QAAQ3B,UAAW,CAElDkD,EADcG,EAAkBM,IAAId,EAAOlB,QAAQ3B,WAC9B6C,EACrBQ,EAAkBO,OAAOf,EAAOlB,QAAQ3B,UAE1C6C,EAASA,EAAOrB,OAElB,GAAI6B,EAAkBK,KAAO,EAC3B,MAAM,IAAIX,MAAM,GAAGtB,EAAKE,QAAQ3B,+BAA+BmD,MAAMU,KAAKR,EAAkBS,QAAQC,KAAK,SAE3G,OAAOb,CACT,CAEM,SAAUc,EAAkBC,GAChC,MAAMC,EAAyC,IAAIZ,IACnD,IAAIT,EAASoB,EACb,KAAOpB,GAAsC,WAA5BA,EAAOlB,QAAQ3B,UAC9BkE,EAAMC,IAAItB,EAAOlB,QAAQ3B,SAAU6C,GACnCA,EAASA,EAAOrB,OAElB,OAAO0C,CACT,CAEA,SAASE,EAA6BvB,EAAWwB,GAC/C,IAAK,MAAMC,KAAQC,OAAOC,oBAAoBH,GACxC,gBAAgBI,KAAKH,IACzBC,OAAOG,eAAe7B,EAAQyB,EAAMC,OAAOI,yBAAyBN,EAAQC,IAE9E,OAAOzB,CACT,CC3DA,MAAM+B,EAAiB,SAAUC,EAAwBC,GAIvD,OAHAD,EAAQE,KAAKC,IAAIF,EAAeC,KAAKD,IAAI,EAAGG,OAAOC,WAAW,GAAGL,OAG7DE,KAAKI,IAAIN,EAASC,GAAkB,KAC/B,EAIDD,EAASC,EAAkBG,OAAOC,WAAWJ,EACvD,EACaM,EAAeC,IACnB,CACLC,EAAGP,KAAKC,IAAI,IAAKD,KAAKD,IAAI,EAAGO,EAAIC,IACjChD,EAAGyC,KAAKC,IAAI,IAAKD,KAAKD,IAAI,EAAGO,EAAI/C,IACjCT,EAAGkD,KAAKC,IAAI,IAAKD,KAAKD,IAAI,EAAGO,EAAIxD,IACjC0D,EAAGR,KAAKC,IAAI,EAAGD,KAAKD,IAAI,EAAGO,EAAIE,MAWtBC,EAAYC,IACvB,IAAIC,EAAEA,EAACC,EAAEA,EAAC9D,EAAEA,EAAC0D,EAAEA,GAAME,EACrBC,EAAId,EAAec,EAAG,KACtBC,EAAIf,EAAee,EAAG,KACtB9D,EAAI+C,EAAe/C,EAAG,KAEtB,MAAMiD,EAAMC,KAAKD,IAAIY,EAAGC,EAAG9D,GACrBmD,EAAMD,KAAKC,IAAIU,EAAGC,EAAG9D,GAC3B,IAAIyD,EACJ,MAAM7C,EAAIqC,EAEJc,EAAId,EAAME,EACV1C,EAAY,IAARwC,EAAY,EAAIc,EAAId,EAE9B,GAAIA,IAAQE,EACVM,EAAI,MAED,CACH,OAAQR,GACN,KAAKY,EACHJ,GAAKK,EAAI9D,GAAK+D,GAAKD,EAAI9D,EAAI,EAAI,GAC/B,MAEF,KAAK8D,EACHL,GAAKzD,EAAI6D,GAAKE,EAAI,EAClB,MAEF,KAAK/D,EACHyD,GAAKI,EAAIC,GAAKC,EAAI,EAItBN,GAAM,EAGR,MAAO,CAAEA,EAAQ,IAALA,EAAUhD,EAAO,IAAJA,EAAST,EAAO,IAAJY,EAAS8C,IAAG,EAEtCM,EAAYR,IACvB,IAAIC,EAAEA,EAAChD,EAAEA,EAACT,EAAEA,EAAC0D,EAAEA,GAAMF,EACrBC,EAA6B,EAAzBV,EAAeU,EAAG,KACtBhD,EAAIsC,EAAetC,EAAG,KACtBT,EAAI+C,EAAe/C,EAAG,KAEtB,MAAM4B,EAAIsB,KAAKe,MAAMR,GACfS,EAAIT,EAAI7B,EACRuC,EAAInE,GAAK,EAAIS,GACb2D,EAAIpE,GAAK,EAAIkE,EAAIzD,GACjB4D,EAAIrE,GAAK,GAAK,EAAIkE,GAAKzD,GACvB6D,EAAM1C,EAAI,EACViC,EAAI,CAAC7D,EAAGoE,EAAGD,EAAGA,EAAGE,EAAGrE,GAAGsE,GACvBR,EAAI,CAACO,EAAGrE,EAAGA,EAAGoE,EAAGD,EAAGA,GAAGG,GACvB1D,EAAI,CAACuD,EAAGA,EAAGE,EAAGrE,EAAGA,EAAGoE,GAAGE,GAE7B,MAAO,CACLT,EAAGX,KAAKqB,MAAU,IAAJV,GACdC,EAAGZ,KAAKqB,MAAU,IAAJT,GACd9D,EAAGkD,KAAKqB,MAAU,IAAJ3D,GACd8C,IACD,EAEUc,EAAYZ,IACvB,MAAMa,EAAM,CAACb,EAAIC,EAAEa,SAAS,IAAKd,EAAIE,EAAEY,SAAS,IAAKd,EAAI5D,EAAE0E,SAAS,IAAKxB,KAAKqB,MAAc,IAARX,EAAIF,GAASgB,SAAS,KAC1G,IAAK,MAAMC,KAAOF,EACQ,IAApBA,EAAIE,GAAKpD,SACXkD,EAAIE,GAAO,IAAIF,EAAIE,MAGvB,OAAOF,EAAIvC,KAAK,GAAG,EAER0C,EAAYpB,GAAqBgB,EAASR,EAASR,IC5GnDqB,EAAcC,GAAiD,mBAARA,EAEvDC,EAAUzD,MAAMyD,QAChBC,EAAYF,GAA+C,iBAARA,EAEnDG,EAAYH,GAAkD,OAARA,GAA+B,iBAARA,ECE7EI,EAAgBC,IAC3B,MAAMC,KAAEA,EAAO,UAASC,QAAEA,GAAYF,GAAW,CAAE,EAC7C5E,EAAMR,EAAU,UAChBuF,EAAMC,SAASC,cAAc,UAUnC,OATAF,EAAIG,UAAUC,IAAInF,EAAIP,IAAKoF,GACvBC,IACEL,EAASK,GACXC,EAAIK,YAAcN,EAGlBC,EAAIM,YAAYP,IAGbC,CAAG,ECZCO,EAAoB,CAACV,EAAuC,MACvE,MAAMW,EAAe,IACfC,EAAgB,IAChBC,EAAgB,GAEtB,IAAIC,EAAgBtC,GHmBpBc,GADuBA,EGlBeU,EAAQe,OAAS,WHmB7CC,WAAW,KAAO1B,EAAI2B,MAAM,GAAK3B,EAKpC,CAAEZ,EAJCT,OAAOiD,SAAS5B,EAAI2B,MAAM,EAAG,GAAI,IAI/BtC,EAHFV,OAAOiD,SAAS5B,EAAI2B,MAAM,EAAG,GAAI,IAG5BpG,EAFLoD,OAAOiD,SAAS5B,EAAI2B,MAAM,EAAG,GAAI,IAEzB1C,EADRN,QAAQA,OAAOiD,SAAS5B,EAAI2B,MAAM,EAAG,IAAM,KAAM,IAAM,KAAKE,QAAQ,OALxD,IAAC7B,EGjBvB,MAAMlE,EAAMR,EAAU,gBAChBwG,EAAOhB,SAASC,cAAc,OACpCe,EAAKd,UAAUC,IAAInF,EAAIP,KAEvB,MAAMqF,EAAUE,SAASC,cAAc,OACvCH,EAAQI,UAAUC,IAAInF,EAAIJ,GAAG,YAE7B,MAAMqG,EAAgBjB,SAASC,cAAc,OAC7CgB,EAAcf,UAAUC,IAAInF,EAAIJ,GAAG,aAEnC,MAAMsG,EAAkBlB,SAASC,cAAc,OAC/CiB,EAAgBhB,UAAUC,IAAInF,EAAIJ,GAAG,eACrCqG,EAAcZ,YAAYa,GAE1B,MAAMC,EAAcnB,SAASC,cAAc,OAC3CkB,EAAYjB,UAAUC,IAAInF,EAAIJ,GAAG,sBACjCsG,EAAgBb,YAAYc,GAE5B,MAAMC,EAAapB,SAASC,cAAc,OAC1CmB,EAAWlB,UAAUC,IAAInF,EAAIJ,GAAG,UAEhC,MAAMyG,EAAUrB,SAASC,cAAc,OACvCoB,EAAQnB,UAAUC,IAAInF,EAAIJ,GAAG,aAE7B,MAAM0G,EAActB,SAASC,cAAc,OAC3CqB,EAAYpB,UAAUC,IAAInF,EAAIJ,GAAG,iBAEjCwG,EAAWf,YAAYgB,GACvBD,EAAWf,YAAYiB,GAEvB,MAAMC,EAAWvB,SAASC,cAAc,OACxCsB,EAASrB,UAAUC,IAAInF,EAAIJ,GAAG,QAE9B,MAAM4G,EAAiBxB,SAASC,cAAc,OAC9CuB,EAAetB,UAAUC,IAAInF,EAAIJ,GAAG,eACpC2G,EAASlB,YAAYmB,GAErB,MAAMC,EAASzB,SAASC,cAAc,OACtCwB,EAAOvB,UAAUC,IAAInF,EAAIJ,GAAG,WAE5B,MAAO8G,EAAaC,EAAaC,EAAaC,GAAgB,CAAC,IAAK,IAAK,IAAK,KAAe1F,KAAKiD,IAChG,MAAM0C,EAAO9B,SAASC,cAAc,OACpC6B,EAAK5B,UAAUC,IAAInF,EAAIJ,GAAG,eAAgBwE,GAE1C,MAAM2C,EAAQ/B,SAASC,cAAc,SACrC8B,EAAM3B,YAAchB,EAAI4C,cAExB,MAAMC,EAAajC,SAASC,cAAc,SAoB1C,OAnBAgC,EAAW/B,UAAUC,IAAInF,EAAIJ,GAAG,UAEhCqH,EAAWC,iBAAiB,SAAS,KACnCD,EAAWxE,MAAQwE,EAAWxE,MAAM0E,WAAW,UAAW,GAAG,IAE/DF,EAAWC,iBAAiB,UAAU,KACpC,IAAIzE,EAAQE,KAAKqB,MAAMnB,OAAOoE,EAAWxE,QAC7B,MAAR2B,IACF3B,GAAgB,KAGlB2E,EADepE,EAAYI,EAASjB,OAAOkF,OAAO,CAAE,EAAE5D,EAASiC,GAAW,CAAEtB,CAACA,GAAM3B,OAEnF6E,GAAU,IAGZR,EAAKzB,YAAY0B,GACjBD,EAAKzB,YAAY4B,GACjBR,EAAOpB,YAAYyB,GAEZG,CAAU,IAGnBnC,EAAQO,YAAYkB,GACpBzB,EAAQO,YAAYY,GACpBnB,EAAQO,YAAYe,GACpBJ,EAAKX,YAAYP,GACjBkB,EAAKX,YAAYoB,GAEjB,IAAIc,GAAgB,EAChBC,GAAc,EACdC,GAAgB,EAEpB,SAASC,IACP,MAAMxD,EAAMG,EAASqB,GACrB,IAAK,MAAOrE,EAAGsG,IAAU,CAACjB,EAAaC,EAAaC,GAAagB,UAC/DD,EAAMlF,MAAQoF,OAAOhF,OAAOiD,SAAS5B,EAAQ,EAAJ7C,GAAS6C,EAAQ,EAAJ7C,EAAQ,GAAI,KAEpEwF,EAAYpE,MAAQoF,QAAqB,IAAbnC,EAASvC,GAAS4C,QAAQ,IA0BxD,SAASuB,IAvBPnF,OAAOkF,OAAOlB,EAAY2B,MAAO,CAC/BC,KAAM,GAAGpF,KAAKe,MAAO6B,EAAeG,EAASxF,EAAK,SAClD8H,IAAK,GAAGrF,KAAKe,MAAO8B,GAAiB,IAAME,EAASjG,GAAM,WAI5DwG,EAAc6B,MAAMG,gBAAkB,IAAIhE,EAASR,EAAS,CAC1DP,EAAGwC,EAASxC,EACZhD,EAAG,IACHT,EAAG,IACH0D,EAAG,OAILqD,EAAesB,MAAME,IAAM,GAAGrF,KAAKe,MAAM8B,EAAiBA,EAAgBE,EAASxC,EAAK,SAGxFoD,EAAYwB,MAAMC,KAAuB,IAAbrC,EAASvC,EAAZ,IAE3B,WACE,MAAMG,EAAEA,EAACC,EAAEA,EAAC9D,EAAEA,GAAMgE,EAASiC,GAC7BW,EAAQyB,MAAMI,WAAa,kCAAkC5E,MAAMC,MAAM9D,kBAAkB6D,MAAMC,MAAM9D,cAOvG0I,GACAT,IAEF,SAASN,EAAY3E,GACnBiD,EAAW1C,EAAYb,OAAOkF,OAAO,CAAA,EAAI3B,EAAUjD,IAEnDiF,IAEI9C,EAAQwD,UACVxD,EAAQwD,SAAS,IAAI/D,EAASqB,MAIlC,SAAS2C,EAAUC,GACjB,MAAMC,EAAOtC,EAAcuC,wBACrBR,EAAMO,EAAKP,KAAOS,OAAOC,aAAe1D,SAAS2D,gBAAgBC,WAAa5D,SAAS6D,KAAKD,WAAa,GACzGb,EAAOQ,EAAKR,KAAO/C,SAAS6D,KAAKC,WAIvC1B,EAAY,CACVlH,EAJiByC,KAAKe,MAAO,IAAMf,KAAKD,IAAI,EAAGC,KAAKC,IAAI2C,EAAc+C,EAAMS,MAAQhB,IAAUxC,GAK9F9F,EAJiBkD,KAAKe,MAAO,KAAO8B,EAAgB7C,KAAKD,IAAI,EAAGC,KAAKC,IAAI4C,EAAe8C,EAAMU,MAAQhB,KAAUxC,KAMlH8B,IAEF,SAAS2B,EAAQX,GACf,MAAMN,EAAMzB,EAASiC,wBAAwBR,KAAOS,OAAOC,aAAe1D,SAAS2D,gBAAgBC,WAAa5D,SAAS6D,KAAKD,WAAa,GAE3IxB,EAAY,CACVlE,EAAGP,KAAKe,MAAO,KAAO8B,EAAgB7C,KAAKD,IAAI,EAAGC,KAAKC,IAAI4C,EAAe8C,EAAMU,MAAQhB,KAAUxC,KAEpG8B,IAEF,SAAS4B,EAAUZ,GACjB,MAAMS,MAAEA,GAAUT,EACZC,EAAOnC,EAAWoC,wBACxB,IAAIT,EAAOgB,EAAQR,EAAKR,KACxBA,EAAOpF,KAAKD,IAAI+C,EAAgB,EAAGsC,GACnCA,EAAOpF,KAAKC,IAAImF,EAAMQ,EAAKY,MAAQ1D,EAAgB,GAEnD2B,EAAY,CACVjE,EAAGR,KAAKqB,OAAQ+D,EAAO,IAAWQ,EAAKY,MAAQ,IAAO,KAAO,MAE/D7B,IAGF,SAAS8B,EAAOd,GACVf,IACFe,EAAMe,iBACNhB,EAAUC,IAGRd,IACFc,EAAMe,iBACNJ,EAAQX,IAGNb,IACFa,EAAMe,iBACNH,EAAUZ,IAId,SAASgB,IACPtE,SAASuE,oBAAoB,YAAaH,GAC1CpE,SAASuE,oBAAoB,UAAWD,GACxC/B,GAAgB,EAUlB,SAASiC,IACPxE,SAASuE,oBAAoB,YAAaH,GAC1CpE,SAASuE,oBAAoB,UAAWC,GACxChC,GAAc,EAUhB,SAASiC,IACPzE,SAASuE,oBAAoB,YAAaH,GAC1CpE,SAASuE,oBAAoB,UAAWE,GACxChC,GAAgB,EAWlB,OA7BAxB,EAAciB,iBAAiB,aAN/B,SAAkCrH,GAChCmF,SAASkC,iBAAiB,YAAakC,GACvCpE,SAASkC,iBAAiB,UAAWoC,GACrC/B,GAAgB,EAChBc,EAAUxI,MAeZ0G,EAASW,iBAAiB,aAN1B,SAA6BoB,GAC3BtD,SAASkC,iBAAiB,YAAakC,GACvCpE,SAASkC,iBAAiB,UAAWsC,GACrChC,GAAc,EACdyB,EAAQX,MAeVlC,EAAWc,iBAAiB,aAN5B,SAA+BoB,GAC7BtD,SAASkC,iBAAiB,YAAakC,GACvCpE,SAASkC,iBAAiB,UAAWuC,GACrChC,GAAgB,EAChByB,EAAUZ,MAIZhB,IACOtB,CAAI,ECnOb,IAAI0D,EAAS,IACN,MAAMC,EAAe,EAAGC,QAAOnJ,SAASuE,SAAS6D,KAAMgB,cAAc,QAA4B,MACtG,MAAM7J,EAAMR,EAAU,UAChBsK,EAAWrJ,EACXsJ,EAAS/E,SAASC,cAAc,OACtC8E,EAAO7E,UAAUC,IAAInF,EAAIP,KACzBsK,EAAOjC,MAAMkC,OAASnC,OAAO6B,GAC7B,MAAMO,EAAUjF,SAASC,cAAc,OAGvC,GAFAgF,EAAQ/E,UAAUC,IAAInF,EAAIJ,GAAG,YAC7BmK,EAAO1E,YAAY4E,GACfL,EAAO,CACT,MAAM9E,EAAUE,SAASC,cAAc,OACvCH,EAAQI,UAAUC,IAAInF,EAAIJ,GAAG,YAC7BkF,EAAQO,YAAYuE,GACpBK,EAAQ5E,YAAYP,GACpBA,EAAQoC,iBAAiB,SAAUrH,IACjCA,EAAEqK,iBAAiB,IAIvB,MAAMC,EAAiBC,iBAAiBN,GAAUO,SAClDP,EAAShC,MAAMuC,SAAW,SAE1BP,EAASzE,YAAY0E,GACrB,MAAMO,EAAQ,KACZT,IACAE,EAAOQ,SACPT,EAAShC,MAAMuC,SAAWF,CAAc,EAK1C,OAHAJ,EAAO7C,iBAAiB,QAASoD,GACjCZ,GAAU,EAEH,CAAEK,SAAQO,QAAO,EC9BbE,EAAkB,CAACzD,EAAenC,KAC7C,MAAM5E,EAAMR,EAAU,SACtBoF,EAAQC,OAASD,EAAQC,KAAO,QAChCD,EAAQnC,QAAUmC,EAAQnC,MAAQ,IAElC,MAAMgI,EAAYzF,SAASC,cAAc,OAGzC,GAFAwF,EAAUvF,UAAUC,IAAInF,EAAIJ,GAAG,SAE3BmH,EAAO,CACT,MAAM2D,EAAa1F,SAASC,cAAc,QAC1CyF,EAAWxF,UAAUC,IAAInF,EAAIJ,GAAG,UAChC8K,EAAWtF,YAAc2B,EACzB0D,EAAUpF,YAAYqF,GAGxB,MAAMC,EAAa3F,SAASC,cAAc,OAC1C0F,EAAWzF,UAAUC,IAAInF,EAAIJ,GAAG,UAChC,MAAM+H,EAAQ3C,SAASC,cAAc,SACrC,IAAK,MAAMb,KAAOQ,EAChB+C,EAAMiD,aAAaxG,EAAKQ,EAAQR,KAE9BQ,EAAQlC,KAAOkC,EAAQhC,MACzB+E,EAAMT,iBAAiB,QAAQ,KACzBtC,EAAQlC,KAAOkC,EAAQlC,KAAOG,OAAO8E,EAAMlF,SAC7CkF,EAAMlF,MAAQoF,OAAOjD,EAAQlC,MAE3BkC,EAAQhC,KAAOgC,EAAQhC,KAAOC,OAAO8E,EAAMlF,SAC7CkF,EAAMlF,MAAQoF,OAAOjD,EAAQhC,SAKnC+H,EAAWtF,YAAYsC,GACvB8C,EAAUpF,YAAYsF,GAEtBhD,EAAMT,iBAAiB,SAAS,KAC9ByD,EAAWzF,UAAUC,IAAI,QAAQ,IAEnCwC,EAAMT,iBAAiB,QAAQ,KAC7ByD,EAAWzF,UAAUqF,OAAO,QAAQ,IAwBtC,MAAO,CAAEzD,KAAM2D,EAAW9C,QAAOkD,SArBfC,IAChB,IAAID,EACAF,EAAWzF,UAAU6F,SAAS,SAChCF,EAAWF,EAAWK,cAAc,IAAIhL,EAAIJ,GAAG,iBAG/CiL,EAAW7F,SAASC,cAAc,QAClC4F,EAAS3F,UAAUC,IAAInF,EAAIJ,GAAG,cAC9B+K,EAAWtF,YAAYwF,IAGzBA,EAASzF,YAAc0F,EACvBH,EAAWzF,UAAUC,IAAI,SAMzB,MAAO,CAAE8F,YAJW,KAClBN,EAAWzF,UAAUqF,OAAO,SAC5BM,EAASN,QAAQ,EAEG,EAGmB,EC7DhCW,EAAkB,CAACtG,EAAuC,MACrE,MAAM5E,EAAMR,EAAU,cAChB2L,EAAYnG,SAASC,cAAc,OACzCkG,EAAUjG,UAAUC,IAAInF,EAAIP,KAE5B,MAAM2L,EAAcpG,SAASC,cAAc,OAC3CmG,EAAYlG,UAAUC,IAAInF,EAAIJ,GAAG,UACjC,IAAK,IAAI0D,EAAI,EAAGA,GAAKsB,EAAQyG,KAAO,GAAI/H,IACtC,IAAK,IAAIgI,EAAI,EAAGA,GAAK1G,EAAQ2G,KAAO,GAAID,IAAK,CAC3C,MAAME,EAAaxG,SAASC,cAAc,OAC1CuG,EAAWtG,UAAUC,IAAInF,EAAIJ,GAAG,SAChC4L,EAAWC,QAAQJ,IAAMxD,OAAOvE,EAAI,GACpCkI,EAAWC,QAAQF,IAAM1D,OAAOyD,EAAI,GACpCF,EAAY/F,YAAYmG,GAG5B,MAAME,EAAyB,KAC7B,MAAML,IAAEA,EAAGE,IAAEA,GAAQJ,EAAUM,QAC/B,IAAK,MAAM3E,KAAQ/F,MAAMU,KAAK2J,EAAYO,iBAAiB,YACzD7E,EAAK5B,UAAUqF,OAAO,UAExB,IAAKc,IAAQE,EAAK,OAClB,MAAMK,EAAS7K,MAAMU,KAAK2J,EAAYS,UACtC,IAAK,IAAIxK,EAAI,EAAGA,EAAIuK,EAAO5K,OAAQK,IAAK,CACtC,MAAQgK,IAAKS,EAAUP,IAAKQ,GAAaH,EAAOvK,GAAGoK,QACnD,GAAIK,EAAYT,GAAOU,EAAYR,EACjC,OAEEO,GAAaT,GAAOU,GAAaR,EACnCK,EAAOvK,GAAG6D,UAAUC,IAAI,UAGxByG,EAAOvK,GAAG6D,UAAUqF,OAAO,YAwBjC,GApBAa,EAAYlE,iBAAiB,aAAcrH,IACzC,IAAKA,EAAEY,OAAQ,OACf,MAAM4K,IAAEA,EAAGE,IAAEA,GAAS1L,EAAEY,OAAuBgL,QAC1CJ,GAAQE,IACbJ,EAAUM,QAAQJ,IAAMA,EACxBF,EAAUM,QAAQF,IAAMA,EACxBG,IAAwB,IAE1BN,EAAYlE,iBAAiB,cAAc,KACzCiE,EAAUa,gBAAgB,YAC1Bb,EAAUa,gBAAgB,YAC1BN,GAAwB,IAE1BN,EAAYlE,iBAAiB,SAAS,KACpC,MAAMmE,IAAEA,EAAGE,IAAEA,GAAQJ,EAAUM,QAC1BJ,GAAQE,GACb3G,EAAQqH,UAAYrH,EAAQqH,SAASpJ,OAAOwI,GAAMxI,OAAO0I,GAAK,IAEhEJ,EAAU9F,YAAY+F,GAElBxG,EAAQsH,UAAW,CACrB,MAAMC,EAAQvH,EAAQuH,OAAS,CAAE,EAC3BC,EAAepH,SAASC,cAAc,OAC5CmH,EAAalH,UAAUC,IAAInF,EAAIJ,GAAG,WAClCwM,EAAahH,YAAc+G,EAAME,eAAiB,SAClDD,EAAalF,iBAAiB,SAASoF,UACrC,MAAMC,OC/DoBD,OAAO1H,EAAwC,MAC7E,MAAM5E,EAAMR,EAAU,WAChBgN,EAAMxH,SAASC,cAAc,OACnCuH,EAAItH,UAAUC,IAAInF,EAAIP,KACtB,MAAMgN,EAAezH,SAASC,cAAc,OAC5CwH,EAAavH,UAAUC,IAAInF,EAAIJ,GAAG,UAElC,MACEkH,KAAM4F,EACN/E,MAAOgF,EACP9B,SAAU+B,GACRpC,EAAgB5F,EAAQiI,SAAW,MAAO,CAAEhI,KAAM,SAAUpC,MAAOoF,OAAOjD,EAAQyG,KAAO,IAAK3I,IAAK,MAErGoE,KAAMgG,EACNnF,MAAOoF,EACPlC,SAAUmC,GACRxC,EAAgB5F,EAAQqI,SAAW,SAAU,CAAEpI,KAAM,SAAUpC,MAAOoF,OAAOjD,EAAQ2G,KAAO,IAAK7I,IAAK,KAE1G+J,EAAapH,YAAYqH,GACzBD,EAAapH,YAAYyH,GACzBN,EAAInH,YAAYoH,GAEhB,MAAMS,EAAUlI,SAASC,cAAc,OACvCiI,EAAQhI,UAAUC,IAAInF,EAAIJ,GAAG,YAE7B,MAAMuN,EAAaxI,EAAa,CAAEE,KAAM,UAAWC,QAASF,EAAQwI,aAAe,YAC7EC,EAAY1I,EAAa,CAAEE,KAAM,UAAWC,QAASF,EAAQ0I,YAAc,WAEjFJ,EAAQ7H,YAAY8H,GACpBD,EAAQ7H,YAAYgI,GACpBb,EAAInH,YAAY6H,GAEhB,MAAMK,EAAgB,CAAClC,EAAcxI,OAAO8J,EAASlK,OAAQ8I,EAAc1I,OAAOkK,EAAStK,UACzF,GAAII,OAAO2K,MAAMnC,IAAQA,GAAO,EAC9BuB,EAAYhI,EAAQ6I,wBAA0B,uCADhD,CAIA,KAAI5K,OAAO2K,MAAMjC,IAAQA,GAAO,GAIhC,MAAO,CAAEF,MAAKE,OAHZyB,EAAYpI,EAAQ6I,wBAA0B,mCAG7B,EAEfC,EAAiB7N,IACP,WAAVA,EAAEuE,MACJkG,QACAtF,SAASuE,oBAAoB,UAAWmE,KAI5C,OAAO,IAAIC,SAAsC,CAACC,EAASC,KACzD,MAAMvD,MAAEA,GAAUX,EAAa,CAAEC,MAAO4C,EAAK3C,YAAagE,IAC1DlB,EAASmB,QAET,IAAK,MAAMnG,IAAS,CAACgF,EAAUI,GAC7BpF,EAAMT,iBAAiB,WAAYrH,IACjC,GAAc,UAAVA,EAAEuE,IAAiB,CACrB,MAAM2J,EAASR,IACXQ,IACFH,EAAQG,GACRzD,SAKR6C,EAAWjG,iBAAiB,SAASoF,UACnC,MAAMyB,EAASR,IACXQ,IACFH,EAAQG,GACRzD,QAGJtF,SAASkC,iBAAiB,UAAWwG,GACrCL,EAAUnG,iBAAiB,QAASoD,EAAM,GAC1C,EDXoB0D,CAAiB7B,GAC/BI,GACF3H,EAAQqH,UAAYrH,EAAQqH,SAASM,EAAIlB,IAAKkB,EAAIhB,QAGtDJ,EAAU9F,YAAY+G,GAGxB,OAAOjB,CAAS,EEzEZvI,EAAMD,KAAKC,IACXF,EAAMC,KAAKD,IACXsB,EAAQrB,KAAKqB,MACbN,EAAQf,KAAKe,MACbuK,EAAe5N,IAAM,CACzB6N,EAAG7N,EACH8N,EAAG9N,IAEC+N,EAAkB,CACtBrG,KAAM,QACNsG,MAAO,OACPC,OAAQ,MACRtG,IAAK,UAEDuG,EAAuB,CAC3BC,MAAO,MACPC,IAAK,SAEP,SAASC,EAAMF,EAAO/L,EAAOgM,GAC3B,OAAO/L,EAAI8L,EAAO5L,EAAIH,EAAOgM,GAC/B,CACA,SAASE,EAASlM,EAAOmM,GACvB,MAAwB,mBAAVnM,EAAuBA,EAAMmM,GAASnM,CACtD,CACA,SAASoM,EAAQC,GACf,OAAOA,EAAUC,MAAM,KAAK,EAC9B,CACA,SAASC,EAAaF,GACpB,OAAOA,EAAUC,MAAM,KAAK,EAC9B,CACA,SAASE,EAAgBC,GACvB,MAAgB,MAATA,EAAe,IAAM,GAC9B,CACA,SAASC,EAAcD,GACrB,MAAgB,MAATA,EAAe,SAAW,OACnC,CACA,SAASE,EAAYN,GACnB,MAAO,CAAC,MAAO,UAAUO,SAASR,EAAQC,IAAc,IAAM,GAChE,CACA,SAASQ,EAAiBR,GACxB,OAAOG,EAAgBG,EAAYN,GACrC,CAkBA,SAASS,EAA8BT,GACrC,OAAOA,EAAUU,QAAQ,cAAcC,GAAalB,EAAqBkB,IAC3E,CA6BA,SAASC,EAAqBZ,GAC5B,OAAOA,EAAUU,QAAQ,0BAA0BG,GAAQvB,EAAgBuB,IAC7E,CAkBA,SAASC,EAAiBrH,GACxB,MAAM2F,EACJA,EAACC,EACDA,EAAChF,MACDA,EAAK0G,OACLA,GACEtH,EACJ,MAAO,CACLY,QACA0G,SACA7H,IAAKmG,EACLpG,KAAMmG,EACNG,MAAOH,EAAI/E,EACXmF,OAAQH,EAAI0B,EACZ3B,IACAC,IAEJ,CCpIA,SAAS2B,EAA2BC,EAAMjB,EAAWkB,GACnD,IAAIC,UACFA,EAASC,SACTA,GACEH,EACJ,MAAMI,EAAWf,EAAYN,GACvBsB,EAAgBd,EAAiBR,GACjCuB,EAAclB,EAAciB,GAC5BT,EAAOd,EAAQC,GACfwB,EAA0B,MAAbH,EACbI,EAAUN,EAAU/B,EAAI+B,EAAU9G,MAAQ,EAAI+G,EAAS/G,MAAQ,EAC/DqH,EAAUP,EAAU9B,EAAI8B,EAAUJ,OAAS,EAAIK,EAASL,OAAS,EACjEY,EAAcR,EAAUI,GAAe,EAAIH,EAASG,GAAe,EACzE,IAAIK,EACJ,OAAQf,GACN,IAAK,MACHe,EAAS,CACPxC,EAAGqC,EACHpC,EAAG8B,EAAU9B,EAAI+B,EAASL,QAE5B,MACF,IAAK,SACHa,EAAS,CACPxC,EAAGqC,EACHpC,EAAG8B,EAAU9B,EAAI8B,EAAUJ,QAE7B,MACF,IAAK,QACHa,EAAS,CACPxC,EAAG+B,EAAU/B,EAAI+B,EAAU9G,MAC3BgF,EAAGqC,GAEL,MACF,IAAK,OACHE,EAAS,CACPxC,EAAG+B,EAAU/B,EAAIgC,EAAS/G,MAC1BgF,EAAGqC,GAEL,MACF,QACEE,EAAS,CACPxC,EAAG+B,EAAU/B,EACbC,EAAG8B,EAAU9B,GAGnB,OAAQa,EAAaF,IACnB,IAAK,QACH4B,EAAON,IAAkBK,GAAeT,GAAOM,GAAe,EAAG,GACjE,MACF,IAAK,MACHI,EAAON,IAAkBK,GAAeT,GAAOM,GAAe,EAAG,GAGrE,OAAOI,CACT,CAqGApE,eAAeqE,EAAeC,EAAOhM,GACnC,IAAIiM,OACY,IAAZjM,IACFA,EAAU,CAAE,GAEd,MAAMsJ,EACJA,EAACC,EACDA,EAAC2C,SACDA,EAAQC,MACRA,EAAKC,SACLA,EAAQC,SACRA,GACEL,GACEM,SACJA,EAAW,oBAAmBC,aAC9BA,EAAe,WAAUC,eACzBA,EAAiB,WAAUC,YAC3BA,GAAc,EAAKC,QACnBA,EAAU,GACR3C,EAAS/J,EAASgM,GAChBW,EDpER,SAA0BD,GACxB,MAA0B,iBAAZA,EAVhB,SAA6BA,GAC3B,MAAO,CACLtJ,IAAK,EACLqG,MAAO,EACPC,OAAQ,EACRvG,KAAM,KACHuJ,EAEP,CAEuCE,CAAoBF,GAAW,CAClEtJ,IAAKsJ,EACLjD,MAAOiD,EACPhD,OAAQgD,EACRvJ,KAAMuJ,EAEV,CC6DwBG,CAAiBH,GAEjCI,EAAUV,EAASK,EADa,aAAnBD,EAAgC,YAAc,WACbA,GAC9CO,EAAqB/B,QAAuBkB,EAASc,gBAAgB,CACzEF,QAAiH,OAAtGb,QAAqD,MAAtBC,EAASe,eAAoB,EAASf,EAASe,UAAUH,MAAqBb,EAAgCa,EAAUA,EAAQI,sBAAyD,MAA/BhB,EAASiB,wBAA6B,EAASjB,EAASiB,mBAAmBf,EAASd,WACxRgB,WACAC,eACAF,cAEI1I,EAA0B,aAAnB6I,EAAgC,CAC3ClD,IACAC,IACAhF,MAAO4H,EAAMb,SAAS/G,MACtB0G,OAAQkB,EAAMb,SAASL,QACrBkB,EAAMd,UACJ+B,QAAkD,MAA5BlB,EAASmB,qBAA0B,EAASnB,EAASmB,gBAAgBjB,EAASd,WACpGgC,QAA4C,MAAtBpB,EAASe,eAAoB,EAASf,EAASe,UAAUG,WAA+C,MAArBlB,EAASqB,cAAmB,EAASrB,EAASqB,SAASH,KAGlK,CACF9D,EAAG,EACHC,EAAG,GAECiE,EAAoBxC,EAAiBkB,EAASuB,4DAA8DvB,EAASuB,sDAAsD,CAC/KrB,WACAzI,OACAyJ,eACAf,aACG1I,GACL,MAAO,CACLP,KAAM2J,EAAmB3J,IAAMoK,EAAkBpK,IAAMuJ,EAAcvJ,KAAOkK,EAAY/D,EACxFG,QAAS8D,EAAkB9D,OAASqD,EAAmBrD,OAASiD,EAAcjD,QAAU4D,EAAY/D,EACpGpG,MAAO4J,EAAmB5J,KAAOqK,EAAkBrK,KAAOwJ,EAAcxJ,MAAQmK,EAAYhE,EAC5FG,OAAQ+D,EAAkB/D,MAAQsD,EAAmBtD,MAAQkD,EAAclD,OAAS6D,EAAYhE,EAEpG,CCrNA,SAASoE,IACP,MAAyB,oBAAX7J,MAChB,CACA,SAAS8J,EAAYC,GACnB,OAAIC,EAAOD,IACDA,EAAKE,UAAY,IAAIC,cAKxB,WACT,CACA,SAASC,EAAUJ,GACjB,IAAIK,EACJ,OAAgB,MAARL,GAA8D,OAA7CK,EAAsBL,EAAKM,oBAAyB,EAASD,EAAoBE,cAAgBtK,MAC5H,CACA,SAASsJ,EAAmBS,GAC1B,IAAIzC,EACJ,OAA0F,OAAlFA,GAAQ0C,EAAOD,GAAQA,EAAKM,cAAgBN,EAAKxN,WAAayD,OAAOzD,eAAoB,EAAS+K,EAAKpH,eACjH,CACA,SAAS8J,EAAOhQ,GACd,QAAK6P,MAGE7P,aAAiBuQ,MAAQvQ,aAAiBmQ,EAAUnQ,GAAOuQ,KACpE,CACA,SAASnB,GAAUpP,GACjB,QAAK6P,MAGE7P,aAAiBwQ,SAAWxQ,aAAiBmQ,EAAUnQ,GAAOwQ,QACvE,CACA,SAASC,GAAczQ,GACrB,QAAK6P,MAGE7P,aAAiB0Q,aAAe1Q,aAAiBmQ,EAAUnQ,GAAO0Q,YAC3E,CACA,SAASC,GAAa3Q,GACpB,SAAK6P,KAAqC,oBAAfe,cAGpB5Q,aAAiB4Q,YAAc5Q,aAAiBmQ,EAAUnQ,GAAO4Q,WAC1E,CACA,SAASC,GAAkB5B,GACzB,MAAMrH,SACJA,EAAQkJ,UACRA,EAASC,UACTA,EAASC,QACTA,GACErJ,GAAiBsH,GACrB,MAAO,kCAAkCrP,KAAKgI,EAAWmJ,EAAYD,KAAe,CAAC,SAAU,YAAYlE,SAASoE,EACtH,CACA,SAASC,GAAehC,GACtB,MAAO,CAAC,QAAS,KAAM,MAAMrC,SAASkD,EAAYb,GACpD,CACA,SAASiC,GAAWjC,GAClB,MAAO,CAAC,gBAAiB,UAAUkC,MAAKC,IACtC,IACE,OAAOnC,EAAQoC,QAAQD,EACxB,CAAC,MAAOhU,GACP,OAAO,CACb,IAEA,CACA,SAASkU,GAAkBC,GACzB,MAAMC,EAASC,KACTC,EAAMtC,GAAUmC,GAAgB5J,GAAiB4J,GAAgBA,EAIvE,MAAO,CAAC,YAAa,YAAa,QAAS,SAAU,eAAeJ,MAAKnR,KAAS0R,EAAI1R,IAAwB,SAAf0R,EAAI1R,QAA+B0R,EAAIC,eAAsC,WAAtBD,EAAIC,gBAAwCH,KAAWE,EAAIE,gBAAwC,SAAvBF,EAAIE,iBAAuCJ,KAAWE,EAAIG,QAAwB,SAAfH,EAAIG,QAA8B,CAAC,YAAa,YAAa,QAAS,SAAU,cAAe,UAAUV,MAAKnR,IAAU0R,EAAII,YAAc,IAAIlF,SAAS5M,MAAW,CAAC,QAAS,SAAU,SAAU,WAAWmR,MAAKnR,IAAU0R,EAAIK,SAAW,IAAInF,SAAS5M,IAC7hB,CAaA,SAASyR,KACP,QAAmB,oBAARO,MAAwBA,IAAIC,WAChCD,IAAIC,SAAS,0BAA2B,OACjD,CACA,SAASC,GAAsBnC,GAC7B,MAAO,CAAC,OAAQ,OAAQ,aAAanD,SAASkD,EAAYC,GAC5D,CACA,SAASpI,GAAiBsH,GACxB,OAAOkB,EAAUlB,GAAStH,iBAAiBsH,EAC7C,CACA,SAASkD,GAAclD,GACrB,OAAIG,GAAUH,GACL,CACL5I,WAAY4I,EAAQ5I,WACpBF,UAAW8I,EAAQ9I,WAGhB,CACLE,WAAY4I,EAAQmD,QACpBjM,UAAW8I,EAAQoD,QAEvB,CACA,SAASC,GAAcvC,GACrB,GAA0B,SAAtBD,EAAYC,GACd,OAAOA,EAET,MAAMzE,EAENyE,EAAKwC,cAELxC,EAAKyC,YAEL7B,GAAaZ,IAASA,EAAK0C,MAE3BnD,EAAmBS,GACnB,OAAOY,GAAarF,GAAUA,EAAOmH,KAAOnH,CAC9C,CACA,SAASoH,GAA2B3C,GAClC,MAAMyC,EAAaF,GAAcvC,GACjC,OAAImC,GAAsBM,GACjBzC,EAAKM,cAAgBN,EAAKM,cAAcjK,KAAO2J,EAAK3J,KAEzDqK,GAAc+B,IAAe3B,GAAkB2B,GAC1CA,EAEFE,GAA2BF,EACpC,CACA,SAASG,GAAqB5C,EAAM6C,EAAMC,GACxC,IAAIC,OACS,IAATF,IACFA,EAAO,SAEe,IAApBC,IACFA,GAAkB,GAEpB,MAAME,EAAqBL,GAA2B3C,GAChDiD,EAASD,KAAuE,OAA9CD,EAAuB/C,EAAKM,oBAAyB,EAASyC,EAAqB1M,MACrH6M,EAAM9C,EAAU4C,GACtB,GAAIC,EAAQ,CACV,MAAME,EAAeC,GAAgBF,GACrC,OAAOL,EAAKQ,OAAOH,EAAKA,EAAII,gBAAkB,GAAIxC,GAAkBkC,GAAsBA,EAAqB,GAAIG,GAAgBL,EAAkBF,GAAqBO,GAAgB,GAC9L,CACE,OAAON,EAAKQ,OAAOL,EAAoBJ,GAAqBI,EAAoB,GAAIF,GACtF,CACA,SAASM,GAAgBF,GACvB,OAAOA,EAAItW,QAAU+C,OAAO4T,eAAeL,EAAItW,QAAUsW,EAAIC,aAAe,IAC9E,CClJA,SAASK,GAAiBtE,GACxB,MAAMyC,EAAM/J,GAAiBsH,GAG7B,IAAIvI,EAAQrG,WAAWqR,EAAIhL,QAAU,EACjC0G,EAAS/M,WAAWqR,EAAItE,SAAW,EACvC,MAAMoG,EAAY/C,GAAcxB,GAC1BwE,EAAcD,EAAYvE,EAAQwE,YAAc/M,EAChDgN,EAAeF,EAAYvE,EAAQyE,aAAetG,EAClDuG,EAAiBpS,EAAMmF,KAAW+M,GAAelS,EAAM6L,KAAYsG,EAKzE,OAJIC,IACFjN,EAAQ+M,EACRrG,EAASsG,GAEJ,CACLhN,QACA0G,SACAwG,EAAGD,EAEP,CAEA,SAASE,GAAc5E,GACrB,OAAQG,GAAUH,GAAoCA,EAAzBA,EAAQI,cACvC,CAEA,SAASK,GAAST,GAChB,MAAM6E,EAAaD,GAAc5E,GACjC,IAAKwB,GAAcqD,GACjB,OAAOtI,EAAa,GAEtB,MAAM1F,EAAOgO,EAAW/N,yBAClBW,MACJA,EAAK0G,OACLA,EAAMwG,EACNA,GACEL,GAAiBO,GACrB,IAAIrI,GAAKmI,EAAIrS,EAAMuE,EAAKY,OAASZ,EAAKY,OAASA,EAC3CgF,GAAKkI,EAAIrS,EAAMuE,EAAKsH,QAAUtH,EAAKsH,QAAUA,EAUjD,OANK3B,GAAMrL,OAAO2T,SAAStI,KACzBA,EAAI,GAEDC,GAAMtL,OAAO2T,SAASrI,KACzBA,EAAI,GAEC,CACLD,IACAC,IAEJ,CAEA,MAAMsI,GAAyBxI,EAAa,GAC5C,SAASyI,GAAiBhF,GACxB,MAAMgE,EAAM9C,EAAUlB,GACtB,OAAKwC,MAAewB,EAAII,eAGjB,CACL5H,EAAGwH,EAAII,eAAea,WACtBxI,EAAGuH,EAAII,eAAec,WAJfH,EAMX,CAWA,SAASjO,GAAsBkJ,EAASmF,EAAcC,EAAiB9E,QAChD,IAAjB6E,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAMC,EAAarF,EAAQlJ,wBACrB+N,EAAaD,GAAc5E,GACjC,IAAIsF,EAAQ/I,EAAa,GACrB4I,IACE7E,EACEH,GAAUG,KACZgF,EAAQ7E,GAASH,IAGnBgF,EAAQ7E,GAAST,IAGrB,MAAMuF,EA7BR,SAAgCvF,EAASwF,EAASC,GAIhD,YAHgB,IAAZD,IACFA,GAAU,MAEPC,GAAwBD,GAAWC,IAAyBvE,EAAUlB,KAGpEwF,CACT,CAqBwBE,CAAuBb,EAAYO,EAAiB9E,GAAgB0E,GAAiBH,GAActI,EAAa,GACtI,IAAIC,GAAK6I,EAAWhP,KAAOkP,EAAc/I,GAAK8I,EAAM9I,EAChDC,GAAK4I,EAAW/O,IAAMiP,EAAc9I,GAAK6I,EAAM7I,EAC/ChF,EAAQ4N,EAAW5N,MAAQ6N,EAAM9I,EACjC2B,EAASkH,EAAWlH,OAASmH,EAAM7I,EACvC,GAAIoI,EAAY,CACd,MAAMb,EAAM9C,EAAU2D,GAChBc,EAAYrF,GAAgBH,GAAUG,GAAgBY,EAAUZ,GAAgBA,EACtF,IAAIsF,EAAa5B,EACb6B,EAAgB3B,GAAgB0B,GACpC,KAAOC,GAAiBvF,GAAgBqF,IAAcC,GAAY,CAChE,MAAME,EAAcrF,GAASoF,GACvBE,EAAaF,EAAc/O,wBAC3B2L,EAAM/J,GAAiBmN,GACvBxP,EAAO0P,EAAW1P,MAAQwP,EAAcG,WAAa5U,WAAWqR,EAAIwD,cAAgBH,EAAYtJ,EAChGlG,EAAMyP,EAAWzP,KAAOuP,EAAcK,UAAY9U,WAAWqR,EAAI0D,aAAeL,EAAYrJ,EAClGD,GAAKsJ,EAAYtJ,EACjBC,GAAKqJ,EAAYrJ,EACjBhF,GAASqO,EAAYtJ,EACrB2B,GAAU2H,EAAYrJ,EACtBD,GAAKnG,EACLoG,GAAKnG,EACLsP,EAAa1E,EAAU2E,GACvBA,EAAgB3B,GAAgB0B,EACtC,CACA,CACE,OAAO1H,EAAiB,CACtBzG,QACA0G,SACA3B,IACAC,KAEJ,CAIA,SAAS2J,GAAoBpG,EAASnJ,GACpC,MAAMwP,EAAanD,GAAclD,GAAS5I,WAC1C,OAAKP,EAGEA,EAAKR,KAAOgQ,EAFVvP,GAAsBuJ,EAAmBL,IAAU3J,KAAOgQ,CAGrE,CAEA,SAASC,GAAcrP,EAAiBjI,EAAQuX,QACrB,IAArBA,IACFA,GAAmB,GAErB,MAAMC,EAAWvP,EAAgBH,wBAKjC,MAAO,CACL0F,EALQgK,EAASnQ,KAAOrH,EAAOoI,YAAcmP,EAAmB,EAElEH,GAAoBnP,EAAiBuP,IAInC/J,EAHQ+J,EAASlQ,IAAMtH,EAAOkI,UAKlC,CA6GA,SAASuP,GAAkCzG,EAAS0G,EAAkBnH,GACpE,IAAI1I,EACJ,GAAyB,aAArB6P,EACF7P,EA7CJ,SAAyBmJ,EAAST,GAChC,MAAMyE,EAAM9C,EAAUlB,GAChB2G,EAAOtG,EAAmBL,GAC1BoE,EAAiBJ,EAAII,eAC3B,IAAI3M,EAAQkP,EAAKC,YACbzI,EAASwI,EAAKE,aACdrK,EAAI,EACJC,EAAI,EACR,GAAI2H,EAAgB,CAClB3M,EAAQ2M,EAAe3M,MACvB0G,EAASiG,EAAejG,OACxB,MAAM2I,EAAsBtE,OACvBsE,GAAuBA,GAAoC,UAAbvH,KACjD/C,EAAI4H,EAAea,WACnBxI,EAAI2H,EAAec,UAEzB,CACE,MAAO,CACLzN,QACA0G,SACA3B,IACAC,IAEJ,CAsBWsK,CAAgB/G,EAAST,QAC3B,GAAyB,aAArBmH,EACT7P,EAlEJ,SAAyBmJ,GACvB,MAAM2G,EAAOtG,EAAmBL,GAC1BhR,EAASkU,GAAclD,GACvB7I,EAAO6I,EAAQoB,cAAcjK,KAC7BM,EAAQzG,EAAI2V,EAAKK,YAAaL,EAAKC,YAAazP,EAAK6P,YAAa7P,EAAKyP,aACvEzI,EAASnN,EAAI2V,EAAKM,aAAcN,EAAKE,aAAc1P,EAAK8P,aAAc9P,EAAK0P,cACjF,IAAIrK,GAAKxN,EAAOoI,WAAagP,GAAoBpG,GACjD,MAAMvD,GAAKzN,EAAOkI,UAIlB,MAHyC,QAArCwB,GAAiBvB,GAAM+P,YACzB1K,GAAKxL,EAAI2V,EAAKC,YAAazP,EAAKyP,aAAenP,GAE1C,CACLA,QACA0G,SACA3B,IACAC,IAEJ,CAiDW0K,CAAgB9G,EAAmBL,SACrC,GAAIG,GAAUuG,GACnB7P,EAvBJ,SAAoCmJ,EAAST,GAC3C,MAAM8F,EAAavO,GAAsBkJ,GAAS,EAAmB,UAAbT,GAClDjJ,EAAM+O,EAAW/O,IAAM0J,EAAQkG,UAC/B7P,EAAOgP,EAAWhP,KAAO2J,EAAQgG,WACjCV,EAAQ9D,GAAcxB,GAAWS,GAAST,GAAWzD,EAAa,GAKxE,MAAO,CACL9E,MALYuI,EAAQ4G,YAActB,EAAM9I,EAMxC2B,OALa6B,EAAQ6G,aAAevB,EAAM7I,EAM1CD,EALQnG,EAAOiP,EAAM9I,EAMrBC,EALQnG,EAAMgP,EAAM7I,EAOxB,CAQW2K,CAA2BV,EAAkBnH,OAC/C,CACL,MAAMgG,EAAgBP,GAAiBhF,GACvCnJ,EAAO,CACL2F,EAAGkK,EAAiBlK,EAAI+I,EAAc/I,EACtCC,EAAGiK,EAAiBjK,EAAI8I,EAAc9I,EACtChF,MAAOiP,EAAiBjP,MACxB0G,OAAQuI,EAAiBvI,OAE/B,CACE,OAAOD,EAAiBrH,EAC1B,CACA,SAASwQ,GAAyBrH,EAASsH,GACzC,MAAM/D,EAAaF,GAAcrD,GACjC,QAAIuD,IAAe+D,IAAanH,GAAUoD,IAAeN,GAAsBM,MAG9B,UAA1C7K,GAAiB6K,GAAYgE,UAAwBF,GAAyB9D,EAAY+D,GACnG,CA2EA,SAASE,GAA8BxH,EAASM,EAAcf,GAC5D,MAAMkI,EAA0BjG,GAAclB,GACxCrJ,EAAkBoJ,EAAmBC,GACrCkF,EAAuB,UAAbjG,EACV1I,EAAOC,GAAsBkJ,GAAS,EAAMwF,EAASlF,GAC3D,IAAItR,EAAS,CACXoI,WAAY,EACZF,UAAW,GAEb,MAAMwQ,EAAUnL,EAAa,GAC7B,GAAIkL,IAA4BA,IAA4BjC,EAI1D,IAHkC,SAA9B3E,EAAYP,IAA4BsB,GAAkB3K,MAC5DjI,EAASkU,GAAc5C,IAErBmH,EAAyB,CAC3B,MAAME,EAAa7Q,GAAsBwJ,GAAc,EAAMkF,EAASlF,GACtEoH,EAAQlL,EAAImL,EAAWnL,EAAI8D,EAAa0F,WACxC0B,EAAQjL,EAAIkL,EAAWlL,EAAI6D,EAAa4F,SACzC,MAAUjP,IAGTyQ,EAAQlL,EAAI4J,GAAoBnP,IAGpC,MAAM2Q,GAAa3Q,GAAoBwQ,GAA4BjC,EAAmDjJ,EAAa,GAAtD+J,GAAcrP,EAAiBjI,GAG5G,MAAO,CACLwN,EAHQ3F,EAAKR,KAAOrH,EAAOoI,WAAasQ,EAAQlL,EAAIoL,EAAWpL,EAI/DC,EAHQ5F,EAAKP,IAAMtH,EAAOkI,UAAYwQ,EAAQjL,EAAImL,EAAWnL,EAI7DhF,MAAOZ,EAAKY,MACZ0G,OAAQtH,EAAKsH,OAEjB,CAEA,SAAS0J,GAAmB7H,GAC1B,MAA8C,WAAvCtH,GAAiBsH,GAASuH,QACnC,CAEA,SAASO,GAAoB9H,EAAS+H,GACpC,IAAKvG,GAAcxB,IAAmD,UAAvCtH,GAAiBsH,GAASuH,SACvD,OAAO,KAET,GAAIQ,EACF,OAAOA,EAAS/H,GAElB,IAAIgI,EAAkBhI,EAAQM,aAS9B,OAHID,EAAmBL,KAAagI,IAClCA,EAAkBA,EAAgB5G,cAAcjK,MAE3C6Q,CACT,CAIA,SAASzH,GAAgBP,EAAS+H,GAChC,MAAM/D,EAAM9C,EAAUlB,GACtB,GAAIiC,GAAWjC,GACb,OAAOgE,EAET,IAAKxC,GAAcxB,GAAU,CAC3B,IAAIiI,EAAkB5E,GAAcrD,GACpC,KAAOiI,IAAoBhF,GAAsBgF,IAAkB,CACjE,GAAI9H,GAAU8H,KAAqBJ,GAAmBI,GACpD,OAAOA,EAETA,EAAkB5E,GAAc4E,EACtC,CACI,OAAOjE,CACX,CACE,IAAI1D,EAAewH,GAAoB9H,EAAS+H,GAChD,KAAOzH,GAAgB0B,GAAe1B,IAAiBuH,GAAmBvH,IACxEA,EAAewH,GAAoBxH,EAAcyH,GAEnD,OAAIzH,GAAgB2C,GAAsB3C,IAAiBuH,GAAmBvH,KAAkB+B,GAAkB/B,GACzG0D,EAEF1D,GDrXT,SAA4BN,GAC1B,IAAIkI,EAAc7E,GAAcrD,GAChC,KAAOwB,GAAc0G,KAAiBjF,GAAsBiF,IAAc,CACxE,GAAI7F,GAAkB6F,GACpB,OAAOA,EACF,GAAIjG,GAAWiG,GACpB,OAAO,KAETA,EAAc7E,GAAc6E,EAChC,CACE,OAAO,IACT,CC0WyBC,CAAmBnI,IAAYgE,CACxD,CAqBA,MAAM5E,GAAW,CACfuB,sDAxTF,SAA+DtC,GAC7D,IAAIiB,SACFA,EAAQzI,KACRA,EAAIyJ,aACJA,EAAYf,SACZA,GACElB,EACJ,MAAMmH,EAAuB,UAAbjG,EACVtI,EAAkBoJ,EAAmBC,GACrC8H,IAAW9I,GAAW2C,GAAW3C,EAASd,UAChD,GAAI8B,IAAiBrJ,GAAmBmR,GAAY5C,EAClD,OAAO3O,EAET,IAAI7H,EAAS,CACXoI,WAAY,EACZF,UAAW,GAEToO,EAAQ/I,EAAa,GACzB,MAAMmL,EAAUnL,EAAa,GACvBkL,EAA0BjG,GAAclB,GAC9C,IAAImH,IAA4BA,IAA4BjC,MACxB,SAA9B3E,EAAYP,IAA4BsB,GAAkB3K,MAC5DjI,EAASkU,GAAc5C,IAErBkB,GAAclB,IAAe,CAC/B,MAAMqH,EAAa7Q,GAAsBwJ,GACzCgF,EAAQ7E,GAASH,GACjBoH,EAAQlL,EAAImL,EAAWnL,EAAI8D,EAAa0F,WACxC0B,EAAQjL,EAAIkL,EAAWlL,EAAI6D,EAAa4F,SAC9C,CAEE,MAAM0B,GAAa3Q,GAAoBwQ,GAA4BjC,EAAyDjJ,EAAa,GAA5D+J,GAAcrP,EAAiBjI,GAAQ,GACpH,MAAO,CACLyI,MAAOZ,EAAKY,MAAQ6N,EAAM9I,EAC1B2B,OAAQtH,EAAKsH,OAASmH,EAAM7I,EAC5BD,EAAG3F,EAAK2F,EAAI8I,EAAM9I,EAAIxN,EAAOoI,WAAakO,EAAM9I,EAAIkL,EAAQlL,EAAIoL,EAAWpL,EAC3EC,EAAG5F,EAAK4F,EAAI6I,EAAM7I,EAAIzN,EAAOkI,UAAYoO,EAAM7I,EAAIiL,EAAQjL,EAAImL,EAAWnL,EAE9E,EAmRE4D,qBACAH,gBAhJF,SAAyB7B,GACvB,IAAI2B,QACFA,EAAOR,SACPA,EAAQC,aACRA,EAAYF,SACZA,GACElB,EACJ,MACMgK,EAAoB,IADoB,sBAAb7I,EAAmCyC,GAAWjC,GAAW,GAxC5F,SAAqCA,EAASsI,GAC5C,MAAMC,EAAeD,EAAMzY,IAAImQ,GAC/B,GAAIuI,EACF,OAAOA,EAET,IAAIlM,EAASqH,GAAqB1D,EAAS,IAAI,GAAO4C,QAAO4F,GAAMrI,GAAUqI,IAA2B,SAApB3H,EAAY2H,KAC5FC,EAAsC,KAC1C,MAAMC,EAAwD,UAAvChQ,GAAiBsH,GAASuH,SACjD,IAAIW,EAAcQ,EAAiBrF,GAAcrD,GAAWA,EAG5D,KAAOG,GAAU+H,KAAiBjF,GAAsBiF,IAAc,CACpE,MAAMS,EAAgBjQ,GAAiBwP,GACjCU,EAA0BvG,GAAkB6F,GAC7CU,GAAsD,UAA3BD,EAAcpB,WAC5CkB,EAAsC,OAEVC,GAAkBE,IAA4BH,GAAuCG,GAAsD,WAA3BD,EAAcpB,UAA2BkB,GAAuC,CAAC,WAAY,SAAS9K,SAAS8K,EAAoClB,WAAa3F,GAAkBsG,KAAiBU,GAA2BvB,GAAyBrH,EAASkI,IAG5Y7L,EAASA,EAAOuG,QAAOiG,GAAYA,IAAaX,IAGhDO,EAAsCE,EAExCT,EAAc7E,GAAc6E,EAChC,CAEE,OADAI,EAAMjY,IAAI2P,EAAS3D,GACZA,CACT,CAWiGyM,CAA4B9I,EAAS+I,KAAKC,IAAM,GAAG7E,OAAO3E,GACjGC,GAClDwJ,EAAwBZ,EAAkB,GAC1Ca,EAAeb,EAAkBc,QAAO,CAACC,EAAS1C,KACtD,MAAM7P,EAAO4P,GAAkCzG,EAAS0G,EAAkBnH,GAK1E,OAJA6J,EAAQ9S,IAAMtF,EAAI6F,EAAKP,IAAK8S,EAAQ9S,KACpC8S,EAAQzM,MAAQzL,EAAI2F,EAAK8F,MAAOyM,EAAQzM,OACxCyM,EAAQxM,OAAS1L,EAAI2F,EAAK+F,OAAQwM,EAAQxM,QAC1CwM,EAAQ/S,KAAOrF,EAAI6F,EAAKR,KAAM+S,EAAQ/S,MAC/B+S,CAAO,GACb3C,GAAkCzG,EAASiJ,EAAuB1J,IACrE,MAAO,CACL9H,MAAOyR,EAAavM,MAAQuM,EAAa7S,KACzC8H,OAAQ+K,EAAatM,OAASsM,EAAa5S,IAC3CkG,EAAG0M,EAAa7S,KAChBoG,EAAGyM,EAAa5S,IAEpB,EAyHEiK,mBACA8I,gBAxBsBzO,eAAgB0O,GACtC,MAAMC,EAAoBR,KAAKxI,iBAAmBA,GAC5CiJ,EAAkBT,KAAKU,cACvBC,QAA2BF,EAAgBF,EAAK9K,UACtD,MAAO,CACLD,UAAWiJ,GAA8B8B,EAAK/K,gBAAiBgL,EAAkBD,EAAK9K,UAAW8K,EAAK/J,UACtGf,SAAU,CACRhC,EAAG,EACHC,EAAG,EACHhF,MAAOiS,EAAmBjS,MAC1B0G,OAAQuL,EAAmBvL,QAGjC,EAYEwL,eArRF,SAAwB3J,GACtB,OAAO3Q,MAAMU,KAAKiQ,EAAQ2J,iBAC5B,EAoREF,cA1HF,SAAuBzJ,GACrB,MAAMvI,MACJA,EAAK0G,OACLA,GACEmG,GAAiBtE,GACrB,MAAO,CACLvI,QACA0G,SAEJ,EAkHEsC,YACAN,aACAyJ,MAdF,SAAe5J,GACb,MAA+C,QAAxCtH,GAAiBsH,GAASkH,SACnC,GAeA,SAAS2C,GAAcpY,EAAG1D,GACxB,OAAO0D,EAAE+K,IAAMzO,EAAEyO,GAAK/K,EAAEgL,IAAM1O,EAAE0O,GAAKhL,EAAEgG,QAAU1J,EAAE0J,OAAShG,EAAE0M,SAAWpQ,EAAEoQ,MAC7E,CAkGA,SAAS2L,GAAWvL,EAAWC,EAAUuL,EAAQ7W,QAC/B,IAAZA,IACFA,EAAU,CAAE,GAEd,MAAM8W,eACJA,GAAiB,EAAIC,eACrBA,GAAiB,EAAIC,cACrBA,EAA0C,mBAAnBC,eAA6BC,YACpDA,EAA8C,mBAAzBC,qBAAmCC,eACxDA,GAAiB,GACfpX,EACEqX,EAAc3F,GAAcrG,GAC5BiM,EAAYR,GAAkBC,EAAiB,IAAKM,EAAc7G,GAAqB6G,GAAe,MAAQ7G,GAAqBlF,IAAa,GACtJgM,EAAUC,SAAQ5B,IAChBmB,GAAkBnB,EAASrT,iBAAiB,SAAUuU,EAAQ,CAC5DW,SAAS,IAEXT,GAAkBpB,EAASrT,iBAAiB,SAAUuU,EAAO,IAE/D,MAAMY,EAAYJ,GAAeH,EAlHnC,SAAqBpK,EAAS4K,GAC5B,IACIC,EADAC,EAAK,KAET,MAAMxW,EAAO+L,EAAmBL,GAChC,SAAS+K,IACP,IAAIC,EACJC,aAAaJ,GACC,OAAbG,EAAMF,IAAeE,EAAIE,aAC1BJ,EAAK,IACT,CA2EE,OA1EA,SAASK,EAAQC,EAAMC,QACR,IAATD,IACFA,GAAO,QAES,IAAdC,IACFA,EAAY,GAEdN,IACA,MAAMO,EAA2BtL,EAAQlJ,yBACnCT,KACJA,EAAIC,IACJA,EAAGmB,MACHA,EAAK0G,OACLA,GACEmN,EAIJ,GAHKF,GACHR,KAEGnT,IAAU0G,EACb,OAEF,MAKMjL,EAAU,CACdqY,YANevZ,EAAMsE,GAIQ,OAHZtE,EAAMsC,EAAKsS,aAAevQ,EAAOoB,IAGC,OAFjCzF,EAAMsC,EAAKuS,cAAgBvQ,EAAM6H,IAEuB,OAD1DnM,EAAMqE,GACyE,KAG/FgV,UAAWra,EAAI,EAAGE,EAAI,EAAGma,KAAe,GAE1C,IAAIG,GAAgB,EACpB,SAASC,EAAcvV,GACrB,MAAMwV,EAAQxV,EAAQ,GAAGyV,kBACzB,GAAID,IAAUL,EAAW,CACvB,IAAKG,EACH,OAAOL,IAEJO,EAOHP,GAAQ,EAAOO,GAJfb,EAAYe,YAAW,KACrBT,GAAQ,EAAO,KAAK,GACnB,IAIb,CACoB,IAAVO,GAAgB7B,GAAcyB,EAA0BtL,EAAQlJ,0BAQlEqU,IAEFK,GAAgB,CACtB,CAII,IACEV,EAAK,IAAIT,qBAAqBoB,EAAe,IACxCvY,EAEHoB,KAAMA,EAAK8M,eAEd,CAAC,MAAOjT,GACP2c,EAAK,IAAIT,qBAAqBoB,EAAevY,EACnD,CACI4X,EAAGe,QAAQ7L,EACf,CACEmL,EAAQ,GACDJ,CACT,CA6BiDe,CAAYvB,EAAaR,GAAU,KAClF,IAsBIgC,EAtBAC,GAAmB,EACnBC,EAAiB,KACjB/B,IACF+B,EAAiB,IAAI9B,gBAAe9L,IAClC,IAAK6N,GAAc7N,EACf6N,GAAcA,EAAWnd,SAAWwb,GAAe0B,IAGrDA,EAAeE,UAAU3N,GACzB4N,qBAAqBJ,GACrBA,EAAiBK,uBAAsB,KACrC,IAAIC,EACkC,OAArCA,EAAkBL,IAA2BK,EAAgBT,QAAQrN,EAAS,KAGnFuL,GAAQ,IAENQ,IAAgBD,GAClB2B,EAAeJ,QAAQtB,GAEzB0B,EAAeJ,QAAQrN,IAGzB,IAAI+N,EAAcjC,EAAiBxT,GAAsByH,GAAa,KAatE,OAZI+L,GAGJ,SAASkC,IACP,MAAMC,EAAc3V,GAAsByH,GACtCgO,IAAgB1C,GAAc0C,EAAaE,IAC7C1C,IAEFwC,EAAcE,EACdV,EAAUM,sBAAsBG,EACpC,CATIA,GAUFzC,IACO,KACL,IAAI2C,EACJlC,EAAUC,SAAQ5B,IAChBmB,GAAkBnB,EAAShR,oBAAoB,SAAUkS,GACzDE,GAAkBpB,EAAShR,oBAAoB,SAAUkS,EAAO,IAErD,MAAbY,GAAqBA,IACkB,OAAtC+B,EAAmBT,IAA2BS,EAAiBxB,aAChEe,EAAiB,KACb3B,GACF8B,qBAAqBL,EAC3B,CAEA,CAmBA,MAAMY,GF2GS,SAAUzZ,GAIvB,YAHgB,IAAZA,IACFA,EAAU,GAEL,CACLxD,KAAM,SACNwD,UACA,QAAM0Z,CAAG1N,GACP,IAAI2N,EAAuBC,EAC3B,MAAMtQ,EACJA,EAACC,EACDA,EAACW,UACDA,EAAS2P,eACTA,GACE7N,EACE8N,QA9DZpS,eAAoCsE,EAAOhM,GACzC,MAAMkK,UACJA,EAASgC,SACTA,EAAQE,SACRA,GACEJ,EACEZ,QAA+B,MAAlBc,EAASwK,WAAgB,EAASxK,EAASwK,MAAMtK,EAASd,WACvEP,EAAOd,EAAQC,GACfW,EAAYT,EAAaF,GACzBwB,EAAwC,MAA3BlB,EAAYN,GACzB6P,EAAgB,CAAC,OAAQ,OAAOtP,SAASM,IAAQ,EAAK,EACtDiP,EAAiB5O,GAAOM,GAAe,EAAG,EAC1CuO,EAAWlQ,EAAS/J,EAASgM,GAGnC,IAAIkO,SACFA,EAAQC,UACRA,EAAS3O,cACTA,GACsB,iBAAbyO,EAAwB,CACjCC,SAAUD,EACVE,UAAW,EACX3O,cAAe,MACb,CACF0O,SAAUD,EAASC,UAAY,EAC/BC,UAAWF,EAASE,WAAa,EACjC3O,cAAeyO,EAASzO,eAK1B,OAHIX,GAAsC,iBAAlBW,IACtB2O,EAA0B,QAAdtP,GAAwC,EAAlBW,EAAqBA,GAElDE,EAAa,CAClBpC,EAAG6Q,EAAYH,EACfzQ,EAAG2Q,EAAWH,GACZ,CACFzQ,EAAG4Q,EAAWH,EACdxQ,EAAG4Q,EAAYH,EAEnB,CAwB+BI,CAAqBpO,EAAOhM,GAIrD,OAAIkK,KAAkE,OAAlDyP,EAAwBE,EAAeJ,aAAkB,EAASE,EAAsBzP,YAAgE,OAAjD0P,EAAwBC,EAAeQ,QAAkBT,EAAsBU,gBACjM,CAAE,EAEJ,CACLhR,EAAGA,EAAIwQ,EAAWxQ,EAClBC,EAAGA,EAAIuQ,EAAWvQ,EAClB6M,KAAM,IACD0D,EACH5P,aAGV,EAEA,EE5HMqQ,GFmIQ,SAAUva,GAItB,YAHgB,IAAZA,IACFA,EAAU,CAAE,GAEP,CACLxD,KAAM,QACNwD,UACA,QAAM0Z,CAAG1N,GACP,MAAM1C,EACJA,EAACC,EACDA,EAACW,UACDA,GACE8B,GAEFkO,SAAUM,GAAgB,EAC1BL,UAAWM,GAAiB,EAAKC,QACjCA,EAAU,CACRhB,GAAIvO,IACF,IAAI7B,EACFA,EAACC,EACDA,GACE4B,EACJ,MAAO,CACL7B,IACAC,IACD,MAGFoR,GACD5Q,EAAS/J,EAASgM,GAChBF,EAAS,CACbxC,IACAC,KAEI9D,QAAiBsG,EAAeC,EAAO2O,GACvCR,EAAY3P,EAAYP,EAAQC,IAChCgQ,EAAW7P,EAAgB8P,GACjC,IAAIS,EAAgB9O,EAAOoO,GACvBW,EAAiB/O,EAAOqO,GAC5B,GAAIK,EAAe,CACjB,MACMM,EAAuB,MAAbZ,EAAmB,SAAW,QAG9CU,EAAgB9Q,EAFJ8Q,EAAgBnV,EAFC,MAAbyU,EAAmB,MAAQ,QAIhBU,EADfA,EAAgBnV,EAASqV,GAE7C,CACM,GAAIL,EAAgB,CAClB,MACMK,EAAwB,MAAdX,EAAoB,SAAW,QAG/CU,EAAiB/Q,EAFL+Q,EAAiBpV,EAFC,MAAd0U,EAAoB,MAAQ,QAIhBU,EADhBA,EAAiBpV,EAASqV,GAE9C,CACM,MAAMC,EAAgBL,EAAQhB,GAAG,IAC5B1N,EACHkO,CAACA,GAAWU,EACZT,CAACA,GAAYU,IAEf,MAAO,IACFE,EACH3E,KAAM,CACJ9M,EAAGyR,EAAczR,EAAIA,EACrBC,EAAGwR,EAAcxR,EAAIA,EACrByR,QAAS,CACPd,CAACA,GAAWM,EACZL,CAACA,GAAYM,IAIzB,EAEA,EElMMQ,GF9RO,SAAUjb,GAIrB,YAHgB,IAAZA,IACFA,EAAU,CAAE,GAEP,CACLxD,KAAM,OACNwD,UACA,QAAM0Z,CAAG1N,GACP,IAAI4N,EAAuBsB,EAC3B,MAAMhR,UACJA,EAAS2P,eACTA,EAAc1N,MACdA,EAAKgP,iBACLA,EAAgBjP,SAChBA,EAAQE,SACRA,GACEJ,GAEFkO,SAAUM,GAAgB,EAC1BL,UAAWM,GAAiB,EAC5BW,mBAAoBC,EAA2BC,iBAC/CA,EAAmB,UAASC,0BAC5BA,EAA4B,OAAMC,cAClCA,GAAgB,KACbb,GACD5Q,EAAS/J,EAASgM,GAMtB,GAAsD,OAAjD4N,EAAwBC,EAAeQ,QAAkBT,EAAsBU,gBAClF,MAAO,CAAE,EAEX,MAAMvP,EAAOd,EAAQC,GACfuR,EAAkBjR,EAAY2Q,GAC9BO,EAAkBzR,EAAQkR,KAAsBA,EAChD/P,QAA+B,MAAlBc,EAASwK,WAAgB,EAASxK,EAASwK,MAAMtK,EAASd,WACvE8P,EAAqBC,IAAgCK,IAAoBF,EAAgB,CAAC1Q,EAAqBqQ,ID7X3H,SAA+BjR,GAC7B,MAAMyR,EAAoB7Q,EAAqBZ,GAC/C,MAAO,CAACS,EAA8BT,GAAYyR,EAAmBhR,EAA8BgR,GACrG,CC0XgJC,CAAsBT,IAC1JU,EAA6D,SAA9BN,GAChCF,GAA+BQ,GAClCT,EAAmBU,QDxW3B,SAAmC5R,EAAWsR,EAAexH,EAAW5I,GACtE,MAAMP,EAAYT,EAAaF,GAC/B,IAAIuG,EAnBN,SAAqB1F,EAAMgR,EAAS3Q,GAClC,MAAM4Q,EAAK,CAAC,OAAQ,SACdC,EAAK,CAAC,QAAS,QACfC,EAAK,CAAC,MAAO,UACbC,EAAK,CAAC,SAAU,OACtB,OAAQpR,GACN,IAAK,MACL,IAAK,SACH,OAAIK,EAAY2Q,EAAUE,EAAKD,EACxBD,EAAUC,EAAKC,EACxB,IAAK,OACL,IAAK,QACH,OAAOF,EAAUG,EAAKC,EACxB,QACE,MAAO,GAEb,CAGaC,CAAYnS,EAAQC,GAA0B,UAAd8J,EAAuB5I,GAOlE,OANIP,IACF4F,EAAOA,EAAKlU,KAAIwO,GAAQA,EAAO,IAAMF,IACjC2Q,IACF/K,EAAOA,EAAKQ,OAAOR,EAAKlU,IAAIoO,MAGzB8F,CACT,CC8VmC4L,CAA0BlB,EAAkBK,EAAeD,EAA2BnQ,IAEnH,MAAMkR,EAAa,CAACnB,KAAqBC,GACnC3V,QAAiBsG,EAAeC,EAAO2O,GACvC4B,EAAY,GAClB,IAAIC,GAAiE,OAA/CtB,EAAuBrB,EAAeoB,WAAgB,EAASC,EAAqBqB,YAAc,GAIxH,GAHI/B,GACF+B,EAAUT,KAAKrW,EAASsF,IAEtB0P,EAAgB,CAClB,MAAMgC,EDvZd,SAA2BvS,EAAWiC,EAAOf,QAC/B,IAARA,IACFA,GAAM,GAER,MAAMP,EAAYT,EAAaF,GACzBsB,EAAgBd,EAAiBR,GACjC9N,EAASmO,EAAciB,GAC7B,IAAIkR,EAAsC,MAAlBlR,EAAwBX,KAAeO,EAAM,MAAQ,SAAW,QAAU,OAAuB,UAAdP,EAAwB,SAAW,MAI9I,OAHIsB,EAAMd,UAAUjP,GAAU+P,EAAMb,SAASlP,KAC3CsgB,EAAoB5R,EAAqB4R,IAEpC,CAACA,EAAmB5R,EAAqB4R,GAClD,CC2YsBC,CAAkBzS,EAAWiC,EAAOf,GAClDmR,EAAUT,KAAKrW,EAASgX,EAAM,IAAKhX,EAASgX,EAAM,IAC1D,CAOM,GANAD,EAAgB,IAAIA,EAAe,CACjCtS,YACAqS,eAIGA,EAAUK,OAAM7R,GAAQA,GAAQ,IAAI,CACvC,IAAI8R,EAAuBC,EAC3B,MAAMC,IAA+D,OAAhDF,EAAwBhD,EAAeoB,WAAgB,EAAS4B,EAAsBG,QAAU,GAAK,EACpHC,EAAgBX,EAAWS,GACjC,GAAIE,EAEF,MAAO,CACL7G,KAAM,CACJ4G,MAAOD,EACPR,UAAWC,GAEbU,MAAO,CACLhT,UAAW+S,IAOjB,IAAIE,EAAgJ,OAA9HL,EAAwBN,EAAc9M,QAAO9Q,GAAKA,EAAE2d,UAAU,IAAM,IAAGa,MAAK,CAAC7e,EAAG1D,IAAM0D,EAAEge,UAAU,GAAK1hB,EAAE0hB,UAAU,KAAI,SAAc,EAASO,EAAsB5S,UAG1L,IAAKiT,EACH,OAAQ7B,GACN,IAAK,UACH,CACE,IAAI+B,EACJ,MAAMnT,EASmJ,OATtImT,EAAyBb,EAAc9M,QAAO9Q,IAC/D,GAAIid,EAA8B,CAChC,MAAMyB,EAAkB9S,EAAY5L,EAAEsL,WACtC,OAAOoT,IAAoB7B,GAGP,MAApB6B,CACpB,CACkB,OAAO,CAAI,IACV/gB,KAAIqC,GAAK,CAACA,EAAEsL,UAAWtL,EAAE2d,UAAU7M,QAAOjK,GAAYA,EAAW,IAAGwQ,QAAO,CAACsH,EAAK9X,IAAa8X,EAAM9X,GAAU,MAAK2X,MAAK,CAAC7e,EAAG1D,IAAM0D,EAAE,GAAK1D,EAAE,KAAI,SAAc,EAASwiB,EAAuB,GAC5LnT,IACFiT,EAAiBjT,GAEnB,KAChB,CACY,IAAK,mBACHiT,EAAiBhC,EAIvB,GAAIjR,IAAciT,EAChB,MAAO,CACLD,MAAO,CACLhT,UAAWiT,GAIzB,CACM,MAAO,CAAE,CACf,EAEA,EE0MMK,GFoKa,SAAUxd,GAI3B,YAHgB,IAAZA,IACFA,EAAU,CAAE,GAEP,CACLA,UACA,EAAA0Z,CAAG1N,GACD,MAAM1C,EACJA,EAACC,EACDA,EAACW,UACDA,EAASiC,MACTA,EAAK0N,eACLA,GACE7N,GACEyN,OACJA,EAAS,EACTS,SAAUM,GAAgB,EAC1BL,UAAWM,GAAiB,GAC1B1Q,EAAS/J,EAASgM,GAChBF,EAAS,CACbxC,IACAC,KAEI4Q,EAAY3P,EAAYN,GACxBgQ,EAAW7P,EAAgB8P,GACjC,IAAIS,EAAgB9O,EAAOoO,GACvBW,EAAiB/O,EAAOqO,GAC5B,MAAMsD,EAAY1T,EAAS0P,EAAQzN,GAC7B0R,EAAsC,iBAAdD,EAAyB,CACrDvD,SAAUuD,EACVtD,UAAW,GACT,CACFD,SAAU,EACVC,UAAW,KACRsD,GAEL,GAAIjD,EAAe,CACjB,MAAMmD,EAAmB,MAAbzD,EAAmB,SAAW,QACpC0D,EAAWzR,EAAMd,UAAU6O,GAAY/N,EAAMb,SAASqS,GAAOD,EAAexD,SAC5E2D,EAAW1R,EAAMd,UAAU6O,GAAY/N,EAAMd,UAAUsS,GAAOD,EAAexD,SAC/EU,EAAgBgD,EAClBhD,EAAgBgD,EACPhD,EAAgBiD,IACzBjD,EAAgBiD,EAE1B,CACM,GAAIpD,EAAgB,CAClB,IAAId,EAAuBmE,EAC3B,MAAMH,EAAmB,MAAbzD,EAAmB,QAAU,SACnC6D,EAAe,CAAC,MAAO,QAAQtT,SAASR,EAAQC,IAChD0T,EAAWzR,EAAMd,UAAU8O,GAAahO,EAAMb,SAASqS,IAAQI,IAAmE,OAAlDpE,EAAwBE,EAAeJ,aAAkB,EAASE,EAAsBQ,KAAmB,IAAM4D,EAAe,EAAIL,EAAevD,WACnO0D,EAAW1R,EAAMd,UAAU8O,GAAahO,EAAMd,UAAUsS,IAAQI,EAAe,GAAyD,OAAnDD,EAAyBjE,EAAeJ,aAAkB,EAASqE,EAAuB3D,KAAe,IAAM4D,EAAeL,EAAevD,UAAY,GAChPU,EAAiB+C,EACnB/C,EAAiB+C,EACR/C,EAAiBgD,IAC1BhD,EAAiBgD,EAE3B,CACM,MAAO,CACL3D,CAACA,GAAWU,EACZT,CAACA,GAAYU,EAErB,EAEA,EE9NMmD,GAAkB,CAAC3S,EAAWC,EAAUtL,KAI5C,MAAMoV,EAAQ,IAAI9Y,IACZ2hB,EAAgB,CACpB/R,eACGlM,GAECke,EAAoB,IACrBD,EAAc/R,SACjB4J,GAAIV,GAEN,MFvqBsB1N,OAAO2D,EAAWC,EAAU6S,KAClD,MAAMjU,UACJA,EAAY,SAAQmC,SACpBA,EAAW,WAAU+R,WACrBA,EAAa,GAAElS,SACfA,GACEiS,EACEE,EAAkBD,EAAW1O,OAAO4O,SACpClT,QAA+B,MAAlBc,EAASwK,WAAgB,EAASxK,EAASwK,MAAMpL,IACpE,IAAIa,QAAcD,EAASiK,gBAAgB,CACzC9K,YACAC,WACAe,cAEE/C,EACFA,EAACC,EACDA,GACE2B,EAA2BiB,EAAOjC,EAAWkB,GAC7CmT,EAAoBrU,EACpB2P,EAAiB,CAAE,EACnB2E,EAAa,EACjB,IAAK,IAAI/hB,EAAI,EAAGA,EAAI4hB,EAAgBjiB,OAAQK,IAAK,CAC/C,MAAMD,KACJA,EAAIkd,GACJA,GACE2E,EAAgB5hB,IAElB6M,EAAGmV,EACHlV,EAAGmV,EAAKtI,KACRA,EAAI8G,MACJA,SACQxD,EAAG,CACXpQ,IACAC,IACA4R,iBAAkBjR,EAClBA,UAAWqU,EACXlS,WACAwN,iBACA1N,QACAD,WACAE,SAAU,CACRf,YACAC,cAGJhC,EAAa,MAATmV,EAAgBA,EAAQnV,EAC5BC,EAAa,MAATmV,EAAgBA,EAAQnV,EAC5BsQ,EAAiB,IACZA,EACHrd,CAACA,GAAO,IACHqd,EAAerd,MACf4Z,IAGH8G,GAASsB,GAAc,KACzBA,IACqB,iBAAVtB,IACLA,EAAMhT,YACRqU,EAAoBrB,EAAMhT,WAExBgT,EAAM/Q,QACRA,GAAwB,IAAhB+Q,EAAM/Q,YAAuBD,EAASiK,gBAAgB,CAC5D9K,YACAC,WACAe,aACG6Q,EAAM/Q,SAGX7C,IACAC,KACE2B,EAA2BiB,EAAOoS,EAAmBnT,KAE3D3O,GAAM,EAEZ,CACE,MAAO,CACL6M,IACAC,IACAW,UAAWqU,EACXlS,WACAwN,iBACD,EEslBM8E,CAAkBtT,EAAWC,EAAU,IACzC2S,EACH/R,SAAUgS,GACV,ECxsBJ,IAAIU,GAMS,MAAAC,GAAgB,CAAChjB,EAAqBmE,EAA0B,MAC3E,MAAMkG,IAAEA,EAAM,GAAE4Y,MAAEA,EAAQ,IAAG5e,QAAEA,EAAO8T,UAAEA,EAAY,SAAQ/T,KAAEA,EAAO,QAAOhH,UAAEA,EAAS8lB,OAAEA,EAAMC,QAAEA,EAAOC,OAAEA,EAAMC,UAAEA,GAAclf,EAC1H5E,EAAMR,EAAU,WACtB,GAAIsL,GAAOhG,EAAS,CACb0e,KACHA,GAAmBxe,SAASC,cAAc,OAC1CD,SAAS6D,KAAKxD,YAAYme,KAE5B,MAAM1Z,EAAWjM,GAAa2lB,GACxBO,EAAU/e,SAASC,cAAc,OAQvC,IAAI+e,EACAC,EACAxH,EATJsH,EAAQ7e,UAAUC,IAAInF,EAAIP,IAAK,SAAU,eACrCqF,EACFif,EAAQ1e,YAAYP,GAEbgG,IACPiZ,EAAQ3e,YAAc0F,GAKxB,MAAM2Q,EAAS,KACTgB,GAASA,IACbmG,GAAgBniB,EAAQsjB,EAAS,CAC/BjV,UAAW8J,EACXoK,WAAY,CAACnD,KAAQV,GAAM,CAAEG,QAAS8C,OAAiB/D,GA/B9C,MAgCR6F,MAAK,EAAGhW,IAAGC,QACZhM,OAAOkF,OAAO0c,EAAQjc,MAAO,CAC3BC,KAAM,GAAGmG,MACTlG,IAAK,GAAGmG,OACR,GACF,EAEEgW,EAAuB,KAC3BJ,EAAQ7e,UAAUC,IAAI,UAClB2E,EAASiB,SAASgZ,IACpBja,EAASsa,YAAYL,GAEnBtH,GAASA,IACToH,GAAQA,GAAQ,EAGhBQ,EAAc,CAACC,GAAiB,KAChCL,GAAYtH,aAAasH,GAE7BD,EAAY1G,YAAW,KACrB,GAAIqG,EAAQ,CACV,MAAMY,EAAQZ,EAAOW,GACrB,IAAKA,GAASC,EAAO,OAEvBza,EAASzE,YAAY0e,GACrBA,EAAQxa,oBAAoB,gBAAiB4a,GAC7CJ,EAAQ7e,UAAUqF,OAAO,UAEzBkS,EAAUjB,GAAW/a,EAAQsjB,EAAStI,GAEtCsI,EAAQ7e,UAAUqF,OAAO,cAAc,GACtCmZ,EAAM,EAELc,EAAe,CAACF,GAAiB,KACjCN,GAAWrH,aAAaqH,GAC5BC,EAAa3G,YAAW,KACtB,GAAIsG,EAAS,CACX,MAAMW,EAAQX,EAAQU,GACtB,IAAKA,GAASC,EAAO,OCzGM,EAACE,EAAsBC,EAAkBC,EAAqB/f,EAA6CggB,KAE9IH,EAAQvd,iBAAiB,gBAAiByd,EAAS/f,GAE5C0Y,YAAW,KAChBqH,GAAS,GACRD,EAAS,EDqGNG,CAAsBd,EAAS,IAAKI,EAAsB,CAAEW,MAAM,IAClEf,EAAQ7e,UAAUC,IAAI,cAAc,GACnCue,EAAM,EAyBLqB,EAAe,KACnB,MAAMza,EAASzK,IACbA,EAAEqK,kBACFsa,GAAa,EAAM,EAEfQ,EAAQnlB,IACZA,EAAEqK,kBACFma,IACArf,SAASuE,oBAAoB,QAASe,GACtCtF,SAASkC,iBAAiB,QAASoD,EAAO,CAAEwa,MAAM,GAAO,EAE3D,MAAO,CACLG,QAAS,KACPlB,EAAQ7c,iBAAiB,SAAUrH,GAAaA,EAAEqK,oBAClDzJ,EAAOyG,iBAAiB,QAAS8d,EAAK,EAExCA,KAAMX,EACNa,KAAM,CAACZ,GAAiB,KACtBE,EAAaF,GACbtf,SAASuE,oBAAoB,QAASe,EAAM,EAE9C6a,QAAS,KACP1kB,EAAO8I,oBAAoB,QAASyb,GACpChgB,SAASuE,oBAAoB,QAASe,EAAM,EAE/C,EAEG8a,EAAiB,CACrBC,MAlDmB,KACnB,MAAMC,EAAiB,CAAC7kB,EAAQsjB,GAC1BzZ,EAAQka,EAAae,UAAKC,GAAW,GACrCC,EAAOpB,EAAYkB,UAAKC,GAAW,GAOzC,MAAO,CACLP,QAPc,KACd,IAAK,MAAMS,KAAYJ,EACrBI,EAASxe,iBAAiB,aAAcue,GACxCC,EAASxe,iBAAiB,aAAcoD,IAK1C0a,KAAMX,EACNa,KAAMV,EACNW,QAAS,KACP,IAAK,MAAMO,KAAYJ,EACrBI,EAASnc,oBAAoB,aAAckc,GAC3CC,EAASnc,oBAAoB,aAAce,IAGhD,EA+BDqb,MAAOZ,IAGHE,QAAEA,EAAOD,KAAEA,EAAIE,KAAEA,EAAMC,QAASS,GAAmBR,EAAevgB,KACxEogB,IAEA,MAAME,EAAU,KACdD,GAAK,GACDpB,GAAWA,IACf8B,IACInJ,GAASA,IACbsH,EAAQxZ,QAAQ,EAElB,MAAO,CACLya,OACAE,OACAC,WAGJ,OAAO,IAAI,EEpLG,SAAAU,GAAyE1iB,EAAM1D,EAAMqmB,EAAY,EAAGC,GAAqB,GACvI,MAAQ7X,EAAG8X,EAAO7X,EAAG8X,EAAOC,GAAIC,EAAOC,GAAIC,GAAUljB,GAC7C+K,EAAGoY,EAAOnY,EAAGoY,EAAOL,GAAIM,EAAOJ,GAAIK,GAAUhnB,EAErD,IAAIinB,EACAC,EASJ,OARIZ,GACFW,EAAcP,EAAQG,EAAQR,GAAaE,EAAQF,EAAYU,EAC/DG,EAAcN,EAAQE,EAAQT,GAAaG,EAAQH,EAAYW,IAG/DC,EAAcP,GAASG,EAAQR,GAAaE,EAAQF,GAAaU,EACjEG,EAAcN,GAASE,EAAQT,GAAaG,EAAQH,GAAaW,KAE1DC,GAAeC,EAC1B,CAcA,MACaC,GAAsBre,IACjC,IAAIR,KAAEA,EAAIC,IAAEA,EAAGmB,MAAEA,EAAK0G,OAAEA,GAAWtH,EACnC,MAAM+P,YAAEA,EAAWC,aAAEA,GAAiBvT,SAAS2D,gBAC/C,IAAIke,GAAc,EACdC,GAAa,EAiBjB,OAhBI/e,EAAOoB,EAAQmP,GACjBvQ,EAAOuQ,EAAcnP,EAPD,EAQpB0d,GAAc,GAEP9e,EAAO,IACdA,EAXoB,EAYpB8e,GAAc,GAEZ7e,EAAM6H,EAAS0I,GACjBvQ,EAAMuQ,EAAe1I,EAfD,EAgBpBiX,GAAa,GAEN9e,EAAM,IACbA,EAnBoB,EAoBpB8e,GAAa,GAER,CACL/e,OACAC,MACA6e,cACAC,aACD,ECvDUC,GAAuB,CAACC,EAAoDpiB,EAAgD,MACvI,MAAMqiB,EAAwBC,OAAO,mBAE/BC,EAAuC,IAAIloB,IAC3CmoB,EAAW,IAAIvL,gBAAgBjU,IAGjChD,EAAQyiB,iBACLzf,EAAQgM,MAAM0T,IACf,MAAM7mB,EAAS6mB,EAAM7mB,OACf8mB,EAAY9mB,EAAOwmB,GAEzB,OADAxmB,EAAOwmB,IAAyB,GACxBM,CAAS,KAKrBP,EAASpf,EAAQ,IAEb4f,EAAgBJ,EAAS7J,QAC/B6J,EAAS7J,QAAU,CAAC9c,EAA6BmE,KAC/CuiB,EAAWhiB,IAAI1E,GACf+mB,EAAcC,KAAKL,EAAU3mB,EAAQmE,EAAQ,EAG/C,MAAM8iB,EAAkBN,EAASvJ,UACjCuJ,EAASvJ,UAAapd,IAChB0mB,EAAW7nB,IAAImB,KACjB0mB,EAAW3lB,OAAOf,GAClBA,EAAOwmB,QAAyBzB,GAElCkC,EAAgBD,KAAKL,EAAU3mB,EAAO,EAGxC,MAAMknB,EAAmBP,EAASxK,WAQlC,OAPAwK,EAASxK,WAAa,KACpB,IAAK,MAAMnc,KAAU0mB,EAAWS,SAC9BnnB,EAAOwmB,QAAyBzB,EAElCmC,EAAiBF,KAAKL,EAAS,EAG1BA,CAAQ,EC1CD,SAAAS,GAAmCC,EAAkBC,GACnED,EAAI5gB,iBAAiB,SAAU6gB,GAC/BtN,KAAKuN,cAActH,KAAK,CAACoH,EAAKC,GAChC,UAEgBE,KACd,IAAK,IAAI5mB,EAAI,EAAGA,EAAIoZ,KAAKuN,cAAchnB,OAAQK,IAAK,CAClD,MAAOymB,EAAKC,GAAUtN,KAAKuN,cAAc3mB,GACzCymB,EAAIve,oBAAoB,SAAUwe,GAEpCtN,KAAKuN,cAAgB,EACvB,OCdaE,GAAW,IAAMvlB,KAAKwlB,SAAShkB,SAAS,IAAI0B,MAAM,GAClDuiB,GAAW,CAAoC9J,EAAOoF,KACjE,IAAI2E,EACJ,OAAO,YAAwBC,GACzBD,GACF1L,aAAa0L,GAEfA,EAAY/K,YAAW,KACrBgB,EAAGiK,MAAM9N,KAAM6N,EAAK,GACnB5E,EACJ,CAAA,ECNG8E,GAAYC,EAAMC,OAAO,aACzBC,GAAYF,EAAMC,OAAO,mBACzBE,GAAQH,EAAMC,OAAO,eACrBG,GAAaJ,EAAMC,OAAO,qBAE1B,MAAOI,WAAwBH,GACnCI,eACAA,gBAA0BnrB,EAASC,UACnCkrB,aAAeP,GAAUQ,MAAMC,WAE/BF,uBAA2D,CAACH,GAAOC,GAAYF,IAC/EI,yBACAA,oBAEA,aAAOG,CAAOC,GACZ,MAAM3W,EAAOxN,SAASC,cAAcwV,KAAK2O,SAIzC,OAHI3O,KAAK4O,WACP7W,EAAKtN,UAAUC,IAAIsV,KAAK4O,WAEnB7W,EAGT,QAAA8W,CAAS1H,EAAenf,EAAe8mB,GACrC,MAAO3f,GAAS6Q,KAAK5O,SAAS2d,KAAK5H,GACnC,IAAKhY,EAAO,CACV,MAAM6f,EAAehP,KAAK/Z,OAAOwoB,OAAOzO,KAAKlb,QAAQkqB,aAAa7rB,UAAY,SAC9E6c,KAAKpV,YAAYokB,GAEnBC,MAAMJ,SAAS1H,EAAOnf,EAAO8mB,GAGxB,QAAAI,CAASC,GACd,GAA6B,IAAzBnP,KAAK5O,SAAS7K,OAChB,GAAiC,MAA7ByZ,KAAKlb,QAAQkqB,aAAsB,CACrC,MAAM7f,EAAQ6Q,KAAK/Z,OAAOwoB,OAAOzO,KAAKlb,QAAQkqB,aAAa7rB,UAC3D6c,KAAKpV,YAAYuE,QAGjB6Q,KAAKlQ,SAILkQ,KAAK5O,SAAS7K,OAAS,GAAkB,MAAbyZ,KAAKoP,MAAgBpP,KAAKqP,eACxDrP,KAAKoP,KAAKE,aAAatP,MACvBA,KAAKoP,KAAKtf,UAIP,sBAAAyf,GAKLvP,KAAK5O,SAASsQ,SAASvS,IACL6Q,KAAKlb,QAAQ0qB,gBAAgBrW,MAC1C2V,GAAuC3f,aAAiB2f,MAKvD3f,EAAMrK,QAAQ2qB,QAAU1B,GAAUQ,MAAMC,YAEtCrf,EAAMxK,kBAAkB0pB,IACR,MAAdlf,EAAMigB,MACRjgB,EAAMxK,OAAO+qB,WAAWvgB,GAER,MAAdA,EAAMwgB,MACRxgB,EAAMxK,OAAO+qB,WAAWvgB,EAAMwgB,QAId,MAAdxgB,EAAMigB,MACRpP,KAAK0P,WAAWvgB,GAEA,MAAdA,EAAMwgB,MACR3P,KAAK0P,WAAWvgB,EAAMwgB,OAG1BxgB,EAAMxK,OAAOirB,UAENzgB,aAAiB4e,GAAU8B,WAClC1gB,EAAMygB,SAGNzgB,EAAMW,cCnFd,MAAMie,GAAYC,EAAMC,OAAO,aACzBE,GAAQH,EAAMC,OAAO,eAErB,MAAO6B,WAAsB3B,GACjC,WAAA4B,CAAYppB,EAAmCqB,GAC7C,MAAMgoB,EAA8B,iBAATrpB,EAAoBqZ,KAAK/Z,OAAOwoB,OAAO9nB,EAAMqB,GAASrB,EACjF,GAAIqpB,aAAuBjC,GAAU8B,WAAY,CAM/C,GAAIG,EAAYlrB,QAAQ3B,WAAaA,EAASS,eAAgB,CAC5D,MAAMqsB,EAAajQ,KAAKrb,OACxB,GAAIsrB,EAAWnrB,QAAQ3B,WAAaA,EAASS,eAAgB,CAI3D,GAHkB,MAAdqsB,GACFA,EAAWC,aAAaF,EAAahQ,KAAK2P,KAAO,KAAO3P,KAAKoP,MAE3Da,EAAWnrB,QAAQ3B,WAAaA,EAASS,eAAgB,CAC3D,IAAIusB,EAA0BnQ,KAC9B,KAAOmQ,GAAO,CACZ,MAAMf,EAAOe,EAAMf,KACnBY,EAAYplB,YAAYulB,GACxBA,EAAQf,QAIVY,EAAYplB,YAAYoV,MAG1B,GAAIiQ,GAAsC,IAAxBA,EAAW1pB,SAAgB,CAC3C0pB,EAAWngB,SACPmgB,EAAWtrB,OAAOG,QAAQ3B,WAAaA,EAASQ,WAA4C,IAA/BssB,EAAWtrB,OAAO4B,UACjF0pB,EAAWtrB,OAAOmL,SAEpB,MAAMsgB,EAAUH,EAAWtrB,OAAOA,OAC9ByrB,EAAQtrB,QAAQ3B,WAAaA,EAASO,UAAwC,IAA5B0sB,EAAQhf,SAAS7K,QACrE6pB,EAAQtgB,eAKM,MAAdmgB,GACFA,EAAWC,aAAaF,EAAahQ,KAAKoP,MAE5CY,EAAYplB,YAAYoV,MAE1B,OAAOgQ,EAGPhQ,KAAKsP,aAAaU,GAQtB,OALmB,MAAfhQ,KAAKrb,SACPqb,KAAKrb,OAAOurB,aAAaF,EAAahQ,KAAKoP,WAAQrE,GACnD/K,KAAKlQ,UAEPkQ,KAAKqQ,WAAWC,KAAKN,GACdA,EAGT,MAAAO,CAAO5pB,EAAcqB,GACnB,GAAIrB,IAASxD,EAASS,gBAAkBoc,KAAKrb,OAAOG,QAAQ3B,WAAawD,GAASqB,EAUhFinB,MAAMsB,OAAO5pB,EAAMqB,QATnB,IACoBlC,EAAeka,KAAM7c,EAASS,gBACtCgsB,SAEZ,MACEY,QAAQC,MAAM,iCCvEf,MAAMC,GAAoB1oB,IAAe2oB,OnBIhB7mB,EmBJgC9B,GnBILI,OAAO2K,MAAMjJ,IAAQ1B,OAAO0B,GAAO,EmBJrB9B,EAAQ,EnBIlD,IAAC8B,CmBJkD,ECQ5EqkB,GAAQH,EAAMC,OAAO,eACrBG,GAAaJ,EAAMC,OAAO,qBAE1B,MAAO2C,WAA6BvC,GACxCC,gBAAkBnrB,EAASS,eAC3B0qB,eAAiB,MACjBA,iBAAmB,sBACnBA,sBAAqC,IAAI9pB,IAAI,CAAC,WAAY,SAAU,SAAU,UAAW,YACzF8pB,oBAAqDH,GAGrDG,kBAAoB,IAAI9pB,IAAI,CAAC,mBAAoB,SAAU,WAC3D,mBAAOqsB,CAAaC,GAClB,IAAK,MAAMzjB,KAAS2S,KAAK+Q,WACvB,GAAID,EAAI3lB,WAAWkC,GACjB,OAAO,EAGX,OAAO,EAGT,aAAOohB,CAAOzmB,GACZ,MAAMgpB,QACJA,EAAOC,MACPA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,QACPA,EAAO/jB,MACPA,GACErF,EACE+P,EAAOkX,MAAMR,SAOnB,OANA1W,EAAK/G,QAAQggB,QAAUA,EACvBjZ,EAAK/G,QAAQigB,MAAQA,EACrBlZ,EAAK/G,QAAQkgB,MAAQA,EACrBnZ,EAAK/G,QAAQmgB,QAAU/jB,OAAOsjB,GAAiBS,IAC/CpZ,EAAK/G,QAAQogB,QAAUhkB,OAAOsjB,GAAiBU,IAC/C/jB,IAAU0K,EAAK/G,QAAQ3D,MAAQA,GACxB0K,EAGT,cAAOsZ,CAAQrH,GACb,MAAMgH,QAAEA,EAAOC,MAAEA,EAAKC,MAAEA,EAAKC,QAAEA,EAAOC,QAAEA,EAAO/jB,MAAEA,GAAU2c,EAAQhZ,QAC7DhJ,EAA6B,CACjCgpB,UACAC,QACAC,QACAC,QAAS/oB,OAAOsoB,GAAiBS,IACjCC,QAAShpB,OAAOsoB,GAAiBU,KAGnC,OADA/jB,IAAUrF,EAAMqF,MAAQA,GACjBrF,EAGT,WAAAspB,CAAYrrB,EAAoB+jB,EAAsB0E,GACpDO,MAAMhpB,EAAQ+jB,GACdA,EAAQ7Z,aAAa,kBAAmB/C,OAAOnH,EAAOsrB,cAGxD,cAAAC,CAAe7qB,EAAcqB,EAAYypB,GAAmB,GAC1D,GAAIA,EAAS,CACX,IAAKzR,KAAKlb,QAAQ+rB,aAAalqB,GAAO,OAClCqZ,KAAKrb,QAAUqb,KAAKrb,OAAOG,QAAQ3B,WAAaA,EAASQ,WAC3Dqc,KAAKrb,OAAO6sB,eAAe7qB,EAAMqB,OAGhC,CACH,IAAKgY,KAAKlb,QAAQ4sB,eAAe7sB,IAAI8B,GAAO,OAC5C,MAAMgrB,EAAW,QAAQhrB,IACrBqB,EACFgY,KAAKgK,QAAQ7Z,aAAawhB,EAAU3pB,GAGpCgY,KAAKgK,QAAQzY,gBAAgBogB,GAE3B3R,KAAKrb,QAAUqb,KAAKrb,OAAOG,QAAQ3B,WAAaA,EAASQ,WAC3Dqc,KAAKrb,OAAO6sB,eAAe7qB,EAAMqB,GAIrC,MAAM4pB,EAAS5R,KAAK6R,YAAY1D,GAAO,GACvC,IAAK,MAAMhf,KAASyiB,EACjBziB,EAAoBoQ,MAAQ,CAAE,EAInC,WAAIyR,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,SAAIC,GACF,OAAOjR,KAAKgK,QAAQhZ,QAAQigB,MAG9B,SAAIA,CAAMjpB,GACRgY,KAAKwR,eAAe,SAAUxpB,GAGhC,SAAIkpB,GACF,OAAOlR,KAAKgK,QAAQhZ,QAAQkgB,MAG9B,SAAIA,CAAMlpB,GACRgY,KAAKwR,eAAe,SAAUxpB,GAGhC,WAAImpB,GACF,OAAO/oB,OAAO4X,KAAKgK,QAAQhZ,QAAQmgB,SAGrC,WAAIA,CAAQnpB,GACVgY,KAAKwR,eAAe,UAAWxpB,GAGjC,WAAIopB,GACF,OAAOhpB,OAAO4X,KAAKgK,QAAQhZ,QAAQogB,SAGrC,WAAIA,CAAQppB,GACVgY,KAAKwR,eAAe,UAAWxpB,GAGjC,cAAA8pB,GAEE,OADchsB,EAAeka,KAAM7c,EAASG,WAC/ByuB,YAAYC,QAAQhS,KAAKkR,OAGxC,QAAAe,CAAS9K,EAAe5gB,EAAgBI,EAAcqB,GAQpD,GAP6B,IAAzBgY,KAAK5O,SAAS7K,SAChByZ,KAAKpV,YAAYoV,KAAK/Z,OAAOwoB,OAAOzO,KAAKlb,QAAQkqB,aAAa7rB,WAE9DoD,GAAU,GAEZ0oB,MAAMgD,SAAS9K,EAAO5gB,EAAQI,EAAMqB,GAEhCA,GAASA,EAAMqF,MAAO,CACxB,MAAMA,ECjJN,SAA0B6kB,GAC9B,MAAMC,EAAsC,CAAE,EAExCC,EAASF,EAAQG,OAAO/d,MAAM,KAEpC,IAAK,IAAI1N,EAAI,EAAGA,EAAIwrB,EAAO7rB,OAAQK,IAAK,CACtC,MAAMyG,EAAQ+kB,EAAOxrB,GAAGyrB,OACxB,IAAKhlB,EAAO,SAEZ,MAAMilB,EAAgBjlB,EAAM2kB,QAAQ,KACpC,IAAwB,IAApBM,EAAsB,SAE1B,MAAMC,EAAWllB,EAAMjC,MAAM,EAAGlD,KAAKD,IAAI,EAAGqqB,IAAgBD,OACtDrqB,EAAQqF,EAAMjC,MAAMlD,KAAKD,IAAI,EAAGqqB,EAAgB,IAAID,OAC1DF,EAAYI,GAAYvqB,EAG1B,OAAOmqB,CACT,CD+HoBK,CAAgBxqB,EAAMqF,OACpC,IAAK,MAAO1G,EAAMqB,KAAUN,OAAOyF,QAAQE,GACzC2S,KAAKwR,eAAe7qB,EAAMqB,GAAO,IAKvC,OAAAqpB,GACE,MAAMrpB,EAAQgY,KAAKlb,QAAQusB,QAAQrR,KAAKgK,SACxC,MAAO,CACL,CAAChK,KAAKlb,QAAQ3B,UAAW6E,GAI7B,UAAAqnB,GACE,MAAM6B,MAAEA,EAAKD,MAAEA,EAAKG,QAAEA,EAAOD,QAAEA,GAAYnR,KACrCoP,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK6B,QAAUA,GACf7B,EAAK8B,QAAUA,GACf9B,EAAKgC,UAAYA,GACjBhC,EAAK+B,UAAYA,EAIxB,QAAAjC,GACE,MAAMvqB,EAASqb,KAAKrb,OACd8tB,EAAYzS,KAAKlb,QAAQusB,QAAQrR,KAAKgK,SAE5C,GAAIhK,KAAK2P,MAAQ3P,KAAK2P,gBAAgBvB,GAAY,CAChD,MAAMsE,EAAa1S,KAAK/Z,OAAOwoB,OAAO,SACtCzO,KAAKpV,YAAYoV,KAAK2P,MACtB3P,KAAKpV,YAAY8nB,GAEnB,GAAe,OAAX/tB,GAAmBA,EAAOG,QAAQ3B,WAAaA,EAASQ,YAC1Dqc,KAAK2S,KAAKxvB,EAASQ,UAAW8uB,GAID,IAAzBzS,KAAK5O,SAAS7K,QAAc,CAC9B,MAAM4I,EAAQ6Q,KAAK/Z,OAAOwoB,OAAOzO,KAAKlb,QAAQkqB,aAAa7rB,UAC3D6c,KAAKpV,YAAYuE,GAIjB6Q,KAAK5O,SAAS7K,OAAS,GAAkB,MAAbyZ,KAAKoP,MAAgBpP,KAAKqP,eACxDrP,KAAKoP,KAAKE,aAAatP,MACvBA,KAAKoP,KAAKtf,UAGO,MAAfkQ,KAAK4S,QAAkB5S,KAAK4S,SAAW5S,KAAKgK,QAAQ6I,YACtD7S,KAAKgK,QAAQkG,aAAalQ,KAAK4S,OAAQ5S,KAAKgK,QAAQ6I,YAGzB,IAAzB7S,KAAK5O,SAAS7K,QAEhByZ,KAAKlQ,SAIT,YAAAogB,CAAatrB,EAA0BkuB,GACrC,GAAIluB,EAAKE,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,SAAU,CACnD,MAAM4vB,EAAgBnuB,EAChBouB,EAAqBhT,KAAKlb,QAAQusB,QAAQ0B,EAAc/I,SACxDiJ,EAAYjT,KAAKlb,QAAQusB,QAAQrR,KAAKgK,SAG5C,GAFetiB,OAAOyF,QAAQ8lB,GAAWlM,OAAM,EAAEpd,EAAK3B,KAAWA,IAAUgrB,EAAmBrpB,KA6C5F,OAAOqW,KAAKrb,OAAOurB,aAAa6C,EAAe/S,KAAKoP,MA3CzC,CACX,MAAOgB,EAAS8C,GAAY/sB,EAAgB6Z,KAAM,CAAC7c,EAASO,SAAUP,EAASQ,YAE/E,GAAImvB,EAAK,CACP,MAAM3L,EAAQ2L,EAAIlP,SAElB,GAAIuD,EAAQ,EADGnH,KAAKzZ,SACI,CACtB,MAAM4sB,EAAenT,KAAK/Z,OAAOwoB,OAAOtrB,EAASS,eAAgBqvB,GACjEjT,KAAK5O,SAASgiB,UAAUjM,EAAQ,EAAGnH,KAAKzZ,UAAW4pB,IACjDgD,EAAavoB,YAAYulB,EAAM,IAEjCC,EAAQF,aAAaiD,EAAaR,KAAKxvB,EAASQ,UAAWsvB,GAAYC,EAAS9D,MAEnD,IAAzBpP,KAAK5O,SAAS7K,SAChByZ,KAAKlQ,SAC+B,IAAhCkQ,KAAKrb,OAAOyM,SAAS7K,QACvByZ,KAAKrb,OAAOmL,WAMpB,GAAIkQ,KAAKiR,QAAU8B,EAAc9B,MAAO,CACtC,GAAI6B,EAAK,CACP,MAAM3L,EAAQ2L,EAAIlP,OAAOwM,GACzBA,EAAQ9b,MAAM6S,QAEX,GAAI+L,EAAS9D,KAAM,CACtB,MAAMjI,EAAQ+L,EAAS9D,KAAKxL,OAAOwM,GACnCA,EAAQ9b,MAAM6S,GAEhB,MAAMvW,EAAMoP,KAAK/Z,OAAOwoB,OAAOtrB,EAASO,SAAUsvB,GAC5CK,EAAOrT,KAAK/Z,OAAOwoB,OAAOtrB,EAASQ,UAAWqvB,GAGpD,OAFAK,EAAKzoB,YAAYmoB,GACjBniB,EAAIhG,YAAYyoB,GACTjD,EAAQzrB,OAAOurB,aAAatf,EAAKwf,EAAQhB,MAElD,OAAOgB,EAAQF,aACb6C,EAAcJ,KAAKxvB,EAASQ,UAAWqvB,GACvCF,EAAMI,EAAWA,EAAS9D,OAOhCH,MAAMiB,aAAatrB,EAAMkuB,IE/P7B,MAAM/E,GAAYC,EAAMC,OAAO,aAEzBqF,GAAatF,EAAMC,OAAO,gBAE1B,MAAOsF,WAAuBD,GAElC,MAAAE,CAAOrO,GAAU,GAGf,MAAMsO,EAAuBzF,EAAMC,OAAO,WAAW9qB,EAASS,kBACxD8vB,EAAS1T,KAAKgK,QAAQ9Y,iBAAiB,IAAIuiB,EAAqB7E,aACtE,IAAK,MAAM+E,KAASrtB,MAAMU,KAAK0sB,GAC7BC,EAAMxjB,aAAa,kBAAmB/C,SAAS+X,IAEjD8J,MAAMuE,OAAOrO,GAGf,WAAAyO,CAAYvD,EAAiCwD,GAC3C,IAAIC,EACAzC,EAA+B,CAAE,EACrC,GAAIhB,EAAWltB,EAASS,gBACtBkwB,EAAiB3wB,EAASS,oBAI1B,IAAK,MAAO+F,EAAK3B,KAAUN,OAAOyF,QAAQkjB,GAAa,CACgC,MAAjErQ,KAAK+T,MAAMpqB,EAAKokB,GAAUQ,MAAMyF,MAAQjG,GAAUQ,MAAM0F,MAE1EH,EAAiBnqB,EAGjB0nB,EAAQ1nB,GAAO3B,EAKjB8rB,IAAmB3wB,EAASS,iBAC9BytB,EAAU,IAAKhB,UACRgB,EAAQyC,IAGjB,MAAM3D,EAAQnQ,KAAKyO,OACjBqF,GAAkB9T,KAAKlb,QAAQkqB,aAAa7rB,SAC5C2wB,EAAiBzD,EAAWyD,QAAkB/I,GAGhD/K,KAAKkQ,aAAaC,EAAO0D,QAAW9I,GAEpC,IAAIxkB,EAAS4pB,EAAM5pB,SACf4pB,aAAiBS,IAAmC,IAAXrqB,IAC3CA,GAAU,GAEZ,IAAK,MAAOoD,EAAK3B,KAAUN,OAAOyF,QAAQkkB,GACxClB,EAAM8B,SAAS,EAAG1rB,EAAQoD,EAAK3B,GAGjC,OAAOmoB,GCrDL,MAAO+D,WAAuB7F,GAClCC,gBAAkBnrB,EAASO,SAC3B4qB,eAAiB,KACjBA,iBAAmB,eAEnB,aAAOG,CAAOzmB,GACZ,MAAM+P,EAAOkX,MAAMR,SAGnB,OAFA1W,EAAK/G,QAAQggB,QAAUhpB,EAAMgpB,QAC7BjZ,EAAK/G,QAAQigB,MAAQjpB,EAAMipB,MACpBlZ,EAKT,SAAIkZ,GACF,OAAOjR,KAAKgK,QAAQhZ,QAAQigB,MAG9B,WAAID,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,SAAAmD,CAAUnsB,GACRgY,KAAKoU,kBAAkBC,IACrBA,EAAU7C,eAAe,SAAUxpB,GAAO,EAAK,IAInD,cAAAssB,CAAepD,EAAe/S,GAC5B,MACMoW,EADYzuB,EAAeka,KAAM7c,EAASG,WACvByuB,YACnByC,EAAcD,EAAOvC,QAAQd,GAC7B9B,EAAOpP,KAAK5O,SAASqjB,WAC3B,IAAIC,EAA8B,KAClC,KAAQA,EAAMtF,KAAS,CACrB,GAAIsF,EAAIxD,QAAUA,EAChB,OAAOwD,EAET,MAAMC,EAAWJ,EAAOvC,QAAQ0C,EAAIxD,OACpC,GAAIyD,EAAWH,GAAeG,EAAWD,EAAItD,QAAUoD,EACrD,OAAOE,EAIX,OAAI1U,KAAK7B,IAAc6B,KAAK7B,GAAYrZ,QAAQ3B,WAAaA,EAASO,SAC5Dsc,KAAK7B,GAA8BmW,eAAepD,EAAO/S,GAE5D,KAMT,UAAAyW,CAAWJ,EAAqBxsB,GAC9B,MAAMqa,EAAqB,GACrB+M,EAAOpP,KAAK5O,SAASqjB,WAC3B,IACIC,EADAvN,EAAQ,EAEZ,MAAQuN,EAAMtF,OACZjI,GAASuN,EAAItD,UACTjK,EAAQqN,KACZ,GAAoB,IAAhBE,EAAIvD,QACN,IAAK,IAAIvqB,EAAI,EAAGA,EAAI8tB,EAAIvD,QAAU,EAAGvqB,IACnCyb,EAAKzb,IAAMyb,EAAKzb,IAAM,GAAK8tB,EAAItD,QAKrC,GAAIsD,GAAOvN,EAAQuN,EAAItD,QAAUoD,EAAa,CAC1BE,EAAIG,eACZzD,SAAW,EACD,IAAhBsD,EAAIvD,UACN9O,EAAKyS,WAAaJ,EAAIvD,QAAU,OAG/B,CACH,MAAMxtB,EAAYqc,KAAK/Z,OAAOwoB,OAAOtrB,EAASQ,UAAWqE,GACnDpE,EAAiBoc,KAAK/Z,OAAOwoB,OAAOtrB,EAASS,eAAgBoE,GAC7DmoB,EAAQnQ,KAAK/Z,OAAOwoB,OAAO,SACjC0B,EAAMvlB,YAAYoV,KAAK/Z,OAAOwoB,OAAO,UACrC7qB,EAAegH,YAAYulB,GAC3BxsB,EAAUiH,YAAYhH,GACtBoc,KAAKkQ,aAAavsB,EAAW+wB,GAE/B,OAAOrS,EAGT,mBAAA0S,CAAoBC,GAClB,MAAM3S,EAAiB,GACvB,IAAIqS,EAA8B,KAC9BO,EAAe,EACnB,GAAID,EAAY,EAAG,MAAO,CAACN,EAAKO,EAAc5S,GAC9C,MAAM+M,EAAOpP,KAAK5O,SAASqjB,WAC3B,KAAQC,EAAMtF,KAAS,CAErB,GADA6F,GAAgBP,EAAItD,QACA,IAAhBsD,EAAIvD,QACN,IAAK,IAAIvqB,EAAI,EAAGA,EAAI8tB,EAAIvD,QAAU,EAAGvqB,IACnCyb,EAAKzb,IAAMyb,EAAKzb,IAAM,GAAK8tB,EAAItD,QAGnC,GAAI6D,EAAeD,EAAW,MAEhC,MAAO,CAACN,EAAKO,EAAc5S,GAG7B,UAAA6S,CAAWV,GACT,GAAIA,EAAc,EAAG,MAAO,GAC5B,MAAMW,EAAkBnV,KAAK+U,oBAAoBP,IAC1CE,EAAKvN,GAASgO,EACf9S,EAAqB8S,EAAgB,GAC3C,IAAKT,EAAK,OAAOrS,EACjB,GAAI8E,EAAQuN,EAAItD,QAAUoD,GAAeE,EAAItD,QAAU,EAAG,CACxD,MAAOztB,GAAa+wB,EAAI7C,YAAYjB,IAEpC,GAAoB,IAAhB8D,EAAItD,SAAiBoD,IAAgBrN,EAAQuN,EAAItD,QAAS,CAE5D,MACMmD,EADYzuB,EAAeka,KAAM7c,EAASG,WACvByuB,YACzBpuB,EAAUutB,MAAQqD,EAAOA,EAAOvC,QAAQruB,EAAUutB,OAAS,GAEzC,IAAhBwD,EAAIvD,UACN9O,EAAKyS,WAAaJ,EAAIvD,QAAU,GAGlCxtB,EAAUytB,SAAW,OAGrBsD,EAAI5kB,SAEN,OAAOuS,EAGT,gBAAA+R,CAAiBgB,GACf,MAAMhG,EAAOpP,KAAK5O,SAASqjB,WAC3B,IACIC,EADA9tB,EAAI,EAER,KAAQ8tB,EAAMtF,KAAS,CACrB,MAAOzrB,GAAa+wB,EAAI7C,YAAYjB,IACpC,GAAIwE,EAAKzxB,EAAWiD,KAAM,OAI9B,UAAAyoB,GACE,MAAMD,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK6B,QAAUjR,KAAKiR,MAI3B,QAAA/B,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,QACdqsB,QAAEA,GAAYhR,KACL,OAAXrb,GAAmBA,EAAOG,QAAQ3B,WAAaA,EAASM,WAC1Duc,KAAK2S,KAAKxvB,EAASM,UAAWutB,GAGhC/B,MAAMC,SAASmG,IClKb,MAAOC,WAAwBjH,GACnCC,gBAAkBnrB,EAASM,UAC3B6qB,eAAiB,QAEjB,aAAOG,CAAOzmB,GACZ,MAAM+P,EAAOkX,MAAMR,SAEnB,OADA1W,EAAK/G,QAAQggB,QAAUhpB,EAChB+P,EAGT,WAAIiZ,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAI9B,SAAAuE,CAAUf,GACR,MAAMgB,EAAY1vB,EAAeka,KAAM7c,EAASG,WAChD,IAAKkyB,EAAW,OAEhB,MAAMjB,EAASiB,EAAUzD,YACnB0D,EAAOzV,KAAK6R,YAAYqC,IACxBwB,EAAe,IAAIlxB,IAAI+vB,GAC7B,IAAIpN,EAAQ,EACZ,IAAK,MAAMvW,KAAO6kB,EAAM,CACtB,GAAItO,IAAUqN,EAAa,MAC3B5jB,EAAIwjB,kBAAkBf,IACpB,GAAIlM,EAAQkM,EAAKlC,QAAUqD,IACzBnB,EAAKlC,SAAW,EAChBuE,EAAa3uB,OAAOssB,EAAKnC,OAEJ,IAAjBmC,EAAKjC,SAAe,CACtB,MAAMuE,EAAWpB,EAAOvC,QAAQqB,EAAKnC,OACrC,IAAK,IAAItqB,EAAI,EAAGA,EAAIysB,EAAKjC,QAAU,EAAGxqB,IACpC8uB,EAAa3uB,OAAOwtB,EAAOoB,EAAW/uB,EAAI,QAKlDugB,GAAS,EAGX,MAAM6J,EAAUwE,EAAUxE,QACpBC,EAAQxD,KACR/pB,EAAWsc,KAAK/Z,OAAOwoB,OAAOtrB,EAASO,SAAU,CACrDstB,UACAC,UAEF,IAAK,MAAMC,KAASwE,EAAc,CAChC,MASM/xB,EATYqc,KAAK/Z,OAAOwoB,OAAO,SACbkE,KAAK,SACAA,KAAKxvB,EAASS,eAAgB,CACzDotB,UACAC,QACAC,QACAC,QAAS,EACTC,QAAS,IAEsBuB,KAAKxvB,EAASQ,UAAW,CACxDqtB,UACAC,QACAC,QACAC,QAAS,EACTC,QAAS,IAEX1tB,EAASkH,YAAYjH,GAEvBqc,KAAKkQ,aAAaxsB,EAAU+xB,EAAKjB,IAAgB,MAGnD,UAAAnF,GACE,MAAMD,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK4B,UAAYhR,KAAKgR,QAI7B,QAAA9B,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,OACpB,GAAe,OAAXA,GAAmBA,EAAOG,QAAQ3B,WAAaA,EAASG,UAAW,CACrE,MAAM0tB,QAAEA,GAAYhR,KACpBA,KAAK2S,KAAKxvB,EAASG,UAAW,CAAE0tB,YAGlC/B,MAAMC,SAASmG,IClFb,MAAOO,WAAwBvH,GACnCC,gBAAkBnrB,EAASQ,UAC3B2qB,eAAiB,KACjBA,iBAAmB,gBACnBA,sBAAwB,IAAI9pB,IAAI,CAAC,WAAY,SAAU,WACvD8pB,kBAAoB,IAAI9pB,IAAI,CAAC,UAAW,YAGxC8pB,kBAAoB,IAAI9pB,IAAI,CAAC,mBAAoB,SAAU,WAC3D,mBAAOqsB,CAAaC,GAClB,IAAK,MAAMzjB,KAAS2S,KAAK+Q,WACvB,GAAID,EAAI3lB,WAAWkC,GACjB,OAAO,EAGX,OAAO,EAGT,aAAOohB,CAAOzmB,GACZ,MAAMgpB,QACJA,EAAOC,MACPA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,QACPA,EAAO/jB,MACPA,GACErF,EACE+P,EAAOkX,MAAMR,SAOnB,OANA1W,EAAK/G,QAAQggB,QAAUA,EACvBjZ,EAAK/G,QAAQigB,MAAQA,EACrBlZ,EAAK/G,QAAQkgB,MAAQA,EACrBnZ,EAAK5H,aAAa,UAAW/C,OAAOsjB,GAAiBS,KACrDpZ,EAAK5H,aAAa,UAAW/C,OAAOsjB,GAAiBU,KACrD/jB,IAAU0K,EAAK1K,MAAM6kB,QAAU7kB,GACxB0K,EAGT,cAAOsZ,CAAQrH,GACb,MAAMgH,QAAEA,EAAOC,MAAEA,EAAKC,MAAEA,GAAUlH,EAAQhZ,QACpCmgB,EAAU/oB,OAAO4hB,EAAQ6L,aAAa,YACtCzE,EAAUhpB,OAAO4hB,EAAQ6L,aAAa,YACtC7tB,EAA6B,CACjCgpB,UACAC,QACAC,QACAC,QAAST,GAAiBS,GAC1BC,QAASV,GAAiBU,IAGtB0E,EAAoC,CAAE,EAC5C,IAAK,IAAIlvB,EAAI,EAAGA,EAAIojB,EAAQ3c,MAAM9G,OAAQK,IAAK,CAC7C,MAAM2rB,EAAWvI,EAAQ3c,MAAMzG,GACzBoB,EAAQgiB,EAAQ3c,MAAMklB,GACxBvS,KAAK6Q,aAAazjB,OAAOmlB,MAAe,CAAC,UAAW,WAAW3d,SAAS5M,KAC1E8tB,EAAavD,GAAYvqB,GAG7B,MAAMmF,EAAUzF,OAAOyF,QAAQ2oB,GAK/B,OAJI3oB,EAAQ5G,OAAS,IACnByB,EAAMqF,MAAQF,EAAQzG,KAAI,EAAEiD,EAAK3B,KAAW,GAAG2B,KAAO3B,MAASd,KAAK,MAG/Dc,EAGT,cAAAwpB,CAAe7qB,EAAcqB,GAC3B,GAAIgY,KAAKlb,QAAQixB,WAAWlxB,IAAI8B,IAASqZ,KAAKlb,QAAQ4sB,eAAe7sB,IAAI8B,GAAO,CAC9E,IAAIgrB,EAAWhrB,EACXqZ,KAAKlb,QAAQ4sB,eAAe7sB,IAAI8B,KAClCgrB,EAAW,QAAQhrB,KAEjBqB,EACFgY,KAAKgK,QAAQ7Z,aAAawhB,EAAU3pB,GAGpCgY,KAAKgK,QAAQzY,gBAAgBogB,QAGxB3R,KAAKlb,QAAQ+rB,aAAalqB,KACjCe,OAAOkF,OAAOoT,KAAKgK,QAAQ3c,MAAO,CAChC1G,CAACA,GAAOqB,IAENrB,EAAKwE,WAAW,WAClB6U,KAAKgW,cAAcrvB,EAAMqB,IAIzBgY,KAAK5O,SAAS6kB,MAAQjW,KAAK5O,SAAS6kB,KAAKnxB,QAAQ3B,WAAaA,EAASS,gBAAkBoc,KAAKgK,QAAQ3c,MAAM6kB,UAC7GlS,KAAK5O,SAAS6kB,KAAKjM,QAAwBhZ,QAAQ3D,MAAQ2S,KAAKgK,QAAQ3c,MAAM6kB,SAInF,aAAA8D,CAAcrvB,EAAcqB,GAE1B,MAAMkuB,EAAWzN,QAAQzgB,GAASA,EAAQ,KAE1C,IADuB,CAAC,OAAQ,QAAS,MAAO,UAAUmR,MAAKgF,GAAaxX,EAAKiO,SAASuJ,MAAexX,EAAKwE,WAAW,WACzH,CAGA,GAAI6U,KAAK2P,MAAQ3P,KAAK2P,gBAAgBiG,GAAiB,CACrD,MAAOvC,GAAQrT,KAAK2P,KAAKwG,WAAWvF,GAAsB,GACtDyC,GACFA,EAAK7B,eAAe7qB,EAAKoO,QAAQ,UAAW,iBAAkBmhB,GAAU,GAK5E,GAAIlW,KAAKrb,OAAOgrB,KACd,IACE,MACM4E,EADgBzuB,EAAeka,KAAM7c,EAASG,WACvByuB,YACvBqE,EAAgBpW,KAAK8R,iBACrBuE,EAAcD,EAAgBpW,KAAKoR,QACnCkF,EAAe,IAAI9xB,IAAI+vB,EAAO1a,QAAO,CAAC0c,EAAG3vB,IAAMA,GAAKwvB,GAAiBxvB,EAAIyvB,KAE/E,IAAIlF,EAAU,EACVqF,EAASxW,KAAKrb,OAAOgrB,KACzB,KAAO6G,GAAQ,CACb,IAAIC,GAAiB,EASrB,GARAD,EAAOpC,kBAAkBf,IACnBiD,EAAazxB,IAAIwuB,EAAKnC,QAAUmC,EAAKlC,SAAWA,IAClDkC,EAAK7B,eAAe7qB,EAAKoO,QAAQ,UAAW,kBAAmBmhB,GAAU,GACzEI,EAAavvB,OAAOssB,EAAKnC,QAG3BmC,EAAKlC,SAAWA,IAAYsF,GAAiB,EAAK,KAE/CA,EAAgB,MACrBD,EAASA,EAAO7G,KAChBwB,GAAW,GAGf,MAAOV,GACLD,QAAQC,MAAMA,GArCE,EA0CtB,WAAIO,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,SAAIC,GACF,OAAOjR,KAAKgK,QAAQhZ,QAAQigB,MAG9B,SAAIC,GACF,OAAOlR,KAAKgK,QAAQhZ,QAAQkgB,MAG9B,WAAIC,GACF,OAAO/oB,OAAO4X,KAAKgK,QAAQ6L,aAAa,YAG1C,WAAIzE,GACF,OAAOhpB,OAAO4X,KAAKgK,QAAQ6L,aAAa,YAG1C,cAAA/D,GAEE,OADchsB,EAAeka,KAAM7c,EAASG,WAC/ByuB,YAAYC,QAAQhS,KAAKkR,OAGxC,YAAA2D,GACE,OAAO7U,KAAK5O,SAAS6kB,KAGvB,UAAA5G,GACE,MAAM6B,MAAEA,EAAKD,MAAEA,EAAKG,QAAEA,EAAOD,QAAEA,GAAYnR,KACrCoP,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK6B,QAAUA,GACf7B,EAAK8B,QAAUA,GACf9B,EAAKgC,UAAYA,GACjBhC,EAAK+B,UAAYA,EAIxB,QAAAjC,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,QACdqsB,QAAEA,EAAOC,MAAEA,GAAUjR,KACZ,OAAXrb,GAAmBA,EAAOG,QAAQ3B,WAAaA,EAASO,UAC1Dsc,KAAK2S,KAAKxvB,EAASO,SAAU,CAAEstB,UAASC,UAG1ChC,MAAMC,SAASmG,IC3LnB,MAAMjH,GAAaJ,EAAMC,OAAO,qBAE1B,MAAOyI,WAAuBtI,GAyCzBnoB,OACA+jB,QAzCTsE,gBAAkBnrB,EAASK,SAC3B8qB,eAAiB,MAEjB,iBAAOqI,CAAWjoB,EAAwBkoB,GACxC,IAAIC,EAAczuB,OAAOC,WAAW+E,OAAOsB,IAI3C,OAHItG,OAAO2K,MAAM8jB,KACfA,EAAchzB,EAAY+yB,EAAO,iBAAmB,kBAE/C,GAAGC,IAAcD,EAAO,IAAM,OAGvC,aAAOnI,CAAOzmB,GACZ,MAAM0G,MAAEA,EAAKsiB,QAAEA,EAAOE,MAAEA,EAAK0F,KAAEA,EAAIE,MAAEA,GAAU9uB,EACzC+P,EAAOkX,MAAMR,SAQnB,OAPA1W,EAAK5H,aAAa,QAAS6P,KAAK2W,WAAWjoB,IAASkoB,IACpDA,IAAS7e,EAAK/G,QAAQ4lB,KAAOxpB,OAAOwpB,IAChCE,GAAmB,SAAVA,IACX/e,EAAK/G,QAAQ8lB,MAAQA,GAEvB/e,EAAK/G,QAAQggB,QAAUA,EACvBjZ,EAAK/G,QAAQkgB,MAAQA,EACdnZ,EAGT,YAAO/P,CAAMgiB,GACX,MAAMgH,QAAEA,EAAOE,MAAEA,GAAUlH,EAAQhZ,QAC7BtC,EAAQsb,EAAQ6L,aAAa,UAAYzoB,OAAOvJ,EAAYG,iBAC5D8yB,EAAQ9M,EAAQhZ,QAAQ8lB,MAExB9uB,EAA6B,CACjCgpB,UACAE,QACA0F,KAJWlvB,OAAOqvB,OAAO/M,EAAQhZ,QAAS,SAQ5C,OAFAtC,IAAU1G,EAAM0G,MAAQtG,OAAOC,WAAWqG,IAC1CooB,IAAU9uB,EAAM8uB,MAAQA,GACjB9uB,EAGT,WAAAspB,CACSrrB,EACA+jB,GAEPiF,MAAMhpB,EAAQ+jB,GAHPhK,KAAM/Z,OAANA,EACA+Z,KAAOgK,QAAPA,EAKT,SAAItb,GACF,IAAIA,EAAgCsR,KAAKgK,QAAQ6L,aAAa,SAC9D,IAAKnnB,EAAO,CAEV,GADAA,EAAQsR,KAAKgK,QAAQjc,wBAAwBW,MACzCsR,KAAK4W,KAAM,CACb,MAAMI,EAAQhX,KAAKgK,QAAQiN,QAAQ,SACnC,OAAKD,EACEtoB,EAAQ,IAAMsoB,EAAMjpB,wBAAwBW,MADhC7K,EAAYmc,KAAK4W,KAAO,iBAAmB,iBAGhE,OAAOloB,EAET,OAAOtG,OAAOC,WAAW+E,OAAOsB,IAGlC,SAAIA,CAAM1G,GACR,IAAI0G,EAAQtG,OAAOC,WAAW+E,OAAOpF,IACjCI,OAAO2K,MAAMrE,KACfA,EAAQ7K,EAAYmc,KAAK4W,KAAO,iBAAmB,kBAErD5W,KAAKgK,QAAQ7Z,aAAa,QAAS6P,KAAKlb,QAAQ6xB,WAAWjoB,IAASsR,KAAK4W,OAG3E,WAAI5F,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,SAAIE,GACF,OAAOlR,KAAKgK,QAAQhZ,QAAQkgB,MAG9B,QAAI0F,GACF,OAAOlvB,OAAOqvB,OAAO/W,KAAKgK,QAAQhZ,QAAS,QAG7C,QAAI4lB,CAAK5uB,GACHA,EACFgY,KAAKgK,QAAQhZ,QAAQ4lB,KAAOxpB,OAAOpF,GAGnCgY,KAAKgK,QAAQzY,gBAAgB,aAIjC,SAAIulB,GACF,OAAO9W,KAAKgK,QAAQhZ,QAAQ8lB,OAAS,GAGvC,SAAIA,CAAM9uB,GACM,UAAVA,GAA+B,WAAVA,EACvBgY,KAAKgK,QAAQhZ,QAAQ8lB,MAAQ9uB,EAG7BgY,KAAKgK,QAAQzY,gBAAgB,cAIjC,UAAA8d,GACE,MAAMD,EAAOpP,KAAKoP,MACZ4B,QAAEA,EAAOE,MAAEA,GAAUlR,KAC3B,OACW,OAAToP,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK4B,UAAYA,GACjB5B,EAAK8B,QAAUA,EAItB,QAAAhC,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,OACpB,GAAc,MAAVA,GAAkBA,EAAOG,QAAQ3B,WAAaA,EAASI,cAAe,CACxE,MAAMyE,EAAQgY,KAAKlb,QAAQkD,MAAMgY,KAAKgK,SACtChK,KAAK2S,KAAKxvB,EAASI,cAAeyE,GAGdlC,EAAeka,KAAM7c,EAASI,eACtCuzB,MAAQ9W,KAAK8W,MAEV,MAAb9W,KAAKoP,MAAgBpP,KAAKqP,cAC5BrP,KAAKoP,KAAKtf,SAGZmf,MAAMC,SAASmG,GAGjB,QAAAxG,CAAS1H,EAAenf,EAAe8mB,GACrC,GAAW,MAAPA,EAEF,YADAG,MAAMJ,SAAS1H,EAAOnf,EAAO8mB,GAG/B,MAAMoI,EAAQlvB,EAAMsM,MAAM,MACpB6iB,EAAOD,EAAME,MACbxF,EAASsF,EAAMxwB,KAAK2wB,IACxB,MAAMlH,EAAQnQ,KAAK/Z,OAAOwoB,OAAO,SAEjC,OADA0B,EAAMtB,SAAS,EAAGwI,GACXlH,CAAK,IAER2C,EAAM9S,KAAK1L,MAAM6S,IAChBmQ,EAAmBC,GAAiBpxB,EAAgB6Z,KAAM,CAAC7c,EAASI,cAAeJ,EAASG,YAC7Fk0B,EAAgBF,EAAkBlI,KACxC,GAAI0D,EAAK,CACP,MAAM3L,EAAQ2L,EAAIlP,OAAO0T,GACzBA,EAAkBhjB,MAAM6S,GAG1B,IAAIsQ,EAAaF,EAAc5yB,OAAOA,OAClC+yB,EAAyCH,EAAc5yB,OAAOyqB,KAClE,GAAIoI,EAAe,CACjB,MAAMG,EAAaH,EAAc3F,YAAYjB,IAC7C,GAAI+G,EAAWpxB,OAAS,EAAG,CACzB,MAAMwsB,EAAgB4E,EAAW,GAC3B3vB,EAAQ4oB,GAAqBS,QAAQ0B,EAAc/I,SACnD4N,EAAW5X,KAAK/Z,OAAOwoB,OAAO,SAI9BoJ,EAHoBD,EAASjF,KAAKxvB,EAASS,eAAgBoE,GAC1B2qB,KAAKxvB,EAASQ,UAAWqE,GAC/B2qB,KAAKxvB,EAASO,SAAUsE,GACxB2qB,KAAKxvB,EAASM,UAAWuE,EAAMgpB,SAChEsG,EAAkB3yB,OAAOurB,aAAa2H,EAAcP,EAAkBlI,MAEtEqI,EAAaG,EACbF,EAAcE,EAASxI,MAI3B,IAAK,MAAMe,KAASyB,EAClB6F,EAAWvH,aAAaC,EAAOuH,GAE7BP,GACFM,EAAWvH,aAAalQ,KAAK/Z,OAAOwoB,OAAO,OAAQ0I,GAAOO,IChL1D,MAAOI,WAAwBzJ,GACnCC,gBAAkBnrB,EAASG,UAC3BgrB,eAAiB,QACjBA,iBAAmB,WAEnB,aAAOG,CAAOzmB,GACZ,MAAM+P,EAAOkX,MAAMR,UACbuC,QAAEA,EAAO4F,KAAEA,EAAIE,MAAEA,GAAU9uB,EAWjC,OAVA+P,EAAK/G,QAAQggB,QAAUA,EACT,UAAV8F,GAA+B,WAAVA,EACvB/e,EAAK/G,QAAQ8lB,MAAQA,EAGrB/e,EAAKxG,gBAAgB,cAEvBqlB,IAAS7e,EAAK/G,QAAQ4lB,KAAOxpB,OAAOwpB,IACpC7e,EAAK5H,aAAa,cAAe,KACjC4H,EAAK5H,aAAa,cAAe,KAC1B4H,EAGT,WAAAuZ,CAAYrrB,EAAa+jB,EAAsB0E,GAC7CO,MAAMhpB,EAAQ+jB,GACdhK,KAAK+X,cAGP,iBAAAC,GACE,GAAIhY,KAAK4W,KAEP,YADAlvB,OAAOkF,OAAOoT,KAAKgK,QAAQ3c,MAAO,CAAEqB,MAAO,OAG7C,MAAMupB,EAAOjY,KAAKkY,UAClB,IAAKD,EAAM,OACX,MAAME,EAAYF,EAAK7X,QAAO,CAACgY,EAAKtnB,IAAQA,EAAIpC,MAAQ0pB,GAAK,GAC7D,OAAkB,IAAdD,GAAmB/vB,OAAO2K,MAAMolB,QAApC,GACAnY,KAAKgK,QAAQ3c,MAAMqB,MAAQ,GAAGypB,MACvBA,GAGT,WAAInH,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,QAAI4F,GACF,OAAOlvB,OAAOqvB,OAAO/W,KAAKgK,QAAQhZ,QAAS,QAG7C,QAAI4lB,CAAK5uB,GACHA,EACFgY,KAAKgK,QAAQhZ,QAAQ4lB,KAAOxpB,QAAO,GAGnC4S,KAAKgK,QAAQzY,gBAAgB,aAE/ByO,KAAKgY,oBAGP,SAAIlB,GACF,OAAO9W,KAAKgK,QAAQhZ,QAAQ8lB,OAAS,GAGvC,SAAIA,CAAM9uB,GACM,UAAVA,GAA+B,WAAVA,EACvBgY,KAAKgK,QAAQhZ,QAAQ8lB,MAAQ9uB,EAG7BgY,KAAKgK,QAAQzY,gBAAgB,cAE/ByO,KAAK+X,cAGP,OAAAM,GACE,GAAIrY,KAAK4W,KAAM,OACf,MAAMqB,EAAOjY,KAAKkY,UAClB,GAAoB,IAAhBD,EAAK1xB,OAAc,OACvB,MAAM+xB,EAAapwB,KAAKe,MAAM+W,KAAKgK,QAAQjc,wBAAwBW,OACnE,IAAK,MAAMoC,KAAOmnB,EAAM,CACtB,MAAMjwB,EAAQ8I,EAAIpC,MAAQ4pB,EAAa,IACvCxnB,EAAI8lB,MAAO,EACX9lB,EAAIpC,MAAQ1G,EAEd,MAAMuwB,EAAWN,EAAK,GAAGtzB,OACrB4zB,GAAYA,EAASzzB,QAAQ3B,WAAaA,EAASI,gBACrDg1B,EAAS3B,MAAO,GAIpB,UAAA4B,GACE,IAAKxY,KAAK4W,KAAM,OAChB,MAAMqB,EAAOjY,KAAKkY,UAClB,GAAoB,IAAhBD,EAAK1xB,OAAc,OACvB,MAAM+xB,EAAapwB,KAAKe,MAAM+W,KAAKgK,QAAQjc,wBAAwBW,OACnE,IAAK,MAAMoC,KAAOmnB,EAChBnnB,EAAI8lB,MAAO,EACX9lB,EAAIpC,MAAQxG,KAAKD,IAAI6I,EAAIpC,MAAQ,IAAM4pB,EAAYz0B,EAAYE,eAEjE,MAAMw0B,EAAWN,EAAK,GAAGtzB,OACrB4zB,GAAYA,EAASzzB,QAAQ3B,WAAaA,EAASI,gBACrDg1B,EAAS3B,MAAO,GAIpB,WAAAmB,GACE,MACM1qB,EAAuC,CAC3CorB,WAAY,KACZC,YAAa,MAEf,OALc1Y,KAAK8W,OAMjB,IAAK,SACHzpB,EAAMorB,WAAa,OACnBprB,EAAMqrB,YAAc,OACpB,MAEF,IAAK,GACL,IAAK,OACHrrB,EAAMqrB,YAAc,OACpB,MAEF,IAAK,QACHrrB,EAAMorB,WAAa,OAOvB/wB,OAAOkF,OAAOoT,KAAKgK,QAAQ3c,MAAOA,GAGpC,OAAAsrB,GACE,OAAO3Y,KAAK6R,YAAYqC,IAG1B,SAAA0E,GACE,OAAO5Y,KAAK2Y,UAAUjyB,KAAIqC,GAAKA,EAAEkoB,QAGnC,OAAAiH,GACE,OAAOlY,KAAK6R,YAAY6E,IAG1B,SAAA3E,GACE,OAAO/R,KAAKkY,UAAUxxB,KAAIqC,GAAKA,EAAEmoB,QAGnC,UAAA7B,GACE,MAAMD,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAKpF,QAAQhZ,QAAQggB,UAAYhR,KAAKgR,QAI7C,QAAA9B,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,OACL,OAAXA,GAAmBA,EAAOG,QAAQ3B,WAAaA,EAASE,cAC1D2c,KAAK2S,KAAKxvB,EAASE,aAAc2c,KAAKgR,SAGxC/B,MAAMC,SAASmG,ICjKb,MAAOwD,WAA4BxK,GACvCC,gBAAkBnrB,EAASI,cAC3B+qB,eAAiB,WAGjB,aAAOG,CAAOzmB,GACZ,MAAM+P,EAAOkX,MAAMR,SAOnB,OANA1W,EAAK/G,QAAQggB,QAAUhpB,EAAMgpB,QAC7BhpB,EAAM4uB,OAAS7e,EAAK/G,QAAQ4lB,KAAOxpB,OAAOpF,EAAM4uB,OAC5C5uB,EAAM8uB,OAAyB,SAAhB9uB,EAAM8uB,QACvB/e,EAAK/G,QAAQ8lB,MAAQ9uB,EAAM8uB,OAE7B/e,EAAK5H,aAAa,kBAAmB,SAC9B4H,EAGT,WAAIiZ,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,QAAI4F,GACF,OAAOlvB,OAAOqvB,OAAO/W,KAAKgK,QAAQhZ,QAAS,QAG7C,QAAI4lB,CAAK5uB,GACHA,EACFgY,KAAKgK,QAAQhZ,QAAQ4lB,KAAOxpB,QAAO,GAGnC4S,KAAKgK,QAAQzY,gBAAgB,aAE3ByO,KAAKrb,QAAUqb,KAAKrb,OAAOG,QAAQ3B,WAAaA,EAASG,YAC1D0c,KAAKrb,OAA2BiyB,KAAO5uB,GAI5C,SAAI8uB,GACF,OAAO9W,KAAKgK,QAAQhZ,QAAQ8lB,OAAS,GAGvC,SAAIA,CAAM9uB,GACM,UAAVA,GAA+B,WAAVA,EACvBgY,KAAKgK,QAAQhZ,QAAQ8lB,MAAQ9uB,EAG7BgY,KAAKgK,QAAQzY,gBAAgB,cAIjC,OAAAunB,CAAQ3R,GACN,MAAMiI,EAAOpP,KAAK5O,SAASqjB,WAC3B,IACIC,EADA9tB,EAAI,EAER,MAAQ8tB,EAAMtF,MACRxoB,IAAMugB,GAGVvgB,IAEF,OAAO8tB,EAGT,gBAAAqE,CAAiB5R,EAAenf,GAC9B,MAAMgvB,EAAQhX,KAAKrb,OACnB,KAAMqyB,aAAiBc,IACrB,MAAM,IAAIkB,UAAU,sDAEtB,MAAMloB,EAAMkP,KAAK8Y,QAAQ3R,GACnBvjB,EAAiBoc,KAAK/Z,OAAOwoB,OAAOtrB,EAASK,SAAUwE,GAC7D,GAAIgvB,EAAMJ,KAAM,CAEd,MAAMxH,EAAOpP,KAAK5O,SAASqjB,WAC3B,IAAIC,EACJ,KAAQA,EAAMtF,KACZ,GAAIsF,EAAIhmB,MAAQ9K,EAAe8K,OAAS7K,EAAYC,eAAgB,CAClE4wB,EAAIhmB,OAAS9K,EAAe8K,MAC5B,OAINsR,KAAKkQ,aAAatsB,EAAgBkN,GAGpC,gBAAAmoB,CAAiB9R,GACf,MAAM6P,EAAQhX,KAAKrb,OACnB,KAAMqyB,aAAiBc,IACrB,MAAM,IAAIkB,UAAU,0DAEtB,MAAMloB,EAAMkP,KAAK8Y,QAAQ3R,GACrBrW,IACEkmB,EAAMJ,OACJ9lB,EAAIse,KACLte,EAAIse,KAAwB1gB,OAASoC,EAAIpC,MAEnCoC,EAAI6e,OACV7e,EAAI6e,KAAwBjhB,OAASoC,EAAIpC,QAG9CoC,EAAIhB,SACJknB,EAAMgB,qBAIV,UAAA3I,GACE,MAAMD,EAAOpP,KAAKoP,KACZ9rB,EAAY0c,KAAKrb,OAIvB,OAHKrB,aAAqBw0B,KAAqBx0B,EAAUszB,MACvDtzB,EAAU00B,oBAGD,OAAT5I,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK4B,UAAYhR,KAAKgR,QAI7B,QAAA9B,CAASmG,GACP,MAAM1wB,EAASqb,KAAKrb,QACdqsB,QAAEA,EAAO4F,KAAEA,EAAIE,MAAEA,GAAU9W,KACnB,MAAVrb,GAAkBA,EAAOG,QAAQ3B,WAAaA,EAASG,WACzD0c,KAAK2S,KAAKxvB,EAASG,UAAW,CAAE0tB,UAAS4F,OAAME,UAG/BhxB,EAAeka,KAAM7c,EAASG,WACtCwzB,MAAQA,EAElB7H,MAAMC,SAASmG,IC/HnB,MAAMtH,GAAYC,EAAMC,OAAO,aAEzB,MAAOiL,WAA2B7K,GA8BnBpoB,OA7BnBqoB,gBAAkBnrB,EAASE,aAC3BirB,eAAiB,MACjBA,iBAAmB,mBAEnB,aAAOG,CAAOzmB,GACZ,MAAM+P,EAAOkX,MAAMR,SAoBnB,OAlBA1W,EAAK/G,QAAQggB,QAAUhpB,EACvB+P,EAAKtL,iBACH,aACCrH,IACCA,EAAEwJ,iBACFxJ,EAAEqK,iBAAiB,IAErB,GAGFsI,EAAKtL,iBAAiB,QAASrH,IAC7BA,EAAEwJ,gBAAgB,IAEpBmJ,EAAKtL,iBAAiB,YAAarH,IACjCA,EAAEwJ,iBACFxJ,EAAE+zB,aAAcC,WAAa,MAAM,IAErCrhB,EAAK5H,aAAa,kBAAmB,SAC9B4H,EAIT,WAAAuZ,CAAmBrrB,EAAa8R,EAAY2W,GAC1CO,MAAMhpB,EAAQ8R,GADGiI,KAAM/Z,OAANA,EAEjB+Z,KAAK/Z,OAAOozB,QAAQC,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKyZ,kBAGxD,WAAIzI,GACF,OAAOhR,KAAKgK,QAAQhZ,QAAQggB,QAG9B,UAAA3B,GACE,MAAMD,EAAOpP,KAAKoP,KAClB,OACW,OAATA,GACGA,EAAKtqB,QAAQ3B,WAAa6c,KAAKlb,QAAQ3B,UACvCisB,EAAK4B,UAAYhR,KAAKgR,QAI7B,QAAA0I,CAASvS,EAAe5gB,GACtB0oB,MAAMyK,SAASvS,EAAO5gB,GACtB,MAAMozB,EAAc3Z,KAAK6R,YAAYyD,IAC/BsE,EAAkB5Z,KAAK6R,YAAYgH,IACf,IAAtBc,EAAWpzB,QAA0C,IAA1BqzB,EAAerzB,QAC5CyZ,KAAKlQ,SAIT,MAAAA,GACEmf,MAAMnf,SACNkQ,KAAK/Z,OAAOozB,QAAQQ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKyZ,kBAGzDA,iBAAmB,KACZzZ,KAAK2P,MAAU3P,KAAK2P,gBAAgB5B,GAAU+L,WACjD9Z,KAAKrb,OAAOurB,aAAalQ,KAAK/Z,OAAOwoB,OAAO,SAAUzO,MAEnDA,KAAKoP,MAAUpP,KAAKoP,gBAAgBrB,GAAU+L,WACjD9Z,KAAKrb,OAAOurB,aAAalQ,KAAK/Z,OAAOwoB,OAAO,SAAUzO,KAAKoP,aCrEpD2K,GAQQC,YAA6BhD,MAA2BiD,MAP3EzE,UACA0E,iBACAC,SACAnY,QACAzc,IAAMR,EAAU,SAChBme,eAAiBoJ,IAAqB,IAAMtM,KAAKgB,UAAU,CAAE4L,iBAAiB,IAE9E,WAAA0E,CAAmB0I,EAA6BhD,EAA2BiD,GAAxDja,KAAWga,YAAXA,EAA6Bha,KAAKgX,MAALA,EAA2BhX,KAAKia,MAALA,EACzEja,KAAKwV,UAAYxH,EAAMe,KAAKiI,GAC5BhX,KAAKka,iBAAmBla,KAAKwV,UAAU7wB,OAEvCqb,KAAKma,SAAWna,KAAKoa,YACrBpa,KAAKkD,eAAeJ,QAAQ9C,KAAKgX,OACjChX,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAE7Cra,KAAKuK,OAGP8P,qBAAuB,KACrBra,KAAKgB,QAAQ,EAGf,SAAAoZ,GACE,MAAMD,EAAWna,KAAKga,YAAYM,aAAata,KAAKza,IAAIP,KAClDu1B,EAAQvM,EAAMC,OAAO,YACrBuM,EAAa,CACjBltB,KAAMitB,EAAMzD,MAAM,IAClB2D,OAAQF,EAAMzD,MAAM2D,OACpB7mB,MAAO2mB,EAAMzD,MAAMljB,OAErB,IAAK,MAAOkjB,EAAO4D,KAAYhzB,OAAOyF,QAAQqtB,GAAa,CACzD,MAAMnuB,EAAO9B,SAASC,cAAc,QACpC6B,EAAK2E,QAAQ8lB,MAAQA,EACrBzqB,EAAK5B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,SAC/BkH,EAAKsuB,UAAY,mBAAmBD,QACpCruB,EAAKI,iBAAiB,SAAS,KAC7B,MAAMzE,EAAQqE,EAAK2E,QAAQ8lB,MACvB9uB,IACFgY,KAAK4a,cAAc5a,KAAKwV,UAAWxtB,GAEnCgY,KAAKia,MAAM5P,KAAK2D,EAAMuL,OAAOsB,iBAAiB,KACxC7a,KAAKga,YAAYc,gBACnB9a,KAAKga,YAAYc,eAAerQ,OAE9BzK,KAAKga,YAAYe,aACnB/a,KAAKga,YAAYe,YAAY/Z,SAE3BhB,KAAKga,YAAYgB,kBACnBhb,KAAKga,YAAYgB,iBAAiBha,SAEhChB,KAAKga,YAAYiB,gBACnBjb,KAAKga,YAAYiB,eAAeja,gBAKxCmZ,EAASvvB,YAAYyB,GASvB,OAPK2T,KAAKgC,UACRhC,KAAKgC,QAAUjB,GACbf,KAAKka,iBAAiBlQ,QACtBmQ,GACA,IAAMna,KAAKgB,YAGRmZ,EAGT,aAAAS,CAAcpF,EAA4BsB,GACxC,MAAMmB,EAAOzC,EAAU0C,UACvB,IAAK,MAAMpnB,KAAOmnB,EAChBnnB,EAAIgmB,MAAQA,EAIhB,IAAAvM,GACOvK,KAAKma,WACVna,KAAKma,SAAS1vB,UAAUC,IAAIsV,KAAKza,IAAIF,GAAG,WACxC2a,KAAKgB,UAGP,IAAAyJ,GACOzK,KAAKma,WACVna,KAAKma,SAAS1vB,UAAUqF,OAAOkQ,KAAKza,IAAIF,GAAG,WACvC2a,KAAKgC,UACPhC,KAAKgC,UACLhC,KAAKgC,aAAU+I,IAInB,MAAA/J,GACOhB,KAAKma,WACNna,KAAKwV,UAAUoB,MAAQ5W,KAAKwV,UAAUxL,QAAQvO,aAAeuE,KAAKia,MAAM1uB,KAAKkQ,YAC/EuE,KAAKyK,OAIPtC,GAAgBnI,KAAKka,iBAAiBlQ,QAAShK,KAAKma,SAAU,CAC5D9lB,UAAW,MACXkU,WAAY,CAACnD,KAAQV,GAAM,CAAEG,QAAS8C,OAAiB/D,GAAO,OAC7D6F,MAAK,EAAGhW,IAAGC,QACZhM,OAAOkF,OAAOoT,KAAKma,SAAU9sB,MAAO,CAClCC,KAAM,GAAGmG,MACTlG,IAAK,GAAGmG,OACR,KAIN,OAAAgX,GACE1K,KAAKyK,OACLzK,KAAKkD,eAAef,aACpBnC,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAC1Cra,KAAKma,WACPna,KAAKma,SAASrqB,SACdkQ,KAAKma,cAAWpP,ICjHtB,MAAMmQ,GAAQlN,EAAMC,OAAO,SACrBkN,GAAYnN,EAAMC,OAAO,qBAO/B,SAASmN,GAAa/H,GACpB,IAAI3kB,EAAQtG,OAAOC,WAAWgrB,EAAKwC,aAAa,UAAYzoB,OAAOvJ,EAAYG,kBAC/E,GAAIoE,OAAO2K,MAAMrE,GAAQ,CACvB,MAAM2sB,EAAahI,EAAKhmB,MAAMqB,MAC9BA,EAAQ2sB,EAAajzB,OAAOC,WAAWgzB,GAAchI,EAAK5X,YAE5D,OAAO/M,CACT,CAsBM,MAAO4sB,WAAuBH,GAOflB,MANnBjJ,QAAUvD,KACVwD,MAAQxD,KACR8G,OAAmB,GACnBgH,aAAuD,GACvDC,UAAY,EACZC,SAAW,EACX,WAAAnK,CAAmB2I,EAAc9vB,GAC/B8kB,MAAMgL,EAAO9vB,GADI6V,KAAKia,MAALA,EAEjBja,KAAK0b,WAAW,QAAS1b,KAAK2b,WAAW7Q,KAAK9K,OAC9CA,KAAK0b,WAAW,WAAY1b,KAAK4b,cAAc9Q,KAAK9K,OACpDA,KAAK0b,WAAW,MAAO1b,KAAK6b,SAAS/Q,KAAK9K,OAC1CA,KAAK0b,WAAW,KAAM1b,KAAK8b,QAAQhR,KAAK9K,OACxCA,KAAK0b,WAAW,KAAM1b,KAAK+b,QAAQjR,KAAK9K,OACxCA,KAAK0b,WAAW,KAAM1b,KAAK+b,QAAQjR,KAAK9K,OAExCA,KAAK0b,WAAWnjB,KAAKyjB,aAAchc,KAAKic,kBAAkBnR,KAAK9K,OAGjE,UAAA2b,CAAW5jB,EAAYmkB,GACrB,GAAyB,IAArBA,EAAMC,IAAI51B,OAAc,OAAO21B,EAEnC,MAAMC,EAA6B,GAC7BlE,EAA8B,GACpC,IAAK,IAAIrxB,EAAI,EAAGA,EAAIs1B,EAAMC,IAAI51B,OAAQK,IAAK,CACzC,MAAMypB,WAAEA,EAAU+L,OAAEA,GAAWF,EAAMC,IAAIv1B,IAEnCowB,MAAEA,EAAO,CAAC7zB,EAASQ,WAAYA,KAAc04B,GAAUhM,GAAc,CAAE,EAC9DpmB,EAASmyB,IAAWA,EAAOj5B,EAASK,UAGjDy0B,EAAKhS,KAAK,CAAEmW,WAGZD,EAAIlW,KAAK,CAAEoK,WAAYgM,EAAOD,WAIlC,MACME,EA5DV,SAAuBC,EAAwBC,GAC7C,MAAMC,EAAY,IAAIn2B,MAAMk2B,GAASE,KAAK74B,EAAYG,iBAIhDyxB,EAAOnvB,MAAMU,KAAKu1B,EAAUrrB,iBAAiB,OACnD,IAAK,MAAMN,KAAO6kB,EAAM,CACtB,MAAMkH,EAAQr2B,MAAMU,KAAK4J,EAAIM,iBAAiB,OAC9C,IAAK,MAAOiW,EAAOkM,KAASsJ,EAAMxvB,UAAW,CAC3C,KAAIga,EAAQqV,GAKV,MALmB,CACnB,MAAMI,EAAYxB,GAAa/H,GAC/BoJ,EAAUtV,GAASyV,GAAaH,EAAUtV,KAOhD,OAAOsV,CACT,CAwCsBI,CAAc9kB,EAAqBiI,KAAKuU,OAAOhuB,QACvC6Z,QAAO,CAAC0c,EAAQpuB,EAAO9H,KAC1CqxB,EAAKrxB,GAaRk2B,EAAO7W,KAAKgS,EAAKrxB,IAZjBk2B,EAAO7W,KAAK,CACVmW,OAAQ,CACN,CAACj5B,EAASK,UAAW,CACnBwtB,QAAShR,KAAKgR,QACdE,MAAOlR,KAAKuU,OAAO3tB,GACnB8H,QACAkoB,MAAM,MAQPkG,IACN,IASH,OARAX,EAAIY,WAAWT,GAGftc,KAAKgR,QAAUvD,KACfzN,KAAKuU,OAAS,GACdvU,KAAKub,aAAe,GACpBvb,KAAKwb,UAAY,EACjBxb,KAAKyb,SAAW,EACT,IAAIP,GAAMiB,GAGnB,aAAAP,CAAc7jB,EAAYmkB,GACxB,MAAMC,EAA6B,GACnC,IAAK,IAAIv1B,EAAI,EAAGA,EAAIs1B,EAAMC,IAAI51B,OAAQK,IAAK,CACzC,MAAMo2B,EAAKd,EAAMC,IAAIv1B,GACjBo2B,GAAM/yB,EAAS+yB,EAAGZ,SAAWY,EAAGZ,OAAOj5B,EAASK,WAClD24B,EAAIlW,KAAK+W,GAGb,OAAO,IAAI9B,GAAMiB,GAGnB,QAAAN,CAAS9jB,GACPiI,KAAKuU,OAAOvU,KAAKyb,UAAYhO,KAC7B,MAAMyO,GAAQ,IAAIhB,IAAQkB,OAAO,CAC/B,CAACj5B,EAASK,UAAWkE,OAAOkF,OAC1B8pB,GAAe1uB,MAAM+P,GACrB,CACEiZ,QAAShR,KAAKgR,QACdE,MAAOlR,KAAKuU,OAAOvU,KAAKyb,cAK9B,OADAzb,KAAKyb,UAAY,EACVS,EAGT,OAAAJ,CAAQ/jB,EAAYmkB,GAClBlc,KAAKiR,MAAQxD,KACbzN,KAAKwb,UAAY,EAEjB,IAAK,MAAO50B,EAAGq2B,KAASjd,KAAKub,aAAapuB,UACpC8vB,EAAK9L,QAAU,IACjB8L,EAAK9L,SAAW,GAEd8L,EAAK9L,SAAW,IAClBnR,KAAKub,aAAa30B,GAAK,CAAEuqB,QAAS,EAAGC,QAAS,IAGlD,OAAO8K,EAGT,OAAAH,CAAQhkB,EAAYmkB,GAClB,MAAM7I,EAAOtb,EACPmlB,EAAatH,GAAgBvE,QAAQgC,GAC3C,IAAKrT,KAAKuU,OAAOvU,KAAKwb,aAAexb,KAAKub,aAAavb,KAAKwb,WAC1D,IAAK,IAAI50B,EAAIoZ,KAAKwb,UAAW50B,GAAK,EAAGA,IAC9BoZ,KAAKuU,OAAO3tB,KACfoZ,KAAKuU,OAAO3tB,GAAK6mB,MAEdzN,KAAKub,aAAa30B,KACrBoZ,KAAKub,aAAa30B,GAAK,CAAEuqB,QAAS,EAAGC,QAAS,IAKpD,MAAMA,QAAEA,GAAYpR,KAAKub,aAAavb,KAAKwb,WAC3Cxb,KAAKwb,WAAapK,EAEd8L,EAAW/L,QAAU,IACvBnR,KAAKub,aAAavb,KAAKwb,WAAa,CAAErK,QAAS+L,EAAW/L,QAASC,QAAS8L,EAAW9L,UAGzF,MAAMF,EAAQlR,KAAKuU,OAAOvU,KAAKwb,WAC/Bxb,KAAKwb,WAAa0B,EAAW9L,QAG7B,MAAMppB,EAAQN,OAAOkF,OACnBswB,EACA,CACElM,QAAShR,KAAKgR,QACdC,MAAOjR,KAAKiR,MACZC,UAIsB,SAAtBmC,EAAKhmB,MAAM8vB,SACbn1B,EAAMqF,MAAQrF,EAAMqF,MAAMX,WAAW,+CAAgD,KAEvF,MAAMyvB,EAAM,GACZ,IAAK,MAAMa,KAAMd,EAAMC,IAAK,CAC1B,MAAM9L,WAAEA,EAAa,CAAA,KAAO+M,GAAUJ,GAC9B,CAAC75B,EAASQ,WAAYA,KAAc04B,GAAUhM,EACtD8L,EAAIlW,KAAK,IAAKmX,EAAO/M,WAAY,IAAKgM,EAAO,CAACl5B,EAASS,gBAAiBoE,KAK1E,OAHIm0B,EAAI51B,QAAU,IAAMyD,EAASmyB,EAAIA,EAAI51B,OAAS,GAAG61B,UAAaD,EAAIA,EAAI51B,OAAS,GAAG61B,OAAkBiB,SAAS,QAC/GlB,EAAIlW,KAAK,CAAEmW,OAAQ,KAAM/L,WAAY,CAAE,CAACltB,EAASS,gBAAiBoE,KAE7D,IAAIkzB,GAAMiB,GAGnB,iBAAAF,CAAkBlkB,EAAYmkB,GAE5B,GAAuC,OAD5BnkB,EACJ4W,QAAQ2O,oBAA8B,CAC3C,MAAMnB,EAAM,GACZ,IAAK,MAAMa,KAAMd,EAAMC,IAAK,CAC1B,MAAM9L,WAAEA,KAAe+M,GAAUJ,EAC3Bp5B,EAAiBysB,IAAaltB,EAASS,gBAC7C,GAAIysB,GAAczsB,GAAkBA,EAAeyJ,MAAO,CACxD,MAAMI,WAAEA,KAAe4uB,GAAUhM,EAE3BkN,EAAShzB,SAASC,cAAc,OACtC+yB,EAAOlwB,MAAMI,WAAaA,EAC1B,MAAM+vB,EAAWjzB,SAASC,cAAc,OAExC,GADAgzB,EAASnwB,MAAM6kB,QAAUtuB,EAAeyJ,MACpCkwB,EAAOlwB,MAAMI,aAAe+vB,EAASnwB,MAAMG,gBAAiB,CAC9D2uB,EAAIlW,KAAK,IAAKmX,EAAO/M,WAAY,IAAKgM,KACtC,UAIJF,EAAIlW,KAAK+W,GAEX,OAAO,IAAI9B,GAAMiB,GAGnB,OAAOD,EAGT,OAAAuB,EACE7f,KAAEA,EAAIuZ,KAAEA,GACR9F,EAAmC,CAAA,GAEnC,MAAM6K,EAAQjN,MAAMwO,QAAQ,CAAE7f,OAAMuZ,QAAQ9F,GAC5C,GAAIA,EAAQluB,EAASS,gBACnB,IAAK,MAAMo5B,KAAMd,EAAMC,IACjBlyB,EAAS+yB,EAAGZ,SAAWY,EAAGZ,OAAOj5B,EAASK,UAC5Cw5B,EAAGZ,OAAS,IAGTY,EAAG3M,aAAY2M,EAAG3M,WAAa,CAAE,GACtC2M,EAAG3M,WAAWltB,EAASS,gBAAkBytB,EAAQluB,EAASS,iBAG9D,OAAOs4B,GCnOJ,MAAMwB,GAA2B,iBAC3BC,GAAuC,CAClDC,MAAO,CACLj3B,KAAM,SAERk3B,SAAU,CACRl3B,KAAM,WACNm3B,IAAK,YACLC,6WACAzQ,OAAQ,CAAC0M,EAAagE,KACpB,MAAM7G,EAAO6C,EAAYiE,cAAcD,GACjCpgB,EAAOoc,EAAYkE,cAAcF,GAEjCG,EAAgB,IAAIC,cAAc,CACtC,aAAc,IAAIC,KAAK,CAAClH,GAAO,CAAE/sB,KAAM,eACvC,YAAa,IAAIi0B,KAAK,CAACzgB,GAAO,CAAExT,KAAM,gBAExCk0B,UAAUC,UAAUC,MAAM,CAACL,IAC3BnE,EAAYyE,gBAAgB,GAGhCC,QAAS,CACP/3B,KAAM,UACNm3B,IAAK,WACLC,ygBACAzQ,OAAQ,CAAC0M,EAAagE,KACpB,MAAM7G,EAAO6C,EAAYiE,cAAcD,GACjCpgB,EAAOoc,EAAYkE,cAAcF,GAAa,GAE9CG,EAAgB,IAAIC,cAAc,CACtC,aAAc,IAAIC,KAAK,CAAClH,GAAO,CAAE/sB,KAAM,eACvC,YAAa,IAAIi0B,KAAK,CAACzgB,GAAO,CAAExT,KAAM,gBAExCk0B,UAAUC,UAAUC,MAAM,CAACL,IAC3BnE,EAAYyE,gBAAgB,GAGhCE,UAAW,CACTh4B,KAAM,YACNo3B,8SACAD,IAAK,mBACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAY4E,UAAUZ,GAAa,GACnChE,EAAYyE,gBAAgB,GAGhCI,YAAa,CACXl4B,KAAM,cACNo3B,4SACAD,IAAK,sBACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAY8E,UAAUd,GAAa,GACnChE,EAAYyE,gBAAgB,GAGhCM,aAAc,CACZp4B,KAAM,eACNo3B,4SACAD,IAAK,mBACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAY4E,UAAUZ,GAAa,GACnChE,EAAYyE,gBAAgB,GAGhCO,WAAY,CACVr4B,KAAM,aACNo3B,0SACAD,IAAK,qBACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAY8E,UAAUd,GAAa,GACnChE,EAAYyE,gBAAgB,GAGhCQ,UAAW,CACTt4B,KAAM,YACNo3B,wPACAD,IAAK,aACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAYkF,WAAWlB,GACvBhE,EAAYyE,gBAAgB,GAGhCU,UAAW,CACTx4B,KAAM,YACNo3B,6NACAD,IAAK,aACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAYoF,UAAUpB,GACtBhE,EAAYyE,gBAAgB,GAGhCY,UAAW,CACT14B,KAAM,YACNo3B,oVACAD,IAAK,aACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAYsF,UAAUtB,GACtBhE,EAAYyE,gBAAgB,GAGhCc,aAAc,CACZ54B,KAAM,eACNo3B,mVACAD,IAAK,gBACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAYwF,UAAUxB,GACtBhE,EAAYyE,gBAAgB,GAGhCgB,YAAa,CACX94B,KAAM,cACNo3B,2YACAD,IAAK,eACLxQ,OAAQ,CAAC0M,EAAagE,KACpBhE,EAAY0F,YAAY1B,EAAY,GAGxC2B,gBAAiB,CACfh5B,KAAM,kBACNo3B,+PACA6B,eAAe,EACf9B,IAAK,uBACLn0B,IAAK,mBACL2jB,OAAQ,CAAC0M,EAAagE,EAAa9yB,KACjC8uB,EAAY6F,aAAa7B,EAAa,mBAAoB9yB,GAAO,EAAK,GAG1E40B,YAAa,CACXn5B,KAAM,cACNo3B,sYACA6B,eAAe,EACf9B,IAAK,mBACLn0B,IAAK,eACL2jB,OAAQ,CAAC0M,EAAagE,EAAa9yB,KACjC8uB,EAAY6F,aAAa7B,EAAa,eAAgB9yB,GAAO,EAAK,GAGtE60B,YAAa,CACXp5B,KAAM,cACNo3B,qZACAD,IAAK,qBACLxQ,OAAS0M,IACP,IAAKA,EAAYhD,MAAO,OACxB,MAAMO,EAAgBvJ,EAAMe,KAAKiL,EAAYhD,OACxCO,IAEDA,EAAcX,KAChBW,EAAciB,aAGdjB,EAAcc,cAOhB9yB,GAAMR,EAAU,aACTi7B,GAAiB,CAC5BC,cAAe16B,GAAIP,IACnBk7B,KAAM36B,GAAIF,GAAG,QACbgH,KAAM9G,GAAIJ,GAAG,QACbmF,IAAK/E,GAAIJ,GAAG,OACZuB,IAAKnB,GAAIJ,GAAG,WACZg7B,OAAQ56B,GAAIJ,GAAG,sBC7KJi7B,GAeQpG,YAA6BC,MAdhDoG,WAAa,IAAI77B,IACjB2F,QACAm2B,KAA2B,KAC3BC,eAAyB,EACzBC,gBAA0B,EAC1BC,gBACAC,YAAqC,GACrCC,cAA4C,KAC5Cp7B,IAAMR,EAAU,QAChB67B,eAAiB,SAASnT,OAC1BoT,yBAA2C,CACzC1iB,UAAW,OAGb,WAAAmT,CAAmB0I,EAA6BC,EAAc9vB,GAA3C6V,KAAWga,YAAXA,EAA6Bha,KAAKia,MAALA,EAC9Cja,KAAK7V,QAAU6V,KAAK8gB,eAAe32B,GAEnC,IACE,MAAM42B,EAAeC,aAAaC,QAAQjhB,KAAK7V,QAAQ+2B,kBAAoB,KAC3E,IAAIC,EAAaC,KAAKC,MAAMN,GACvBh3B,EAAQo3B,KACXA,EAAa,IAEfA,EAAW/1B,OAAM,IAAwB1E,KAAKmK,GAAcmP,KAAKqgB,WAAW31B,IAAImG,KAElF,MAAM,CAENmP,KAAKygB,gBAAkB9S,IAAUziB,IAC/B,IAAKA,EAAO,OAEZ,GADA8U,KAAKqgB,WAAW31B,IAAIQ,GAChB8U,KAAKqgB,WAAWx5B,KDsIO,GCtImB,CAC5C,MAAMy6B,EAAah7B,MAAMU,KAAKgZ,KAAKqgB,YAAYj1B,OAAM,IACrD4U,KAAKqgB,WAAWkB,QAChBD,EAAW56B,KAAId,GAAKoa,KAAKqgB,WAAW31B,IAAI9E,KAG1Co7B,aAAaQ,QAAQxhB,KAAK7V,QAAQ+2B,gBAAiBE,KAAKK,UAAUn7B,MAAMU,KAAKgZ,KAAKqgB,cAClF,MAAMqB,EAAoBp7B,MAAMU,KAAKuD,SAAS2G,iBAAiB,IAAI8O,KAAK4gB,kBAAkBZ,GAAeE,SACzG,IAAK,MAAMyB,KAAoBD,EAAmB,CAChD,MAAME,EAAer3B,SAASC,cAAc,OAC5Co3B,EAAan3B,UAAUC,IAAIs1B,GAAe3zB,MAC1Cu1B,EAAav0B,MAAMG,gBAAkBJ,OAAOlC,GAEtB5E,MAAMU,KAAK26B,EAAiBzwB,iBAAiB,IAAI8uB,GAAe3zB,kCAAkCu1B,EAAav0B,MAAMG,sBACzHjH,QAAU,GAC1Bo7B,EAAiB/2B,YAAYg3B,GAG/B,MAAMC,EAAYv7B,MAAMU,KAAK26B,EAAiBzwB,iBAAiB,IAAI8uB,GAAe3zB,SAASjB,MAAM,GAAG,IACpG,IAAK,MAAMiB,KAAQw1B,EACjBx1B,EAAKyD,YAGR,KACHkQ,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAG/CA,qBAAuB,KACjBra,KAAKugB,eACPvgB,KAAKgB,UAIT,cAAA8f,CAAe32B,GA2Bb,OA1BczC,OAAOkF,OAAO,CAC1Bk1B,SAAS,EACTC,MAAO,CACLpE,GAAegB,UACfhB,GAAekB,YACflB,GAAeoB,aACfpB,GAAeqB,WACfrB,GAAeC,MACfD,GAAesB,UACftB,GAAewB,UACfxB,GAAeC,MACfD,GAAe0B,UACf1B,GAAe4B,aACf5B,GAAe8B,YACf9B,GAAeC,MACfD,GAAegC,gBACfhC,GAAemC,YACfnC,GAAeC,MACfD,GAAeE,SACfF,GAAee,QACff,GAAeC,MACfD,GAAeoC,aAEjBmB,gBAAiB,wBACjB58B,mBACC6F,GAIL,UAAA63B,GACE,MAAMC,EAAU13B,SAASC,cAAc,OACvCy3B,EAAQx3B,UAAUC,IAAIsV,KAAKza,IAAIP,KAC/B0C,OAAOkF,OAAOq1B,EAAQ50B,MAAO,CAAE2L,QAAS,SACxC,IAAK,MAAMkpB,KAAQliB,KAAK7V,QAAQ43B,MAAO,CACrC,MAAMp7B,KAAEA,EAAIo3B,KAAEA,EAAIzQ,OAAEA,EAAMsS,cAAEA,EAAej2B,IAAKw4B,EAAOrE,IAAEA,EAAM,IAAOoE,EAChE71B,EAAO9B,SAASC,cAAc,QAEpC,GADA6B,EAAK5B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,SAClB,UAATwB,EACF0F,EAAK5B,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,cAE5B,CAEH,MAAMu8B,EAAU73B,SAASC,cAAc,KAUvC,GATA43B,EAAQ33B,UAAUC,IAAI,QAClBb,EAAWk0B,GACbqE,EAAQx3B,YAAYmzB,EAAK/d,KAAKga,cAG9BoI,EAAQzH,UAAYoD,EAEtB1xB,EAAKzB,YAAYw3B,GAEbxC,GAAiBuC,EAAS,CAC5B,MAAMzB,EAAc1gB,KAAKqiB,kBAAkBh2B,EAAM,CAAE1F,OAAMo3B,OAAMzQ,SAAQsS,gBAAej2B,IAAKw4B,EAASrE,QACpG9d,KAAK0gB,YAAYza,KAAKya,GACtBr0B,EAAK5B,UAAUC,IAAIgzB,SAGnB7zB,EAAWyjB,IAAWjhB,EAAKI,iBAAiB,SAAUrH,IACpD4a,KAAKia,MAAM5mB,QACXia,EAAOtN,KAAKga,YAAaha,KAAKsiB,iBAAkBl9B,EAAE,IACjD,GAIL,MAAM08B,EAAU9hB,KAAKga,YAAY7vB,QAAQuH,MAAM/K,IAASm3B,EACpD9d,KAAK7V,QAAQ23B,SAAWA,GAAWhE,GACrC9d,KAAKuiB,cAAcl2B,EAAMy1B,GAG7BG,EAAQr3B,YAAYyB,GAEtB,OAAO41B,EAGT,iBAAAI,CAAkBh2B,GAAmBihB,OAAEA,EAAM3jB,IAAEA,IAC7C,MAAM64B,EAAqBj4B,SAASC,cAAc,OAGlD,GAFAg4B,EAAmB/3B,UAAUC,IAAIs1B,GAAeC,eAE5CjgB,KAAK7V,QAAQ7F,gBAAgBiC,OAAS,EAAG,CAC3C,MAAMk8B,EAAWl4B,SAASC,cAAc,OACxCi4B,EAASh4B,UAAUC,IAAIs1B,GAAet5B,KACtC,IAAK,MAAMg8B,KAAU1iB,KAAK7V,QAAQ7F,gBAAiB,CACjD,MAAMq+B,EAAcp4B,SAASC,cAAc,OAC3Cm4B,EAAYl4B,UAAUC,IAAIs1B,GAAeG,QACzC,IAAK,MAAMj1B,KAASw3B,EAAQ,CAC1B,MAAMb,EAAYt3B,SAASC,cAAc,OACzCq3B,EAAUp3B,UAAUC,IAAIs1B,GAAe3zB,MACvCw1B,EAAUx0B,MAAMG,gBAAkBtC,EAClCy3B,EAAY/3B,YAAYi3B,GAE1BY,EAAS73B,YAAY+3B,GAEvBH,EAAmB53B,YAAY63B,GAGjC,MAAME,EAAcp4B,SAASC,cAAc,OAC3Cm4B,EAAYl4B,UAAUC,IAAIs1B,GAAeG,QACzCz4B,OAAOkF,OAAO+1B,EAAYt1B,MAAO,CAC/Bu1B,UAAW,QAEb,MAAMC,EAAmBt4B,SAASC,cAAc,OAChDq4B,EAAiBp4B,UAAUC,IAAIs1B,GAAe11B,IAAK,eACnDu4B,EAAiBl4B,YAAcqV,KAAKga,YAAY7vB,QAAQuH,MAAMoxB,YAC9DD,EAAiBp2B,iBAAiB,SAAS,KACzC6gB,EAAOtN,KAAKga,YAAaha,KAAKsiB,iBAAkB,cAAc,IAEhE,MAAMS,EAAax4B,SAASC,cAAc,OAC1Cu4B,EAAWt4B,UAAUC,IAAIs1B,GAAe11B,IAAK,SAC7Cy4B,EAAWp4B,YAAcqV,KAAKga,YAAY7vB,QAAQuH,MAAM6vB,MACxDwB,EAAWt2B,iBAAiB,SAAS,KACnC6gB,EAAOtN,KAAKga,YAAaha,KAAKsiB,iBAAkB,KAAK,IAEvD,MAAMU,EAAcz4B,SAASC,cAAc,OAC3Cw4B,EAAYv4B,UAAUC,IAAIs1B,GAAe11B,IAAK,UAC9C04B,EAAYr4B,YAAcqV,KAAKga,YAAY7vB,QAAQuH,MAAMuxB,OACzD,MAAMC,EAAcr4B,EAAkB,CACpC8C,SAAWzC,IACToiB,EAAOtN,KAAKga,YAAaha,KAAKsiB,iBAAkBp3B,GAChD8U,KAAKygB,gBAAgBv1B,EAAM,KAGvBuf,KAAM0Y,EAAiBzY,QAAS0Y,GAAuBpa,GAAcga,EAAa,CACxF7kB,UAAW,QACX/T,KAAM,QACNC,QAAS64B,EACT9/B,UAAW4/B,IAGbL,EAAY/3B,YAAYi4B,GACxBF,EAAY/3B,YAAYm4B,GACxBJ,EAAY/3B,YAAYo4B,GACxBR,EAAmB53B,YAAY+3B,GAE/B,MAAMU,EAAgB94B,SAASC,cAAc,OAC7C64B,EAAc54B,UAAUC,IAAIs1B,GAAeE,KAAMlgB,KAAK4gB,gBACtD,IAAK,MAAM0C,KAAetjB,KAAKqgB,WAAY,CACzC,MAAMwB,EAAYt3B,SAASC,cAAc,OACzCq3B,EAAUp3B,UAAUC,IAAIs1B,GAAe3zB,MACvCw1B,EAAUx0B,MAAMG,gBAAkB81B,EAClCD,EAAcz4B,YAAYi3B,GAE5BW,EAAmB53B,YAAYy4B,GAE/Bb,EAAmB/1B,iBAAiB,SAAUrH,IAC5CA,EAAEqK,kBACF0zB,IACA,MAAM92B,EAAOjH,EAAEY,OACTkF,EAAQmB,EAAKgB,MAAMG,gBACnBwwB,EAAche,KAAKsiB,iBACzB,GAAIj2B,GAAQnB,GAAS8yB,EAAYz3B,OAAS,EAAG,CAE3C,GADAyZ,KAAKga,YAAY6F,aAAa7B,EAAar0B,EAAMuB,GAAO,IACnDmB,EAAK4qB,QAAQ,IAAI+I,GAAe3zB,QAAS,OAC9C2T,KAAKygB,gBAAgBv1B,OAKzB,MAAMoe,EAA+BN,GAAc3c,EAAM,CACvDjC,KAAM,QACNC,QAASm4B,EACTtZ,OAAQ,KACFlJ,KAAKugB,eAAiBvgB,KAAKga,YAAYc,gBACzC9a,KAAKga,YAAYc,eAAeyI,cAElCvjB,KAAKwjB,iBAAiBla,IACf,GAETH,QAAS,KACHnJ,KAAKugB,eAAiBvgB,KAAKga,YAAYc,iBACzC9a,KAAKga,YAAYc,eAAe2I,wBAChCzjB,KAAKga,YAAYc,eAAe4I,eASlC,OAPgBlB,EAAmBlyB,SAAS4yB,IAE1CC,IAEEnjB,KAAK2gB,gBAAkBrX,IACzBtJ,KAAK2gB,cAAgB,OAEhB,CAAK,EAEdtX,UAAW,KACT+Z,IACIpjB,KAAK2gB,gBAAkBrX,IACzBtJ,KAAK2gB,cAAgB,UAGtB3gB,KAAK6gB,2BAGV,OADAvX,EAAQqa,aAAc,EACfra,EAGT,gBAAAka,CAAiBla,GACXtJ,KAAK2gB,eAAiB3gB,KAAK2gB,gBAAkBrX,GAC/CtJ,KAAK2gB,cAAclW,MAAK,GAE1BzK,KAAK2gB,cAAgBrX,EAGvB,cAAAgZ,GACE,OAAOtiB,KAAKga,YAAYc,gBAAgBkD,aAAe,GAGzD,aAAAuE,CAAcl2B,EAAmB8qB,GAC/B,MAAMyM,EAAa5a,GAAc3c,EAAM,CAAEgE,IAAK8mB,IAC9CyM,GAAc5jB,KAAK0gB,YAAYza,KAAK2d,GAGtC,IAAArZ,GACOvK,KAAKsgB,MAAStgB,KAAKga,YAAYc,gBAAmB9a,KAAKga,YAAYc,eAAerkB,WACvF/O,OAAOkF,OAAOoT,KAAKsgB,KAAKjzB,MAAO,CAAE2L,QAAS,SAC1CgH,KAAKugB,eAAgB,EACrBvgB,KAAKgB,UAGP,MAAAA,IAGA,IAAAyJ,GACEzK,KAAKsgB,MAAQ54B,OAAOkF,OAAOoT,KAAKsgB,KAAKjzB,MAAO,CAAE2L,QAAS,SACvD,IAAK,MAAMsQ,KAAWtJ,KAAK0gB,YACzBpX,EAAQmB,MAAK,GAEfzK,KAAKugB,eAAgB,EAGvB,OAAA7V,GACE1K,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAC9Cra,KAAK2gB,cAAgB,KACrB,IAAK,MAAMrX,KAAWtJ,KAAK0gB,YAAapX,EAAQoB,UAC3C1K,KAAKsgB,OACVtgB,KAAKyK,OACLzK,KAAKsgB,KAAKxwB,SACVkQ,KAAKsgB,KAAO,OC9SV,MAAOuD,WAA6BzD,GAKrBpG,YAA6BC,MAJhD4G,yBAA2C,CACzC1iB,UAAW,SAGb,WAAAmT,CAAmB0I,EAA6BC,EAAc9vB,GAC5D8kB,MAAM+K,EAAaC,EAAO9vB,GADT6V,KAAWga,YAAXA,EAA6Bha,KAAKia,MAALA,EAG9Cja,KAAKia,MAAM1uB,KAAKkB,iBAAiB,cAAeuT,KAAK8jB,mBAGvDA,kBAAqB1+B,IACnBA,EAAEwJ,iBAEF,MAAMm1B,EAAO3+B,EAAE4+B,eACf,IAAKD,GAAQA,EAAKx9B,QAAU,EAAG,OAEbw9B,EAAKhV,MAAKhX,GAAQA,EAAK4W,SAA0C,UAA/B5W,EAAK4W,QAAQpiB,eAA6BwL,EAAKtN,UAAU6F,SAAS,eAErG0P,KAAKga,YAAYc,gBAAgBkD,aAAaz3B,QACxDyZ,KAAKsgB,OACRtgB,KAAKsgB,KAAOtgB,KAAKgiB,cAGnBt6B,OAAOkF,OAAOoT,KAAKsgB,KAAKjzB,MAAO,CAAE2L,QAAS,SAC1CgH,KAAKugB,eAAgB,EAErBvgB,KAAKgB,OAAO,CAAEvN,EAAGrO,EAAE6+B,QAASvwB,EAAGtO,EAAE8+B,UACjC35B,SAASkC,iBAAiB,SAAS,KACjCuT,KAAKyK,MAAM,GACV,CAAEJ,MAAM,KAGXrK,KAAKyK,QAIT,UAAAuX,GACE,MAAM1B,EAAOrR,MAAM+S,aACnB1B,EAAK71B,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,gBAC/B,MAAMs+B,EAAQ7D,EAAK8D,uBAAuB1G,IAC1C,IAAK,MAAMrxB,KAAQ/F,MAAMU,KAAKm9B,GAC5B93B,EAAKI,iBAAiB,SAASrH,GAAKA,EAAEqK,oBAGxC,OADAlF,SAAS6D,KAAKxD,YAAY01B,GACnBA,EAGT,aAAAiC,CAAcl2B,EAAmB8qB,GAC/B,MAAMyM,EAAar5B,SAASC,cAAc,QAC1Co5B,EAAWj5B,YAAcwsB,EACzB9qB,EAAKzB,YAAYg5B,GAInB,IAAArZ,IAEA,MAAAvJ,CAAOxC,GACL,KAAKwB,KAAKugB,eAAkBvgB,KAAKsgB,MAAStgB,KAAKga,YAAYc,gBAAmB9a,KAAKga,YAAYc,eAAeuJ,oBAAoB,OAClI,IAAK7lB,EACH,OAGFyQ,MAAMjO,SACN,MAAM3T,EAA6B,CACjC2L,QAAS,OACT1L,KAAM,EACNC,IAAK,IAGDkG,EAAEA,EAACC,EAAEA,GAAM8K,EACjBnR,EAAMC,KAAOmG,EACbpG,EAAME,IAAMmG,EAEZhM,OAAOkF,OAAOoT,KAAKsgB,KAAKjzB,MAAO,IAC1BA,EACHC,KAAM,GAAGD,EAAMC,KAAOU,OAAOoM,YAC7B7M,IAAK,GAAGF,EAAME,IAAMS,OAAOqM,cAI7B,MAAMiqB,EAAWtkB,KAAKsgB,KAAKvyB,yBACnBT,KAAMi3B,EAAWh3B,IAAKi3B,GAAarY,GAAmBmY,GAC9D58B,OAAOkF,OAAOoT,KAAKsgB,KAAKjzB,MAAO,CAC7BC,KAAM,GAAGi3B,EAAYv2B,OAAOoM,YAC5B7M,IAAK,GAAGi3B,EAAWx2B,OAAOqM,cAI9B,OAAAqQ,GACE1K,KAAKia,MAAM1uB,KAAKuD,oBAAoB,cAAekR,KAAK8jB,mBACxD7U,MAAMvE,WC7FJ,MAAO+Z,WAAwBrE,GAChBpG,YAA6BC,MAAhD,WAAA3I,CAAmB0I,EAA6BC,EAAc9vB,GAC5D8kB,MAAM+K,EAAaC,EAAO9vB,GADT6V,KAAWga,YAAXA,EAA6Bha,KAAKia,MAALA,EAG9Cja,KAAKsgB,KAAOtgB,KAAKgiB,aACjBhiB,KAAKga,YAAYM,aAAata,KAAKsgB,MACnCtgB,KAAKuK,OACLvK,KAAKgB,SAGP,MAAAA,GACOhB,KAAKugB,eAAkBvgB,KAAKsgB,MAAStgB,KAAKga,YAAYc,gBAAmB9a,KAAKga,YAAYc,eAAeuJ,qBAC9GpV,MAAMjO,SAENmH,GAAgBnI,KAAKga,YAAYc,eAAe4J,WAAY1kB,KAAKsgB,KAAM,CACrEjsB,UAAW,SACXkU,WAAY,CAACnD,KAAQV,GAAM,CAAEG,QAAS8C,OAAiB/D,GAAO,OAC7D6F,MAAK,EAAGhW,IAAGC,QACZhM,OAAOkF,OAAOoT,KAAKsgB,KAAMjzB,MAAO,CAC9BC,KAAM,GAAGmG,MACTlG,IAAK,GAAGmG,OACR,MCzBK,MAAAixB,GAAqBpN,IAAoCA,EAAcX,MAAgC,UAAxBW,EAAcT,YCQ7F8N,GAiBQ5K,YAA6BC,MAhBhDtE,UAAqB,EACrBryB,UACAuhC,UAAW,EACXC,aAAmC,KACnCC,qBAAuB/kB,KAAKglB,iBAAiBla,KAAK9K,MAClDilB,uBAAyBjlB,KAAKklB,mBAAmBpa,KAAK9K,MACtDmlB,uBAAyBnlB,KAAKolB,mBAAmBta,KAAK9K,MAEtDqlB,UAAqB,EACrBC,aAAmC,KACnCC,qBAAuBvlB,KAAKwlB,iBAAiB1a,KAAK9K,MAClDylB,uBAAyBzlB,KAAK0lB,mBAAmB5a,KAAK9K,MACtD2lB,uBAAyB3lB,KAAK4lB,mBAAmB9a,KAAK9K,MAEtD6lB,QAAU9gC,EAAU,aAEpB,WAAAusB,CAAmB0I,EAA6BC,GAA7Bja,KAAWga,YAAXA,EAA6Bha,KAAKia,MAALA,EAEhD,mBAAA6L,CAAoBC,GAClB,OAAS,EAGX,cAAAC,CAAeC,EAAYC,EAAqBC,IAEhD,yBAAMC,EAAoBC,QAAEA,EAAOC,QAAEA,EAAOC,OAAEA,IAK5C,OAAO,IAAIrzB,SAAkBC,IAC3B,MAAM9I,EAAUE,SAASC,cAAc,OACvC9C,OAAOkF,OAAOvC,EAAQgD,MAAO,CAC3BwJ,QAAS,WACT2vB,SAAU,OACVC,WAAY,QAEd,MAAM3I,EAAMvzB,SAASC,cAAc,KACnCszB,EAAInzB,YAAc07B,EAClB,MAAMK,EAAan8B,SAASC,cAAc,OAC1C9C,OAAOkF,OAAO85B,EAAWr5B,MAAO,CAC9B2L,QAAS,OACT2tB,eAAgB,WAChBC,IAAK,QAEP,MAAMh0B,EAAY1I,EAAa,CAAEG,QAASk8B,IACpC7zB,EAAaxI,EAAa,CAAEE,KAAM,UAAWC,QAASi8B,IAE5DI,EAAW97B,YAAYgI,GACvB8zB,EAAW97B,YAAY8H,GACvBrI,EAAQO,YAAYkzB,GACpBzzB,EAAQO,YAAY87B,GAEpB,MAAM72B,MAAEA,GAAUX,EAAa,CAAEC,MAAO9E,IAExCuI,EAAUnG,iBAAiB,SAAS,KAClC0G,GAAQ,GACRtD,GAAO,IAET6C,EAAWjG,iBAAiB,SAAS,KACnC0G,GAAQ,GACRtD,GAAO,GACP,IAIN,sBAAMm1B,GACJ,IAAKhlB,KAAK8kB,eAAiB9kB,KAAK1c,YAAiC,IAApB0c,KAAK2V,SAAiB,OACnE,MAAMsC,EAAOjY,KAAK1c,UAAU40B,UACtB2O,EAAIz+B,OAAOiD,SAAS2U,KAAK8kB,aAAa9zB,QAAQ61B,GAAK,KACzD,IAAIC,EAAS9mB,KAAK1c,UAAUszB,KACxBmQ,GAAa,EACjB,MAAMC,EAAiD,GACvD,GAAIF,EAAQ,CAEV,IAAIG,EAAOJ,EADY7mB,KAAK1c,UAAU0mB,QAAQjc,wBAAwBW,MACrC,IACjC,MAAMw4B,EAAcjP,EAAKjY,KAAK2V,UAAUjnB,MACxC,GAAIu4B,EAAMC,EAAa,CAKrB,GADAD,EAAM/+B,KAAKD,IAAIpE,EAAYC,eAAgBmjC,GACvChP,EAAKjY,KAAK2V,SAAW,IAAMsC,EAAKjY,KAAK2V,SAAW,GAAI,CACtD,MAAM/uB,EAAIqxB,EAAKjY,KAAK2V,SAAW,GAAK3V,KAAK2V,SAAW,EAAI3V,KAAK2V,SAAW,EACxEqR,EAAW/gB,KAAK,CAAEkB,MAAOvgB,EAAG8H,MAAOupB,EAAKrxB,GAAG8H,MAAQw4B,EAAcD,SAGjEA,EAAM,IAERF,GAAa,EACbC,EAAW/gB,KAAK,CAAEkB,MAAOnH,KAAK2V,SAAUjnB,MAAOu4B,SAK/C,GAAIhP,EAAKjY,KAAK2V,SAAW,GAAI,CAC3B,MAAMwR,EAAoBD,EAAcjP,EAAKjY,KAAK2V,SAAW,GAAGjnB,MAChEu4B,EAAM/+B,KAAKC,IAAIg/B,EAAoBtjC,EAAYC,eAAgBmjC,GAC/DF,GAAa,EACbC,EAAW/gB,KACT,CAAEkB,MAAOnH,KAAK2V,SAAUjnB,MAAOu4B,GAC/B,CAAE9f,MAAOnH,KAAK2V,SAAW,EAAGjnB,MAAOy4B,EAAoBF,UAM7DjnB,KAAK1c,UAAU0mB,QAAQ3c,MAAMqB,MAAQ,GACnCtG,OAAOC,WAAW2X,KAAK1c,UAAU0mB,QAAQ3c,MAAMqB,OAC7CupB,EAAKjY,KAAK2V,UAAU3L,QAAQjc,wBAAwBW,MACpDm4B,MAEJE,GAAa,EACbC,EAAW/gB,KAAK,CAAEkB,MAAOnH,KAAK2V,SAAUjnB,MAAOm4B,IASjD,GANAt8B,SAAS6D,KAAKub,YAAY3J,KAAK8kB,cAC/B9kB,KAAK8kB,aAAe,KACpBv6B,SAASuE,oBAAoB,UAAWkR,KAAK+kB,sBAC7Cx6B,SAASuE,oBAAoB,YAAakR,KAAKilB,wBAC/CjlB,KAAK6kB,UAAW,EAEZkC,EAAY,CACd,MAAMzO,EAAatY,KAAK1c,UAAU0mB,QAAQjc,wBAAwBW,MAClE,GAAIo4B,EAAQ,CAEV,IAAIM,EAAc,EAClB,MAAMC,EAAe,IAAI7iC,IAAIwiC,EAAWtgC,KAAI,EAAGygB,QAAOzY,YACpD04B,GAAe14B,EACRyY,MAET,IAAK,MAAOA,EAAOrW,KAAQmnB,EAAK9qB,UAC1Bk6B,EAAaxiC,IAAIsiB,KACrBigB,GAAet2B,EAAIpC,OAGrB,GAAI04B,EAAc,IAAK,CACrB,UAAWpnB,KAAKomB,oBAAoB,CAClCC,QAASrmB,KAAKga,YAAY7vB,QAAQuH,MAAM41B,qBACxChB,QAAStmB,KAAKga,YAAY7vB,QAAQuH,MAAMiB,YACxC4zB,OAAQvmB,KAAKga,YAAY7vB,QAAQuH,MAAMmB,aAEvC,OAEFmN,KAAK1c,UAAUk1B,aACfsO,GAAS,EACT,IAAK,MAAOlgC,EAAG2gC,KAASP,EAAW75B,UAAW,CAC5C,MAAMuB,MAAEA,EAAKyY,MAAEA,GAAUogB,EACzBP,EAAWpgC,GAAK,CACdugB,QACAzY,MAAOA,EAAQ,IAAM4pB,KAM7B,IAAK,MAAMnR,MAAEA,EAAKzY,MAAEA,KAAWs4B,EAC7B/O,EAAK9Q,GAAOzY,MAAQ,GAAGxG,KAAKqB,MAAMmF,KAASo4B,EAAS,IAAM,OAC1D9mB,KAAKgmB,eACH7e,EACA,CACEqgB,GAAIt/B,KAAKqB,MAAMmF,EAAQ,IAAM4pB,GAC7B2O,IAAK/+B,KAAKqB,MAAMmF,IAElBo4B,GAKN9mB,KAAKia,MAAMZ,QAAQoO,KAAKvjC,EAAaC,oBAGvC,kBAAA+gC,CAAmB9/B,GAEjB,GADAA,EAAEwJ,kBACGoR,KAAK8kB,eAAiB9kB,KAAK1c,YAAiC,IAApB0c,KAAK2V,SAAiB,OACnE,MAAMsC,EAAOjY,KAAK1c,UAAU40B,UACtBwP,EAAgBzP,EAAKjY,KAAK2V,UAAU3L,QAAQjc,wBAC5C45B,EAAY3nB,KAAK1c,UAAU0mB,QAAQjc,wBACzC,IAAI65B,EAAOxiC,EAAE6+B,QAGb,GAAIjkB,KAAK1c,UAAUszB,KAAM,CAGvB,MAAMiR,EAAYhkC,EAAYC,eAAiB,IAAO6jC,EAAUj5B,MAChE,IAAIo5B,EAAWH,EAAU/zB,MACrBg0B,EAAOF,EAAc9zB,OAASqkB,EAAKjY,KAAK2V,SAAW,KACrDmS,EAAW5/B,KAAKD,IAAIgwB,EAAKjY,KAAK2V,SAAW,GAAG3L,QAAQjc,wBAAwB6F,MAAQi0B,EAAUH,EAAcp6B,KAAOu6B,IAErH,MAAME,EAAWL,EAAcj0B,EAAIo0B,EACnCD,EAAO1/B,KAAKC,IAAID,KAAKD,IAAI2/B,EAAMG,GAAWD,QAItCnD,GAAkB3kB,KAAK1c,WACrBokC,EAAc9zB,MAAQg0B,EAAO/jC,EAAYE,gBAC3C6jC,EAAOF,EAAc9zB,MAAQ/P,EAAYE,eAIvC6jC,EAAOF,EAAcj0B,EAAI5P,EAAYE,gBACvC6jC,EAAOF,EAAcj0B,EAAI5P,EAAYE,eAK3C,IAAI2K,EAAQk5B,EAAOF,EAAcj0B,EAMjC,OALIkxB,GAAkB3kB,KAAK1c,aACzBoL,EAAQg5B,EAAc9zB,MAAQg0B,GAEhC5nB,KAAK8kB,aAAaz3B,MAAMC,KAAO,GAAGs6B,MAClC5nB,KAAK8kB,aAAa9zB,QAAQ61B,EAAIz5B,OAAOsB,GAC9B,CACLpB,KAAMs6B,EACNl5B,SAIJ,kBAAA02B,CAAmBhgC,GACjB,GAAiB,IAAbA,EAAE4iC,OAAc,OAEpB,GADA5iC,EAAEwJ,kBACGoR,KAAK1c,UAAW,OAErB,MAAM20B,EAAOjY,KAAK1c,UAAU40B,UACtB+P,EAAgBjoB,KAAK1c,UAAU0mB,QAAQjc,wBACvCm6B,EAAYD,EAAcv5B,MAEhC,GADAsR,KAAK2V,SAAW3V,KAAK8lB,oBAAoB1gC,IACjB,IAApB4a,KAAK2V,SAAiB,OAC1B,MAAMwS,EAAelQ,EAAKjY,KAAK2V,UAAUjnB,MACnCA,EAAQsR,KAAK1c,UAAUszB,KAAOuR,EAAe,IAAMD,EAAYC,EAErE59B,SAASkC,iBAAiB,UAAWuT,KAAK+kB,sBAC1Cx6B,SAASkC,iBAAiB,YAAauT,KAAKilB,wBAE5CjlB,KAAK6kB,UAAW,EAEhB,MAAMuD,EAAS79B,SAASC,cAAc,OACtC49B,EAAO39B,UAAUC,IAAIsV,KAAK6lB,QAAQ7gC,KAClCojC,EAAO39B,UAAUC,IAAIsV,KAAK6lB,QAAQhgC,GAAG,QACrCuiC,EAAOp3B,QAAQ61B,EAAIz5B,OAAOsB,GAE1B,MAAM25B,EAAa,CACjB96B,IAAK06B,EAAcv0B,EACnBpG,KAAMlI,EAAE6+B,QACR7uB,OAAQ6yB,EAAc7yB,QAExB1N,OAAOkF,OAAOw7B,EAAO/6B,MAAO,CAC1BE,IAAK,GAAG86B,EAAW96B,QACnBD,KAAM,GAAG+6B,EAAW/6B,SACpB8H,OAAQ,GAAGizB,EAAWjzB,aAExB,MAAM/F,EAAW9E,SAAS6D,KAM1B,OALAiB,EAASzE,YAAYw9B,GAEjBpoB,KAAK8kB,cAAcz1B,EAASsa,YAAY3J,KAAK8kB,cACjD9kB,KAAK8kB,aAAesD,EAEbC,EAGT,mBAAAC,CAAoBvC,GAClB,OAAS,EAGX,eAAAwC,CAAgBtC,EAAYuC,IAE5B,gBAAAhD,GACE,IAAKxlB,KAAK1c,YAAc0c,KAAKslB,eAAoC,IAApBtlB,KAAKqlB,SAAiB,OACnE,MAAM58B,EAAIL,OAAOiD,SAAS2U,KAAKslB,aAAat0B,QAAQvI,GAAK,KAE5CuX,KAAK1c,UAAUq1B,UACvB3Y,KAAKqlB,UAAUlR,UAAU,GAAG1rB,OACjCuX,KAAKuoB,gBAAgBvoB,KAAKqlB,SAAU58B,GAEpC8B,SAAS6D,KAAKub,YAAY3J,KAAKslB,cAC/BtlB,KAAKslB,aAAe,KACpB/6B,SAASuE,oBAAoB,UAAWkR,KAAKulB,sBAC7Ch7B,SAASuE,oBAAoB,YAAakR,KAAKylB,wBAC/CzlB,KAAK6kB,UAAW,EAChB7kB,KAAKia,MAAMZ,QAAQoO,KAAKvjC,EAAaC,oBAGvC,kBAAAuhC,CAAmBtgC,GACjB,IAAK4a,KAAK1c,YAAc0c,KAAKslB,eAAoC,IAApBtlB,KAAKqlB,SAAiB,OACnEjgC,EAAEwJ,iBACF,MACMd,EADOkS,KAAK1c,UAAUq1B,UACV3Y,KAAKqlB,UAAUrb,QAAQjc,wBACzC,IAAI06B,EAAOrjC,EAAE8+B,QAMb,OALIuE,EAAO36B,EAAK4F,EAAI7P,EAAYI,iBAC9BwkC,EAAO36B,EAAK4F,EAAI7P,EAAYI,gBAE9B+b,KAAKslB,aAAaj4B,MAAME,IAAM,GAAGk7B,MACjCzoB,KAAKslB,aAAat0B,QAAQvI,EAAI2E,OAAOq7B,EAAO36B,EAAK4F,GAC1C,CACLnG,IAAKk7B,EACLrzB,OAAQqzB,EAAO36B,EAAK4F,GAIxB,kBAAAkyB,CAAmBxgC,GACjB,GAAiB,IAAbA,EAAE4iC,OAAc,OAEpB,GADA5iC,EAAEwJ,kBACGoR,KAAK1c,UAAW,OAGrB,GADA0c,KAAKqlB,SAAWrlB,KAAKsoB,oBAAoBljC,IACjB,IAApB4a,KAAKqlB,SAAiB,OAE1BrlB,KAAK6kB,UAAW,EAChBt6B,SAASkC,iBAAiB,UAAWuT,KAAKulB,sBAC1Ch7B,SAASkC,iBAAiB,YAAauT,KAAKylB,wBAE5C,MAGMrwB,EAHO4K,KAAK1c,UAAUq1B,UAGR3Y,KAAKqlB,UAAUrb,QAAQjc,wBAAwBqH,OAC7D6yB,EAAgBjoB,KAAK1c,UAAU0mB,QAAQjc,wBAEvCq6B,EAAS79B,SAASC,cAAc,OACtC49B,EAAO39B,UAAUC,IAAIsV,KAAK6lB,QAAQ7gC,KAClCojC,EAAO39B,UAAUC,IAAIsV,KAAK6lB,QAAQhgC,GAAG,QACrCuiC,EAAOp3B,QAAQvI,EAAI2E,OAAOgI,GAE1B,MAAMizB,EAAa,CACjB96B,IAAKnI,EAAE8+B,QACP52B,KAAM26B,EAAcx0B,EACpB/E,MAAOu5B,EAAcv5B,OAEvBhH,OAAOkF,OAAOw7B,EAAO/6B,MAAO,CAC1BE,IAAK,GAAG86B,EAAW96B,QACnBD,KAAM,GAAG+6B,EAAW/6B,SACpBoB,MAAO,GAAG25B,EAAW35B,YAEvB,MAAMW,EAAW9E,SAAS6D,KAM1B,OALAiB,EAASzE,YAAYw9B,GAEjBpoB,KAAKslB,cAAcj2B,EAASsa,YAAY3J,KAAKslB,cACjDtlB,KAAKslB,aAAe8C,EAEbC,EAGT,MAAArnB,IACA,OAAA0J,KClVI,MAAOge,WAAuB9D,GAef5K,YAA6BhD,MAdhDzrB,KACAjI,UACAD,aACA6f,eACAylB,UAA8B,GAC9BC,UAA8B,GAC9BC,eAAqC,KACrCC,eAAqC,KACrCC,OAA6B,KAC7Bxb,cAAqD,GACrDyb,iBAA0C,KAC1CniC,KAAe,GACftB,IAAMR,EAAU,cAEhB,WAAAusB,CAAmB0I,EAA6BhD,EAAoBiD,GAClEhL,MAAM+K,EAAaC,GADFja,KAAWga,YAAXA,EAA6Bha,KAAKgX,MAALA,EAE9ChX,KAAK1c,UAAY0qB,EAAMe,KAAK/O,KAAKgX,OAE5BhX,KAAK1c,YACV0c,KAAK3c,aAAe2c,KAAK1c,UAAUqB,OAC9Bqb,KAAK3c,eAEV2c,KAAKzU,KAAOyU,KAAKga,YAAYM,aAAata,KAAKza,IAAIP,KACnDgb,KAAKkD,eAAiB,IAAI9B,gBAAe,KACvCpB,KAAKuK,MAAM,IAEbvK,KAAKkD,eAAeJ,QAAQ9C,KAAKgX,OACjChX,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKqa,wBAG/CA,qBAAuB,KACrBra,KAAKgB,QAAQ,EAGf,mBAAAioB,CAAoBC,EAAc9jC,GAChC,MAAM6+B,QAAEA,EAAOC,QAAEA,GAAY9+B,EACvBuiC,EAAY3nB,KAAKgX,MAAMjpB,wBAC7B,GAAIiS,KAAKga,YAAYc,eAAgB,CACnC,MAAMA,EAAiB9a,KAAKga,YAAYc,eACnC11B,EAAE+jC,WACLnpB,KAAKgpB,iBAAmB,MAE1B,MAAMI,EAAkC,CACtC,CAAE31B,EAAGy1B,EAAMvB,EAAUr6B,KAAO22B,EAASvwB,EAAGw1B,EAAMhF,EAAUyD,EAAUp6B,KAClE,CAAEkG,EAAGy1B,EAAMvB,EAAU/zB,MAAQqwB,EAASvwB,EAAGw1B,EAAMhF,EAAUyD,EAAU9zB,SAEjEmM,KAAKgpB,kBACPI,EAAgB,GAAK,CACnB31B,EAAGvL,KAAKC,IAAIihC,EAAgB,GAAG31B,EAAGuM,KAAKgpB,iBAAiB,GAAGv1B,GAC3DC,EAAGxL,KAAKC,IAAIihC,EAAgB,GAAG11B,EAAGsM,KAAKgpB,iBAAiB,GAAGt1B,IAE7D01B,EAAgB,GAAK,CACnB31B,EAAGvL,KAAKD,IAAImhC,EAAgB,GAAG31B,EAAGuM,KAAKgpB,iBAAiB,GAAGv1B,GAC3DC,EAAGxL,KAAKD,IAAImhC,EAAgB,GAAG11B,EAAGsM,KAAKgpB,iBAAiB,GAAGt1B,KAI7DsM,KAAKgpB,iBAAmBI,EAG1BtO,EAAe9D,MAAQhX,KAAKgX,MAC5B8D,EAAekD,YAAclD,EAAeuO,sBAAsBD,GAClEtO,EAAevQ,QAInB,mBAAAub,CAAoB1gC,GAClB,OAAOkB,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,mBAAmB6sB,QAAQ5sB,EAAEY,QAG9F,cAAAggC,CAAep/B,EAAWigC,EAAoBC,GACtBxgC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,gBAChEyB,GAAGyG,MAAMqB,MAAQo4B,EAAS,GAAGD,EAAEI,OAAS,GAAGJ,EAAEW,OAG7DrC,uBAAyB,SAAgC//B,GACvD,MAAM4C,EAAQgY,KAAKolB,mBAAmBhgC,GAQtC,OAPI4C,GAASgY,KAAK8kB,cAChBp9B,OAAOkF,OAAOoT,KAAK8kB,aAAaz3B,MAAO,CACrCE,IAAQvF,EAAMuF,IAAMyS,KAAKnZ,KAApB,KACLyG,KAAM,GAAGtF,EAAMsF,SACf8H,OAAQ,GAAGpN,EAAMoN,OAAS4K,KAAKnZ,WAG5BmB,CACT,EAAE8iB,KAAK9K,MAEP,aAAAspB,GACE,MAAMC,EAAgBjjC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,gBACxEqkC,EAAyBljC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,mBAEvFioB,GAAeJ,KAAKhN,KAAMA,KAAK3c,aAAa2mB,SAAS,KACnDhK,KAAK8oB,eAAgBz6B,WAAa2R,KAAK3c,aAAa2mB,QAAQ3b,UAAU,IAGxE,IAAK,MAAMoR,KAAM8pB,EACf9pB,EAAGhT,iBAAiB,QAASuT,KAAKipB,oBAAoBne,KAAK9K,MAAM,IAEnE,IAAK,MAAMP,KAAM+pB,EACf/pB,EAAGhT,iBAAiB,YAAauT,KAAKmlB,wBAEtC1lB,EAAGhT,iBAAiB,aAAarH,GAAKA,EAAEwJ,mBAI5C,mBAAA05B,CAAoBljC,GAClB,OAAOkB,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,mBAAmB6sB,QAAQ5sB,EAAEY,QAG9F,eAAAuiC,CAAgB3hC,EAAW6B,GACHnC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,gBAChEyB,GAAGyG,MAAM+H,OAAS,GAAG3M,MAGrCk9B,uBAAyB,SAAgCvgC,GACvD,MAAM4C,EAAQgY,KAAK4lB,mBAAmBxgC,GAQtC,OAPI4C,GAASgY,KAAKslB,cAChB59B,OAAOkF,OAAOoT,KAAKslB,aAAaj4B,MAAO,CACrCE,IAAK,GAAGvF,EAAMuF,QACdD,KAAStF,EAAMsF,KAAO0S,KAAKnZ,KAArB,KACN6H,MAAO,GAAG1G,EAAM0G,MAAQsR,KAAKnZ,WAG1BmB,CACT,EAAE8iB,KAAK9K,MAEP,aAAAypB,GACE,MAAMC,EAAgBpjC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,gBACxEwkC,EAAyBrjC,MAAMU,KAAKgZ,KAAKzU,KAAK64B,uBAAuBpkB,KAAKza,IAAIJ,GAAG,mBAEvFioB,GAAeJ,KAAKhN,KAAMA,KAAK3c,aAAa2mB,SAAS,KACnDhK,KAAK6oB,eAAgB16B,UAAY6R,KAAK3c,aAAa2mB,QAAQ7b,SAAS,IAGtE,IAAK,MAAMsR,KAAMiqB,EACfjqB,EAAGhT,iBAAiB,QAASuT,KAAKipB,oBAAoBne,KAAK9K,MAAM,IAEnE,IAAK,MAAMP,KAAMkqB,EACflqB,EAAGhT,iBAAiB,YAAauT,KAAK2lB,wBAEtClmB,EAAGhT,iBAAiB,aAAarH,GAAKA,EAAEwJ,mBAI5C,MAAAoS,GACE,MAAOwW,GAAiBxX,KAAK1c,UAAU6yB,WAAWb,GAAiBtV,KAAK1c,UAAUiD,SAAW,GAC7F,IAAKixB,EAAe,OACpB,MAAMoS,EAAgBpS,EAAcxN,QAAQjc,wBACtC87B,EAAW7pB,KAAKia,MAAM1uB,KAAKwC,wBACjCrG,OAAOkF,OAAOoT,KAAKzU,KAAK8B,MAAO,CAC7BE,IAAQq8B,EAAcl2B,EAAIm2B,EAASn2B,EAA9B,KACLpG,KAASs8B,EAAcn2B,EAAIo2B,EAASp2B,EAA9B,OAGR,MAAMw0B,EAAgBjoB,KAAK1c,UAAU0mB,QAAQjc,wBACvC+7B,EAAmB9pB,KAAK3c,aAAa2mB,QAAQjc,wBAEnD,IAAIg8B,KAAwB/pB,KAAKnZ,KAC7BmjC,KAAgChqB,KAAKnZ,KACrC89B,GAAkB3kB,KAAK1c,YACzB0c,KAAKzU,KAAKd,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,gBACpCkkC,EAAmB7hC,KAAKC,IAAI2hC,EAAiBp7B,MAAOu5B,EAAcv5B,OAClEs7B,EAA2B9hC,KAAKC,IAAI2hC,EAAiBp7B,MAAOu5B,EAAcv5B,QAG1EsR,KAAKzU,KAAKd,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,gBAGrCma,KAAK+oB,QACPrhC,OAAOkF,OAAOoT,KAAK+oB,OAAO17B,MAAO,CAC/B48B,UAAW,iBAAmBjqB,KAAKnZ,sBAAsBkjC,SAGzD/pB,KAAK6oB,gBACPnhC,OAAOkF,OAAOoT,KAAK6oB,eAAex7B,MAAO,CACvC48B,UAAW,cAAcD,SAK/B,IAAAzf,GACEvK,KAAK2oB,UAAY3oB,KAAK1c,UAAU40B,UAChClY,KAAK4oB,UAAY5oB,KAAK1c,UAAUq1B,UAChC3Y,KAAKzU,KAAKovB,UAAY,GACtB,MAAMmP,EAAmB9pB,KAAK3c,aAAa2mB,QAAQjc,wBAC7Ck6B,EAAgBjoB,KAAK1c,UAAU0mB,QAAQjc,wBAqB7C,GAnBIiS,KAAK2oB,UAAUpiC,OAAS,GAAKyZ,KAAK4oB,UAAUriC,OAAS,IACvDyZ,KAAK+oB,OAASx+B,SAASC,cAAc,OACrCwV,KAAK+oB,OAAOt+B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,WACtCuC,OAAOkF,OAAOoT,KAAK+oB,OAAO17B,MAAO,CAC/BqB,MAAO,GAAGsR,KAAKnZ,SACfuO,OAAQ,GAAG4K,KAAKnZ,WAElBmZ,KAAK+oB,OAAOt8B,iBAAiB,SAAS,KACpC,GAAIuT,KAAKga,YAAYc,eAAgB,CACnC,MAAMnD,EAAa3X,KAAK1c,UAAUuuB,YAAYjB,IACxCkK,EAAiB9a,KAAKga,YAAYc,eACxCA,EAAekD,YAAcrG,EAC7BmD,EAAevQ,OACfuQ,EAAe2I,4BAGnBzjB,KAAKzU,KAAKX,YAAYoV,KAAK+oB,SAGzB/oB,KAAK2oB,UAAUpiC,OAAS,EAAG,CAC7B,IAAI2jC,EAAa,GACjB,IAAK,MAAS,CAAAp5B,KAAQkP,KAAK2oB,UAAUx7B,UAAW,CAC9C,MAAMuB,EAAQoC,EAAIkZ,QAAQjc,wBAAwBW,MAClDw7B,GAAc,eAAelqB,KAAKza,IAAIJ,GAAG,gCAAgCuJ,gCACzDsR,KAAKza,IAAIJ,GAAG,oCAAoC8iC,EAAc7yB,OAAS4K,KAAKnZ,KAAO,8BAGrG,MAAMiiC,EAAiBv+B,SAASC,cAAc,OAC9Cs+B,EAAer+B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,QACzC,MAAMglC,EAAU5/B,SAASC,cAAc,OACvC2/B,EAAQ1/B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,gBAClCuC,OAAOkF,OAAOk8B,EAAez7B,MAAO,CAClC48B,UAAW,eAAejqB,KAAKnZ,UAC/BujC,SAAU,GAAGN,EAAiBp7B,UAC9B0G,OAAQ,GAAG4K,KAAKnZ,WAElBa,OAAOkF,OAAOu9B,EAAQ98B,MAAO,CAC3BqB,MAAO,GAAGu5B,EAAcv5B,YAE1By7B,EAAQxP,UAAYuP,EACpBpB,EAAel+B,YAAYu/B,GAC3BnqB,KAAKzU,KAAKX,YAAYk+B,GACtBA,EAAez6B,WAAa2R,KAAK3c,aAAa2mB,QAAQ3b,WACtD2R,KAAK8oB,eAAiBA,EACtB9oB,KAAKspB,gBAGP,GAAItpB,KAAK4oB,UAAUriC,OAAS,EAAG,CAC7B,IAAI8jC,EAAa,GACjB,IAAK,MAAS,CAAAz5B,KAAQoP,KAAK4oB,UAAUz7B,UAAW,CAC9C,MAAMiI,EAAS,GAAGxE,EAAIoZ,QAAQjc,wBAAwBqH,WACtDi1B,GAAc,eAAerqB,KAAKza,IAAIJ,GAAG,iCAAiCiD,OAAOC,WAAW+M,iCAC5E4K,KAAKza,IAAIJ,GAAG,mCAAmC8iC,EAAcv5B,MAAQsR,KAAKnZ,KAAO,8BAGnG,MAAMgiC,EAAiBt+B,SAASC,cAAc,OAC9Cq+B,EAAep+B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,QACzC,MAAMmlC,EAAU//B,SAASC,cAAc,OACvC8/B,EAAQ7/B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,gBAElCuC,OAAOkF,OAAOi8B,EAAex7B,MAAO,CAClC48B,UAAW,eAAejqB,KAAKnZ,UAC/B6H,MAAO,GAAGsR,KAAKnZ,SACf0jC,UAAW,GAAGT,EAAiB10B,aAEjC1N,OAAOkF,OAAO09B,EAAQj9B,MAAO,CAC3B+H,OAAQ,GAAG6yB,EAAc7yB,aAE3Bk1B,EAAQ3P,UAAY0P,EACpBxB,EAAej+B,YAAY0/B,GAC3BtqB,KAAKzU,KAAKX,YAAYi+B,GACtBA,EAAe16B,UAAY6R,KAAK3c,aAAa2mB,QAAQ7b,UACrD6R,KAAK6oB,eAAiBA,EACtB7oB,KAAKypB,gBAGPzpB,KAAKgB,SACLoM,GAAeJ,KAAKhN,KAAMA,KAAKia,MAAM1uB,MAAM,KACzCyU,KAAKgB,QAAQ,IAIjB,IAAAyJ,GACEzK,KAAKzU,KAAKd,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,WAGtC,OAAA6kB,GACE1K,KAAKyK,OACL+C,GAAiBR,KAAKhN,MACtBA,KAAKkD,eAAef,aACpBnC,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAC9C,IAAK,MAAOhN,EAAKC,KAAWtN,KAAKuN,cAC/BF,EAAIve,oBAAoB,SAAUwe,GAEpCtN,KAAKzU,KAAKuE,UCjSR,MAAO06B,WAAwB5F,GAWhB5K,YAA6BhD,MAVhDyT,WACAC,WACAC,iBACA9F,UAAW,EAEX+F,aAAwB,EACxBC,aAAwB,EACxBC,cAEAvlC,IAAMR,EAAU,eAChB,WAAAusB,CAAmB0I,EAA6BhD,EAAoBiD,GAClEhL,MAAM+K,EAAaC,GADFja,KAAWga,YAAXA,EAA6Bha,KAAKgX,MAALA,EAE9ChX,KAAKyqB,WAAazqB,KAAKga,YAAYM,aAAata,KAAKza,IAAIJ,GAAG,QAC5D6a,KAAK0qB,WAAa1qB,KAAKga,YAAYM,aAAata,KAAKza,IAAIJ,GAAG,QAE5D6a,KAAKgX,MAAMvqB,iBAAiB,YAAauT,KAAK+qB,kBAC9C/qB,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKgrB,oBAG/CD,iBAAoB3lC,IAClB,GAAI4a,KAAK6kB,SAAU,OAEnB,GAAI7kB,KAAKga,YAAYc,gBAAkB9a,KAAKga,YAAYc,eAAe+J,SAAU,OACjF,MAAMlhC,EAAYqc,KAAKirB,cAAc7lC,GACrC,IAAKzB,EACH,OAAOqc,KAAKyK,OAEd,MAAMqgB,EAAgB9c,EAAMe,KAAKprB,GAC5BmnC,GACD9qB,KAAK2qB,mBAAqBhnC,IAC5Bqc,KAAKuK,OACLvK,KAAK2qB,iBAAmBhnC,EACxBqc,KAAK8qB,cAAgBA,EACrB9qB,KAAK1c,UAAYwC,EAAeglC,EAAe3nC,EAASG,WACpD0c,KAAK1c,UAAU40B,UAAU3xB,OAAS,GACpCyZ,KAAKkrB,mBAEPlrB,KAAKmrB,qBAITH,mBAAqB,KACnBhrB,KAAKyK,MAAM,EAGb,aAAAwgB,CAAc7lC,GACZ,IAAK,MAAMqa,KAAMra,EAAE4+B,eAAgB,CACjC,GAAIvkB,aAAc/G,aAA8B,OAAf+G,EAAGkP,QAClC,OAAOlP,EAET,GAAIA,IAAOlV,SAAS6D,KAClB,OAAO,KAGX,OAAO,KAGT,mBAAA03B,GACE,OAAO9lB,KAAK4qB,YAGd7F,qBAAuBlzB,uBACfmO,KAAKglB,mBACXhlB,KAAKkrB,kBACP,EAAEpgB,KAAK9K,MAEP,gBAAAkrB,GACE,IAAKlrB,KAAK1c,YAAc0c,KAAK8qB,cAAe,OAC5C,MAAMA,EAAgB9qB,KAAK8qB,cAC3B9qB,KAAKga,YAAYiI,QAAQtY,YAAY3J,KAAKyqB,YAC1CzqB,KAAKyqB,WAAazqB,KAAKga,YAAYM,aAAata,KAAKza,IAAIJ,GAAG,QAE5D,MAAOqyB,GAAiBrxB,EAAgB2kC,EAAe,CAAC3nC,EAASM,YAC3D2nC,EAAe5T,EAAcxN,QAAQjc,wBACrCs9B,EAAgBP,EAAc9gB,QAAQjc,wBACtC87B,EAAW7pB,KAAKia,MAAM1uB,KAAKwC,wBACjC,IAAIT,EAAO+9B,EAAcz3B,MAAQi2B,EAASp2B,EACtCkxB,GAAkB3kB,KAAK1c,aACzBgK,EAAO+9B,EAAc/9B,KAAOu8B,EAASp2B,GAEvC/L,OAAOkF,OAAOoT,KAAKyqB,WAAWp9B,MAAO,CACnCE,IAAQ69B,EAAa13B,EAAIm2B,EAASn2B,EAA7B,KACLpG,KAAM,GAAGA,MACT8H,OAAQ,GAAGg2B,EAAah2B,aAG1B,MAAM6iB,EAAOjY,KAAK1c,UAAU40B,UAC5BlY,KAAK4qB,YAAc3S,EAAKqT,WAAUx6B,GAAOA,EAAIogB,QAAU4Z,EAAc5Z,QAErElR,KAAKyqB,WAAWh+B,iBAAiB,YAAauT,KAAKmlB,wBACnDnlB,KAAKyqB,WAAWh+B,iBAAiB,aAAcrH,IAC7CA,EAAEwJ,gBAAgB,IAItB,mBAAA05B,GACE,OAAOtoB,KAAK6qB,YAGdtF,qBAAuB,WACrBvlB,KAAKwlB,mBACLxlB,KAAKmrB,kBACP,EAAErgB,KAAK9K,MAEP,gBAAAmrB,GACE,IAAKnrB,KAAK1c,YAAc0c,KAAK8qB,cAAe,OAC5C,MAAMA,EAAgB9qB,KAAK8qB,cAC3B9qB,KAAKga,YAAYiI,QAAQtY,YAAY3J,KAAK0qB,YAC1C1qB,KAAK0qB,WAAa1qB,KAAKga,YAAYM,aAAata,KAAKza,IAAIJ,GAAG,QAC5D,MAAMomC,EAAaT,EAAcnmC,OACjC,KAAM4mC,aAAsBrX,IAC1B,OAGF,MAAOsD,GAAiBrxB,EAAgB2kC,EAAe,CAAC3nC,EAASM,YAC3D+nC,EAAiBhU,EAAcxN,QAAQjc,wBACvCs9B,EAAgBP,EAAc9gB,QAAQjc,wBACtC87B,EAAW7pB,KAAKia,MAAM1uB,KAAKwC,wBACjCrG,OAAOkF,OAAOoT,KAAK0qB,WAAWr9B,MAAO,CACnCE,IAAQ89B,EAAcx3B,OAASg2B,EAASn2B,EAAnC,KACLpG,KAASk+B,EAAe/3B,EAAIo2B,EAASp2B,EAA/B,KACN/E,MAAO,GAAG88B,EAAe98B,YAG3B,MAAM+mB,EAAOzV,KAAK1c,UAAUq1B,UAC5B3Y,KAAK6qB,YAAcpV,EAAKzD,QAAQuZ,GAEhCvrB,KAAK0qB,WAAWj+B,iBAAiB,YAAauT,KAAK2lB,wBACnD3lB,KAAK0qB,WAAWj+B,iBAAiB,aAAcrH,IAC7CA,EAAEwJ,gBAAgB,IAItB,IAAA2b,GACEvK,KAAK0qB,WAAWjgC,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,WAC7Cma,KAAKyqB,WAAWhgC,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,WAG/C,IAAA4kB,GACEzK,KAAK2qB,sBAAmB5f,EACxB/K,KAAK0qB,WAAWjgC,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,WAC1Cma,KAAKyqB,WAAWhgC,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,WAG5C,MAAAmb,GACEhB,KAAKkrB,mBACLlrB,KAAKmrB,mBAGP,OAAAzgB,GACE1K,KAAKyqB,WAAW36B,SAChBkQ,KAAK0qB,WAAW56B,SAEhBkQ,KAAKgX,MAAMloB,oBAAoB,YAAakR,KAAK+qB,kBACjD/qB,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKgrB,2BC3JrCS,GAWQzR,YAA6BhD,MAA2BiD,MAV3E1M,cAAqD,GACrDgK,cAAwC,KACxC2C,iBAA8C,KAC9C30B,IAAMR,EAAU,SAChB2mC,OAAiB,EACjBC,OAAiB,EACjBxhC,QACAoB,KACA4kB,MACAyb,eAAiC,IAAIxqB,gBAAe,IAAMpB,KAAKgB,WAC/D,WAAAsQ,CAAmB0I,EAA6BhD,EAA2BiD,EAAc9vB,GAAtE6V,KAAWga,YAAXA,EAA6Bha,KAAKgX,MAALA,EAA2BhX,KAAKia,MAALA,EACzEja,KAAK7V,QAAU6V,KAAK8gB,eAAe32B,GACnC6V,KAAKuX,cAAgBvJ,EAAMe,KAAKiI,GAE5BhX,KAAKuX,gBAAkBvX,KAAKuX,cAAcX,OAC5C5W,KAAKka,iBAAmBla,KAAKuX,cAAc5yB,OAC3Cqb,KAAK6rB,eACL7rB,KAAKuK,QAEPvK,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAG/CA,qBAAuB,KACrBra,KAAKgB,QAAQ,EAGf,cAAA8f,CAAe32B,GACb,OAAOzC,OAAOkF,OAAO,CACnBk/B,UAAW,IACV3hC,GAGL,YAAA0hC,GACE,IAAK7rB,KAAKuX,gBAAkBvX,KAAKka,iBAAkB,OACnDla,KAAKzU,KAAOyU,KAAKga,YAAYM,aAAata,KAAKza,IAAIP,KACnDgb,KAAKzU,KAAKd,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,WACpCma,KAAKmQ,MAAQ5lB,SAASC,cAAc,OACpCwV,KAAKmQ,MAAM1lB,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,UACrCuC,OAAOkF,OAAOoT,KAAKmQ,MAAM9iB,MAAO,CAC9BqB,MAAO,GAAGsR,KAAK7V,QAAQ2hC,cACvB12B,OAAQ,GAAG4K,KAAK7V,QAAQ2hC,gBAE1B9rB,KAAKzU,KAAKX,YAAYoV,KAAKmQ,OAE3B,IAAI4b,EAA4D,GAC5DC,EAA8D,GAClE,MAAMC,EAAmB7mC,IACvB,IAAK4a,KAAKuX,cAAe,OAEzB,MAAM2U,EAAUvH,GAAkB3kB,KAAKuX,gBAAmB,EAAG,EACvD4U,GAAS/mC,EAAE6+B,QAAUjkB,KAAK0rB,QAAUQ,EACpCE,EAAQhnC,EAAE8+B,QAAUlkB,KAAK2rB,OACzBU,EAAYnkC,KAAKe,MAAMkjC,EAAQJ,EAAexlC,QAC9C+lC,EAAapkC,KAAKe,MAAMmjC,EAAQJ,EAAgBzlC,QAEtD,IAAK,MAAM3B,KAAEA,EAAI8J,MAAEA,KAAWq9B,EAC5BnnC,EAAK8J,MAAQxG,KAAKD,IAAIyG,EAAQ29B,EAAWxoC,EAAYE,eAEvD,IAAK,MAAMa,KAAEA,EAAIwQ,OAAEA,KAAY42B,EAC7BpnC,EAAKuvB,UAAU,GAAGjsB,KAAKD,IAAImN,EAASk3B,EAAYzoC,EAAYI,sBAG1DsoC,EAAgB,KACpBR,EAAiB,GACjBC,EAAkB,GAClBzhC,SAASuE,oBAAoB,YAAam9B,GAC1C1hC,SAASuE,oBAAoB,UAAWy9B,EAAc,EAExDvsB,KAAKmQ,MAAM1jB,iBAAiB,aAAcrH,IACnC4a,KAAKuX,gBAAiBvX,KAAKwsB,uBAChCxsB,KAAK0rB,OAAStmC,EAAE6+B,QAChBjkB,KAAK2rB,OAASvmC,EAAE8+B,QAEhB6H,EAAiB/rB,KAAKuX,cAAcW,UAAUxxB,KAAIoK,KAAUlM,KAAMkM,EAAKpC,MAAOxG,KAAKe,MAAM6H,EAAIpC,WAC7Fs9B,EAAkBhsB,KAAKuX,cAAcoB,UAAUjyB,KAAIkK,IAAQ,CAAEhM,KAAMgM,EAAKwE,OAAQlN,KAAKe,MAAM2H,EAAIoZ,QAAQjc,wBAAwBqH,YAC/H7K,SAASkC,iBAAiB,YAAaw/B,GACvC1hC,SAASkC,iBAAiB,UAAW8/B,GAAc,IAErDvsB,KAAKmQ,MAAM1jB,iBAAiB,aAAarH,GAAKA,EAAEwJ,mBAEhDoR,KAAK4rB,eAAe9oB,QAAQ9C,KAAKuX,cAAcvN,SAC/CoD,GAAeJ,KAAKhN,KAAMA,KAAKia,MAAM1uB,MAAM,IAAMyU,KAAKgB,WACtDoM,GAAeJ,KAAKhN,KAAMA,KAAKka,iBAAiBlQ,SAAS,IAAMhK,KAAKgB,WAGtE,kBAAAwrB,GACE,IAAKxsB,KAAKuX,gBAAkBvX,KAAKka,kBAAoBla,KAAKuX,cAAcX,KAAM,OAAO,EAErF,MAAM+Q,EAAY3nB,KAAKuX,cAAcvN,QAAQjc,wBACvC+7B,EAAmB9pB,KAAKka,iBAAiBlQ,QAAQjc,wBAEvD,GAAI45B,EAAUj5B,MAAQo7B,EAAiBp7B,MAAO,CAC5C,IAAK,MAAMoC,KAAOkP,KAAKuX,cAAcW,UACnCpnB,EAAIpC,MAAQxG,KAAKe,MAAO6H,EAAIpC,MAAQi5B,EAAUj5B,MAASo7B,EAAiBp7B,OAG1E,OADAsR,KAAKuX,cAAcS,qBACZ,EAET,OAAO,EAGT,MAAAhX,GACE,KAAKhB,KAAKmQ,OAAUnQ,KAAKzU,MAASyU,KAAKuX,eAAkBvX,KAAKka,kBAAkB,OAAO,EACvF,MAAMyN,EAAY3nB,KAAKuX,cAAcvN,QAAQjc,wBACvC+7B,EAAmB9pB,KAAKka,iBAAiBlQ,QAAQjc,wBACjD0+B,EAAazsB,KAAKia,MAAM1uB,KAAKwC,yBAC7BI,UAAEA,EAASE,WAAEA,GAAe2R,KAAKka,iBAAiBlQ,QAClD8hB,EAAqC,EAAzB9rB,KAAK7V,QAAQ2hC,UACzBY,EAAYxkC,KAAKC,IAAIw/B,EAAUj5B,MAAOo7B,EAAiBp7B,OAASo9B,EAChEa,EAAazkC,KAAKC,IAAIw/B,EAAUvyB,OAAQ00B,EAAiB10B,QAAU02B,EACzEpkC,OAAOkF,OAAOoT,KAAKzU,KAAK8B,MAAO,CAC7BqB,MAAO,GAAGg+B,MACVt3B,OAAQ,GAAGu3B,MACXr/B,KAASpF,KAAKD,IAAI0/B,EAAUl0B,EAAGq2B,EAAiBr2B,GAAKg5B,EAAWh5B,EAAIuM,KAAK7V,QAAQ2hC,UAA3E,KACNv+B,IAAQrF,KAAKD,IAAI0/B,EAAUj0B,EAAGo2B,EAAiBp2B,GAAK+4B,EAAW/4B,EAAIsM,KAAK7V,QAAQ2hC,UAA3E,OAEP,MAAMc,EAAa,CACjBt/B,KAASq6B,EAAUj5B,MAAQo9B,EAAYz9B,EAAjC,KACNd,IAAQo/B,EAAax+B,EAAhB,MAEHw2B,GAAkB3kB,KAAKuX,gBACzBvX,KAAKzU,KAAKd,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,gBACpC+mC,EAAWt/B,KAAO,GAAG0S,KAAK7V,QAAQ2hC,WAAY,EAAKz9B,OAGnD2R,KAAKzU,KAAKd,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,gBAEzC6B,OAAOkF,OAAOoT,KAAKmQ,MAAM9iB,MAAOu/B,GAGlC,IAAAriB,GACMvK,KAAKzU,OACPyU,KAAKzU,KAAKd,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,WACvCma,KAAKgB,UAIT,IAAAyJ,GACMzK,KAAKzU,MACPyU,KAAKzU,KAAKd,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,WAIxC,OAAA6kB,GACE1K,KAAKyK,OACLzK,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAC1Cra,KAAKzU,MACPyU,KAAKzU,KAAKuE,SAEZ0d,GAAiBR,KAAKhN,aCxJb6sB,GA0BQ5S,MAAqBpkB,WAA4BmhB,MAA2B8V,mBAzB/FC,QAAkB,GAClBnG,IAAc,EACdoG,KAAe,EACfC,YAAsB,EACtBC,aAAuB,EACvBC,OAAiB,EACjBC,OAAiB,EACjBC,UAAoB,GACpBC,WAAqB,GACrBzmC,KAAe,GACf0mC,WAGI,CACAC,EAAG,EACHC,EAAG,GAGPC,GACAtqC,UACAuqC,UACAC,MAAqBrjC,SAASC,cAAc,OAC5C+iB,cAAqD,GACrDsgB,YACAtoC,IAAMR,EAAU,aAChB,WAAAusB,CAAmB2I,EAAqBpkB,EAA4BmhB,EAA2B8V,GAA5E9sB,KAAKia,MAALA,EAAqBja,KAAUnK,WAAVA,EAA4BmK,KAAKgX,MAALA,EAA2BhX,KAAkB8sB,mBAAlBA,EAC7F9sB,KAAK5c,UAAY4zB,EAAM8W,cACvB9tB,KAAK6tB,YAAc7tB,KAAKnK,WACpB,CACEhP,KAAM,SACN+c,OAAQ,eACRmqB,gBAAiB,YACjBC,WAAY,eACZv5B,KAAM,IACN0J,UAAW,MACX8vB,OAAQ,WAEV,CACEpnC,KAAM,QACN+c,OAAQ,cACRmqB,gBAAiB,aACjBC,WAAY,cACZv5B,KAAM,IACN0J,UAAW,OACX8vB,OAAQ,WAEdjuB,KAAKkuB,gBACLluB,KAAK0tB,GAAK,IAAItsB,gBAAe,KAC3BpB,KAAKgB,QAAQ,IAEfhB,KAAK0tB,GAAG5qB,QAAQkU,GAChBhX,KAAK2tB,UAAY3tB,KAAKmuB,kBACtBnuB,KAAKouB,uBACLhhB,GAAeJ,KAAKhN,KAAMA,KAAKia,MAAM1uB,MAAM,IAAMyU,KAAKouB,yBACtDpuB,KAAKquB,gBAGP,MAAArtB,GACEhB,KAAKkuB,gBACLluB,KAAKouB,uBAGP,oBAAAA,GACE,MAAQ//B,WAAYigC,EAAengC,UAAWogC,GAAkBvuB,KAAKia,MAAM1uB,MACnE2Q,WAAYsyB,EAAqBryB,UAAWsyB,GAAuBzuB,KAAK5c,WACxEsL,MAAOggC,EAAgBt5B,OAAQu5B,GAAoB3uB,KAAK5c,UAAU2K,yBAClEW,MAAO4pB,EAAYljB,OAAQw5B,GAAgB5uB,KAAKgX,MAAMjpB,wBAE9D,IAAI0F,EAAI+6B,EACJ96B,EAAI+6B,EACJzuB,KAAKnK,WACPpC,GAAKvL,KAAKC,IAAIumC,EAAgBpW,GAG9B5kB,GAAKxL,KAAKC,IAAIwmC,EAAiBC,GAIjC,MAAMrX,EAAgBvJ,EAAMe,KAAK/O,KAAKgX,OAClCO,GAAyC,SAAxBA,EAAcT,QACjCrjB,GAAKuM,KAAKgX,MAAM9a,WAAasyB,GAG/B9mC,OAAOkF,OAAOoT,KAAK2tB,UAAUtgC,MAAO,CAClC,CAAC2S,KAAK6tB,YAAYhnC,MAAO,GAAGmZ,KAAKnK,WAAa84B,EAAkBD,MAChEzE,UAAW,aAAax2B,EAAI66B,QAAoB56B,EAAI66B,SAEtDvuB,KAAK6uB,uBAAuB7uB,KAAK5c,WAGnC,aAAA8qC,GACE,MAAMxyB,EAAesE,KAAK5c,UAAUsY,aAAesE,KAAK4mB,IAClDnrB,EAAcuE,KAAK5c,UAAUqY,YAAcuE,KAAK4mB,IAChDkI,EAAiBpzB,GAAgB,EAAIsE,KAAK5c,UAAU8a,aACpD6wB,EAAgBtzB,GAAe,EAAIuE,KAAK5c,UAAU6a,YAClD7I,EAASlN,KAAKD,IAAI6mC,EAAgB9uB,KAAK+sB,SACvCr+B,EAAQxG,KAAKD,IAAI8mC,EAAe/uB,KAAK+sB,SAC3C/sB,KAAKmtB,OAAS2B,GAAkBpzB,EAAeozB,IAAmB15B,GAAUsG,EAAetG,IAC3F4K,KAAKotB,OAAS2B,GAAiBtzB,EAAcszB,IAAkBrgC,GAAS+M,EAAc/M,IAEtFsR,KAAKqtB,UAAY3+B,EAAQsR,KAAK4mB,IAAMnrB,EAAc,GAAG/M,MAAY,GACjEsR,KAAKstB,WAAal4B,EAAS4K,KAAK4mB,IAAMlrB,EAAe,GAAGtG,MAAa,GACrE4K,KAAKnZ,KAAOmZ,KAAKnK,WAAamK,KAAKstB,WAAattB,KAAKqtB,UAGvD,eAAAc,GACE,MAAMR,EAAYpjC,SAASC,cAAc,OACzCmjC,EAAUljC,UAAUC,IAAIsV,KAAKza,IAAIP,KACjC2oC,EAAUljC,UAAUC,IAAIsV,KAAKnK,WAAamK,KAAKza,IAAIM,GAAG,YAAcma,KAAKza,IAAIM,GAAG,cAAema,KAAKza,IAAIM,GAAG,gBAC3G6B,OAAOkF,OAAO+gC,EAAUtgC,MAAO,CAC7B2L,QAAS,SAEXgH,KAAK4tB,MAAMnjC,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,UACrC,IAAI6pC,EAAiD,KACrD,MAAMC,EAA4B7pC,IAChC,IAAwB,IAApB4a,KAAKitB,WAAsB,OAC/B,MAAMiC,EAAWlvB,KAAKutB,WAAWvtB,KAAK6tB,YAAYp5B,MAClD,IAAKy6B,EAAU,OAEf,MAAMC,EAAcnvB,KAAK2tB,UAAU3tB,KAAK6tB,YAAYjqB,SAAW,EAC3D5D,KAAK5c,UAAU4c,KAAK6tB,YAAYG,aAAehuB,KAAKnK,WAAamK,KAAKmtB,OAASntB,KAAKotB,QACpFptB,KAAK4tB,MAAM5tB,KAAK6tB,YAAYjqB,QAG1BwrB,EAA2D,MAFoD,GAArGpvB,KAAK2tB,UAAU5/B,wBAAwBiS,KAAK6tB,YAAY1vB,WAAa/Y,EAAE4a,KAAK6tB,YAAYI,UAC7EjuB,KAAK4tB,MAAM5tB,KAAK6tB,YAAYjqB,QAAUsrB,IACMC,EAAenvB,KAAK2tB,UAAU3tB,KAAK6tB,YAAYjqB,QACtH5D,KAAK5c,UAAU4c,KAAK6tB,YAAYE,iBAAoBqB,EAA0BpvB,KAAK5c,UAAU4c,KAAK6tB,YAAYG,YAAe,GAAG,EAE5HqB,EAAyB,KAC7BrvB,KAAKutB,WAAWvtB,KAAK6tB,YAAYp5B,MAAQ,EACzCuL,KAAKitB,YAAa,EAClB1iC,SAASuE,oBAAoB,YAAamgC,GAC1C1kC,SAASuE,oBAAoB,UAAWugC,GACpCrvB,KAAKktB,aACPltB,KAAKsvB,gBAGP/kC,SAASglC,cAAgBP,CAAe,EAEpCQ,EAAapqC,IACjBA,EAAEqqC,2BACFzvB,KAAKitB,YAAa,EAClB1iC,SAASkC,iBAAiB,YAAawiC,GACvC1kC,SAASkC,iBAAiB,UAAW4iC,GACrCL,EAAkBzkC,SAASglC,cAE3BhlC,SAASglC,cAAgB,KAAM,CAAK,EAEtCvvB,KAAK4tB,MAAMnhC,iBAAiB,aAAcrH,IAExC,GADAA,EAAEqK,kBACErK,EAAEsqC,SAAW,CAAC,EAAG,GAAG96B,SAASxP,EAAE4iC,QAAS,OAE5Ch6B,OAAO2hC,gBAAgBC,kBACvBJ,EAAUpqC,GAEV,MAAMqa,EAAKra,EAAEyqC,cACRpwB,IACLO,KAAKutB,WAAWvtB,KAAK6tB,YAAYp5B,MAAQgL,EAAGO,KAAK6tB,YAAYjqB,SAAWxe,EAAE4a,KAAK6tB,YAAYI,QAAUxuB,EAAG1R,wBAAwBiS,KAAK6tB,YAAY1vB,YAAW,IAE9J,MAAM2xB,EAAkB,CAAC9vB,KAAKgX,MAAO2W,GACrC,IAAK,MAAMluB,KAAMqwB,EACfrwB,EAAGhT,iBAAiB,aAAcuT,KAAKquB,eACvC5uB,EAAGhT,iBAAiB,aAAcuT,KAAKsvB,eAQzC,OALAliB,GAAeJ,KAAKhN,KAAMA,KAAK5c,WAAW,KACxC4c,KAAK6uB,uBAAuB7uB,KAAK5c,UAAU,IAG7CuqC,EAAU/iC,YAAYoV,KAAK4tB,OACpBD,EAGT,sBAAAkB,CAAuBlc,GACrB,MAAM/O,EAAS+O,EAAK3S,KAAK6tB,YAAYjqB,QAAU5D,KAAK4mB,IACpD5mB,KAAKgtB,KAAgD,IAAzCra,EAAK3S,KAAK6tB,YAAYE,iBAAyBnqB,GAAU5D,KAAKnK,WAAamK,KAAKmtB,OAASntB,KAAKotB,QAC1G1lC,OAAOkF,OAAOoT,KAAK4tB,MAAMvgC,MAAO,CAC9B,CAAC2S,KAAK6tB,YAAYhnC,MAAOmZ,KAAKnZ,KAC9BojC,UAAW,YAAYjqB,KAAK6tB,YAAYp5B,QAAQuL,KAAKgtB,WAIzDqB,cAAgB1gB,IAAS,KACvB3N,KAAKktB,aAAc,EACnBltB,KAAK2tB,UAAU7+B,oBAAoB,gBAAiBkR,KAAK+vB,4BACzD/vB,KAAK2tB,UAAUtgC,MAAM2L,QAAUgH,KAAKnZ,KAAO,QAAU,OACrDyc,uBAAsB,KACpBtD,KAAK2tB,UAAUljC,UAAUqF,OAAOkQ,KAAKza,IAAIM,GAAG,eAAe,GAC3D,GACD,KAEHypC,cAAgB3hB,IAAS,KACvB3N,KAAKktB,aAAc,EACfltB,KAAKitB,aACTjtB,KAAK2tB,UAAU7+B,oBAAoB,gBAAiBkR,KAAK+vB,4BACzD/vB,KAAK2tB,UAAUlhC,iBAAiB,gBAAiBuT,KAAK+vB,2BAA4B,CAAE1lB,MAAM,IAC1FrK,KAAK2tB,UAAUljC,UAAUC,IAAIsV,KAAKza,IAAIM,GAAG,gBAAe,GACvD,KAEHkqC,2BAA6B,KAC3B/vB,KAAK2tB,UAAUtgC,MAAM2L,QAAWgH,KAAKitB,YAAcjtB,KAAKnZ,KAAQ,QAAU,MAAM,EAGlF,OAAA6jB,GACE1K,KAAK0tB,GAAGvrB,aACRqL,GAAiBR,KAAKhN,MACtBA,KAAKgX,MAAMloB,oBAAoB,aAAckR,KAAKquB,eAClDruB,KAAKgX,MAAMloB,oBAAoB,aAAckR,KAAKsvB,sBAGzCU,GAIQhW,YAA6BhD,MAA2BiD,MAH3E6S,mBACAa,UACApoC,IAAMR,EAAU,aAChB,WAAAusB,CAAmB0I,EAA6BhD,EAA2BiD,GAAxDja,KAAWga,YAAXA,EAA6Bha,KAAKgX,MAALA,EAA2BhX,KAAKia,MAALA,EACzEja,KAAK8sB,mBAAqB9sB,KAAKga,YAAYM,aAAata,KAAKza,IAAIJ,GAAG,cAEpE6a,KAAK2tB,UAAY,CACf,IAAId,GAAU5S,GAAO,EAAMjD,EAAOhX,KAAK8sB,oBACvC,IAAID,GAAU5S,GAAO,EAAOjD,EAAOhX,KAAK8sB,qBAE1C,IAAK,MAAMzgC,KAAQ2T,KAAK2tB,UACtB3tB,KAAK8sB,mBAAmBliC,YAAYyB,EAAKshC,WAE3C3tB,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAG/CA,qBAAuB,KACrBra,KAAKgB,QAAQ,EAGf,IAAAyJ,GACE,IAAK,MAAMkjB,KAAa3tB,KAAK2tB,UAC3BA,EAAU2B,gBAId,IAAA/kB,GACE,IAAK,MAAMojB,KAAa3tB,KAAK2tB,UAC3BA,EAAUU,gBAId,MAAArtB,GACE,IAAK,MAAM2sB,KAAa3tB,KAAK2tB,UAC3BA,EAAUO,gBACVP,EAAUS,uBAId,OAAA1jB,GACE1K,KAAK8sB,mBAAmBh9B,SACxBkQ,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKqa,sBAC9C,IAAK,MAAMsT,KAAa3tB,KAAK2tB,UAC3BA,EAAUjjB,iBClPHulB,GA0BQjW,YAA6BC,MAzBhD9vB,QACAsM,SAAiC,KACjCy5B,aAAuB,EACvBC,aAAuB,EACvBC,qBAA+B,EAC/BC,qBAA+B,EAC/BC,sBAAgC,EAChCC,sBAAgC,EAChCvS,YAAsC,GACtCwS,eACA9L,WACAG,UAAoB,EACpBtX,cAA2D,GAC3DkjB,UACAvtB,eACA8T,MACAqN,oBAAqB,EACrB9+B,IAAMR,EAAU,aAChB2rC,cAA+B,CAC7BC,WAAY,KACZC,aAAc,EACdC,UAAW,KACXC,YAAa,GAGf,WAAAxf,CAAmB0I,EAA6BC,EAAc9vB,EAA0C,CAAA,GAArF6V,KAAWga,YAAXA,EAA6Bha,KAAKia,MAALA,EAC9Cja,KAAK7V,QAAU6V,KAAK8gB,eAAe32B,GAEnC6V,KAAKwwB,eAAiBxW,EAAYM,aAAata,KAAKza,IAAIP,KACxDgb,KAAK0kB,WAAa1kB,KAAK+wB,mBAEvB/wB,KAAKkD,eAAiBoJ,IAAqB,IAAMtM,KAAKgxB,oBAAoB,CAAEpkB,iBAAiB,IAC7F5M,KAAKkD,eAAeJ,QAAQ9C,KAAKia,MAAM1uB,MAEvCyU,KAAKia,MAAM1uB,KAAKkB,iBAAiB,YAAauT,KAAKixB,iBAAkB,CAAEtvB,SAAS,IAChFpX,SAASkC,iBAAiB,kBAAmBuT,KAAKkxB,uBAAwB,CAAEvvB,SAAS,IACrF3B,KAAKia,MAAMX,GAAGp1B,EAAaC,mBAAoB6b,KAAKgxB,kBACpDhxB,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAO4X,iBAAkBnxB,KAAKoxB,6BAClDpxB,KAAKia,MAAMX,GAAGtL,EAAMuL,OAAOC,YAAaxZ,KAAKgxB,kBACzChxB,KAAK7V,QAAQsmC,YACfzwB,KAAKywB,UAAY,IAAIzwB,KAAK7V,QAAQsmC,UAAUzW,EAAaC,EAAOja,KAAK7V,QAAQknC,mBAE/ErxB,KAAKyK,OAGPumB,iBAAmB,KACjBhxB,KAAKyjB,uBAAuB,EAG9B,gBAAA6N,CAAiBjkB,GACf,IAAK,MAAMtV,KAAQzR,MAAMU,KAAKqmB,EAAIkkB,YAChC,GAAIx5B,EAAKy5B,WAAaj5B,KAAKk5B,UACzB,OAAO15B,EAGX,OAAOsV,EAGT,eAAAqkB,CAAgBrkB,GACd,IAAK,IAAIzmB,EAAIymB,EAAIkkB,WAAWhrC,OAAS,EAAGK,GAAK,EAAGA,IAAK,CACnD,MAAMmR,EAAOsV,EAAIkkB,WAAW3qC,GAC5B,GAAImR,EAAKy5B,WAAaj5B,KAAKk5B,UACzB,OAAO15B,EAGX,OAAOsV,EAGT,iBAAAskB,CAAkB55B,GAChB,MAAM65B,EAAYrnC,SAASsnC,cAG3B,OAFAD,EAAUE,mBAAmB/5B,GAC7B65B,EAAUG,UAAS,GACZH,EAAUI,YAGnBZ,4BAA8B,CAACa,EAAyBC,EAA6B1qC,KACnF,GAAIA,IAAWwmB,EAAMmkB,QAAQC,KACzBH,GAASjyB,KAAKge,YAAYz3B,OAAS,EAAG,CACxC,MAAM8qB,EAAUrR,KAAKia,MAAMoY,UAAUJ,IAC9B5a,GAAQrX,KAAKia,MAAMqY,QAAQL,EAAM9qB,OAClCorB,IAAalhB,EAAQluB,EAASS,mBAAqByzB,EACnDmb,EAAexyB,KAAKge,YAAY7kB,MAAKs5B,GAAMA,EAAGrhC,SAASd,SAAS+mB,KAEtE,GAAIkb,IAAaC,EACf,IACE,MAAMne,EAAYvuB,EAAeuxB,EAAOl0B,EAASS,gBACjDoc,KAAKge,YAAc,CAAC3J,GACpBrU,KAAKyjB,wBAEP,YAIS8O,GAAYC,GACrBxyB,KAAKyK,SAKX,gBAAAioB,CAAiBC,EAAsBC,GACrC,MAAMjC,WAAEA,EAAUC,aAAEA,EAAYC,UAAEA,EAASC,YAAEA,GAAgB8B,EAC7D,IAAKjC,IAAeE,EAAW,OAC/B,MAAMoB,EAAQ1nC,SAASsnC,cACjBgB,EAAe7yB,KAAK8yB,qBAAqBF,GAC3CC,GACFZ,EAAMc,SAASpC,EAAYC,GAC3BqB,EAAMe,OAAOrC,EAAYC,KAGzBqB,EAAMc,SAASpC,EAAYC,GAC3BqB,EAAMe,OAAOnC,EAAWC,IAE1B6B,EAAU/C,kBACV+C,EAAUM,SAAShB,GACfY,GACFF,EAAUO,OAAOrC,EAAWC,GAIhC,oBAAAgC,CAAqBH,GACnB,MAAMhC,WAAEA,EAAUC,aAAEA,EAAYC,UAAEA,EAASC,YAAEA,GAAgB6B,EAC7D,IAAKhC,IAAeE,EAAW,OAAO,EAEtC,GAAIF,IAAeE,EACjB,OAAOD,EAAeE,EAGxB,MAAMqC,EAAexC,EAAWyC,wBAAwBvC,GAExD,OAAIsC,EAAe56B,KAAK86B,4BAMpBF,EAAe56B,KAAK+6B,kCAJdH,EAAe56B,KAAKg7B,gCAUtBJ,EAAe56B,KAAKi7B,6BAG9B,iBAAAC,CAAkBC,GAChB,IAAIC,EAAyB,KACzB3B,EAAc,EACd4B,EAAuB,KACvBC,EAAY,EAEhB,IAAK,MAAM97B,KAAEA,EAAI6L,OAAEA,KAAY8vB,EACzB37B,IAEC47B,IACE3zB,KAAK8yB,qBAAqB,CAC3BnC,WAAYgD,EACZ/C,aAAcoB,EACdnB,UAAW94B,EACX+4B,YAAaltB,MAGf+vB,EAAY57B,EACZi6B,EAAcpuB,GAIbgwB,IACE5zB,KAAK8yB,qBAAqB,CAC3BnC,WAAY54B,EACZ64B,aAAchtB,EACditB,UAAW+C,EACX9C,YAAa+C,MAGfD,EAAU77B,EACV87B,EAAYjwB,IAKlB,MAAO,CAAE+vB,YAAW3B,cAAa4B,UAASC,aAG5C,cAAA/S,CAAe32B,GACb,OAAOzC,OAAOkF,OAAO,CACnBknC,YAAa,YACbzC,iBAAkB,CAAE,GACMlnC,GAG9B+mC,uBAAyB,KACvB,MAAMyB,EAAY3kC,OAAO2hC,eACzB,IAAKgD,EAAW,OAChB,MAAMhC,WAAEA,EAAUE,UAAEA,EAASD,aAAEA,EAAYE,YAAEA,GAAgB6B,EAC7D,IAAKhC,IAAeE,EAAW,OAE/B,MAAMkD,EAAa/lB,EAAMe,KAAK4hB,GACxBqD,EAAYhmB,EAAMe,KAAK8hB,GAC7B,IAAKkD,IAAeC,GAAaD,EAAW9tC,SAAW+Z,KAAKia,MAAMh0B,QAAU+tC,EAAU/tC,SAAW+Z,KAAKia,MAAMh0B,OAAQ,OAEpH,MAAMguC,EAAc9sC,EAAkB4sC,GAChCG,EAAa/sC,EAAkB6sC,GAG/BG,EAAqBF,EAAYpvC,IAAI1B,EAASI,eAC9C6wC,EAAoBF,EAAWrvC,IAAI1B,EAASI,eAClD,GAAI4wC,GAAsBC,EAAmB,CAC3C,IAAIC,EAAgB1D,EAChB2D,EAAkB1D,EAClB2D,EAAe1D,EACf2D,EAAiB1D,EAErB,GAAIqD,EAAoB,CACtB,MACM9f,EADmB4f,EAAYntC,IAAI3D,EAASE,cACfwuB,YAAYjB,IAC3CyD,EAAU9tB,OAAS,IACrB8tC,EAAgBhgB,EAAU,GAAGrK,QAC7BsqB,EAAkB,GAGtB,GAAIF,EAAmB,CACrB,MACM/f,EADmB6f,EAAWptC,IAAI3D,EAASE,cACdwuB,YAAYjB,IAC3CyD,EAAU9tB,OAAS,IACrBguC,EAAelgB,EAAU,GAAGrK,QAC5BwqB,EAAiB,GASrB,YANAx0B,KAAK0yB,iBAAiBC,EAAW,CAC/BhC,WAAY0D,EACZzD,aAAc0D,EACdzD,UAAW0D,EACXzD,YAAa0D,IAMjB,MAAMC,EAAsBR,EAAYpvC,IAAI1B,EAASS,gBAC/C8wC,EAAqBR,EAAWrvC,IAAI1B,EAASS,gBACnD,IAAI+wC,EAAqBF,GAAuBC,EAChD,GAAIC,EAAoB,CACtB,MAAMC,EAAiBX,EAAYntC,IAAI3D,EAASS,gBAC1CixC,EAAgBX,EAAWptC,IAAI3D,EAASS,gBAC9C+wC,IAAwBC,IAAmBC,EAE7C,GACGJ,GAAuBC,GAAsBC,IACzCF,GAAuBC,IACvBA,GAAsBD,EAM3B,OAJAz0B,KAAK0yB,iBAAiBC,EAAW3yB,KAAK0wB,oBAClC1wB,KAAKge,YAAYz3B,OAAS,GAC5ByZ,KAAKyK,QAKTzK,KAAK0wB,cAAgB,CACnBC,aACAC,eACAC,YACAC,cACD,EAGH,gBAAAC,GACE/wB,KAAKwwB,eAAenjC,MAAMynC,YAAY,iBAAkB90B,KAAK7V,QAAQ2pC,aACrE,MAAMpP,EAAan6B,SAASC,cAAc,OAG1C,OAFAk6B,EAAWj6B,UAAUC,IAAIsV,KAAKza,IAAIJ,GAAG,SACrC6a,KAAKwwB,eAAe5lC,YAAY85B,GACzBA,EAGT,kBAAA2E,CAAmB0L,EAAsCC,GACvD,IAAKh1B,KAAKgX,MAAO,MAAO,GAGxB,MAAM1zB,EAAY0qB,EAAMe,KAAK/O,KAAKgX,OAClC,IAAK1zB,EAAW,MAAO,GAEvB,MAAM2xC,EAAa,IAAIzwC,IAKpBlB,EAAUuuB,YAAY+D,IAAiDlvB,KAAI,CAAC2sB,EAAMzsB,KACjFysB,EAAKlM,MAAQvgB,EACNysB,OAIH5f,EAAGyhC,EAAcxhC,EAAGyhC,GAAiBn1B,KAAKo1B,sBAC1C3hC,EAAG66B,EAAe56B,EAAG66B,GAAkBvuB,KAAKq1B,qBACpDr1B,KAAKowB,qBAAuB8E,EAC5Bl1B,KAAKqwB,qBAAuB8E,EAC5Bn1B,KAAKswB,sBAAwBhC,EAC7BtuB,KAAKuwB,sBAAwBhC,EAG7B,MAAM5G,EAAY3nB,KAAKgX,MAAMjpB,wBACvBunC,EAAcP,EAAWthC,EAAIyhC,EAAel1B,KAAKkwB,aACjDqF,EAAcR,EAAWrhC,EAAIyhC,EAAen1B,KAAKmwB,aACvD,IAAI15B,EAAW,CACbhD,EAAGvL,KAAKD,IAAI0/B,EAAUr6B,KAAMpF,KAAKC,IAAI6sC,EAASvhC,EAAG6hC,IACjD5hC,EAAGxL,KAAKD,IAAI0/B,EAAUp6B,IAAKrF,KAAKC,IAAI6sC,EAASthC,EAAG6hC,IAChD9pB,GAAIvjB,KAAKC,IAAIw/B,EAAU/zB,MAAO1L,KAAKD,IAAI+sC,EAASvhC,EAAG6hC,IACnD3pB,GAAIzjB,KAAKC,IAAIw/B,EAAU9zB,OAAQ3L,KAAKD,IAAI+sC,EAASthC,EAAG6hC,KAGtD,MAAMC,EAAgB,IAAIhxC,IAC1B,IAAIixC,GAAU,EAEd,KAAOA,GAAS,CACdA,GAAU,EACV,IAAK,MAAMpiB,KAAQ4hB,EAAY,CACxB5hB,EAAKqiB,SACRriB,EAAKqiB,OAASriB,EAAKrJ,QAAQjc,yBAG7B,MAAM0F,EAAEA,EAACC,EAAEA,EAACE,MAAEA,EAAKC,OAAEA,GAAWwf,EAAKqiB,OAErC,GACEtqB,GACE,CAAE3X,EAAGvL,KAAKe,MAAMwN,EAAShD,GAAIC,EAAGxL,KAAKe,MAAMwN,EAAS/C,GAAI+X,GAAIvjB,KAAKe,MAAMwN,EAASgV,IAAKE,GAAIzjB,KAAKe,MAAMwN,EAASkV,KAC7G,CAAElY,EAAGvL,KAAKe,MAAMwK,GAAIC,EAAGxL,KAAKe,MAAMyK,GAAI+X,GAAIvjB,KAAKe,MAAM2K,GAAQ+X,GAAIzjB,KAAKe,MAAM4K,IA/UpE,EAiVe,IAAvB2hC,EAAc3uC,MAEhB,CAEA2uC,EAAc9qC,IAAI2oB,GAClB4hB,EAAWluC,OAAOssB,GAElB5c,EAAW,CACThD,EAAGvL,KAAKC,IAAIsO,EAAShD,EAAGA,GACxBC,EAAGxL,KAAKC,IAAIsO,EAAS/C,EAAGA,GACxB+X,GAAIvjB,KAAKD,IAAIwO,EAASgV,GAAI7X,GAC1B+X,GAAIzjB,KAAKD,IAAIwO,EAASkV,GAAI9X,IAG5B4hC,GAAU,EACV,QAON,IAAK,MAAMpiB,IAAQ,IAAImiB,KAAkBP,UAChC5hB,EAAKqiB,OAQd,OALA11B,KAAKvJ,S7BhWO,SAAgBk/B,EAA8CvyC,GAC5E,MAAMwyC,EAAgBxyC,EAAU2K,wBAChC,MAAO,CACL0F,EAAGkiC,EAAWliC,EAAImiC,EAAcniC,EAAIrQ,EAAUiL,WAC9CqF,EAAGiiC,EAAWjiC,EAAIkiC,EAAcliC,EAAItQ,EAAU+K,UAC9Csd,GAAIkqB,EAAWliC,EAAImiC,EAAcniC,EAAIrQ,EAAUiL,WAAasnC,EAAWjnC,MACvEid,GAAIgqB,EAAWjiC,EAAIkiC,EAAcliC,EAAItQ,EAAU+K,UAAYwnC,EAAWvgC,OACtE1G,MAAOinC,EAAWjnC,MAClB0G,OAAQugC,EAAWvgC,OAEvB,C6BsVoBygC,CAAgB,IAC3Bp/B,EACH/H,MAAO+H,EAASgV,GAAKhV,EAAShD,EAC9B2B,OAAQqB,EAASkV,GAAKlV,EAAS/C,GAC9BsM,KAAKia,MAAM1uB,MACPjF,MAAMU,KAAKwuC,GAAejuB,MAAK,CAAC7e,EAAG1D,IAAM0D,EAAEye,MAASniB,EAAEmiB,QAAQzgB,KAAK2sB,WACjEA,EAAKlM,MACLkM,EAAKwB,kBAIhBoc,iBAAoB6E,IAClB,MAAM9N,OAAEA,EAAMhiC,OAAEA,EAAMi+B,QAAEA,EAAOC,QAAEA,GAAY4R,EACvCC,EAAgB/vC,EAAuBixB,QAAQ,aACrD,GAAe,IAAX+Q,IAAiB+N,EAAc,OAEnC/1B,KAAKg2B,kBAAkBD,GACvB,MAAME,EAAeF,EAAa/kC,QAAQggB,QACpC+jB,EAAa,CAAEthC,EAAGwwB,EAASvwB,EAAGwwB,IAC5BzwB,EAAGyhC,EAAcxhC,EAAGyhC,GAAiBn1B,KAAKo1B,qBAClDp1B,KAAKkwB,aAAegF,EACpBl1B,KAAKmwB,aAAegF,EACpBn1B,KAAKge,YAAche,KAAKqpB,mBAAmB0L,EAAYA,GACvD/0B,KAAK6kB,UAAW,EAChB7kB,KAAKuK,OAEL,MAAM2rB,EAAoBC,IACpBn2B,KAAKywB,WACPzwB,KAAKywB,UAAUhmB,OAEbzK,KAAKga,YAAYe,aACnB/a,KAAKga,YAAYe,YAAYtQ,OAE/B,MAAMud,OAAEA,EAAMhiC,OAAEA,EAAMi+B,QAAEA,EAAOC,QAAEA,GAAYiS,EACvCJ,EAAgB/vC,EAAuBixB,QAAQ,aACrD,GACa,IAAX+Q,IACI+N,GACDA,EAAa/kC,QAAQggB,UAAYilB,EAEpC,OAGF,MAAMG,EAAY,CAAE3iC,EAAGwwB,EAASvwB,EAAGwwB,GACnClkB,KAAKge,YAAche,KAAKqpB,mBAAmB0L,EAAYqB,GACnDp2B,KAAKge,YAAYz3B,OAAS,GAC5ByZ,KAAKia,MAAMoc,OAEbr2B,KAAKgB,QAAQ,EAETs1B,EAAiB,KACrB/rC,SAAS6D,KAAKU,oBAAoB,YAAaonC,GAAkB,GACjE3rC,SAAS6D,KAAKU,oBAAoB,UAAWwnC,GAAgB,GAC7Dt2B,KAAK6kB,UAAW,EAChB7kB,KAAKkwB,aAAe,EACpBlwB,KAAKmwB,aAAe,EAChBnwB,KAAKywB,WAAazwB,KAAKge,YAAYz3B,OAAS,GAC9CyZ,KAAKywB,UAAUlmB,QAInBhgB,SAAS6D,KAAK3B,iBAAiB,YAAaypC,GAAkB,GAC9D3rC,SAAS6D,KAAK3B,iBAAiB,UAAW6pC,GAAgB,EAAM,EAGlE,qBAAA7S,GACE,GAAIzjB,KAAKge,YAAYz3B,QAAU,EAAG,OAClC,MAAMwuC,EAAa,CAAEthC,EAAG8iC,IAAU7iC,EAAG6iC,KAC/BvB,EAAW,CAAEvhC,GAAI8iC,IAAU7iC,GAAI6iC,KACrC,IAAK,MAAM9D,KAAMzyB,KAAKge,YAAa,CACjC,MAAMlwB,EAAO2kC,EAAGzoB,QAAQjc,wBACxBgnC,EAAWthC,EAAIvL,KAAKC,IAAI4sC,EAAWthC,EAAG3F,EAAKR,MAC3CynC,EAAWrhC,EAAIxL,KAAKC,IAAI4sC,EAAWrhC,EAAG5F,EAAKP,KAC3CynC,EAASvhC,EAAIvL,KAAKD,IAAI+sC,EAASvhC,EAAG3F,EAAK8F,OACvCohC,EAASthC,EAAIxL,KAAKD,IAAI+sC,EAASthC,EAAG5F,EAAK+F,QAEzCmM,KAAKge,YAAche,KAAKqpB,mBAAmB0L,EAAYC,GACnDh1B,KAAKge,YAAYz3B,OAAS,EAC5ByZ,KAAKgB,SAGLhB,KAAKyK,OAIT,MAAAzJ,GACE,GAAgC,IAA5BhB,KAAKge,YAAYz3B,SAAiByZ,KAAKvJ,WAAauJ,KAAKgX,MAAO,OACpE,MAAQvjB,EAAG66B,EAAe56B,EAAG66B,GAAkBvuB,KAAKq1B,sBAC5C5hC,EAAGyhC,EAAcxhC,EAAGyhC,GAAiBn1B,KAAKo1B,qBAC5CtL,EAAmB9pB,KAAKgX,MAAM8W,cAAe//B,wBAC7C87B,EAAW7pB,KAAKia,MAAM1uB,KAAKwC,wBAC3ByoC,EAAW1M,EAAiBr2B,EAAIo2B,EAASp2B,EACzCgjC,EAAU3M,EAAiBp2B,EAAIm2B,EAASn2B,EAE9ChM,OAAOkF,OAAOoT,KAAK0kB,WAAWr3B,MAAO,CACnCC,KAAsC,EAA7B0S,KAAKswB,sBAA4BhC,EAAgBtuB,KAAKvJ,SAAShD,EAAIuM,KAAKowB,qBAAuB8E,EAAesB,EAAjH,KACNjpC,IAAqC,EAA7ByS,KAAKuwB,sBAA4BhC,EAAgBvuB,KAAKvJ,SAAS/C,EAAIsM,KAAKqwB,qBAAuB8E,EAAesB,EAAjH,KACL/nC,MAAO,GAAGsR,KAAKvJ,SAAS/H,UACxB0G,OAAQ,GAAG4K,KAAKvJ,SAASrB,aAE3B1N,OAAOkF,OAAOoT,KAAKwwB,eAAenjC,MAAO,CACvCC,KAAM,GAAGkpC,MACTjpC,IAAK,GAAGkpC,MACR/nC,MAAO,GAAGo7B,EAAiBp7B,MAAQ,MACnC0G,OAAQ,GAAG00B,EAAiB10B,OAAS,SAElC4K,KAAK6kB,UAAY7kB,KAAKywB,WACzBzwB,KAAKywB,UAAUzvB,SAInB,kBAAAq0B,GACE,MAAO,CACL5hC,EAAGuM,KAAKia,MAAM1uB,KAAK8C,WACnBqF,EAAGsM,KAAKia,MAAM1uB,KAAK4C,WAIvB,kBAAAinC,GACE,OAAKp1B,KAAKgX,MAMH,CACLvjB,EAAGuM,KAAKgX,MAAM8W,cAAez/B,WAC7BqF,EAAGsM,KAAKgX,MAAM8W,cAAe3/B,WAPtB,CACLsF,EAAG,EACHC,EAAG,GAST,iBAAAsiC,CAAkBhf,GACZhX,KAAKgX,QAAUA,IACnBhX,KAAKgX,MAAQA,GAGf9B,WAAc9vB,IAEZ,KADc4a,KAAKia,MAAM0V,gBACD,cAAVvqC,EAAEuE,KAAiC,WAAVvE,EAAEuE,KAAzC,CAEA,IAAK,MAAM8oC,KAAMzyB,KAAKge,YACpByU,EAAG/Y,SAAS,EAAG+Y,EAAGlsC,SAAW,GAE/B,GAAIyZ,KAAKgX,MAAO,CACd,MAAM1zB,EAAY0qB,EAAMe,KAAK/O,KAAKgX,OAC5B2F,EAAQr5B,EAAUuuB,YAAYjB,IAChC5Q,KAAKge,YAAYz3B,SAAWo2B,EAAMp2B,QACpCjD,EAAUwM,SAT8C,GAc9D,WAAA4zB,GACEh8B,OAAOkF,OAAOoT,KAAKwwB,eAAenjC,MAAO,CAAE2L,QAAS,UACpDgH,KAAKqkB,oBAAqB,EACrBrkB,KAAKgX,OACVhX,KAAKkD,eAAeJ,QAAQ9C,KAAKgX,OAGnC,IAAAzM,GACOvK,KAAKgX,QACVxJ,GAAiBR,KAAKhN,MAEtBA,KAAKgB,SACLhB,KAAK0jB,cACLn5B,SAASkC,iBAAiB,UAAWuT,KAAKkV,YAC1C9H,GAAeJ,KAAKhN,KAAMA,KAAKia,MAAM1uB,MAAM,KACzCyU,KAAKgB,QAAQ,IAEfoM,GAAeJ,KAAKhN,KAAMA,KAAKgX,MAAM8W,eAAgB,KACnD9tB,KAAKgB,QAAQ,KAIjB,WAAAuiB,GACE77B,OAAOkF,OAAOoT,KAAKwwB,eAAenjC,MAAO,CAAE2L,QAAS,SACpDgH,KAAKqkB,oBAAqB,EACrBrkB,KAAKgX,OACVhX,KAAKkD,eAAeE,UAAUpD,KAAKgX,OAGrC,IAAAvM,GACE+C,GAAiBR,KAAKhN,MACtBzV,SAASuE,oBAAoB,UAAWkR,KAAKkV,YAC7ClV,KAAKujB,cACLvjB,KAAKvJ,SAAW,KAChBuJ,KAAKge,YAAc,GACnBhe,KAAKg2B,uBAAkBjrB,GACnB/K,KAAKywB,WACPzwB,KAAKywB,UAAUhmB,OAInB,OAAAC,GACE1K,KAAKkD,eAAef,aAEpBnC,KAAKyK,OACLzK,KAAKwwB,eAAe1gC,SAChBkQ,KAAKywB,WACPzwB,KAAKywB,UAAU/lB,UAEjB8C,GAAiBR,KAAKhN,MAEtBA,KAAKia,MAAM1uB,KAAKuD,oBAAoB,YAAakR,KAAKixB,kBACtD1mC,SAASuE,oBAAoB,kBAAmBkR,KAAKkxB,wBACrDlxB,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAO4X,iBAAkBnxB,KAAKoxB,6BACnDpxB,KAAKia,MAAMJ,IAAI7L,EAAMuL,OAAOC,YAAaxZ,KAAKgxB,kBAC9ChxB,KAAKia,MAAMX,GAAGp1B,EAAaC,mBAAoB6b,KAAKgxB,mBCxjBxD,MAAMjjB,GAAYC,EAAMC,OAAO,aACzBiN,GAAQlN,EAAMC,OAAO,SACrB2P,GAAQ5P,EAAMC,OAAO,eACrBsM,GAAQvM,EAAMC,OAAO,YAE3B,SAASyoB,GAAWzwC,GAAkC+qB,QAAEA,EAAOC,MAAEA,EAAKC,MAAEA,IACtE,MAAMlpB,EAAQ,CACZgpB,UACAC,QACAC,QACAE,QAAS,EACTD,QAAS,GAELxtB,EAAYsC,EAAOwoB,OAAOtrB,EAASQ,UAAWqE,GAC9CpE,EAAiBqC,EAAOwoB,OAAOtrB,EAASS,eAAgBoE,GACxDmoB,EAAQlqB,EAAOwoB,OAAO,SAI5B,OAHA0B,EAAMvlB,YAAY3E,EAAOwoB,OAAO,UAChC7qB,EAAegH,YAAYulB,GAC3BxsB,EAAUiH,YAAYhH,GACfD,CACT,CACM,SAAUgzC,GAAqBp2B,GACnChc,EAAgBwC,OAAO5D,EAASS,gBAEhC8D,OAAOkF,OAAOzJ,EAAUod,EAAKpd,UAAY,CAAA,GACzCuE,OAAOkF,OAAO/I,EAAa0c,EAAK1c,aAAe,CAAA,GAC/C6D,OAAOkF,OAAO1I,EAAcqc,EAAKrc,cAAgB,CAAA,GACjDwD,OAAOkF,OAAOxI,EAAiBmc,EAAKnc,iBAAmB,CAAA,GAEvDwyC,GAAQvyC,WAAaD,EAAgBC,WAErCuyC,GAAQC,SAAW1zC,EAASE,aAC5BgrB,GAAgBlrB,SAAWA,EAASC,UACpC81B,GAAmB/1B,SAAWA,EAASE,aACvCy0B,GAAgB30B,SAAWA,EAASG,UACpCu1B,GAAoB11B,SAAWA,EAASI,cACxCmzB,GAAevzB,SAAWA,EAASK,SACnC8xB,GAAgBnyB,SAAWA,EAASM,UACpCywB,GAAe/wB,SAAWA,EAASO,SACnCkyB,GAAgBzyB,SAAWA,EAASQ,UACpCitB,GAAqBztB,SAAWA,EAASS,eAEzCW,EAAgBmG,IAAIvH,EAASS,eAC/B,CACgB,SAAAkzC,GAAoB9c,EAAsB+c,GACxD,OAAOtmC,EAAgB,CACrBe,SAAU,CAACZ,EAAaE,KACtBkpB,EAAYgd,YAAYpmC,EAAKE,GACzBimC,GACFA,EAAOlnC,SAGX4B,UAAWuoB,EAAY7vB,QAAQsH,UAC/BC,MAAOsoB,EAAY7vB,QAAQuH,OAE/B,CAEA,SAASulC,GAA0BC,GACjC,MAAO,CACLvtC,IAAKutC,EAAK,UAAY,YACtBC,WAAW,EACX5mB,OAAQ,CAACptB,EAASS,gBAClBwzC,YAAY,EACZ,OAAAltB,CAAgC+nB,EAAkB5c,GAChD,IAAIG,EACAlyB,EACAI,EACAC,EACJ,KACG6xB,EAAWlyB,EAAWI,EAAUC,GAAawC,EAAgBkvB,EAAQgC,KAAM,CAACl0B,EAASE,aAAcF,EAASG,UAAWH,EAASO,SAAUP,EAASQ,YAEtJ,MACE,OAAO,EAGT,MAAM4wB,EAASjxB,EAAUyuB,YACnB5T,EAAY+4B,EAAK,OAAS,OAC1BG,EAAiBH,EAAK,OAAS,OAC/BI,EAAa9hB,EAAUrX,GAC7B,GAAIkX,EAAQgC,KAAKlZ,KAAem5B,EAC9B,OAAO,EAET,MAAMC,EAAY7zC,EAASya,GAC3B,GAAIo5B,EAAW,CACb,MAAMC,EAAYjjB,EAAOvC,QAAQruB,EAAUutB,OACrCumB,EAAaF,EAAUjjB,eAAeC,EAAOijB,GAAYr5B,GAC/D,IAAKs5B,EAAY,OAAO,EACxB,IAAIC,EAAcD,EAAWrmC,SAASimC,GAClCK,EAAYtmC,WACdsmC,EAAcA,EAAYtmC,SAASimC,IAErC,MAAMlwB,EAAQuwB,EAAY9zB,OAAO5D,KAAKia,MAAMh0B,QAAUiC,KAAKC,IAAIktB,EAAQzR,OAAQ8zB,EAAYnxC,SAAW,GACtGyZ,KAAKia,MAAM0d,aAAaxwB,EAAO,EAAG6G,EAAMmkB,QAAQyF,UAE7C,CACH,MAAMzwB,EAAQmwB,EAAW1zB,OAAO5D,KAAKia,MAAMh0B,SAAWixC,EAAKI,EAAW/wC,SAAW,EAAI,GACrFyZ,KAAKia,MAAM0d,aAAaxwB,EAAO,EAAG6G,EAAMmkB,QAAQyF,MAElD,OAAO,CACR,EAEL,OAEahB,GACXtoB,kBAA4BlqB,EAAgBC,WAC5CiqB,gBAA0BnrB,EAASE,aACnCirB,uBAAyB,CACvB,mCAAoC,CAClC8oB,YAAY,EACZztC,IAAK,YACLwtC,WAAW,EACXvzB,OAAQ,EACR,OAAAsG,CAAgC+nB,EAAkB5c,GAChD,MACMzwB,EADOob,KAAKia,MAAMqY,QAAQL,EAAM9qB,OACpB,GAClB,GAAIviB,EAAK+qB,gBAAgBuJ,GAEvB,OADAt0B,EAAK+qB,KAAK7f,UACH,EAGT,GAAIulB,EAAQ9E,OAAOptB,EAASS,gBAAiB,CAE3C,GAAe,IADAgB,EAAKgf,OAAO9d,EAAelB,EAAMzB,EAASS,iBAEvD,OAAO,EAIX,OAAO,CACR,GAEH,gCAAiC,CAC/BwzC,YAAY,EACZztC,IAAK,SACLwtC,WAAW,EACX,OAAAjtB,CAAgC+nB,EAAkB5c,GAChD,MAAMgC,EAAOrX,KAAKia,MAAMqY,QAAQL,EAAM9qB,OAChCviB,EAAOyyB,EAAK,GACZwgB,EAAexgB,EAAK,GAC1B,IAAKzyB,EAAKwqB,gBAAgB8J,IAAsBt0B,EAAKwqB,gBAAgBsH,KAAmBmhB,IAAiBjzC,EAAK2B,SAAW,EAAG,OAAO,EAEnI,GAAI8uB,EAAQ9E,OAAOptB,EAASS,gBAAiB,CAE3C,GAAIgB,IADmBkB,EAAelB,EAAMzB,EAASS,gBACzBwN,SAAS0mC,MAAQD,IAAiBjzC,EAAK2B,SAAW,EAC5E,OAAO,EAGX,OAAO,CACR,GAEH,WAAY0wC,IAA0B,GACtC,aAAcA,IAA0B,IAG1C,eAAOc,GACL7e,GAAmB1J,gBAAkB,CAACsI,IAEtCA,GAAgBtI,gBAAkB,CAAC8F,GAAiBuD,IACpDf,GAAgBkgB,kBAAoB9e,GAEpCL,GAAoBrJ,gBAAkB,CAACkH,IACvCmC,GAAoBmf,kBAAoBlgB,GAExCxC,GAAgB9F,gBAAkB,CAAC0E,IACnCoB,GAAgB0iB,kBAAoBlgB,GAEpC5D,GAAe1E,gBAAkB,CAACoG,IAClCA,GAAgBoiB,kBAAoB1iB,GAEpCM,GAAgBpG,gBAAkB,CAACoB,GAAsBgN,IACzDhI,GAAgBoiB,kBAAoB9jB,GAEpCtD,GAAqBonB,kBAAoBpiB,GAEzC,MAAMqiB,EAAY,CAAC,SAAU,OAAQ,aAAc,cAAc73B,QAAO,CAAC83B,EAAW3nB,KAClF,MAAM5mB,EAAM,WAAW4mB,IACjB3rB,EAAOopB,EAAMC,OAAOtkB,GAI1B,OAHAuuC,EAAUvuC,GAAO,c7ClHP,SAIdwuC,EACAC,GAEA,MAAMC,EAAmB,cAAcF,EACrC,WAAA7mB,IAAegnB,GACbrpB,SAASqpB,KAGb,IAAK,MAAM9wC,KAAU4wC,EACnB7wC,EAAkE8wC,EAAYE,UAAW/wC,EAAO+wC,WAGlG,OAAOF,CACT,C6CiGqCG,CAAW5zC,EAAM,CAACkrB,MAC/C,eAAOioB,GAAQ,GAEVG,CAAS,GACf,IAEHlqB,EAAM+pB,SAAS,CACb,eAAgBxkB,GAChB,cAAezD,MACZmoB,EACH,CAAC,SAAS90C,EAASC,aAAcirB,GACjC,CAAC,WAAWlrB,EAASQ,aAAciyB,GACnC,CAAC,WAAWzyB,EAASS,kBAAmBgtB,GACxC,CAAC,WAAWztB,EAASO,YAAawwB,GAClC,CAAC,WAAW/wB,EAASM,aAAc6xB,GACnC,CAAC,WAAWnyB,EAASK,YAAakzB,GAClC,CAAC,WAAWvzB,EAASI,iBAAkBs1B,GACvC,CAAC,WAAW11B,EAASG,aAAcw0B,GACnC,CAAC,WAAW30B,EAASE,gBAAiB61B,GACtC,oBAAqBoC,KACpB,GAGLrB,MACA9vB,QACA83B,QACAwW,mBAAqB9qB,GAAS3N,KAAK04B,cAAe,KAClDt/B,SACA4d,MACA8D,eACAC,YACAE,eACA0d,WACA3d,iBAEA,WAAIl2B,GACF,OAAOkb,KAAKsR,YAGd,WAAAA,CAAY2I,EAAc9vB,GACxB6V,KAAKia,MAAQA,EACbja,KAAK7V,QAAU6V,KAAK8gB,eAAe32B,GAAW,CAAA,GAC9C,MAAMyuC,EAAa7zC,EAAU,WAG7B,GAFAib,KAAKiiB,QAAUjiB,KAAKia,MAAMK,aAAase,EAAW5zC,MAE7Cgb,KAAK7V,QAAQwjC,UAAW,CAC3B,MAAMkL,EAAe9zC,EAAU,aAC/Bib,KAAKia,MAAM72B,UAAUqH,UAAUC,IAAImuC,EAAaxzC,GAAG,WAGjD2a,KAAK7V,QAAQwoC,YACf3yB,KAAK8a,eAAiB,IAAI9a,KAAK7V,QAAQwoC,UAAU3yB,KAAMA,KAAKia,MAAOja,KAAK7V,QAAQ2uC,mBAGlF,MAAMC,EAAU/4B,KAAKia,MAAM+e,UAAU,WACrC,GAAID,GAAY/4B,KAAKia,MAAMgf,MAAqBC,QAAS,CACvD,MAAM,CAAGC,IAAWJ,EAAQK,UAAuC,IAAIrqB,MAAK,EAAEpoB,KAAUA,IAASqZ,KAAKlb,QAAQ+xC,YAAa,GAC3H,GAAIsC,GAAiD,WAAvCA,EAAOxqB,QAAQ2O,oBAAkC,CAC7D,MAAMyZ,EAAU/2B,KAAKia,MAAMgf,MAAqBC,QAAQnqB,MAAKgoB,GAAUA,EAAOoC,SAAWA,IACrFpC,IACFA,EAAOzqC,MAAMquB,UAAY3a,KAAK7V,QAAQ4zB,KACtC/d,KAAKq5B,kBAAkBr5B,KAAK7V,QAAQmvC,aAAcvC,GAClDA,EAAOzqC,MAAMG,iBAAiB,aAAa,KACzC,IAAKuT,KAAK5G,WAAa29B,EAAQ,OAC/B,MAAMwC,EAAav5B,KAAK5G,SAASrL,yBAC3Bqe,YAAEA,GAAgBD,GAAmBotB,GAC3C,GAAIntB,EAAa,CACf,MAAMotB,EAAYzC,EAAOzqC,MAAMyB,wBAC/BrG,OAAOkF,OAAOmqC,EAAO5sC,QAAQkD,MAAO,CAAE48B,UAAW,2BAA2BuP,EAAU9qC,mBAGtFhH,OAAOkF,OAAOmqC,EAAO5sC,QAAQkD,MAAO,CAAE48B,eAAWlf,SAO3D,MAAM0uB,EAAWz5B,KAAKia,MAAM+e,UAAU,YACtC,IAAK,MAAM1rB,KAAU5lB,OAAOylB,OAAOypB,GAAQ8C,iBAErCpsB,EAAO8pB,WACTqC,EAASE,SAASrsB,EAAO3jB,KAAKozB,QAAQzP,GAGtCmsB,EAASG,WAAWtsB,EAAO3jB,IAAK2jB,GAIpCtN,KAAKia,MAAM1uB,KAAKkB,iBACd,SACCotC,IACC,MAAM9V,EAAO8V,EAAI7V,eACjB,IAAKD,GAAQA,EAAKx9B,QAAU,EAAG,OAE/B,MAAMg2B,EAAYwH,EAAKhV,MAAKhX,GAAQA,EAAK4W,SAA0C,UAA/B5W,EAAK4W,QAAQpiB,eAA6BwL,EAAKtN,UAAU6F,SAAS,cACtH,GAAIisB,EAAW,CACb,GAAIvc,KAAKgX,QAAUuF,EAKjB,OAJAvc,KAAK8a,gBAAkB9a,KAAK8a,eAAevQ,OAC3CvK,KAAK24B,YAAc34B,KAAK24B,WAAW33B,SACnChB,KAAK+a,aAAe/a,KAAK+a,YAAY/Z,cACrChB,KAAKib,gBAAkBjb,KAAKib,eAAeja,UAGzChB,KAAKgX,OAAOhX,KAAKye,iBACrBze,KAAK85B,eAAevd,QAEbvc,KAAKgX,OACZhX,KAAKye,oBAGT,GAGFze,KAAK+5B,YACL/5B,KAAKg6B,qBAGP,YAAA1f,CAAa2f,GACX,GAAIjwC,EAASiwC,GAAU,CACrB,MAAMx6B,EAAKlV,SAASC,cAAc,OAClC,IAAK,MAAM0vC,KAAaD,EAAQ3lC,MAAM,KACpCmL,EAAGhV,UAAUC,IAAIwvC,GAGnB,OADAl6B,KAAKiiB,QAAQr3B,YAAY6U,GAClBA,EAIP,OADAO,KAAKiiB,QAAQr3B,YAAYqvC,GAClBA,EAIX,cAAAnZ,CAAe32B,GACb,OAAOzC,OAAOkF,OAAO,CACnB6E,WAAW,EACXC,MAAOsO,KAAKm6B,aAAahwC,EAAQuH,OAAS,CAAA,GAC1CklB,MAAM,EACNwjB,YAAY,EACZrc,KAAMxD,GAAMvD,MACZ8hB,iBAAkB,CAAE,EACpBuB,aAAc,CAAE,EAChBC,iBAAkB,CAAE,EACpBC,cAAe,CAAE,EACjBC,mBAAoB,CAAE,GACHrwC,GAGvB,YAAAgwC,CAAahwC,GACX,OAAOzC,OAAOkF,OAAO,CACnB6tC,iBAAkB,0BAClB7oC,cAAe,SACfe,YAAa,UACbE,WAAY,SACZT,QAAS,MACTI,QAAS,SACTQ,uBAAwB,kCACxBiwB,OAAQ,SACR1B,MAAO,QACPuB,YAAa,cACbwE,qBAAsB,8IACtBzJ,SAAU,YACVa,QAAS,WACTC,UAAW,mBACXE,YAAa,sBACbE,aAAc,mBACdC,WAAY,qBACZC,UAAW,aACXE,UAAW,aACXE,UAAW,aACXE,aAAc,gBACdE,YAAa,eACbE,gBAAiB,uBACjBG,YAAa,oBACZ31B,GAGL,SAAA4vC,GACE,MAAMW,EAAwB16B,KAAKia,MAAM0gB,gBACzC36B,KAAKia,MAAM0gB,gBAAe,CAAKxzB,EAAgB,EAAG5gB,KAChD,MAAMktB,EAAuBzF,EAAMC,OAAO,WAAW9qB,EAASS,kBACxD8vB,EAAS1T,KAAKia,MAAMh0B,OAAO+jB,QAAQ9Y,iBAAiB,IAAIuiB,EAAqB7E,aACnF,IAAK,MAAM+E,KAASrtB,MAAMU,KAAK0sB,GAC7BC,EAAMxjB,aAAa,kBAAmB/C,QAAO,IAE/C,MAAMwQ,EAAO88B,EAAsB1tB,KAAKhN,KAAKia,MAAO9S,EAAO5gB,GACrDgrB,EAAYvR,KAAKia,MAAM1I,YAC7B,IAAK,MAAMoC,KAASrtB,MAAMU,KAAK0sB,GAC7BC,EAAMxjB,aAAa,kBAAmB/C,OAAOmkB,IAE/C,OAAO3T,CACR,EAGD,MAAMg9B,EAAe56B,KAAKia,MAAM1J,OAChCvQ,KAAKia,MAAM1J,OAAS,SAAU5pB,EAAcqB,EAAgBR,EAAwBwmB,EAAMmkB,QAAQC,KAGhG,KAFapyB,KAAK/Z,OAAO8tB,MAAMptB,GAEe4xC,qBAAqBxqB,GAAU8sB,WAAY,CACvF,MAAMC,EAAgB96B,KAAKg5B,UAAU50C,EAAgBC,YAE/C4tC,EAAQjyB,KAAK2vB,eACnB,GAAIsC,GAASA,EAAM1rC,OAAS,EAAG,CAE7B,GADgByZ,KAAKqyB,UAAUJ,GACnB9uC,EAASS,gBACnB,OAAOg3C,EAAa5tB,KAAKhN,KAAMrZ,EAAMqB,EAAOR,GAKhD,GAAIszC,GAAiBA,EAAchgB,gBAAkBggB,EAAchgB,eAAekD,YAAYz3B,OAAS,EAAG,CACxG,MAAMy3B,EAAc8c,EAAchgB,eAAekD,YAEjD,IAAI+c,GAAY,EAChB,MAAMC,EAAW,GACjB,IAAK,MAAMC,KAAWjd,EAAa,CACjC,MAAM7W,EAAQ8zB,EAAQr3B,OAAO5D,KAAK/Z,QAC5BM,EAAS00C,EAAQ10C,SACvBy0C,EAAS/0B,KAAK,CAAEkB,QAAO5gB,WACRyZ,KAAKqyB,UAAUlrB,EAAO5gB,GAC1BI,KAAUqB,IACnB+yC,GAAY,GAGhB,MAAMG,IAAcH,GAAY/yC,EAE1Bk0B,EAAQ,IAAIhB,GAClB,IAAK,MAAOt0B,GAAGugB,MAAEA,EAAK5gB,OAAEA,MAAay0C,EAAS7tC,UAAW,CACvD,MAAMguC,EAAkB,IAANv0C,EAAU,EAAIo0C,EAASp0C,EAAI,GAAGugB,MAAQ6zB,EAASp0C,EAAI,GAAGL,OACxE21B,EAAMkf,OAAOj0B,EAAQg0B,GAAWC,OAAO70C,EAAQ,CAAEI,CAACA,GAAOu0C,IAG3D,MAAMG,EAAcr7B,KAAKs7B,eAAepf,EAAO10B,GAE/C,OADAwY,KAAKq2B,OACEgF,GAIX,OAAOT,EAAa5tB,KAAKhN,KAAMrZ,EAAMqB,EAAOR,EAC7C,EAGD,MAAMuxC,EAAU/4B,KAAKia,MAAMgf,MAAMsC,QAAQxC,QACzC,GAAIA,EAAS,CACX,MAAMyC,EAAezC,EAAQ0C,UAAUC,MACvC,GAAIF,EAAc,CAChB,MAAMG,EAA0B,CAACx0B,EAAe5gB,EAAgBq1C,GAA0B,KAExF,MAAMzkB,EAAOnX,KAAKia,MAAM4hB,QAAQ10B,EAAO5gB,IAChC8wB,EAAMzT,GAAU5D,KAAKia,MAAMqY,QAAQnrB,EAAQ5gB,GAClD,IAAIu1C,EAAe,EACfC,EAAS,IAAI7gB,GACL,MAAR7D,IACFykB,EAAezkB,EAAK9wB,SAAWqd,EAC/Bm4B,EAAS1kB,EAAK6E,QAAQ9wB,MAAMwY,EAAQA,EAASk4B,EAAe,GAAG1f,OAAO,OAExE,MAAM4f,EAAWh8B,KAAKia,MAAMgiB,YAAY90B,EAAO5gB,EAASu1C,GAClDI,EAAOF,EAASE,MAAK,IAAIhhB,IAAQkB,OAAOjF,GAAM/b,OAAO2gC,IAE3D,IAAII,EAAa,EACjB,MAAMhgB,EAAM+f,EAAK/f,IAAIz1B,KAAKs2B,IACxB,MAAM3M,WAAEA,KAAe+M,GAAUJ,EAWjC,GAVIA,EAAGZ,OACL+f,GAAcnyC,EAASgzB,EAAGZ,QAAUY,EAAGZ,OAAO71B,OAAS,EAEhDy2B,EAAGoe,OACVe,G3Chc0D,iB2CgcnCnf,EAAGoe,OAAUpe,EAAGoe,OAAS,EAEzCpe,EAAGj2B,SACVo1C,GAAcnf,EAAGj2B,QAGfspB,EAAY,CACd,MAAQ,CAACltB,EAASS,gBAAiBw4C,KAAc/f,GAAUhM,EAC3D,GAAIurB,EAAgB,CAClB,MAAMh4C,EAAiBo4C,EAAS5wC,MAAM+wC,EAAa,EAAGA,GAAYhgB,IAAI,GACtE,GAAIv4B,GAAkBA,EAAeysB,YAAczsB,EAAeysB,WAAWltB,EAASS,gBAAiB,CACrG,MAAMy4C,EAAsBz4C,EAAeysB,WAAWltB,EAASS,iBACzDyJ,MAAEA,KAAUrF,GAAUq0C,EAC5B,MAAO,IAAKjf,EAAO/M,WAAY,IAAKgM,EAAO,CAACl5B,EAASS,gBAAiBoE,KAG1E,MAAO,IAAKo1B,EAAO/M,WAAY,IAAKgM,IAEtC,OAAOW,CAAE,IAEX,OAAO,IAAI9B,GAAMiB,EAAI,EAEvB4c,EAAQ0C,SAAUC,MAAQ,SAA6B1zC,GACrD,MAAM8yC,EAAgB96B,KAAKia,MAAM+e,UAAU50C,EAAgBC,YACrD4tC,EAAQjyB,KAAKia,MAAM0V,eACzB,GAAIsC,GAASA,EAAM1rC,OAAS,EAAG,CAE7B,GADgByZ,KAAKia,MAAMoY,UAAUJ,GACzB9uC,EAASS,gBAAiB,CACpC,MAAMs4C,EAAOP,EAAwB1J,EAAM9qB,MAAO8qB,EAAM1rC,QAAQ,GAC1D21B,GAAQ,IAAIhB,IAAQkgB,OAAOnJ,EAAM9qB,OAAO/L,OAAO8gC,GAErD,YADAl8B,KAAKia,MAAMqhB,eAAepf,EAAOlO,EAAMmkB,QAAQyF,OAMnD,GAAIkD,GAAiBA,EAAchgB,gBAAkBggB,EAAchgB,eAAekD,YAAYz3B,OAAS,EAAG,CACxG,MAAMy3B,EAAc8c,EAAchgB,eAAekD,YAEjD,IAAI9B,EAAQ,IAAIhB,GACZigB,EAAY,EAChB,IAAK,MAAMF,KAAWjd,EAAa,CACjC,MAAM7W,EAAQ8zB,EAAQr3B,OAAO5D,KAAKia,MAAMh0B,QAClCM,EAAS00C,EAAQ10C,SAEjB21C,EAAOP,EAAwBx0B,EAAO5gB,EAAS,GAC/C+1C,GAAW,IAAIphB,IAAQkgB,OAAOj0B,EAAQg0B,GAAW//B,OAAO8gC,GAC9DhgB,EAAQA,EAAM9gB,OAAOkhC,GACrBnB,EAAYh0B,EAAQ5gB,EAItB,OAFAyZ,KAAKia,MAAMqhB,eAAepf,EAAOlO,EAAMmkB,QAAQyF,WAC3C5Z,EAAYz3B,OAAS,GAAGyZ,KAAKia,MAAMoc,QAGzC,OAAOmF,EAAaxuB,KAAKhN,KAAMhY,EAChC,IAKP,cAAA8xC,CAAe9iB,GACTA,IACFhX,KAAKgX,MAAQA,EACbhX,KAAK8a,gBAAgBvQ,OACjBvK,KAAK7V,QAAQ2sB,QACf9W,KAAK24B,WAAa,IAAI34B,KAAK7V,QAAQ2sB,MAAM9W,KAAMgX,EAAOhX,KAAKia,MAAOja,KAAK7V,QAAQkwC,eAE7Er6B,KAAK7V,QAAQwjC,YACf3tB,KAAKib,eAAiB,IAAIjb,KAAK7V,QAAQwjC,UAAU3tB,KAAMgX,EAAOhX,KAAKia,MAAOja,KAAK7V,QAAQmwC,mBAErFt6B,KAAK7V,QAAQoyC,SACfv8B,KAAK+a,YAAc,IAAI/a,KAAK7V,QAAQoyC,OAAOv8B,KAAMgX,EAAOhX,KAAKia,MAAOja,KAAK7V,QAAQowC,gBAE/Ev6B,KAAK7V,QAAQqyC,cACfx8B,KAAKgb,iBAAmB,IAAIhb,KAAK7V,QAAQqyC,YAAYx8B,KAAMgX,EAAOhX,KAAKia,MAAOja,KAAK7V,QAAQqwC,sBAKjG,cAAA/b,GACEze,KAAK8a,gBAAgBrQ,OACjBzK,KAAKib,iBACPjb,KAAKib,eAAevQ,UACpB1K,KAAKib,oBAAiBlQ,GAEpB/K,KAAK24B,aACP34B,KAAK24B,WAAWjuB,UAChB1K,KAAK24B,gBAAa5tB,GAEhB/K,KAAK+a,cACP/a,KAAK+a,YAAYrQ,UACjB1K,KAAK+a,iBAAchQ,GAEjB/K,KAAKgb,kBACPhb,KAAKgb,iBAAiBtQ,UAExB1K,KAAKgX,WAAQjM,EAGf,uBAAMsuB,CAAkBC,EAA+GvC,GACrI,IAAKuC,IAAiBzvC,EAAWyvC,GAAe,OAChD,MAAMjsB,EAAM9iB,SAASC,cAAc,OAInC,GAHA6iB,EAAI5iB,UAAUC,IAAI,oBAClBsV,KAAK5G,eAAiBkgC,EAAat5B,KAAM+2B,GACzC1pB,EAAIziB,YAAYoV,KAAK5G,UACjB4G,KAAK7V,QAAQiwC,WAAY,CAC3B,MAAM70C,EAAMR,EAAU,WAChB03C,EAAelyC,SAASC,cAAc,SAC5CiyC,EAAahyC,UAAUC,IAAInF,EAAIJ,GAAG,aAClC,MAAMu3C,EAAiBnyC,SAASC,cAAc,SAC9CkyC,EAAetyC,KAAO,WACtBsyC,EAAeC,QAAU38B,KAAK7V,QAAQysB,KACtC8lB,EAAejwC,iBAAiB,UAAU,KACxCuT,KAAK7V,QAAQysB,KAAO8lB,EAAeC,OAAO,IAE5C,MAAMC,EAAqBryC,SAASC,cAAc,QAClDoyC,EAAmBjyC,YAAcqV,KAAK7V,QAAQuH,MAAM+oC,iBACpDgC,EAAa7xC,YAAY8xC,GACzBD,EAAa7xC,YAAYgyC,GACzBvvB,EAAIziB,YAAY6xC,GAElB1F,EAAO5sC,QAAQwwB,UAAY,GAC3Boc,EAAO5sC,QAAQS,YAAYyiB,GAG7B,YAAAwS,CAAa7B,EAAqC6e,EAAc70C,EAAaypB,GAAmB,GAC9F,GAA2B,IAAvBuM,EAAYz3B,OAChB,IAAK,MAAMksC,KAAMzU,EACfyU,EAAGjhB,eAAeqrB,EAAM70C,EAAOypB,GAInC,aAAAwM,CAAc6e,GACZ,IAAI3lB,EAAO,GACX,IAAK,MAAMsb,KAAMqK,EAAK,CACpB,MAAM31B,EAAQsrB,EAAG7uB,OAAO5D,KAAKia,MAAMh0B,QAC7BM,EAASksC,EAAGlsC,SAClB,IAAK,MAAMy2B,KAAMhd,KAAKia,MAAMgiB,YAAY90B,EAAO5gB,GAAQ41B,IACjDnyB,EAASgzB,EAAGZ,UACdjF,GAAQ6F,EAAGZ,QAIjB,OAAOjF,EAGT,aAAA+G,CAAc4e,EAA6BC,GAAQ,GACjD,GAAmB,IAAfD,EAAIv2C,OAAc,MAAO,GAC7B,IAAIjD,EAAoC,KACxC,IACE,IAAK,MAAMmvC,KAAMqK,EAAK,CACpB,MAAME,EAAel3C,EAAe2sC,EAAItvC,EAASG,WAIjD,GAHKA,IACHA,EAAY05C,GAEVA,IAAiB15C,EAEnB,OADAktB,QAAQC,MAAM,yBACP,IAIb,MAEE,OADAD,QAAQC,MAAM,iCACP,GAGT,IAAKntB,EAAW,MAAO,GAEvB,MAAM25C,EAAe35C,EAAU8N,SAAS6kB,KAClCinB,EAAY55C,EAAU8N,SAAS0mC,KACrC,IAAKoF,IAAcD,EAEjB,OADAzsB,QAAQC,MAAM,sCACP,GAGT,SAAS0sB,EAAelmC,GACtB,MAAM0X,EAAU1X,EAAQ0X,QAAQzW,cAC1BmY,EAAa/pB,MAAMU,KAAKiQ,EAAQoZ,YACnC3pB,KAAIm2C,GAAQ,GAAGA,EAAKl2C,SAASk2C,EAAK70C,WAClCd,KAAK,KAmBR,MAAO,CACLk2C,SAnBe,IAAIzuB,IAAU0B,EAAa,IAAIA,IAAe,MAoB7DgtB,OAnBsB,CACtB,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,OACA,OACA,QACA,SACA,QACA,OAKwBzoC,SAAS+Z,GAAW,GAAK,KAAKA,MAI1D,IAAI/Q,EAAO,GACX,MAAM2W,EAAsB,IAAI/vB,IAChC,IAAI84C,EAAS,EACTC,EAA0B,KAC9B,IAAK,MAAM9K,KAAMqK,EAAK,CACpB,MAAMl2C,EAAIoZ,KAAKia,MAAMujB,SAAS/K,GACxB3qB,EAAM2qB,EAAGlsC,SACTk3C,EAAUz9B,KAAKia,MAAM0gB,gBAAgB/zC,EAAGkhB,GAExC41B,GADS,IAAIC,WACAC,gBAAgBH,EAAS,aAE5C,IAAK,MAAMhL,KAAMnsC,MAAMU,KAAK02C,EAAIxsC,iBAAiB,8BAC/CuhC,EAAGlhC,gBAAgB,mBAErB,MAAMssC,EAAKH,EAAIntC,cAAc,MAC7B,GAAIkiC,EAAGxhB,QAAUssB,EAAU,CACzBD,GAAU,EACV,MAAMF,SAAEA,EAAQC,OAAEA,GAAWF,EAAeU,GAC5CjgC,GAAQ,GAAGA,EAAOy/B,EAAS,KAAKD,IAAWS,EAAGljB,iBAG9C/c,GAAQigC,EAAGljB,UAEb4iB,EAAW9K,EAAGxhB,MACdsD,EAAO7pB,IAAI+nC,EAAGvhB,OAEhBtT,GAAQ,QAER,MAAMw/B,SAAEA,EAAQC,OAAEA,GAAWF,EAAeD,EAAUlzB,SACtDpM,EAAO,GAAGw/B,IAAWx/B,IAAOy/B,IAE5B,MAAMplB,EAAO30B,EAAU40B,WACfklB,SAAUU,EAAkBT,OAAQU,GAAmBZ,EAAeF,EAAajzB,SAC3F,IAAIg0B,EAAS,GACTtvC,EAAQ,EACZ,MAAMuvC,EAAchmB,EAAKpe,QAAO/I,GAAOyjB,EAAO1vB,IAAIiM,EAAIogB,SAAQxqB,KAAIoK,GAAOA,EAAIotC,UAC7E,GAAI56C,EAAUszB,KAAM,CAElB,MAAMunB,EAAaF,EAAY79B,QAAO,CAACg+B,EAAOttC,IAAQstC,EAAQttC,EAAIpC,OAAO,GAEnE2vC,GADsB,IAAMF,GACCA,EAEnC,IAAK,MAAMrtC,KAAOmtC,EAChBntC,EAAIpC,OAASxG,KAAKqB,MAAMuH,EAAIpC,MAAQ2vC,GAGxC,IAAK,MAAMvtC,KAAOmtC,EAAa,CAC7B,MAAMb,SAAEA,GAAaD,EAAersC,EAAIkZ,SACxCg0B,GAAUZ,EACV1uC,GAASoC,EAAIpC,MAEfkP,EAAOkgC,EAAmBE,EAASD,EAAiBngC,EAEpD,MAAM0gC,EAAeh7C,EAAU0mB,QAAQu0B,YAClCj7C,EAAUszB,OACb0nB,EAAajxC,MAAMqB,MAAQ,GAAGA,OAGhC,MAAQ0uC,SAAUoB,EAAcnB,OAAQoB,GAAetB,EAAemB,GACtE1gC,EAAO4gC,EAAe5gC,EAAO6gC,EAE7B,MAAQrB,SAAUsB,EAAiBrB,OAAQsB,GAAkBxB,EAAe75C,EAAUqB,OAAOqlB,SAG7F,GAFApM,EAAO8gC,EAAkB9gC,EAAO+gC,EAE5B5B,EAAO,CAET,GAAIO,IADQh6C,EAAUq1B,UACHpyB,OACjByZ,KAAKwf,UAAUsd,QAGf,IAAK,MAAMrK,KAAMqK,EACfrK,EAAGzoB,QAAQ2Q,UAAY,cAI7B,OAAO/c,EAGT,WAAAo5B,CAAYvhB,EAAcmpB,GACxB,GAAInpB,GAAQ,IAAMmpB,GAAW,GAC3B,MAAM,IAAI14C,MAAM,+CAGlB8Z,KAAKia,MAAM5mB,QACX,MAAM4+B,EAAQjyB,KAAKia,MAAM0V,eACzB,GAAa,MAATsC,EAAe,OACnB,MAAO4M,GAAe7+B,KAAKia,MAAM6kB,QAAQ7M,EAAM9qB,OAC/C,IAAK03B,EAAa,OAClB,GAAIp6C,EAAgBo6C,GAClB,MAAM,IAAI34C,MAAM,iBAAiB24C,EAAY/5C,QAAQ3B,+BAGvD,MAAM47C,EAAc/+B,KAAKg/B,gCACnBC,EAAYtvC,iBAAiBqQ,KAAKia,MAAM1uB,MACxC2R,EAAc9U,OAAOiD,SAAS4zC,EAAU/hC,aACxCgiC,EAAe92C,OAAOiD,SAAS4zC,EAAUC,cACzCxwC,EAAQtG,OAAOiD,SAAS4zC,EAAUvwC,OAASwO,EAAcgiC,EAAeH,EAExE/tB,EAAUvD,KACV8G,EAAS,IAAIjuB,MAAMs4C,GAASliB,KAAK,GAAGh2B,KAAI,IAAM+mB,OAG9C0xB,EAAYn/B,KAAK7V,QAAQysB,KAAiF,GAAG1uB,KAAKD,IAAK,EAAI22C,EAAW,IAAK/6C,EAAYC,mBAAvH,GAAGoE,KAAKD,IAAIC,KAAKe,MAAMyF,EAAQkwC,GAAU/6C,EAAYE,mBACrFm4B,EAA+B,CACnC,CAAEkf,OAAQnJ,EAAM9qB,OAChB,CAAEiV,OAAQ,OAGZ,IAAK,IAAIx1B,EAAI,EAAGA,EAAIg4C,EAASh4C,IAC3Bs1B,EAAMjW,KAAK,CACTmW,OAAQ,CACN,CAACj5B,EAASK,UAAW,CACnBkL,MAAOywC,EACPnuB,UACAE,MAAOqD,EAAO3tB,GACdgwB,KAAM5W,KAAK7V,QAAQysB,SAK3B,IAAK,IAAIwoB,EAAI,EAAGA,EAAI3pB,EAAM2pB,IAAK,CAC7B,MAAMnuB,EAAQxD,KACd,IAAK,IAAI7mB,EAAI,EAAGA,EAAIg4C,EAASh4C,IAC3Bs1B,EAAMjW,KAAK,CACTmW,OAAQ,KACR/L,WAAY,CACV,CAACltB,EAASS,gBAAiB,CACzBotB,UACAC,QACAC,MAAOqD,EAAO3tB,GACduqB,QAAS,EACTC,QAAS,MAOnBpR,KAAKia,MAAMqhB,eAAe,IAAIpgB,GAAMgB,GAAQlO,EAAMmkB,QAAQyF,MAC1D53B,KAAKia,MAAM0d,aAAa1F,EAAM9qB,MAAQy3B,EAAUA,EAAUnpB,EAAO,EAAGzH,EAAMmkB,QAAQkN,QAClFr/B,KAAKia,MAAM5mB,QAGb,6BAAA2rC,GACE,MAAMM,EAAW,yBACCxnB,GAAgBlJ,wEAGbgH,GAAgBhH,4EAK/B2wB,EAAMh1C,SAASC,cAAc,OACnC+0C,EAAI3wB,UAAYsK,GAAmBtK,UACnC2wB,EAAI5kB,UAAY2kB,EAChBC,EAAIlyC,MAAMmR,SAAW,WACrB+gC,EAAIlyC,MAAMC,KAAO,UACjBiyC,EAAIlyC,MAAME,IAAM,UAChBgyC,EAAIlyC,MAAMmyC,WAAa,SACvBx/B,KAAKia,MAAM1uB,KAAKX,YAAY20C,GAC5B,MAAME,EAAiBzxC,OAAO2B,iBAAiB4vC,EAAIhvC,cAAc,OAC3DwuC,EAAc32C,OAAOC,WAAWo3C,EAAeV,cAAgB,EAErE,OADA/+B,KAAKia,MAAM1uB,KAAKoe,YAAY41B,GACrBR,EAIT,qBAAAW,CAAsBlqB,GAEpB,MAAMmqB,EAAUnqB,EAAUmD,UACpBinB,EAAcpqB,EAAUzD,YAC9B,GAAuB,IAAnB4tB,EAAQp5C,OACV,OAAOivB,EAAU1lB,SAEnB,GAA2B,IAAvB8vC,EAAYr5C,OAAc,OAE9B,MAAMs5C,EAAc,IAAIv5C,MAAMq5C,EAAQp5C,QAAQm2B,KAAK,GAAGh2B,KAAI,IAAM,IAAIJ,MAAMs5C,EAAYr5C,QAAQm2B,MAAK,KAC7F1L,EAAUwE,EAAUxE,QAC1B,IAAK,MAAO8uB,EAASjC,KAAO8B,EAAQxyC,UAAW,CAC7C,IAAI4yC,EAAU,EACVC,EAAW,EACf,MAAMC,EAAcJ,EAAYC,GAC1BhD,EAAMe,EAAGhsB,YAAY+D,IAE3B,KAAOoqB,EAAWJ,EAAYr5C,QAAQ,CAEpC,GAAI05C,EAAYD,GAAW,CACzBA,GAAY,EACZ,SAEF,MAAME,EAAQpD,EAAIiD,GAElB,GAAKG,GAASA,EAAMhvB,QAAU0uB,EAAYI,GAarC,CACCF,EAAUI,EAAM/uB,QAAU,GAAKwuB,EAAQp5C,SACzC25C,EAAMrrB,eAAe1D,QAAUwuB,EAAQp5C,OAASu5C,GAGlD,MAAM1uB,QAAEA,EAAOD,QAAEA,GAAY+uB,EAE7B,GAAI9uB,EAAU,EACZ,IAAK,IAAIvgB,EAAI,EAAGA,EAAIugB,EAASvgB,IAC3BovC,EAAYD,EAAWnvC,IAAK,EAIhC,GAAIsgB,EAAU,EACZ,IAAK,IAAItoB,EAAIi3C,EAAU,EAAGj3C,EAAIi3C,EAAU3uB,EAAStoB,IAC/C,IAAK,IAAIgI,EAAI,EAAGA,EAAIugB,EAASvgB,IAC3BgvC,EAAYh3C,GAAGm3C,EAAWnvC,IAAK,EAIrCkvC,GAAW,OAhCXlC,EAAG3tB,aACDwmB,GACE12B,KAAKia,MAAMh0B,OACX,CACE+qB,UACAE,MAAO0uB,EAAYI,GACnB/uB,MAAO4sB,EAAG5sB,QAGdivB,GAyBJF,GAAY,EAId,GAAID,EAAUjD,EAAIv2C,OAChB,IAAK,IAAIK,EAAIm5C,EAASn5C,EAAIk2C,EAAIv2C,OAAQK,IACpCk2C,EAAIl2C,GAAGkJ,UAMf,aAAA4oC,GACE,IAAK,MAAMljB,KAAaxV,KAAKia,MAAMh0B,OAAO4rB,YAAYiG,IACpD9X,KAAK0/B,sBAAsBlqB,GAI/B,kBAAAwkB,GACEh6B,KAAKia,MAAMX,GACTtL,EAAMuL,OAAOsB,iBACZslB,IACCA,EAAUhnC,MAAMinC,KAGZ,CAAC,KAAM,KAAM,QAAS,SAASxrC,SAAUwrC,EAASp6C,OAAuB2oB,WAEzE3O,KAAKy4B,sBACE,IAGT,IAKR,WAAA/Y,CAAY1B,GACV,GAA2B,IAAvBA,EAAYz3B,OAAc,OAC9B,MAAMivB,EAAY1vB,EAAek4B,EAAY,GAAI76B,EAASG,WAC1DkyB,GAAaA,EAAU1lB,SACvBkQ,KAAKye,iBAGP,SAAAG,CAAUZ,EAAqCqiB,GAC7C,GAAIriB,EAAYz3B,QAAU,EAAG,OAE7B,MAAM+5C,EAAStiB,EAAYqiB,EAASriB,EAAYz3B,OAAS,EAAI,IACtDivB,EAAWgC,EAAe+oB,GAAkBp6C,EAAgBm6C,EAAQ,CAACn9C,EAASG,UAAWH,EAASM,UAAWN,EAASO,WAGvH88C,EAFWhrB,EAAUmD,UACR3G,QAAQuuB,IACCF,EAASC,EAAOnvB,QAAU,GAEtDqG,EAAcjC,UAAUirB,GAG1B,SAAA1hB,CAAUd,EAAqCkO,GAC7C,GAAIlO,EAAYz3B,QAAU,EAAG,OAG7B,MAAO+5C,GAAUtiB,EAAY5d,QAAO,CAAC6mB,EAAKvS,KACxC,MAAM+rB,EAAc/rB,EAAI5C,iBAOxB,QANKoa,GAAWuU,GAAexZ,EAAI,IAG1BiF,GAAWuU,GAAexZ,EAAI,MAFrCA,EAAM,CAACvS,EAAK+rB,IAKPxZ,CAAG,GACT,CAACjJ,EAAY,GAAIA,EAAY,GAAGlM,mBAC7B2uB,EAAcH,EAAOxuB,kBAAoBoa,EAAUoU,EAAOlvB,QAAU,GAEpEoE,EAAY1vB,EAAew6C,EAAQn9C,EAASG,WAC5C0tB,EAAUwE,EAAUxE,QACpB0vB,EAAWjzB,MAEV8K,GAAY/C,EAAU3D,YAAYgH,IACrCN,GACFA,EAASQ,iBAAiB0nB,EAAa,CACrCzvB,UACAE,MAAOwvB,EACPhyC,MAAO8mB,EAAUoB,KAAO,KAAO,QAC/BA,KAAMpB,EAAUoB,OAOpB,MAAM+pB,EAAMnrB,EAAUmD,UAChBioB,EAAqB,GAC3B,IAAI9rB,EAAa,EACjB,IAAK,MAAM+oB,KAAMn2C,OAAOylB,OAAOwzB,GAAM,CACnC,MAAME,EAAUD,EAASl8B,SAAW,EACpC,GAAIoQ,EAAa,EAAG,CAClBA,GAAc,EACd,SAEF,MAAMgsB,EAAejD,EAAGjpB,WAAW6rB,EAAcI,EAAS,CACxD7vB,UACAC,MAAO4sB,EAAG5sB,MACVC,MAAOwvB,EACPvvB,QAAS,EACTC,QAAS,IAEP0vB,EAAahsB,aACfA,GAAcgsB,EAAahsB,YAE7B,IAAK,MAAOluB,EAAG3B,KAAM67C,EAAa3zC,UAChCyzC,EAASh6C,IAAMg6C,EAASh6C,IAAM,GAAK3B,GAQzC,gBAAA87C,CAAiBvrB,GAGf,MAAMmqB,EAAUnqB,EAAUmD,UACpBgQ,EAAYnT,EAAU0C,UACtB8oB,EAAWrY,EAAUvoB,QAAO,CAAC6gC,EAAOnwC,KACxCmwC,EAAMnwC,EAAIogB,OAAS,EACZ+vB,IACN,IAEGC,EAAiB,IAAIvB,GAASwB,UAC9BC,EAAqB,GAC3B,IAAK,MAAOj6B,EAAO02B,KAAOqD,EAAe/zC,UAAW,CAClD,MAAMvG,EAAI+4C,EAAQp5C,OAAS4gB,EAAQ,EAC/B02B,EAAGzsC,SAAS7K,QAAU,EACxB66C,EAASn7B,KAAKrf,GAIdi3C,EAAGzpB,kBAAkBqe,IACnB,MAAMra,EAAMgpB,EAAShhC,QAAO,CAACgY,EAAKtuB,IAAQ2oC,EAAGthB,QAAUvqB,EAAIkD,EAAMsuB,EAAM,EAAIA,GAAK,GAChFqa,EAAGthB,SAAWiH,EAEd4oB,EAASvO,EAAGvhB,QAAU,CAAC,IAK7B,IAAI/J,EAAQ,EACZ,IAAK,MAAMk6B,KAAS35C,OAAOylB,OAAO6zB,GAChC,GAAc,IAAVK,EAAa,CACf,MAAMT,EAAqB,GAC3B,IAAI9rB,EAAa,EACjB,IAAK,MAAM+oB,KAAMn2C,OAAOylB,OAAOwyB,GAAU,CACvC,MAAMkB,EAAUD,EAASl8B,SAAW,EACpC,IAAIo8B,EAAe,GACfhsB,EAAa,GACfgsB,EAAejD,EAAG9oB,oBAAoB5N,EAAQ05B,GAAS,GACvD/rB,GAAc,IAGdgsB,EAAejD,EAAG3oB,WAAW/N,EAAQ05B,GACjCC,EAAahsB,aACfA,GAAcgsB,EAAahsB,aAG/B,IAAK,MAAOluB,EAAG3B,KAAM67C,EAAa3zC,UAChCyzC,EAASh6C,IAAMg6C,EAASh6C,IAAM,GAAK3B,QAKvCkiB,GAAS,EAIb,IAAK,MAAMrW,KAAO63B,EACY,IAAxBqY,EAASlwC,EAAIogB,SACXpgB,EAAI6e,KACL7e,EAAI6e,KAAwBjhB,OAASoC,EAAIpC,MAEnCoC,EAAIse,OACVte,EAAIse,KAAwB1gB,OAASoC,EAAIpC,OAE5CoC,EAAIhB,UAKV,SAAAwvB,CAAUtB,GACR,GAAIA,EAAYz3B,QAAU,EAAG,OAC7B,MACMivB,EAAY1vB,EADHk4B,EAAY,GACc76B,EAASG,WAC5Cq9C,EAAMnrB,EAAUmD,UACtB,IAAI2oB,EAAaX,EAAIp6C,OACjBg7C,GAAgB,EACpB,IAAK,MAAM9O,KAAMzU,EAAa,CAC5B,MAAM6f,EAAK/3C,EAAe2sC,EAAItvC,EAASO,UACjCyjB,EAAQw5B,EAAI3uB,QAAQ6rB,GACtB12B,EAAQm6B,IACVA,EAAan6B,GAEXA,EAAQsrB,EAAGthB,QAAUowB,IACvBA,EAAcp6B,EAAQsrB,EAAGthB,SAI7B,MAAMqwB,EAMF,CAAE,EACN,IAAK,IAAI56C,EAAI06C,EAAY16C,EAAIsB,KAAKC,IAAIw4C,EAAIp6C,OAAQg7C,GAAc36C,IAAK,CACxD+5C,EAAI/5C,GACZwtB,kBAAkBqe,IAEfA,EAAGthB,QAAUvqB,EAAI26C,IACnBC,EAAS/O,EAAGvhB,OAAS,CACnBC,QAASshB,EAAGthB,QAAUvqB,EAAI26C,EAC1BnwB,QAASqhB,EAAGrhB,QACZuE,SAAU8c,EAAG3gB,mBAIjB2gB,EAAG9tC,OAAOmL,QAAQ,IAItB,GAAI6wC,EAAIY,GAAc,CACpB,MAAME,EAASd,EAAIY,GACbvwB,EAAUwE,EAAUxE,QAE1B,IAAK,MAAOE,GAAOyE,SAAEA,EAAQvE,QAAEA,EAAOD,QAAEA,MAAczpB,OAAOyF,QAAQq0C,GACnEC,EAAO7sB,WAAWe,EAAU,CAC1B3E,UACAC,MAAOwwB,EAAOxwB,MACdC,QACAE,UACAD,YAKNnR,KAAK+gC,iBAAiBvrB,GAGxB,SAAAgK,CAAUxB,GACR,GAAIA,EAAYz3B,QAAU,EAAG,OAC7B,MAAM+5C,EAAStiB,EAAY,GACrBxI,EAAY1vB,EAAew6C,EAAQn9C,EAASG,WAC5Co+C,EAAqC,CAAE,EAC7C,IAAK,MAAMjP,KAAMzU,EACV0jB,EAAWjP,EAAGxhB,SAAQywB,EAAWjP,EAAGxhB,OAAS,GAClDywB,EAAWjP,EAAGxhB,QAAUwhB,EAAGrhB,QAE7B,MAAMuwB,EAAez5C,KAAKD,OAAOP,OAAOylB,OAAOu0B,IACzCjB,EAAcH,EAAOxuB,iBAErB6uB,EAAMnrB,EAAU3D,YAAYqC,IAClC,IAAK,IAAIttB,EAAI,EAAGA,EAAI+6C,EAAc/6C,IAAK,CACrC,MAAMg6C,EAAqB,GAC3B,IAAI9rB,EAAa,EACjB,IAAK,MAAM+oB,KAAMn2C,OAAOylB,OAAOwzB,GAAM,CACnC,MAAME,EAAUD,EAASl8B,SAAW,EACpC,GAAIoQ,EAAa,EAAG,CAClBA,GAAc,EACd,SAEF,MAAMgsB,EAAejD,EAAG3oB,WAAWurB,EAAcI,GAC7CC,EAAahsB,aACfA,GAAcgsB,EAAahsB,YAE7B,IAAK,MAAOluB,EAAG3B,KAAM67C,EAAa3zC,UAChCyzC,EAASh6C,IAAMg6C,EAASh6C,IAAM,GAAK3B,GAMzC,MAAOszB,GAAY/C,EAAU3D,YAAYgH,IACzC,GAAIN,EACF,IAAK,IAAI3xB,EAAI,EAAGA,EAAI+6C,EAAc/6C,IAChC2xB,EAASU,iBAAiBwnB,GAI9BzgC,KAAK+gC,iBAAiBvrB,GAGxB,UAAA0J,CAAWlB,GACT,GAAIA,EAAYz3B,QAAU,EAAG,OAC7B,MAAMq7C,EAAS5jB,EAAY5d,QACzB,CAAC6mB,EAAK4a,EAAU16B,KAEd,MAAM+J,EAAQ2wB,EAAS3wB,MAClB+V,EAAI,GAAG/V,KAAQ+V,EAAI,GAAG/V,GAAS,GACpC+V,EAAI,GAAG/V,IAAU2wB,EAAS1wB,QAE1B,MAAMF,EAAQ4wB,EAAS5wB,MAQvB,OAPKgW,EAAI,GAAGhW,KAAQgW,EAAI,GAAGhW,GAAS,GACpCgW,EAAI,GAAGhW,IAAU4wB,EAASzwB,QAEZ,IAAVjK,IACF06B,EAASvyB,aAAa2X,EAAI,IAC1B4a,EAASl9C,OAAOmL,UAEXm3B,CAAG,GAEZ,CAAC,CAAA,EAA8B,CAAA,EAA8BjJ,EAAY,KAGrE8jB,EAAW55C,KAAKD,OAAOP,OAAOylB,OAAOy0B,EAAO,KAC5CnmB,EAAWvzB,KAAKD,OAAOP,OAAOylB,OAAOy0B,EAAO,KAC5CtB,EAASsB,EAAO,GACtBtB,EAAOlvB,QAAUqK,EACjB6kB,EAAOnvB,QAAU2wB,EAEjB,MAAMtsB,EAAY1vB,EAAew6C,EAAQn9C,EAASG,WAClD0c,KAAK+gC,iBAAiBvrB,GAGxB,SAAA4J,CAAUpB,GACR,GAA2B,IAAvBA,EAAYz3B,OAAc,OAC9B,MAAM+5C,EAAStiB,EAAY,GAC3B,GAAuB,IAAnBsiB,EAAOlvB,SAAoC,IAAnBkvB,EAAOnvB,QAAe,OAClD,MAAOqE,EAAWusB,GAAU57C,EAAgBm6C,EAAQ,CAACn9C,EAASG,UAAWH,EAASO,WAC5EstB,EAAUwE,EAAUxE,QACpB2E,EAAW2qB,EAAOxuB,iBAClByC,EAASiB,EAAUzD,YAAY3mB,MAAMuqB,EAAUA,EAAW2qB,EAAOlvB,SAAS+vB,UAEhF,IAAIa,EAAQD,EACR5wB,EAAUmvB,EAAOnvB,QAIrB,IAFAmvB,EAAOlvB,QAAU,EACjBkvB,EAAOnvB,QAAU,EACV6wB,GAAS7wB,EAAU,GAAG,CAC3B,IAAK,MAAM8wB,KAAM1tB,EAEXytB,IAAUD,GAAUE,IAAO3B,EAAOpvB,OACtC8wB,EAAMptB,WAAWe,GAAYqsB,IAAUD,EAAS,EAAI,GAAI,CACtD/wB,UACAC,MAAO+wB,EAAM/wB,MACbC,MAAO+wB,EACP9wB,QAAS,EACTC,QAAS,IAIbD,GAAW,EACX6wB,EAAQA,EAAM5yB","x_google_ignoreList":[11,12,13,14]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/constants.ts","../src/utils/bem.ts","../src/utils/blot-helper.ts","../src/utils/color.ts","../src/utils/is.ts","../src/utils/components/button.ts","../src/utils/components/color-picker.ts","../src/utils/components/dialog.ts","../src/utils/components/input.ts","../src/utils/components/table/select-box.ts","../src/utils/components/table/creator.ts","../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/.pnpm/@floating-ui+core@1.6.8/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/.pnpm/@floating-ui+dom@1.6.13/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../src/utils/components/tooltip.ts","../src/utils/transition-event-helper.ts","../src/utils/position.ts","../src/utils/resize-observer-helper.ts","../src/utils/scroll-event-handle.ts","../src/utils/transformer.ts","../src/utils/utils.ts","../src/formats/container-format.ts","../src/formats/overrides/block.ts","../src/formats/utils.ts","../src/formats/table-cell-inner-format.ts","../src/formats/overrides/scroll.ts","../src/formats/table-row-format.ts","../src/formats/table-body-format.ts","../src/formats/table-caption-format.ts","../src/formats/table-cell-format.ts","../src/formats/table-col-format.ts","../src/formats/table-main-format.ts","../src/formats/table-colgroup-format.ts","../src/formats/table-wrapper-format.ts","../src/modules/table-align.ts","../src/modules/table-clipboard.ts","../src/modules/table-menu/constants.ts","../src/modules/table-menu/table-menu-common.ts","../src/modules/table-menu/table-menu-contextmenu.ts","../src/modules/table-menu/table-menu-select.ts","../src/modules/table-resize/utils.ts","../src/modules/table-resize/table-resize-common.ts","../src/modules/table-resize/table-resize-box.ts","../src/modules/table-resize/table-resize-line.ts","../src/modules/table-resize/table-resize-scale.ts","../src/modules/table-scrollbar.ts","../src/modules/table-selection.ts","../src/table-up.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,"/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["blotName","container","tableCaption","tableWrapper","tableMain","tableColgroup","tableCol","tableBody","tableRow","tableCell","tableCellInner","tableUpSize","colMinWidthPre","colMinWidthPx","colDefaultWidth","rowMinHeightPx","tableUpEvent","AFTER_TABLE_RESIZE","tableUpInternal","moduleName","defaultColorMap","cssNamespace","tableCantInsert","Set","isForbidInTable","current","parent","blot","has","statics","createBEM","b","n","prefix","be","e","bm","m","bem","ns","s","bs","cv","v","is","findParentBlot","targetBlotName","target","scroll","Error","findParentBlots","targetBlotNames","resultBlots","Array","length","blotNameIndexMaps","Map","map","name","i","size","get","delete","from","keys","join","findAllParentBlot","Blot","blots","set","findChildBlot","descendants","next","children","iterator","cur","push","mixinProps","source","prop","Object","getOwnPropertyNames","test","defineProperty","getOwnPropertyDescriptor","normalizeValue","value","max","Math","min","Number","parseFloat","abs","validateHSB","hsb","h","a","RGBtoHSB","rgb","r","g","d","HSBtoRGB","floor","f","p","q","t","mod","round","RGBtoHEX","hex","toString","key","HSBtoHEX","isFunction","val","isArray","isString","isObject","createButton","options","type","content","btn","document","createElement","classList","add","textContent","appendChild","createColorPicker","contentWidth","contentHeight","handleSizeSec","hsbValue","color","startsWith","slice","parseInt","toFixed","root","colorSelector","colorBackground","colorHandle","colorAlpha","alphaBg","alphaHandle","colorHue","colorHueHandle","action","colorRInput","colorGInput","colorBInput","colorAInput","item","label","toUpperCase","colorInput","addEventListener","replaceAll","updateValue","assign","updateUI","colorDragging","hueDragging","alphaDragging","updateInput","input","entries","String","style","left","top","backgroundColor","background","updateAlphaBg","onChange","pickColor","event","rect","getBoundingClientRect","window","pageYOffset","documentElement","scrollTop","body","scrollLeft","pageX","pageY","pickHue","pickAlpha","width","onDrag","preventDefault","onColorSelectorDragEnd","removeEventListener","onColorHueDragEnd","onColorAlphaDragEnd","zindex","createDialog","child","beforeClose","appendTo","dialog","zIndex","overlay","stopPropagation","originOverflow","getComputedStyle","overflow","close","remove","createInputItem","inputItem","inputLabel","inputInput","setAttribute","errorTip","msg","contains","querySelector","removeError","createSelectBox","selectDom","selectBlock","row","c","col","selectItem","dataset","updateSelectBlockItems","querySelectorAll","childs","childRow","childCol","removeAttribute","onSelect","customBtn","texts","selectCustom","customBtnText","async","res","box","inputContent","rowItem","rowInput","rowErrorTip","rowText","colItem","colInput","colErrorTip","colText","control","confirmBtn","confirmText","cancelBtn","cancelText","validateInput","isNaN","notPositiveNumberError","keyboardClose","Promise","resolve","reject","focus","result","showTableCreator","createCoords","x","y","oppositeSideMap","right","bottom","oppositeAlignmentMap","start","end","clamp","evaluate","param","getSide","placement","split","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","includes","getAlignmentAxis","getOppositeAlignmentPlacement","replace","alignment","getOppositePlacement","side","rectToClientRect","height","computeCoordsFromPlacement","_ref","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","state","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","expandPaddingObject","getPaddingObject","element","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","hasWindow","getNodeName","node","isNode","nodeName","toLowerCase","getWindow","_node$ownerDocument","ownerDocument","defaultView","Node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","isTableElement","isTopLayer","some","selector","matches","isContainingBlock","elementOrCss","webkit","isWebKit","css","containerType","backdropFilter","filter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollX","scrollY","getParentNode","assignedSlot","parentNode","host","getNearestOverflowAncestor","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","concat","visualViewport","getPrototypeOf","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","ignoreScrollbarX","htmlRect","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scrollWidth","scrollHeight","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","position","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","htmlOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","currentNode","getContainingBlock","topLayer","clippingAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","this","_c","firstClippingAncestor","clippingRect","reduce","accRect","getElementRects","data","getOffsetParentFn","getDimensionsFn","getDimensions","floatingDimensions","getClientRects","isRTL","rectsAreEqual","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","forEach","passive","cleanupIo","onMove","timeoutId","io","cleanup","_io","clearTimeout","disconnect","refresh","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","setTimeout","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","fn","_middlewareData$offse","_middlewareData$arrow","middlewareData","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","convertValueToCoords","arrow","alignmentOffset","shift","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","flip","_middlewareData$flip","initialPlacement","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","isBasePlacement","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","getAlignmentSides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","index","nextPlacement","reset","resetPlacement","sort","_overflowsData$filter2","currentSideAxis","acc","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","computePosition","mergedOptions","platformWithCache","config","middleware","validMiddleware","Boolean","statefulPlacement","resetCount","nextX","nextY","computePosition$1","tooltipContainer","createTooltip","delay","onOpen","onClose","closed","onDestroy","tooltip","showTimer","closeTimer","then","transitionendHandler","removeChild","openTooltip","force","allow","closeTooltip","domNode","duration","handler","lastTimer","handleIfTransitionend","once","clickDisplay","show","prepare","hide","destroy","displayMethods","hover","eventListeners","bind","undefined","open","listener","click","destroyDisplay","isRectanglesIntersect","tolerance","edgeJudge","minAx","minAy","x1","maxAx","y1","maxAy","minBx","minBy","maxBx","maxBy","notOverlapX","notOverlapY","limitDomInViewPort","leftLimited","topLimited","createResizeObserver","callback","ignoreFirstBindSymbol","Symbol","observeEls","observer","ignoreFirstBind","entry","originVal","originObserve","call","originUnobserve","originDisconnect","values","addScrollEvent","dom","handle","scrollHandler","clearScrollEvent","cssTextToObject","cssText","styleObject","styles","trim","colonPosition","indexOf","property","randomId","random","debounce","timestamp","args","apply","Parchment","Quill","import","Container","Block","BlockEmbed","ContainerFormat","static","Scope","BLOCK_BLOT","create","_value","tagName","className","insertAt","def","find","defaultChild","super","optimize","_context","checkMerge","moveChildren","enforceAllowedChildren","allowedChildren","scope","splitAfter","prev","unwrap","ParentBlot","BlockOverride","replaceWith","replacement","selfParent","insertBefore","block","selfRow","attributes","copy","format","console","error","getValidCellspan","isValidCellspan","TableCellInnerFormat","isAllowStyle","str","allowStyle","tableId","rowId","colId","rowspan","colspan","formats","constructor","isEnabled","setFormatValue","isStyle","allowDataAttrs","attrName","blocks","getColumnIndex","getColIds","formatAt","blotValue","afterBlock","wrap","uiNode","firstChild","ref","cellInnerBlot","cellInnerBlotValue","selfValue","selfCell","newCellInner","forEachAt","cell","ScrollBlot","ScrollOverride","enable","tableCellInnerFormat","inners","inner","tableCaptionFormat","caption","createBlock","refBlot","createBlotName","query","BLOCK","BLOT","TableRowFormat","setHeight","foreachCellInner","cellInner","getCellByColId","colIds","targetIndex","curIndex","insertCell","getCellInner","skipRowNum","getCellByColumIndex","stopIndex","cellEndIndex","removeCell","columnIndexData","func","context","TableBodyFormat","insertRow","tableBlot","rows","insertColIds","colIndex","Inline","Text","TableCaptionFormat","captionSide","attachUI","createUI","innerHTML","TableCellFormat","getAttribute","inlineStyles","allowAttrs","setStyleBoder","head","setValue","leftCellInners","getNearByCell","td","descendant","topCellInners","nearByCell","startColIndex","endColIndex","borderColIds","_","trReachCurrent","TableColFormat","validWidth","full","widthNumber","align","hasOwn","table","closest","isAllFull","lines","text","pop","line","tableColgroupBlot","tableMainBlot","tableBodyBlot","insertBlot","nextBlotRef","cellInners","newBlock","newTableBody","TableMainFormat","updateAlign","colWidthFillTable","cols","getCols","colsWidth","sum","setFull","tableWidth","cancelFull","marginLeft","marginRight","getRows","getRowIds","TableColgroupFormat","findCol","insertColByIndex","TypeError","removeColByIndex","TableWrapperFormat","dataTransfer","dropEffect","emitter","on","events","TEXT_CHANGE","insertLineAround","deleteAt","tableBodys","tableColgroups","off","BlockBlot","TableAlign","tableModule","quill","tableWrapperBlot","alignBox","buildTool","updateWhenTextChange","addContainer","icons","alignIcons","center","iconStr","setTableAlign","SCROLL_OPTIMIZE","tableSelection","tableResize","tableResizeScale","tableScrollbar","Delta","Clipboard","getCellWidth","styleWidth","TableClipboard","rowspanCount","cellCount","colCount","addMatcher","matchTable","matchColgroup","matchCol","matchTr","matchTd","matchCaption","ELEMENT_NODE","matchTdAttributor","delta","ops","bodyStartIndex","insert","attrs","hasCol","newCols","tableNode","colNums","colWidths","fill","cells","cellWidth","calculateCols","colOps","splice","op","span","cellFormat","border","other","endsWith","toLocaleLowerCase","bgTemp","cellTemp","convert","menuColorSelectClassName","tableMenuTools","Break","CopyCell","tip","icon","selectedTds","getTextByCell","getHTMLByCell","clipboardItem","ClipboardItem","Blob","navigator","clipboard","write","hideTableTools","CutCell","InsertTop","appendRow","InsertRight","appendCol","InsertBottom","InsertLeft","MergeCell","mergeCells","SplitCell","splitCell","DeleteRow","removeRow","DeleteColumn","removeCol","DeleteTable","deleteTable","BackgroundColor","isColorChoose","setCellAttrs","BorderColor","SwitchWidth","InsertCaption","colorClassName","selectWrapper","used","mapRow","TableMenuCommon","usedColors","menu","isMenuDisplay","isColorPicking","updateUsedColor","tooltipItem","activeTooltip","colorItemClass","colorChooseTooltipOption","resolveOptions","storageValue","localStorage","getItem","localstorageKey","colorValue","JSON","parse","saveColors","clear","setItem","stringify","usedColorWrappers","usedColorWrapper","newColorItem","colorItem","tipText","tools","buildTools","toolBox","tool","attrKey","iconDom","createColorChoose","getSelectedTds","createTipText","colorSelectWrapper","colorMap","colors","colorMapRow","marginTop","transparentColor","transparent","clearColor","customColor","custom","colorPicker","hideColorPicker","destroyColorPicker","usedColorWrap","recordColor","hideDisplay","setActiveTooltip","updateWithSelectedTds","showDisplay","isColorPick","tipTextDom","TableMenuContextmenu","listenContextmenu","path","composedPath","clientX","clientY","items","getElementsByClassName","isDisplaySelection","menuRect","limitLeft","limitTop","TableMenuSelect","cellSelect","isTableAlignRight","TableResizeCommon","dragging","dragColBreak","handleColMouseUpFunc","handleColMouseUp","handleColMouseMoveFunc","handleColMouseMove","handleColMouseDownFunc","handleColMouseDown","rowIndex","dragRowBreak","handleRowMouseUpFunc","handleRowMouseUp","handleRowMouseMoveFunc","handleRowMouseMove","handleRowMouseDownFunc","handleRowMouseDown","dragBEM","findCurrentColIndex","_e","colWidthChange","_i","_w","_isFull","createConfirmDialog","message","confirm","cancel","fontSize","lineHeight","btnWrapper","justifyContent","gap","w","isFull","needUpdate","updateInfo","pre","oldWidthPre","totalWidthNextPre","resultWidth","skipColIndex","perWidthInsufficient","info","px","emit","changeColRect","tableRect","resX","minWidth","maxRange","minRange","button","tableBodyRect","colWidthAttr","divDom","styleValue","findCurrentRowIndex","rowHeightChange","_h","resY","tableMainRect","TableResizeBox","tableCols","tableRows","rowHeadWrapper","colHeadWrapper","corner","lastHeaderSelect","handleResizerHeader","isX","shiftKey","currentBoundary","lastX","lastY","computeSelectedTds","tableCaptionBlot","bindColEvents","tableColHeads","tableColHeadSeparators","bindRowEvents","tableRowHeads","tableRowHeadSeparators","tableWrapperRect","rootRect","cornerTranslateX","rowHeadWrapperTranslateX","tableCaptionIsTop","transform","colHeadStr","colHead","maxWidth","rowHeadStr","rowHead","maxHeight","TableResizeLine","colResizer","rowResizer","currentTableCell","curColIndex","curRowIndex","tableCellBlot","mousemoveHandler","hideWhenTextChange","findTableCell","updateColResizer","updateRowResizer","tableBodyect","tableCellRect","findIndex","currentRow","tableBodynRect","TableResizeScale","startX","startY","resizeobserver","buildResizer","blockSize","originColWidth","originRowHeight","handleMouseMove","isRight","diffX","diffY","itemWidth","itemHeight","handleMouseUp","isTableOutofEditor","editorRect","rootWidth","rootHeight","blockStyle","Scrollbar","scrollbarContainer","minSize","move","cursorDown","cursorLeave","ratioY","ratioX","sizeWidth","sizeHeight","thumbState","X","Y","ob","scrollbar","thumb","propertyMap","parentElement","scrollDirection","scrollSize","client","calculateSize","createScrollbar","setScrollbarPosition","showScrollbar","editorScrollX","editorScrollY","containerOffsetLeft","containerOffsetTop","bodyOffsetLeft","bodyOffsetTop","containerWidth","containerHeight","tableHeight","containerScrollHandler","originalHeight","originalWidth","originDocSelect","mouseMoveDocumentHandler","prevPage","offsetRatio","thumbPositionPercentage","mouseUpDocumentHandler","hideScrollbar","onselectstart","startDrag","stopImmediatePropagation","ctrlKey","getSelection","removeAllRanges","currentTarget","displayListener","hideScrollbarTransitionend","TableVirtualScrollbar","TableSelection","startScrollX","startScrollY","selectedTableScrollX","selectedTableScrollY","selectedEditorScrollX","selectedEditorScrollY","cellSelectWrap","tableMenu","lastSelection","anchorNode","anchorOffset","focusNode","focusOffset","helpLinesInitial","updateAfterEvent","mouseDownHandler","selectionChangeHandler","SELECTION_CHANGE","quillSelectionChangeHandler","tableMenuOptions","getFirstTextNode","childNodes","nodeType","TEXT_NODE","getLastTextNode","getNodeTailOffset","tempRange","createRange","selectNodeContents","collapse","startOffset","range","_oldRange","sources","API","getFormat","getLine","isInCell","containsLine","setSelectionData","selection","selectionData","isUpFromDown","selectionDirectionUp","setStart","setEnd","addRange","extend","nodePosition","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","findWrapSelection","points","startNode","endNode","endOffset","selectColor","anchorBlot","focusBlot","anchorNames","focusNames","isAnchorInColgroup","isFocusInColgroup","newAnchorNode","newAnchorOffset","newFocusNode","newFocusOffset","isAnchorInCellInner","isFocusInCellInner","isNotSameCellInner","anchorCellBlot","focusCellBlot","setProperty","startPoint","endPoint","tableCells","tableScrollX","tableScrollY","getTableViewScroll","getQuillViewScroll","startPointX","startPointY","selectedCells","findEnd","__rect","targetRect","containerRect","getRelativeRect","mousedownEvent","closestTable","closestTableBody","setSelectionTable","startTableId","mouseMoveHandler","mousemoveEvent","movePoint","blur","mouseUpHandler","Infinity","wrapLeft","wrapTop","createCell","updateTableConstants","TableUp","toolName","defaultCustomSelect","picker","insertTable","generateTableArrowHandler","up","bindInHead","collapsed","childDirection","aroundLine","targetRow","cellIndex","targetCell","targetChild","setSelection","USER","offsetInline","tail","_range","register","requiredContainer","overrides","formatMap","base","mixins","targetClass","props","prototype","mixinClass","fixTableByLisenter","balanceTables","tableAlign","toolboxBEM","scrollbarBEM","selectionOptions","toolbar","getModule","theme","pickers","select","controls","buildCustomSelect","customSelect","selectRect","labelRect","keyboard","keyboradHandler","bindings","unshift","addBinding","evt","showTableTools","quillHack","listenBalanceCells","classes","classname","resolveTexts","fullSwitch","alignOptions","scrollbarOptions","resizeOptions","resizeScaleOptions","fullCheckboxText","originGetSemanticHTML","getSemanticHTML","tableWrapperFormat","doc","DOMParser","parseFromString","originFormat","EmbedBlot","tableUpModule","setOrigin","tdRanges","innerTd","resultValue","lastIndex","retain","updateDelta","updateContents","modules","cleanHandler","handlers","clean","cleanFormatExcludeTable","changeCellStyle","getText","suffixLength","suffix","contents","getContents","diff","deltaIndex","nullValue","tableCellInnerValue","newStyle","warn","editTds","tds","cleanBorder","allCells","cellIndexMap","styleStr","filterStyle","obj","cellDiff","resize","resizeScale","isFulllLabel","isFullCheckbox","checked","isFullCheckboxText","attr","isCut","tdParentMain","tableIndex","getIndex","tableLength","tableHTML","cellColWidth","cellColIds","cellIds","rowCount","lastRowId","colsValue","totalWidth","total","columns","currentBlot","getLeaf","borderWidth","calculateTableCellBorderWidth","rootStyle","paddingRight","colWidth","j","SILENT","tableStr","div","visibility","tempTableStyle","fixUnusuaDeletelTable","trBlots","tableColIds","cellSpanMap","indexTr","tr","indexTd","indexCol","curCellSpan","curTd","mutations","mutation","isDown","baseTd","baseTdParentTr","insertRowIndex","columnIndex","newColId","colgroup","trs","spanCols","spanCol","nextSpanCols","fixTableByRemove","colIdMap","idMap","reverseTrBlots","reverse","removeTr","count","endTrIndex","nextTrIndex","patchTds","nextTr","colspanMap","colspanCount","counts","selectTd","baseTr","curTr","id"],"mappings":"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","x_google_ignoreList":[11,12,13,14]}
|