transone-chart 0.2.0 → 0.2.1

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/dist/index.js.map CHANGED
@@ -14,8 +14,8 @@
14
14
  "/**\n * 折线图:多系列 / 平滑曲线 / 面积填充 / 数据点标记。\n * 类目 x 轴 + 数值 y 轴,复用 ChartBase 的笛卡尔管线。\n */\n\nimport type { ICanvas2D } from '../core/canvas';\nimport { ChartBase } from '../core/chart';\nimport type { LayoutResult } from '../core/layout';\nimport type { LegendItem } from '../core/legend';\nimport type { LineChartOption, TooltipParams } from '../types';\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport class LineChart extends ChartBase<LineChartOption> {\n protected getValueDomain(): { min: number; max: number } {\n const { series, yAxis, startFromZero = false } = this.option;\n let min = Infinity;\n let max = -Infinity;\n for (const s of series) {\n for (const value of s.data) {\n if (value < min) {\n min = value;\n }\n if (value > max) {\n max = value;\n }\n }\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) {\n return { min: 0, max: 1 };\n }\n if (startFromZero && min > 0) {\n min = 0;\n }\n if (yAxis?.min !== undefined) {\n min = Math.min(min, yAxis.min);\n }\n if (yAxis?.max !== undefined) {\n max = Math.max(max, yAxis.max);\n }\n return { min, max };\n }\n\n protected getCategoryLabels(): readonly string[] {\n return this.option.xAxis.labels;\n }\n\n protected getLegendItems(): LegendItem[] {\n return this.option.series\n .filter((s) => s.name)\n .map((s, i) => ({\n name: s.name as string,\n color: this.seriesColor(i, s.color),\n }));\n }\n\n protected drawSeries(\n ctx: ICanvas2D,\n layout: LayoutResult,\n option: LineChartOption\n ): void {\n const scales = this.cartesian;\n if (!scales) {\n return;\n }\n const { plot } = layout;\n const { value, category } = scales;\n const hoverIndex = this.getHoverCategoryIndex();\n\n const pointsPerSeries: Point[][] = option.series.map((series) =>\n series.data.map((d, i) => ({\n x: category.center(i),\n y: value.scale(d),\n }))\n );\n\n // 悬浮参考线:在命中类目中心画一条纵向虚线\n if (hoverIndex >= 0) {\n const hx = category.center(hoverIndex);\n ctx.save();\n ctx.strokeStyle = '#c8c9cc';\n ctx.lineWidth = 1;\n ctx.setLineDash([4, 3]);\n ctx.beginPath();\n ctx.moveTo(hx, plot.y);\n ctx.lineTo(hx, plot.y + plot.height);\n ctx.stroke();\n ctx.restore();\n }\n\n option.series.forEach((series, index) => {\n const points = pointsPerSeries[index];\n if (points.length === 0) {\n return;\n }\n const color = this.seriesColor(index, series.color);\n const lineWidth = series.lineWidth ?? 2;\n\n // 面积填充(先画,保证在折线之下)\n if (series.area) {\n ctx.save();\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.15;\n ctx.beginPath();\n this.tracePath(ctx, points, series.smooth ?? false);\n ctx.lineTo(points[points.length - 1].x, plot.y + plot.height);\n ctx.lineTo(points[0].x, plot.y + plot.height);\n ctx.closePath();\n ctx.fill();\n ctx.restore();\n }\n\n // 折线\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.lineJoin = 'round';\n ctx.lineCap = 'round';\n ctx.beginPath();\n this.tracePath(ctx, points, series.smooth ?? false);\n ctx.stroke();\n ctx.restore();\n\n // 数据点标记\n if (series.showSymbol !== false) {\n const baseR = Math.max(2.5, lineWidth + 0.5);\n ctx.save();\n ctx.fillStyle = color;\n for (let i = 0; i < points.length; i += 1) {\n const p = points[i];\n const r = i === hoverIndex ? baseR * 1.6 : baseR;\n ctx.beginPath();\n ctx.arc(p.x, p.y, r, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.restore();\n }\n });\n }\n\n /** 命中检测:x 落在某类目带内即显示该类目所有系列值(y 在绘图区内即可)。 */\n protected hitTestSeries(x: number, y: number): TooltipParams | null {\n const scales = this.cartesian;\n const plot = this.plot;\n if (!scales || !plot) {\n return null;\n }\n if (y < plot.y || y > plot.y + plot.height) {\n return null;\n }\n const labels = this.option.xAxis.labels;\n let best = -1;\n let bestDist = Infinity;\n for (let i = 0; i < labels.length; i += 1) {\n const d = Math.abs(scales.category.center(i) - x);\n if (d < bestDist) {\n bestDist = d;\n best = i;\n }\n }\n if (best < 0 || bestDist > scales.category.bandWidth / 2) {\n return null;\n }\n const items = this.option.series.map((s, i) => ({\n name: s.name ?? `系列${i + 1}`,\n value: s.data[best] ?? 0,\n color: this.seriesColor(i, s.color),\n }));\n return { x, y, name: labels[best], items };\n }\n\n /** 从 hover 状态解析命中的类目索引,未命中返回 -1。 */\n private getHoverCategoryIndex(): number {\n const hover = this.hover;\n if (!hover) {\n return -1;\n }\n const labels = this.option.xAxis.labels;\n return labels.indexOf(hover.name);\n }\n\n /** 折线路径:直线或 Catmull-Rom 平滑插值(三次贝塞尔)。 */\n private tracePath(ctx: ICanvas2D, points: readonly Point[], smooth: boolean): void {\n if (points.length === 0) {\n return;\n }\n ctx.moveTo(points[0].x, points[0].y);\n if (!smooth || points.length < 3) {\n for (let i = 1; i < points.length; i += 1) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n return;\n }\n\n for (let i = 0; i < points.length - 1; i += 1) {\n const p0 = points[Math.max(0, i - 1)];\n const p1 = points[i];\n const p2 = points[i + 1];\n const p3 = points[Math.min(points.length - 1, i + 2)];\n\n const cp1x = p1.x + (p2.x - p0.x) / 6;\n const cp1y = p1.y + (p2.y - p0.y) / 6;\n const cp2x = p2.x - (p3.x - p1.x) / 6;\n const cp2y = p2.y - (p3.y - p1.y) / 6;\n\n ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, p2.x, p2.y);\n }\n }\n}\n",
15
15
  "/**\n * 柱状图:纵向 / 横向,支持多系列分组与 stack 堆叠。\n *\n * 几何规则:\n * - 分组:同一类目内多个系列并排,子柱宽 = 类目带宽 × (1 - gap) / 系列数 × 0.8\n * - 堆叠:同名 stack 系列共用一根柱,后一个系列从前一个的顶端继续累加\n * - 数值轴强制包含 0(柱形高度必须从零线起算才有意义)\n */\n\nimport type { ICanvas2D } from '../core/canvas';\nimport { ChartBase } from '../core/chart';\nimport type { CategoryScale } from '../core/scale';\nimport type { LayoutResult } from '../core/layout';\nimport type { LegendItem } from '../core/legend';\nimport type { BarChartOption, BarSeries, TooltipParams } from '../types';\n\n/** 柱体在类目带内的水平偏移与宽度(纵向)或垂直偏移与高度(横向)。 */\ninterface Slot {\n offset: number;\n size: number;\n}\n\nexport class BarChart extends ChartBase<BarChartOption> {\n protected isHorizontal(): boolean {\n return this.option.horizontal ?? false;\n }\n\n protected getValueDomain(): { min: number; max: number } {\n const { series, yAxis } = this.option;\n let max = 0;\n let min = 0;\n\n // 堆叠:按 stack 组在类目上累加正负\n const stackGroups = groupStacks(series);\n const categoryCount = Math.max(\n 0,\n ...series.map((s) => s.data.length)\n );\n\n for (let i = 0; i < categoryCount; i += 1) {\n for (const group of stackGroups) {\n let positive = 0;\n let negative = 0;\n for (const s of group) {\n const v = s.data[i] ?? 0;\n if (v >= 0) {\n positive += v;\n } else {\n negative += v;\n }\n }\n if (positive > max) {\n max = positive;\n }\n if (negative < min) {\n min = negative;\n }\n }\n }\n\n if (yAxis?.min !== undefined) {\n min = Math.min(min, yAxis.min);\n }\n if (yAxis?.max !== undefined) {\n max = Math.max(max, yAxis.max);\n }\n return { min, max };\n }\n\n protected getCategoryLabels(): readonly string[] {\n return this.option.xAxis.labels;\n }\n\n protected getLegendItems(): LegendItem[] {\n return this.option.series\n .filter((s) => s.name)\n .map((s, i) => ({\n name: s.name as string,\n color: this.seriesColor(i, s.color),\n }));\n }\n\n protected drawSeries(\n ctx: ICanvas2D,\n layout: LayoutResult,\n option: BarChartOption\n ): void {\n const scales = this.cartesian;\n if (!scales) {\n return;\n }\n void layout; // 柱体几何全部由比例尺绝对坐标决定,无需 plot 引用\n const { value, category } = scales;\n const horizontal = option.horizontal ?? false;\n\n const stackGroups = groupStacks(option.series);\n const categoryCount = option.xAxis.labels.length;\n const hoverIndex = this.getHoverCategoryIndex();\n\n for (let i = 0; i < categoryCount; i += 1) {\n // 每个类目带内:无堆叠时按系列分组并排;有堆叠时按 stack 组并排\n const groups = stackGroups;\n const seriesCount = groups.length;\n const explicitWidth = option.series\n .map((s) => s.barWidth)\n .find((w) => w !== undefined && w > 0);\n const slot = this.computeSlot(category, seriesCount, explicitWidth);\n const isHovered = hoverIndex === i;\n\n groups.forEach((group, groupIndex) => {\n const slotOffset = slot.offset + groupIndex * slot.size;\n let cursor = 0; // 堆叠游标(绝对值累加)\n\n group.forEach((series) => {\n const raw = series.data[i] ?? 0;\n const baseColor = this.seriesColor(\n option.series.indexOf(series),\n series.color\n );\n const color = isHovered ? lightenColor(baseColor, 0.25) : baseColor;\n\n if (horizontal) {\n const x0 = value.scale(0);\n const x1 = value.scale(cursor + raw);\n const base = Math.min(x0, x1);\n const width = Math.abs(x1 - x0);\n const y = category.bandStart(i) + slotOffset;\n this.drawBar(ctx, {\n x: base,\n y,\n width,\n height: slot.size,\n radius: series.borderRadius ?? 0,\n color,\n roundSide: raw >= 0 ? 'right' : 'left',\n });\n } else {\n const y0 = value.scale(cursor);\n const y1 = value.scale(cursor + raw);\n const top = Math.min(y0, y1);\n const height = Math.abs(y1 - y0);\n const x = category.bandStart(i) + slotOffset;\n this.drawBar(ctx, {\n x,\n y: top,\n width: slot.size,\n height,\n radius: series.borderRadius ?? 0,\n color,\n roundSide: raw >= 0 ? 'top' : 'bottom',\n });\n }\n\n cursor += raw;\n });\n });\n }\n }\n\n /** 命中检测:点落在某类目的柱体带内即显示该类目所有系列值。 */\n protected hitTestSeries(x: number, y: number): TooltipParams | null {\n const scales = this.cartesian;\n if (!scales) {\n return null;\n }\n const horizontal = this.option.horizontal ?? false;\n const labels = this.getCategoryLabels();\n\n // 命中整个类目带(含柱间间隙):鼠标在类目带内即命中,避免间隙处 tooltip 消失\n for (let i = 0; i < labels.length; i += 1) {\n const start = scales.category.bandStart(i);\n const band = scales.category.bandWidth;\n const hit = horizontal\n ? y >= start && y <= start + band\n : x >= start && x <= start + band;\n if (!hit) {\n continue;\n }\n // 该类目下所有系列(堆叠时为各段值)\n const items = this.option.series.map((s, si) => ({\n name: s.name ?? `系列${si + 1}`,\n value: s.data[i] ?? 0,\n color: this.seriesColor(si, s.color),\n }));\n return { x, y, name: labels[i], items };\n }\n return null;\n }\n\n /** 从 hover 状态解析命中的类目索引,未命中返回 -1。 */\n private getHoverCategoryIndex(): number {\n const hover = this.hover;\n if (!hover) {\n return -1;\n }\n const labels = this.getCategoryLabels();\n return labels.indexOf(hover.name);\n }\n\n private computeSlot(\n category: CategoryScale,\n groupCount: number,\n explicitWidth?: number\n ): Slot {\n const band = category.bandWidth;\n const inner = category.innerWidth();\n if (explicitWidth !== undefined) {\n // 显式柱宽:整组在类目带内居中\n return {\n offset: (band - explicitWidth * groupCount) / 2,\n size: explicitWidth,\n };\n }\n const size = (inner / Math.max(1, groupCount)) * 0.8;\n // 柱区(size × groupCount)先在 inner 内居中,再随 inner 在类目带内居中,\n // 保证整组柱中心落在类目中心(与轴标签 center(i) 对齐)。\n const bandSide = (band - inner) / 2;\n const innerSide = (inner - size * groupCount) / 2;\n return { offset: bandSide + innerSide, size };\n }\n\n private drawBar(\n ctx: ICanvas2D,\n bar: {\n x: number;\n y: number;\n width: number;\n height: number;\n radius: number;\n color: string;\n roundSide: 'top' | 'bottom' | 'right' | 'left';\n }\n ): void {\n if (bar.width <= 0 || bar.height <= 0) {\n return;\n }\n ctx.save();\n ctx.fillStyle = bar.color;\n ctx.beginPath();\n roundRectPath(ctx, bar, bar.radius, bar.roundSide);\n ctx.fill();\n ctx.restore();\n }\n}\n\n/** 按 stack 分组:无 stack 的系列各自成组;同名 stack 合并为一组。 */\nfunction groupStacks(series: readonly BarSeries[]): BarSeries[][] {\n const groups: BarSeries[][] = [];\n const stackMap = new Map<string, BarSeries[]>();\n\n for (const s of series) {\n if (s.stack) {\n let group = stackMap.get(s.stack);\n if (!group) {\n group = [];\n stackMap.set(s.stack, group);\n groups.push(group);\n }\n group.push(s);\n } else {\n groups.push([s]);\n }\n }\n return groups;\n}\n\n/**\n * 圆角柱体路径:仅 roundSide 指示的一侧(两个角)圆角。\n * - 纵向柱:'top' 顶部两角 / 'bottom' 底部两角\n * - 横向柱:'right' 右侧两角 / 'left' 左侧两角\n */\nfunction roundRectPath(\n ctx: ICanvas2D,\n bar: { x: number; y: number; width: number; height: number },\n radius: number,\n roundSide: 'top' | 'bottom' | 'right' | 'left'\n): void {\n const { x, y, width, height } = bar;\n const r = Math.min(radius, width / 2, height / 2);\n if (r <= 0) {\n ctx.rect(x, y, width, height);\n return;\n }\n\n const roundTopLeft = roundSide === 'top' || roundSide === 'left';\n const roundTopRight = roundSide === 'top' || roundSide === 'right';\n const roundBottomLeft = roundSide === 'bottom' || roundSide === 'left';\n const roundBottomRight = roundSide === 'bottom' || roundSide === 'right';\n\n ctx.moveTo(x + (roundTopLeft ? r : 0), y);\n ctx.lineTo(x + width - (roundTopRight ? r : 0), y);\n if (roundTopRight) {\n ctx.arcTo(x + width, y, x + width, y + r, r);\n } else {\n ctx.lineTo(x + width, y);\n }\n\n ctx.lineTo(x + width, y + height - (roundBottomRight ? r : 0));\n if (roundBottomRight) {\n ctx.arcTo(x + width, y + height, x + width - r, y + height, r);\n } else {\n ctx.lineTo(x + width, y + height);\n }\n\n ctx.lineTo(x + (roundBottomLeft ? r : 0), y + height);\n if (roundBottomLeft) {\n ctx.arcTo(x, y + height, x, y + height - r, r);\n } else {\n ctx.lineTo(x, y + height);\n }\n\n ctx.lineTo(x, y + (roundTopLeft ? r : 0));\n if (roundTopLeft) {\n ctx.arcTo(x, y, x + r, y, r);\n } else {\n ctx.lineTo(x, y);\n }\n ctx.closePath();\n}\n\n/** 将颜色向白色方向混合 amount(0~1),支持 #rrggbb 与 rgba()。 */\nfunction lightenColor(color: string, amount: number): string {\n const a = Math.max(0, Math.min(1, amount));\n\n // #rrggbb / #rgb\n const hex = color.match(/^#([0-9a-f]{3,8})$/i);\n if (hex) {\n let r: number;\n let g: number;\n let b: number;\n const h = hex[1];\n if (h.length === 3) {\n r = parseInt(h[0] + h[0], 16);\n g = parseInt(h[1] + h[1], 16);\n b = parseInt(h[2] + h[2], 16);\n } else {\n r = parseInt(h.slice(0, 2), 16);\n g = parseInt(h.slice(2, 4), 16);\n b = parseInt(h.slice(4, 6), 16);\n }\n r = Math.round(r + (255 - r) * a);\n g = Math.round(g + (255 - g) * a);\n b = Math.round(b + (255 - b) * a);\n return `rgb(${r}, ${g}, ${b})`;\n }\n\n // rgba(r, g, b, a?) / rgb(r, g, b)\n const rgba = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);\n if (rgba) {\n const r = Math.round(parseInt(rgba[1]) + (255 - parseInt(rgba[1])) * a);\n const g = Math.round(parseInt(rgba[2]) + (255 - parseInt(rgba[2])) * a);\n const b = Math.round(parseInt(rgba[3]) + (255 - parseInt(rgba[3])) * a);\n return `rgb(${r}, ${g}, ${b})`;\n }\n\n return color;\n}\n",
16
16
  "/**\n * 饼图 / 环形图:扇区绘制、百分比标签、图例。\n * 无笛卡尔坐标轴,全部几何在绘图区内按极坐标计算。\n */\n\nimport type { ICanvas2D } from '../core/canvas';\nimport { ChartBase } from '../core/chart';\nimport type { LayoutResult } from '../core/layout';\nimport type { LegendItem } from '../core/legend';\nimport { applyFont } from '../core/text';\nimport type { PieChartOption, TooltipParams } from '../types';\n\nconst TWO_PI = Math.PI * 2;\n\nexport class PieChart extends ChartBase<PieChartOption> {\n protected hasCartesianAxis(): boolean {\n return false;\n }\n\n protected getLegendItems(): LegendItem[] {\n return this.option.data.map((d, i) => ({\n name: d.name,\n color: d.color ?? this.seriesColor(i),\n }));\n }\n\n /** 命中检测:点落在某扇区(环形环带内)即显示该扇区名与数值占比。 */\n protected hitTestSeries(x: number, y: number): TooltipParams | null {\n const plot = this.plot;\n if (!plot) {\n return null;\n }\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n const maxRadius = Math.min(plot.width, plot.height) / 2;\n const outerRadius = resolveRadius(this.option.radius ?? '60%', maxRadius);\n const innerRadius = resolveRadius(this.option.innerRadius ?? 0, maxRadius);\n const startAngle = this.option.startAngle ?? -Math.PI / 2;\n\n const dx = x - centerX;\n const dy = y - centerY;\n const dist = Math.hypot(dx, dy);\n if (dist < innerRadius || dist > outerRadius) {\n return null;\n }\n\n const data = this.option.data.filter((d) => d.value > 0);\n const total = data.reduce((sum, d) => sum + d.value, 0);\n if (total <= 0) {\n return null;\n }\n\n // 命中角(canvas 系 y 向下,与绘制时角度递增方向一致)\n let a = Math.atan2(dy, dx);\n while (a < startAngle) {\n a += TWO_PI;\n }\n let cur = startAngle;\n for (let i = 0; i < data.length; i += 1) {\n const d = data[i]!;\n const sweep = (d.value / total) * TWO_PI;\n if (a >= cur && a <= cur + sweep) {\n const percent = Math.round((d.value / total) * 100);\n return {\n x,\n y,\n name: d.name,\n items: [\n {\n name: d.name,\n value: `${percent}%`,\n color: d.color ?? this.seriesColor(i),\n },\n ],\n };\n }\n cur += sweep;\n }\n return null;\n }\n\n protected drawSeries(\n ctx: ICanvas2D,\n layout: LayoutResult,\n option: PieChartOption\n ): void {\n const { plot } = layout;\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n\n const maxRadius =\n Math.min(plot.width, plot.height) / 2;\n const outerRadius = resolveRadius(option.radius ?? '60%', maxRadius);\n const innerRadius = resolveRadius(option.innerRadius ?? 0, maxRadius);\n const startAngle = option.startAngle ?? -Math.PI / 2;\n\n const data = option.data.filter((d) => d.value > 0);\n const total = data.reduce((sum, d) => sum + d.value, 0);\n if (total <= 0 || outerRadius <= 0) {\n return;\n }\n\n let angle = startAngle;\n\n data.forEach((d, index) => {\n const sweep = (d.value / total) * TWO_PI;\n const color = d.color ?? this.seriesColor(index);\n\n ctx.save();\n ctx.fillStyle = color;\n ctx.beginPath();\n if (innerRadius > 0) {\n // 环形:外弧 → 内弧(反向)闭合\n ctx.arc(centerX, centerY, outerRadius, angle, angle + sweep);\n ctx.arc(\n centerX,\n centerY,\n innerRadius,\n angle + sweep,\n angle,\n true\n );\n } else {\n ctx.arc(centerX, centerY, outerRadius, angle, angle + sweep);\n ctx.lineTo(centerX, centerY);\n }\n ctx.closePath();\n ctx.fill();\n // 扇区间分隔线\n ctx.strokeStyle = '#ffffff';\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.restore();\n\n // 扇区标签:名称 + 百分比\n // - inside(默认):画在扇区角平分线上(白字)\n // - outside:引线把文字引到扇区外(右半区左对齐、左半区右对齐,避免文字跨越中线)\n if (option.showLabel !== false) {\n const midAngle = angle + sweep / 2;\n const percent = total > 0 ? Math.round((d.value / total) * 100) : 0;\n const text = `${d.name} ${percent}%`;\n\n if (option.labelPosition === 'outside') {\n const lineLength = option.labelLineLength ?? 14;\n const gap = option.labelGap ?? 6;\n const dirX = Math.cos(midAngle);\n const dirY = Math.sin(midAngle);\n // 引线第一段:扇区边缘沿平分线向外\n const edgeX = centerX + dirX * outerRadius;\n const edgeY = centerY + dirY * outerRadius;\n const bendX = centerX + dirX * (outerRadius + lineLength);\n const bendY = centerY + dirY * (outerRadius + lineLength);\n // 第二段:水平延伸到文字锚点(右半向右、左半向左)\n const horizontal = dirX >= 0 ? 1 : -1;\n const textX = bendX + horizontal * gap;\n const textY = bendY;\n\n ctx.save();\n ctx.strokeStyle = option.labelLineColor ?? '#c0c4cc';\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.moveTo(edgeX, edgeY);\n ctx.lineTo(bendX, bendY);\n ctx.lineTo(textX, textY);\n ctx.stroke();\n ctx.restore();\n\n applyFont(ctx, option.labelFontSize ?? 10);\n ctx.fillStyle = option.labelColor ?? '#323233';\n ctx.textAlign = horizontal > 0 ? 'left' : 'right';\n ctx.textBaseline = 'middle';\n ctx.fillText(text, textX, textY);\n } else {\n const labelRadius =\n ((outerRadius + (innerRadius > 0 ? innerRadius : 0)) / 2) * 0.85;\n const labelX = centerX + Math.cos(midAngle) * labelRadius;\n const labelY = centerY + Math.sin(midAngle) * labelRadius;\n\n applyFont(ctx, option.labelFontSize ?? 10);\n ctx.fillStyle = option.labelColor ?? '#ffffff';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(text, labelX, labelY);\n }\n }\n\n angle += sweep;\n });\n }\n}\n\n/** 解析半径:数字为像素;'60%' 形式按最大半径百分比。 */\nfunction resolveRadius(value: number | string, maxRadius: number): number {\n if (typeof value === 'number') {\n return Math.max(0, value);\n }\n const match = /^(\\d+(?:\\.\\d+)?)%$/.exec(value);\n if (!match) {\n return maxRadius;\n }\n return (Number(match[1]) / 100) * maxRadius;\n}\n",
17
- "/**\n * 雷达图:多边形网格 + 指标轴 + 多系列区域/折线。\n * 指标刻度按各 indicator.max(缺省取所有系列该指标最大值)归一化。\n */\n\nimport type { ICanvas2D } from '../core/canvas';\nimport { ChartBase } from '../core/chart';\nimport type { LayoutResult } from '../core/layout';\nimport type { LegendItem } from '../core/legend';\nimport { applyFont } from '../core/text';\nimport type { RadarChartOption, TooltipParams } from '../types';\n\ninterface PolarPoint {\n x: number;\n y: number;\n}\n\nexport class RadarChart extends ChartBase<RadarChartOption> {\n protected hasCartesianAxis(): boolean {\n return false;\n }\n\n protected getLegendItems(): LegendItem[] {\n return this.option.series\n .filter((s) => s.name)\n .map((s, i) => ({\n name: s.name as string,\n color: this.seriesColor(i, s.color),\n }));\n }\n\n protected drawSeries(\n ctx: ICanvas2D,\n layout: LayoutResult,\n option: RadarChartOption\n ): void {\n const { plot } = layout;\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n const radius =\n option.radius ?? Math.min(plot.width, plot.height) / 2 * 0.6;\n const count = option.indicators.length;\n if (count === 0 || radius <= 0) {\n return;\n }\n\n const startAngle = option.startAngle ?? -Math.PI / 2;\n const step = TWO_PI / count;\n const splitCount = Math.max(1, option.splitCount ?? 5);\n const gridColor = option.gridColor ?? '#ebedf0';\n const gridLineWidth = option.gridLineWidth ?? 1;\n\n const vertexAngle = (index: number): number =>\n startAngle + index * step;\n\n const polarPoint = (angle: number, r: number): PolarPoint => ({\n x: centerX + Math.cos(angle) * r,\n y: centerY + Math.sin(angle) * r,\n });\n\n // 网格层:同心多边形\n for (let layer = 1; layer <= splitCount; layer += 1) {\n const r = (radius * layer) / splitCount;\n ctx.save();\n ctx.strokeStyle = gridColor;\n ctx.lineWidth = gridLineWidth;\n ctx.beginPath();\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), r);\n if (i === 0) {\n ctx.moveTo(p.x, p.y);\n } else {\n ctx.lineTo(p.x, p.y);\n }\n }\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n }\n\n // 指标轴线\n ctx.save();\n ctx.strokeStyle = gridColor;\n ctx.lineWidth = gridLineWidth;\n ctx.beginPath();\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), radius);\n ctx.moveTo(centerX, centerY);\n ctx.lineTo(p.x, p.y);\n }\n ctx.stroke();\n ctx.restore();\n\n // 指标标签(顶点外侧)\n const labelFontSize = option.labelFontSize ?? 11;\n applyFont(ctx, labelFontSize);\n ctx.fillStyle = option.labelColor ?? '#323233';\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), radius + 12);\n ctx.textAlign = Math.abs(p.x - centerX) < 1 ? 'center' : p.x > centerX ? 'left' : 'right';\n ctx.textBaseline =\n Math.abs(p.y - centerY) < 1\n ? 'middle'\n : p.y > centerY\n ? 'top'\n : 'bottom';\n ctx.fillText(option.indicators[i].name, p.x, p.y);\n }\n\n // 系列区域 / 折线\n option.series.forEach((series, seriesIndex) => {\n const color = this.seriesColor(seriesIndex, series.color);\n const points: PolarPoint[] = option.indicators.map((indicator, i) => {\n const max =\n indicator.max ?? this.indicatorMax(option, i);\n const value = series.data[i] ?? 0;\n const ratio = max > 0 ? Math.max(0, Math.min(1, value / max)) : 0;\n return polarPoint(vertexAngle(i), radius * ratio);\n });\n\n if (series.area !== false) {\n ctx.save();\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.2;\n ctx.beginPath();\n this.tracePolygon(ctx, points);\n ctx.closePath();\n ctx.fill();\n ctx.restore();\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = series.lineWidth ?? 2;\n ctx.lineJoin = 'round';\n ctx.beginPath();\n this.tracePolygon(ctx, points);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n });\n }\n\n /** 命中检测:靠近任一数据顶点(阈值 24px)即显示该指标下所有系列值。 */\n protected hitTestSeries(x: number, y: number): TooltipParams | null {\n const plot = this.plot;\n if (!plot) {\n return null;\n }\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n const radius =\n this.option.radius ?? (Math.min(plot.width, plot.height) / 2) * 0.6;\n const count = this.option.indicators.length;\n if (count === 0) {\n return null;\n }\n const startAngle = this.option.startAngle ?? -Math.PI / 2;\n const step = TWO_PI / count;\n\n let best = -1;\n let bestDist = 24; // 命中阈值(px)\n for (let i = 0; i < count; i += 1) {\n const max =\n this.option.indicators[i].max ?? this.indicatorMax(this.option, i);\n const angle = startAngle + i * step;\n for (let si = 0; si < this.option.series.length; si += 1) {\n const value = this.option.series[si].data[i] ?? 0;\n const ratio = max > 0 ? Math.max(0, Math.min(1, value / max)) : 0;\n const px = centerX + Math.cos(angle) * radius * ratio;\n const py = centerY + Math.sin(angle) * radius * ratio;\n const d = Math.hypot(x - px, y - py);\n if (d < bestDist) {\n bestDist = d;\n best = i;\n }\n }\n }\n if (best < 0) {\n return null;\n }\n const items = this.option.series.map((s, si) => ({\n name: s.name ?? `系列${si + 1}`,\n value: s.data[best] ?? 0,\n color: this.seriesColor(si, s.color),\n }));\n return {\n x,\n y,\n name: this.option.indicators[best]!.name,\n items,\n };\n }\n\n private indicatorMax(option: RadarChartOption, index: number): number {\n let max = 0;\n for (const series of option.series) {\n const v = series.data[index] ?? 0;\n if (v > max) {\n max = v;\n }\n }\n return max;\n }\n\n private tracePolygon(ctx: ICanvas2D, points: readonly PolarPoint[]): void {\n if (points.length === 0) {\n return;\n }\n ctx.moveTo(points[0].x, points[0].y);\n for (let i = 1; i < points.length; i += 1) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n }\n}\n\nconst TWO_PI = Math.PI * 2;\n",
18
- "/**\n * 平台适配层:把各端 Canvas 2D 上下文解析为统一渲染上下文\n * (ICanvas2D + 逻辑尺寸 + DPR)。\n *\n * 适配器只负责三件事:\n * 1. 拿到上下文(HTMLCanvasElement / 小程序 canvas node / 未来原生 canvas)\n * 2. 计算设备像素比并设置物理画布尺寸\n * 3. 返回引擎需要的 ChartRenderContext\n *\n * 引擎代码永远不直接接触 DOM / wx / native API。\n */\n\nimport type { ChartRenderContext } from '../types';\n\nexport interface ResolveCanvasOptions {\n /** 逻辑宽度(CSS px);缺省取节点实际尺寸。 */\n width?: number;\n /** 逻辑高度(CSS px);缺省取节点实际尺寸。 */\n height?: number;\n /** 设备像素比;缺省自动探测。 */\n dpr?: number;\n /** 自定义色板。 */\n palette?: readonly string[];\n}\n\nexport interface ResolvedCanvas {\n context: ChartRenderContext;\n}\n\n/** 通用探测设备像素比(web 与小程序可用 globalThis 访问)。 */\nexport function detectPixelRatio(): number {\n const host = getHost();\n if (typeof host.devicePixelRatio === 'number' && host.devicePixelRatio > 0) {\n return host.devicePixelRatio;\n }\n return 1;\n}\n\nfunction getHost(): Record<string, unknown> {\n if (typeof globalThis !== 'undefined') {\n return globalThis as unknown as Record<string, unknown>;\n }\n return {};\n}\n",
17
+ "/**\n * 雷达图:多边形网格 + 指标轴 + 多系列区域/折线。\n * 指标刻度按各 indicator.max(缺省取所有系列该指标最大值)归一化。\n */\n\nimport type { ICanvas2D } from '../core/canvas';\nimport { ChartBase } from '../core/chart';\nimport type { LayoutResult } from '../core/layout';\nimport type { LegendItem } from '../core/legend';\nimport { applyFont } from '../core/text';\nimport type { RadarChartOption, TooltipParams } from '../types';\n\ninterface PolarPoint {\n x: number;\n y: number;\n}\n\nexport class RadarChart extends ChartBase<RadarChartOption> {\n protected hasCartesianAxis(): boolean {\n return false;\n }\n\n protected getLegendItems(): LegendItem[] {\n return this.option.series\n .filter((s) => s.name)\n .map((s, i) => ({\n name: s.name as string,\n color: this.seriesColor(i, s.color),\n }));\n }\n\n protected drawSeries(\n ctx: ICanvas2D,\n layout: LayoutResult,\n option: RadarChartOption\n ): void {\n const { plot } = layout;\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n const radius =\n option.radius ?? Math.min(plot.width, plot.height) / 2 * 0.6;\n const count = option.indicators.length;\n if (count === 0 || radius <= 0) {\n return;\n }\n\n const startAngle = option.startAngle ?? -Math.PI / 2;\n const step = RADAR_TWO_PI / count;\n const splitCount = Math.max(1, option.splitCount ?? 5);\n const gridColor = option.gridColor ?? '#ebedf0';\n const gridLineWidth = option.gridLineWidth ?? 1;\n\n const vertexAngle = (index: number): number =>\n startAngle + index * step;\n\n const polarPoint = (angle: number, r: number): PolarPoint => ({\n x: centerX + Math.cos(angle) * r,\n y: centerY + Math.sin(angle) * r,\n });\n\n // 网格层:同心多边形\n for (let layer = 1; layer <= splitCount; layer += 1) {\n const r = (radius * layer) / splitCount;\n ctx.save();\n ctx.strokeStyle = gridColor;\n ctx.lineWidth = gridLineWidth;\n ctx.beginPath();\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), r);\n if (i === 0) {\n ctx.moveTo(p.x, p.y);\n } else {\n ctx.lineTo(p.x, p.y);\n }\n }\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n }\n\n // 指标轴线\n ctx.save();\n ctx.strokeStyle = gridColor;\n ctx.lineWidth = gridLineWidth;\n ctx.beginPath();\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), radius);\n ctx.moveTo(centerX, centerY);\n ctx.lineTo(p.x, p.y);\n }\n ctx.stroke();\n ctx.restore();\n\n // 指标标签(顶点外侧)\n const labelFontSize = option.labelFontSize ?? 11;\n applyFont(ctx, labelFontSize);\n ctx.fillStyle = option.labelColor ?? '#323233';\n for (let i = 0; i < count; i += 1) {\n const p = polarPoint(vertexAngle(i), radius + 12);\n ctx.textAlign = Math.abs(p.x - centerX) < 1 ? 'center' : p.x > centerX ? 'left' : 'right';\n ctx.textBaseline =\n Math.abs(p.y - centerY) < 1\n ? 'middle'\n : p.y > centerY\n ? 'top'\n : 'bottom';\n ctx.fillText(option.indicators[i].name, p.x, p.y);\n }\n\n // 系列区域 / 折线\n option.series.forEach((series, seriesIndex) => {\n const color = this.seriesColor(seriesIndex, series.color);\n const points: PolarPoint[] = option.indicators.map((indicator, i) => {\n const max =\n indicator.max ?? this.indicatorMax(option, i);\n const value = series.data[i] ?? 0;\n const ratio = max > 0 ? Math.max(0, Math.min(1, value / max)) : 0;\n return polarPoint(vertexAngle(i), radius * ratio);\n });\n\n if (series.area !== false) {\n ctx.save();\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.2;\n ctx.beginPath();\n this.tracePolygon(ctx, points);\n ctx.closePath();\n ctx.fill();\n ctx.restore();\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = series.lineWidth ?? 2;\n ctx.lineJoin = 'round';\n ctx.beginPath();\n this.tracePolygon(ctx, points);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n });\n }\n\n /** 命中检测:靠近任一数据顶点(阈值 24px)即显示该指标下所有系列值。 */\n protected hitTestSeries(x: number, y: number): TooltipParams | null {\n const plot = this.plot;\n if (!plot) {\n return null;\n }\n const centerX = plot.x + plot.width / 2;\n const centerY = plot.y + plot.height / 2;\n const radius =\n this.option.radius ?? (Math.min(plot.width, plot.height) / 2) * 0.6;\n const count = this.option.indicators.length;\n if (count === 0) {\n return null;\n }\n const startAngle = this.option.startAngle ?? -Math.PI / 2;\n const step = RADAR_TWO_PI / count;\n\n let best = -1;\n let bestDist = 24; // 命中阈值(px)\n for (let i = 0; i < count; i += 1) {\n const max =\n this.option.indicators[i].max ?? this.indicatorMax(this.option, i);\n const angle = startAngle + i * step;\n for (let si = 0; si < this.option.series.length; si += 1) {\n const value = this.option.series[si].data[i] ?? 0;\n const ratio = max > 0 ? Math.max(0, Math.min(1, value / max)) : 0;\n const px = centerX + Math.cos(angle) * radius * ratio;\n const py = centerY + Math.sin(angle) * radius * ratio;\n const d = Math.hypot(x - px, y - py);\n if (d < bestDist) {\n bestDist = d;\n best = i;\n }\n }\n }\n if (best < 0) {\n return null;\n }\n const items = this.option.series.map((s, si) => ({\n name: s.name ?? `系列${si + 1}`,\n value: s.data[best] ?? 0,\n color: this.seriesColor(si, s.color),\n }));\n return {\n x,\n y,\n name: this.option.indicators[best]!.name,\n items,\n };\n }\n\n private indicatorMax(option: RadarChartOption, index: number): number {\n let max = 0;\n for (const series of option.series) {\n const v = series.data[index] ?? 0;\n if (v > max) {\n max = v;\n }\n }\n return max;\n }\n\n private tracePolygon(ctx: ICanvas2D, points: readonly PolarPoint[]): void {\n if (points.length === 0) {\n return;\n }\n ctx.moveTo(points[0].x, points[0].y);\n for (let i = 1; i < points.length; i += 1) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n }\n}\n\nconst RADAR_TWO_PI = Math.PI * 2;\n",
18
+ "/**\n * 平台适配层:把各端 Canvas 2D 上下文解析为统一渲染上下文\n * (ICanvas2D + 逻辑尺寸 + DPR)。\n *\n * 适配器只负责三件事:\n * 1. 拿到上下文(HTMLCanvasElement / 小程序 canvas node / 未来原生 canvas)\n * 2. 计算设备像素比并设置物理画布尺寸\n * 3. 返回引擎需要的 ChartRenderContext\n *\n * 引擎代码永远不直接接触 DOM / wx / native API。\n */\n\nimport type { ChartRenderContext } from '../types';\n\nexport interface ResolveCanvasOptions {\n /** 逻辑宽度(CSS px);缺省取节点实际尺寸。 */\n width?: number;\n /** 逻辑高度(CSS px);缺省取节点实际尺寸。 */\n height?: number;\n /** 设备像素比;缺省自动探测。 */\n dpr?: number;\n /** 自定义色板。 */\n palette?: readonly string[];\n}\n\nexport interface ResolvedCanvas {\n context: ChartRenderContext;\n}\n\n/** 通用探测设备像素比(web 与小程序可用 globalThis 访问)。 */\nexport function detectPixelRatio(): number {\n const host = getPixelRatioHost();\n if (typeof host.devicePixelRatio === 'number' && host.devicePixelRatio > 0) {\n return host.devicePixelRatio;\n }\n return 1;\n}\n\nfunction getPixelRatioHost(): Record<string, unknown> {\n if (typeof globalThis !== 'undefined') {\n return globalThis as unknown as Record<string, unknown>;\n }\n return {};\n}\n",
19
19
  "/**\n * 小程序适配器:微信 / 阿里 / 字节的 Canvas 2D 节点 → ChartRenderContext。\n *\n * 获取流程(各端一致,仅全局名不同):\n * canvas type=\"2d\" → 节点 node → node.getContext('2d') → ICanvas2D\n *\n * 节点获取依赖 SelectorQuery,属于组件生命周期职责,由\n * getMiniProgramCanvasNode() 提供;本文件只负责「节点 → 上下文」,\n * 以及 DPR 探测(pixelRatio 从各端系统信息接口读取)。\n */\n\nimport type { ChartRenderContext } from '../types';\nimport type { ICanvas2D } from '../core/canvas';\nimport { detectPixelRatio, type ResolveCanvasOptions } from './types';\n\n/** 小程序 Canvas 2D 节点(各端 node 的公共形状)。 */\nexport interface MiniProgramCanvasNode {\n getContext(type: '2d'): unknown;\n width: number;\n height: number;\n}\n\nexport type MiniProgramGlobal = 'wx' | 'my' | 'tt';\n\n/** 安全读取小程序全局(避免与官方类型定义冲突,模式同 transone request)。 */\nexport function getMiniProgramGlobal(\n name: MiniProgramGlobal\n): Record<string, unknown> | null {\n const host = getHost();\n const api = host[name];\n return typeof api === 'object' && api !== null\n ? (api as Record<string, unknown>)\n : null;\n}\n\n/**\n * 通过 SelectorQuery 获取 Canvas 2D 节点(组件/页面内调用)。\n * 各端 API 形状一致:createSelectorQuery().in(instance).select(selector)\n * .fields({ node: true, size: true }).exec(callback)\n */\nexport function getMiniProgramCanvasNode(options: {\n /** 端标识,缺省自动探测(wx → my → tt)。 */\n platform?: MiniProgramGlobal;\n /** 组件/页面实例(.in() 入参)。 */\n instance?: unknown;\n /** canvas 选择器,如 '#chart'。 */\n selector: string;\n}): Promise<MiniProgramCanvasNode> {\n const platform =\n options.platform ?? detectMiniProgramGlobal() ?? 'wx';\n const api = getMiniProgramGlobal(platform);\n const queryFn = api?.createSelectorQuery;\n if (typeof queryFn !== 'function') {\n return Promise.reject(\n new Error(`getMiniProgramCanvasNode: ${platform}.createSelectorQuery is not available`)\n );\n }\n\n return new Promise((resolve, reject) => {\n let query = queryFn.call(api);\n if (options.instance && typeof query.in === 'function') {\n query = query.in(options.instance);\n }\n if (typeof query.select !== 'function') {\n reject(new Error(`${platform}.createSelectorQuery().select is not available`));\n return;\n }\n query\n .select(options.selector)\n .fields({ node: true, size: true })\n .exec((res: unknown) => {\n const first = Array.isArray(res) ? res[0] : undefined;\n const node = first?.node as MiniProgramCanvasNode | undefined;\n if (!node || typeof node.getContext !== 'function') {\n reject(\n new Error(\n `getMiniProgramCanvasNode: canvas node not found for \"${options.selector}\"`\n )\n );\n return;\n }\n resolve(node);\n });\n });\n}\n\n/** 探测当前小程序全局(wx → my → tt),均不存在返回 null。 */\nexport function detectMiniProgramGlobal(): MiniProgramGlobal | null {\n if (getMiniProgramGlobal('wx')) {\n return 'wx';\n }\n if (getMiniProgramGlobal('my')) {\n return 'my';\n }\n if (getMiniProgramGlobal('tt')) {\n return 'tt';\n }\n return null;\n}\n\n/** 读取各端设备像素比(wx.getSystemInfoSync / my.getSystemInfoSync / tt.getSystemInfoSync)。 */\nexport function detectMiniProgramPixelRatio(platform?: MiniProgramGlobal): number {\n const name = platform ?? detectMiniProgramGlobal() ?? 'wx';\n const api = getMiniProgramGlobal(name);\n const sync = api?.getSystemInfoSync;\n if (typeof sync === 'function') {\n try {\n const info = sync.call(api) as { pixelRatio?: number };\n if (typeof info.pixelRatio === 'number' && info.pixelRatio > 0) {\n return info.pixelRatio;\n }\n } catch {\n // 探测失败回退通用探测\n }\n }\n return detectPixelRatio();\n}\n\n/**\n * 从 Canvas 2D 节点解析渲染上下文。\n * 物理画布尺寸由节点自身管理(width/height 已在平台侧按像素比设置),\n * 此处只做归一化返回。\n */\nexport function resolveMiniProgramCanvas(\n node: MiniProgramCanvasNode,\n options: ResolveCanvasOptions = {}\n): ChartRenderContext {\n const ctx2d = node.getContext('2d');\n if (!ctx2d) {\n throw new Error('resolveMiniProgramCanvas: 2d context is not available');\n }\n\n const dpr = options.dpr ?? detectMiniProgramPixelRatio();\n const width = options.width ?? node.width;\n const height = options.height ?? node.height;\n const ctx = ctx2d as unknown as ICanvas2D;\n\n return { ctx, width, height, dpr, palette: options.palette };\n}\n\nfunction getHost(): Record<string, unknown> {\n if (typeof globalThis !== 'undefined') {\n return globalThis as unknown as Record<string, unknown>;\n }\n return {};\n}\n",
20
20
  "/**\n * Web 适配器:HTMLCanvasElement → ChartRenderContext。\n *\n * - 把物理画布尺寸设为 逻辑尺寸 × DPR,保证高分屏清晰\n * - 上下文为标准 CanvasRenderingContext2D,天然满足 ICanvas2D 契约\n */\n\nimport type { ChartRenderContext } from '../types';\nimport type { ICanvas2D } from '../core/canvas';\nimport { detectPixelRatio, type ResolveCanvasOptions } from './types';\n\n/**\n * 从 HTMLCanvasElement 解析渲染上下文。\n * 会就地修改 canvas.width / canvas.height 为物理像素尺寸。\n */\nexport function resolveWebCanvas(\n canvas: HTMLCanvasElement,\n options: ResolveCanvasOptions = {}\n): ChartRenderContext {\n if (!canvas) {\n throw new Error('resolveWebCanvas: canvas element is required');\n }\n\n const ctx2d = canvas.getContext('2d');\n if (!ctx2d) {\n throw new Error('resolveWebCanvas: 2d context is not available');\n }\n\n const dpr = options.dpr ?? detectPixelRatio();\n const width = options.width ?? (canvas.clientWidth || canvas.width);\n const height = options.height ?? (canvas.clientHeight || canvas.height);\n\n // 物理像素 = 逻辑像素 × DPR\n canvas.width = Math.round(width * dpr);\n canvas.height = Math.round(height * dpr);\n\n // 标准 CanvasRenderingContext2D 已满足 ICanvas2D 全部成员\n const ctx = ctx2d as unknown as ICanvas2D;\n\n return { ctx, width, height, dpr, palette: options.palette };\n}\n",
21
21
  "/**\n * 图表工厂:按 option.type 分发到具体图表策略类(策略模式入口)。\n *\n * 用法(Web):\n * const chart = createWebChart(canvasEl, { type: 'line', ... });\n * chart.render();\n *\n * 用法(小程序,页面 onReady 后):\n * const node = await getMiniProgramCanvasNode({ selector: '#chart' });\n * const chart = createMiniProgramChart(node, option);\n * chart.render();\n */\n\nimport type { ChartOption, ChartRenderContext } from './types';\nimport type { ChartBase } from './core/chart';\nimport { LineChart } from './charts/line';\nimport { BarChart } from './charts/bar';\nimport { PieChart } from './charts/pie';\nimport { RadarChart } from './charts/radar';\nimport { resolveMiniProgramCanvas } from './adapters/miniprogram';\nimport type { MiniProgramCanvasNode } from './adapters/miniprogram';\nimport { resolveWebCanvas } from './adapters/web';\nimport type { ResolveCanvasOptions } from './adapters/types';\n\n/** 按类型创建图表实例(引擎核心入口)。 */\nexport function createChart<T extends ChartOption>(\n context: ChartRenderContext,\n option: T\n): ChartBase<T> {\n switch (option.type) {\n case 'line':\n return new LineChart(context, option) as unknown as ChartBase<T>;\n case 'bar':\n return new BarChart(context, option) as unknown as ChartBase<T>;\n case 'pie':\n return new PieChart(context, option) as unknown as ChartBase<T>;\n case 'radar':\n return new RadarChart(context, option) as unknown as ChartBase<T>;\n default:\n throw new Error(\n `createChart: unsupported chart type \"${(option as ChartOption).type}\"`\n );\n }\n}\n\n/** Web 便捷入口:从 HTMLCanvasElement 直接创建并渲染。 */\nexport function createWebChart<T extends ChartOption>(\n canvas: HTMLCanvasElement,\n option: T,\n resolveOptions: ResolveCanvasOptions = {}\n): ChartBase<T> {\n return createChart(resolveWebCanvas(canvas, resolveOptions), option);\n}\n\n/** 小程序便捷入口:从 Canvas 2D 节点直接创建并渲染。 */\nexport function createMiniProgramChart<T extends ChartOption>(\n node: MiniProgramCanvasNode,\n option: T,\n resolveOptions: ResolveCanvasOptions = {}\n): ChartBase<T> {\n return createChart(resolveMiniProgramCanvas(node, resolveOptions), option);\n}\n",
@@ -44,7 +44,7 @@
44
44
  "import { Request } from './request';\nimport type { RequestOptions } from './types';\n\n/** 创建独立请求实例;不传配置时等价于使用默认实例 */\nexport function createRequest(options: RequestOptions = {}): Request {\n return new Request(options);\n}\n\n/**\n * 全局默认请求实例:直接使用无需创建。\n * ```ts\n * import { request } from 'transone/request';\n * const res = await request.get('/api/items');\n * ```\n */\nexport const request: Request = new Request();\n\nexport { Request } from './request';\nexport { InterceptorManager } from './interceptors';\nexport { RequestError, isRequestError } from './errors';\nexport type { RequestErrorCode, RequestErrorOptions } from './errors';\nexport {\n adapters,\n createAdapter,\n detectPlatform,\n resolveAdapter,\n} from './adapters';\nexport type { MiniProgramDialect, MiniProgramRequestApi } from './adapters';\nexport type {\n DetectedPlatform,\n HeaderValue,\n HttpMethod,\n InterceptorFulfilled,\n InterceptorHandler,\n InterceptorRejected,\n RequestAdapter,\n RequestAdapterResolver,\n RequestConfig,\n RequestDataType,\n RequestOptions,\n RequestPlatform,\n RequestResponse,\n RequestResponseType,\n} from './types';\n",
45
45
  "/**\n * 可选集成:基于 transone Component 的声明式图表组件 TcChart。\n *\n * 与 transone 组件系统集成,一份源码同时编译 Web 与小程序:\n * - Web:canvas 元素由组件渲染,onMounted 后自动解析并渲染\n * - 小程序:canvas 编译为 <canvas type=\"2d\">,通过 SelectorQuery 获取节点\n * - 未来原生:通过 resolve 注入自定义解析器\n *\n * 组件本身是薄壳:状态由父级以 option 传入(完全受控),\n * 数据变化时自动 setOption + render;\n * 容器 / 窗口尺寸变化时防抖(150ms)自动重绘:\n * - Web:ResizeObserver 观察 canvas,重测 clientWidth/Height 后增量 resize + render\n * - 小程序:平台窗口尺寸回调触发后重建图表(SelectorQuery 取最新节点尺寸)\n */\n\nimport {\n Component,\n h,\n type VNode,\n} from 'transone';\nimport type { ChartRenderContext, ChartOption } from './types';\nimport type { ChartBase } from './core/chart';\nimport { debounce, type Debounced } from './core/debounce';\nimport { createChart } from './factory';\nimport {\n detectMiniProgramGlobal,\n getMiniProgramCanvasNode,\n getMiniProgramGlobal,\n resolveMiniProgramCanvas,\n} from './adapters/miniprogram';\nimport { detectPixelRatio } from './adapters/types';\nimport { resolveWebCanvas } from './adapters/web';\n\nexport interface TcChartProps {\n /** 图表配置(line / bar / pie / radar)。 */\n option: ChartOption;\n /** 自定义解析器:把 canvas 元素/节点解析为渲染上下文。 */\n resolve?: (\n element: unknown\n ) => Promise<ChartRenderContext> | ChartRenderContext;\n className?: string;\n}\n\ninterface TcChartState {\n canvasId: string;\n}\n\n/** canvas 元素 id:Web 端仅作 DOM 属性;小程序端配合 SelectorQuery .in(实例) 隔离查询,多实例共存不冲突。 */\nconst CANVAS_ID = 'tc-chart-canvas';\n\n/** 尺寸变化自动重绘的防抖窗口(毫秒)。连续 resize 事件只在此窗口后重绘一次。 */\nconst RESIZE_DEBOUNCE_MS = 150;\n\ninterface MpWindowResizeApi {\n onWindowResize?: (callback: () => void) => unknown;\n offWindowResize?: (callback: () => void) => unknown;\n}\n\nexport class TcChart extends Component<TcChartProps, TcChartState> {\n private chart: ChartBase<ChartOption> | null = null;\n private destroyed = false;\n private resizeDebounced: Debounced<() => void> | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private mpResizeHandler: (() => void) | null = null;\n /** Web 端 hover 事件句柄(mousemove / mouseleave),卸载时移除。 */\n private hoverHandlers: Array<[string, (e: Event) => void]> = [];\n\n protected initState(): TcChartState {\n return { canvasId: CANVAS_ID };\n }\n\n protected initStyles(): void {\n this.styleManager.addStyle('tc-chart-canvas', {\n selector: '.tc-chart__canvas',\n properties: {\n display: 'block',\n height: '100%',\n width: '100%',\n },\n });\n }\n\n protected render(): VNode {\n return h('canvas', {\n id: this.state.canvasId,\n className: `tc-chart__canvas${this.props.className ? ` ${this.props.className}` : ''}`,\n type: '2d',\n });\n }\n\n protected onMounted(): void {\n this.attachChart();\n this.setupAutoResize();\n this.setupHoverEvents();\n }\n\n protected onUpdated(): void {\n if (this.chart && !this.destroyed) {\n this.chart.setOption(this.props.option).render();\n } else if (!this.chart && !this.destroyed) {\n this.attachChart();\n }\n }\n\n protected onUnmounted(): void {\n this.teardownAutoResize();\n this.teardownHoverEvents();\n this.destroyed = true;\n this.chart?.destroy();\n this.chart = null;\n }\n\n /** 对外暴露图表实例(高级用法:手动 resize / 订阅事件)。 */\n public getChart(): ChartBase<ChartOption> | null {\n return this.chart;\n }\n\n private attachChart(): void {\n if (this.destroyed) {\n return;\n }\n this.resolveContext()\n .then((context) => {\n if (this.destroyed || !context) {\n // 非浏览器环境(SSR / 构建期静态渲染)或显式跳过:渲染交给客户端水合阶段。\n return;\n }\n this.chart = createChart(context, this.props.option);\n this.chart.render();\n })\n .catch((error: unknown) => {\n console.error('[TcChart] attach failed:', error);\n });\n }\n\n /**\n * Web 端返回根 canvas;小程序端此方法不会被调用(走 SelectorQuery)。\n * 注意:方法体不能写 super.X() —— transone-cli 编译小程序时会把组件方法拍平为\n * Component options 的普通函数属性,super 在普通函数里非法(JSCore 直接报错)。\n * 基类 el 为 protected,此处直接取用;返回类型收窄在使用点做断言。\n */\n public getElement(): HTMLCanvasElement | null {\n return this.el as HTMLCanvasElement | null;\n }\n\n /* —— 悬浮提示(tooltip):Web mousemove / mouseleave —— */\n\n /** Web 端绑定 hover 事件:鼠标移动命中数据点即显示 tooltip,离开清除。 */\n private setupHoverEvents(): void {\n if (this.destroyed || this.hoverHandlers.length > 0) {\n return;\n }\n // 小程序端暂无鼠标事件,一期仅 Web;后续可在 touchstart/touchmove 接入同一 setHover API\n if (detectMiniProgramGlobal()) {\n return;\n }\n const element = this.getElement() as HTMLCanvasElement | null;\n if (!element || typeof element.addEventListener !== 'function') {\n return;\n }\n\n const onMove = (event: Event): void => {\n const chart = this.chart;\n if (!chart) {\n return;\n }\n const mouse = event as MouseEvent;\n const rect = element.getBoundingClientRect();\n const relX = mouse.clientX - rect.left;\n const relY = mouse.clientY - rect.top;\n // 同步图表逻辑尺寸,避免 resize 防抖窗口内坐标系偏移导致命中错位\n const w = rect.width;\n const h = rect.height;\n if (w > 0 && h > 0) {\n chart.resize(w, h);\n }\n chart.setHover(relX, relY);\n };\n const onLeave = (): void => {\n this.chart?.clearHover();\n };\n\n element.addEventListener('mousemove', onMove);\n element.addEventListener('mouseleave', onLeave);\n this.hoverHandlers = [\n ['mousemove', onMove],\n ['mouseleave', onLeave],\n ];\n }\n\n private teardownHoverEvents(): void {\n const element = this.getElement() as HTMLCanvasElement | null;\n for (const [type, handler] of this.hoverHandlers) {\n element?.removeEventListener(type, handler);\n }\n this.hoverHandlers = [];\n }\n\n /* —— 自动重绘:容器 / 窗口尺寸变化时防抖重绘 —— */\n\n private setupAutoResize(): void {\n if (this.destroyed || this.resizeDebounced) {\n return;\n }\n this.resizeDebounced = debounce(() => this.handleResize(), RESIZE_DEBOUNCE_MS);\n\n const platform = detectMiniProgramGlobal();\n if (platform) {\n // 小程序:各平台均有窗口尺寸回调(横竖屏切换 / 分屏等场景)\n const mp = getMiniProgramGlobal(platform) as MpWindowResizeApi | null;\n if (mp && typeof mp.onWindowResize === 'function') {\n this.mpResizeHandler = () => this.resizeDebounced!.run();\n mp.onWindowResize(this.mpResizeHandler);\n }\n return;\n }\n\n // Web:ResizeObserver 观察 canvas 自身(CSS 宽高 100%,容器变化即触发)。\n // SSR / 构建期无真实元素与 ResizeObserver,跳过。\n const element = this.getElement() as HTMLCanvasElement | null;\n if (\n element &&\n typeof element.getContext === 'function' &&\n typeof ResizeObserver === 'function'\n ) {\n this.resizeObserver = new ResizeObserver(() => this.resizeDebounced!.run());\n this.resizeObserver.observe(element);\n }\n }\n\n private teardownAutoResize(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.resizeDebounced?.cancel();\n this.resizeDebounced = null;\n if (this.mpResizeHandler) {\n const platform = detectMiniProgramGlobal();\n const mp = platform\n ? (getMiniProgramGlobal(platform) as MpWindowResizeApi | null)\n : null;\n if (mp && typeof mp.offWindowResize === 'function') {\n mp.offWindowResize(this.mpResizeHandler);\n }\n this.mpResizeHandler = null;\n }\n }\n\n private handleResize(): void {\n if (this.destroyed) {\n return;\n }\n if (detectMiniProgramGlobal()) {\n // 小程序:窗口尺寸变化后 SelectorQuery 取到的节点尺寸已更新,\n // 重建图表即可拿到最新尺寸(上下文持有节点实测宽高与 pixelRatio)。\n this.chart?.destroy();\n this.chart = null;\n this.attachChart();\n return;\n }\n const element = this.getElement() as HTMLCanvasElement | null;\n if (!element || typeof element.getContext !== 'function') {\n return;\n }\n const width = element.clientWidth || 0;\n const height = element.clientHeight || 0;\n if (width <= 0 || height <= 0) {\n return;\n }\n if (!this.chart) {\n this.attachChart();\n return;\n }\n // 更新物理像素缓冲(逻辑尺寸 × DPR),并增量重绘(保留图表状态)\n const dpr = detectPixelRatio();\n element.width = Math.round(width * dpr);\n element.height = Math.round(height * dpr);\n this.chart.resize(width, height, dpr).render();\n }\n\n private resolveContext(): Promise<ChartRenderContext | null> {\n if (this.props.resolve) {\n return Promise.resolve(this.props.resolve(this.getElement()));\n }\n\n const platform = detectMiniProgramGlobal();\n if (platform) {\n // 小程序:SelectorQuery 查询节点(组件可能尚未渲染完,有限重试)\n const selector = `#${this.state.canvasId}`;\n const attempt = (left: number): Promise<ChartRenderContext> =>\n getMiniProgramCanvasNode({\n platform,\n instance: this,\n selector,\n })\n .then((node) => resolveMiniProgramCanvas(node))\n .catch((error: unknown) => {\n if (left <= 0) {\n throw error;\n }\n return new Promise((resolve) => setTimeout(resolve, 50)).then(() =>\n attempt(left - 1)\n );\n });\n return attempt(5);\n }\n\n // Web:canvas 元素即 HTMLCanvasElement。SSR / 构建期静态渲染环境下\n // 元素没有真实 2d context(如 projectDom),返回 null 跳过渲染,\n // 由客户端水合阶段(真实浏览器)完成绘制。\n const element = this.getElement() as HTMLCanvasElement | null;\n if (!element || typeof element.getContext !== 'function') {\n return Promise.resolve(null);\n }\n return Promise.resolve(\n resolveWebCanvas(element)\n );\n }\n}\n"
46
46
  ],
47
- "mappings": "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",
47
+ "mappings": "AAWO,IAAM,GAAqC,CAChD,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EAEa,EAAqB,UACrB,GAAqB,UACrB,GAAqB,UACrB,GACX,oGC2FK,SAAS,EAAc,CAAC,EAAoC,CACjE,OACE,OAAO,IAAU,UACjB,IAAU,MACV,OAAQ,EAAoB,OAAS,YACrC,OAAQ,EAAoB,YAAc,YAC1C,OAAQ,EAAoB,OAAS,YACrC,OAAQ,EAAoB,SAAW,YACvC,OAAQ,EAAoB,WAAa,WC7FtC,SAAS,EAAS,CACvB,EACA,EACA,EAAa,EACgD,CAC7D,IAAI,EAAM,EACN,EAAM,EAEV,GAAI,CAAC,OAAO,SAAS,CAAG,GAAK,CAAC,OAAO,SAAS,CAAG,EAC/C,MAAU,MAAM,0CAA0C,EAE5D,GAAI,IAAQ,EAAK,CAEf,IAAM,EAAM,KAAK,IAAI,CAAG,EAAI,EAAI,KAAK,IAAI,CAAG,EAAI,IAAM,EACtD,GAAO,EACP,GAAO,EAET,GAAI,EAAM,EACR,CAAC,EAAK,CAAG,EAAI,CAAC,EAAK,CAAG,EAIxB,IAAM,GADO,EAAM,GACM,KAAK,IAAI,EAAG,CAAU,EACzC,EAAO,GAAS,CAAS,EAEzB,EAAU,KAAK,MAAM,EAAM,CAAI,EAAI,EACnC,EAAU,KAAK,KAAK,EAAM,CAAI,EAAI,EAElC,EAAkB,CAAC,EACzB,QAAS,EAAI,EAAS,GAAK,EAAU,EAAO,YAAM,GAAK,EAErD,EAAM,KAAK,GAAY,EAAG,CAAI,CAAC,EAGjC,MAAO,CAAE,IAAK,EAAS,IAAK,EAAS,OAAM,OAAM,EAGnD,SAAS,EAAQ,CAAC,EAAuB,CACvC,IAAM,EAAQ,KAAK,IAAI,GAAI,KAAK,MAAM,KAAK,MAAM,CAAK,CAAC,CAAC,EAClD,EAAW,EAAQ,EACrB,EACJ,GAAI,GAAY,EACd,EAAe,EACV,QAAI,GAAY,EACrB,EAAe,EACV,QAAI,GAAY,EACrB,EAAe,EAEf,OAAe,GAEjB,OAAO,EAAe,EAGxB,SAAS,EAAW,CAAC,EAAe,EAAsB,CACxD,IAAM,EAAW,KAAK,IAAI,EAAG,CAAC,KAAK,MAAM,KAAK,MAAM,CAAI,CAAC,EAAI,CAAC,EAC9D,OAAO,OAAO,EAAM,QAAQ,CAAQ,CAAC,EAIhC,MAAM,CAAY,CACP,IACA,IACA,MACA,KAEC,WACA,SAEV,WAAW,CAChB,EACA,EACA,EACA,EACA,EAA8B,CAAC,EAC/B,CACA,IAAQ,IAAK,EAAa,IAAK,EAAa,aAAa,GAAM,EAE3D,EAAM,EACN,EAAM,EAEV,GAAI,IAAQ,QAAa,IAAQ,OAAW,CAC1C,IAAM,EAAO,GAAU,EAAS,EAAS,CAAU,EACnD,EAAM,GAAO,EAAK,IAClB,EAAM,GAAO,EAAK,IAClB,KAAK,MAAQ,EAAK,MAClB,KAAK,KAAO,EAAK,KACZ,KACL,KAAK,MAAQ,EAAM,GAAO,KAAK,IAAI,EAAG,CAAU,EAChD,KAAK,MAAQ,CAAC,EACd,QAAS,EAAI,EAAG,GAAK,EAAY,GAAK,EACpC,KAAK,MAAM,KAAK,EAAM,EAAI,KAAK,IAAI,EAIvC,KAAK,IAAM,EACX,KAAK,IAAM,EACX,KAAK,WAAa,EAClB,KAAK,SAAW,EAIX,KAAK,CAAC,EAAuB,CAClC,IAAM,GAAS,EAAQ,KAAK,MAAQ,KAAK,IAAM,KAAK,KACpD,OAAO,KAAK,WAAa,GAAS,KAAK,SAAW,KAAK,YAE3D,CAGO,MAAM,EAAc,CASP,WAPF,UAEA,cAEC,WAEV,WAAW,CACA,EAChB,EACA,EACA,EAAgB,KAChB,CAJgB,kBAKhB,KAAK,cAAgB,EACrB,KAAK,WAAa,EAClB,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAW,MAAM,EAC3C,KAAK,WAAa,EAAW,GAAc,EAItC,SAAS,CAAC,EAAuB,CACtC,OAAO,KAAK,WAAa,KAAK,UAAY,EAIrC,MAAM,CAAC,EAAuB,CACnC,OAAO,KAAK,UAAU,CAAK,EAAI,KAAK,UAAY,EAI3C,UAAU,EAAW,CAC1B,OAAO,KAAK,WAAa,EAAI,KAAK,eAI7B,eAAe,CAAC,EAA4B,CAEjD,OADe,KAAK,WAAW,EACf,KAAK,IAAI,EAAG,CAAU,EAAI,IAE9C,CC5HA,IAAM,GAA2B,CAAE,IAAK,GAAI,MAAO,GAAI,OAAQ,GAAI,KAAM,EAAG,EAM5E,SAAS,EAAa,CACpB,EACA,EACmC,CACnC,IAAQ,UAAW,EACb,EAAQ,EAAM,aAAe,CAAC,EAC9B,EAAW,GAAQ,UAAY,GAC/B,EAAU,GAAQ,SAAW,GAC7B,EAAa,GAAQ,YAAc,GAEzC,GAAI,GAAQ,WAAa,QAAS,CAEhC,IAAI,EAAW,EACf,QAAW,KAAQ,EAAO,CACxB,IAAM,EAAI,EAAa,EAAI,EAAQ,CAAI,EACvC,GAAI,EAAI,EACN,EAAW,EAGf,MAAO,CACL,MAAO,EAvBU,GAwBjB,OAAQ,KAAK,IAAI,EAAM,QAAU,EAAW,GAxB3B,GAwBgD,CAAC,CACpE,EAIF,IAAI,EAAa,EACjB,QAAW,KAAQ,EACjB,GAAc,EAAa,EAAI,EAAQ,CAAI,EAAI,EAEjD,GAAI,EAAa,EACf,GAAc,EAEhB,MAAO,CAAE,MAAO,EAAY,OAAQ,EApCf,GAoC2C,CAAE,EAS7D,SAAS,EAAa,CAC3B,EACA,EACc,CACd,IAAM,EAAmB,IAAK,MAAoB,EAAM,WAAY,EAEhE,EAAM,EAAQ,IACd,EAAS,EAAQ,OACjB,EAAO,EAAQ,KACf,EAAQ,EAAQ,MAEhB,EAAuB,KAC3B,GAAI,EAAM,OAAO,KAAM,CACrB,IAAM,EAAW,EAAM,MAAM,UAAY,GACzC,EAAW,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,EAAM,MAAO,OAAQ,CAAS,EAC9D,GAAO,GAAY,EAAM,MAAM,SA9Db,IAiEpB,IAAI,EAAwB,KACtB,EAAS,EAAM,OACrB,GAAI,GAAU,EAAO,OAAS,KAAU,EAAM,aAAa,QAAU,GAAK,EAAG,CAC3E,IAAM,EAAO,GAAc,EAAO,CAAO,EACnC,EAAW,EAAO,UAAY,MACpC,GAAI,IAAa,MACf,EAAY,CACV,EAAG,EACH,EAAG,EAAW,EAAS,OAAS,EAChC,MAAO,EAAM,MACb,OAAQ,EAAK,MACf,EACA,GAAO,EAAK,OACP,QAAI,IAAa,SACtB,EAAY,CACV,EAAG,EACH,EAAG,EAAM,OAAS,EAAK,OACvB,MAAO,EAAM,MACb,OAAQ,EAAK,MACf,EACA,GAAU,EAAK,OAEf,OAAY,CACV,EAAG,EAAM,MAAQ,EAAK,MACtB,EAAG,EACH,MAAO,EAAK,MACZ,OAAQ,KAAK,IAAI,EAAG,EAAM,OAAS,EAAM,CAAM,CACjD,EACA,GAAS,EAAK,MAKlB,IAAM,EAAgB,GAClB,EAAiB,EACjB,EAAqB,EACrB,EAAkB,EAClB,EAAoB,EAElB,EAAc,EAAM,aAAe,CAAC,EACpC,EAAiB,EAAM,gBAAkB,CAAC,EAEhD,GAAI,EAAM,WAAY,CAEpB,GAAI,EAAe,OAAS,EAAG,CAC7B,QAAW,KAAS,EAAgB,CAClC,IAAM,EAAI,EAAQ,CAAK,EACvB,GAAI,EAAI,EACN,EAAoB,EAGxB,GAAqB,GACrB,GAAQ,EAEV,GAAI,EAAY,OAAS,EACvB,EAAkB,EAAgB,GAClC,GAAU,EAEP,KACL,GAAI,EAAY,OAAS,EAAG,CAC1B,QAAW,KAAS,EAAa,CAC/B,IAAM,EAAI,EAAQ,CAAK,EACvB,GAAI,EAAI,EACN,EAAiB,EAGrB,GAAkB,GAClB,GAAQ,EAEV,GAAI,EAAe,OAAS,EAC1B,EAAqB,EAAgB,GACrC,GAAU,EAId,IAAM,EAAY,KAAK,IAAI,EAAG,EAAM,MAAQ,EAAO,CAAK,EAClD,EAAa,KAAK,IAAI,EAAG,EAAM,OAAS,EAAM,CAAM,EAEpD,EAAY,CAAE,EAAG,EAAM,EAAG,EAAK,MAAO,EAAW,OAAQ,CAAW,EAEpE,EAAoB,EAAM,WAC5B,CAAE,EAAG,EAAK,EAAG,EAAG,EAAK,EAAI,EAAK,OAAQ,MAAO,EAAW,OAAQ,CAAgB,EAChF,CAAE,EAAG,EAAK,EAAI,EAAgB,EAAG,EAAK,MAAO,EAAgB,OAAQ,CAAW,EAE9E,EAAuB,EAAM,WAC/B,CAAE,EAAG,EAAK,EAAI,EAAmB,EAAG,EAAK,MAAO,EAAmB,OAAQ,CAAW,EACtF,CAAE,EAAG,EAAM,EAAG,EAAK,EAAI,EAAY,MAAO,EAAW,OAAQ,CAAmB,EAEpF,MAAO,CACL,OACA,eACA,kBACA,WACA,YACA,SACF,ECzMK,SAAS,EAA+B,CAC7C,EACA,EACc,CACd,IAAI,EAA8C,KAC9C,EAAiC,KAErC,MAAO,CACL,GAAG,IAAI,EAA2B,CAEhC,GADA,EAAW,EACP,IAAU,KACZ,aAAa,CAAK,EAEpB,EAAQ,WAAW,IAAM,CAEvB,GADA,EAAQ,KACJ,IAAa,KAAM,CACrB,IAAM,EAAU,EAChB,EAAW,KACX,EAAG,GAAG,CAAO,IAEd,CAAK,GAEV,MAAM,EAAS,CACb,GAAI,IAAU,KACZ,aAAa,CAAK,EAClB,EAAQ,KAEV,EAAW,MAEb,OAAO,EAAY,CACjB,OAAO,IAAU,KAErB,ECpCK,SAAS,EAAM,CAAC,EAAc,EAAS,GAA6B,CACzE,MAAO,GAAG,OAAU,IAIf,SAAS,CAAS,CACvB,EACA,EACA,EAAS,GACD,CACR,IAAM,EAAO,GAAO,EAAM,CAAM,EAEhC,OADA,EAAI,KAAO,EACJ,EAIF,SAAS,CAAY,CAC1B,EACA,EACA,EACA,EAAS,GACD,CAER,OADA,EAAU,EAAK,EAAU,CAAM,EACxB,EAAI,YAAY,CAAI,EAAE,MCYxB,MAAM,EAAW,CACc,IAA7B,WAAW,CAAkB,EAAgB,CAAhB,WAG7B,aAAa,CAAC,EAAqC,CACxD,IACE,OACA,QACA,SACA,aAAa,GACb,gBAAgB,GAChB,aAAa,EACb,YAAY,GACZ,gBAAgB,EAChB,eACA,WAAW,IACT,EAEE,EAAQ,EAAM,OACZ,OAAQ,KAEhB,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EAAG,CACxC,IAAM,EAAM,EAAM,MAAM,EAAM,EAAE,EAC1B,EAAQ,EAAO,IAAM,OAAO,EAAM,EAAE,EAE1C,GAAI,EAAU,CAIZ,GAHA,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EACZ,GAAgB,EAAa,OAAS,EACxC,EAAI,YAAY,CAAY,EAG9B,GADA,EAAI,UAAU,EACV,EACF,EAAI,OAAO,EAAK,EAAG,CAAG,EACtB,EAAI,OAAO,EAAK,EAAI,EAAK,MAAO,CAAG,EAEnC,OAAI,OAAO,EAAK,EAAG,CAAG,EACtB,EAAI,OAAO,EAAK,EAAI,EAAK,MAAO,CAAG,EAErC,EAAI,OAAO,EACX,EAAI,QAAQ,EAMd,GAHA,EAAU,EAAK,CAAa,EAC5B,EAAI,UAAY,EAChB,EAAI,aAAe,SACf,EACF,EAAI,UAAY,SAChB,EAAI,SAAS,EAAO,EAAK,EAAK,EAAI,EAAK,OAAS,CAAC,EAEjD,OAAI,UAAY,QAChB,EAAI,SAAS,EAAO,EAAK,EAAI,EAAG,CAAG,GAMlC,gBAAgB,CAAC,EAAwC,CAC9D,IACE,OACA,QACA,SACA,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,aAAa,EACb,YAAY,GACZ,gBAAgB,EAChB,WAAW,IACT,GAEI,OAAQ,KACV,EAAQ,EAAO,OAErB,GAAI,EAAU,CACZ,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,UAAU,EACd,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EAAM,EAAM,OAAO,CAAC,EAC1B,GAAI,EACF,EAAI,OAAO,EAAK,EAAG,CAAG,EACtB,EAAI,OAAO,EAAK,EAAI,EAAK,MAAO,CAAG,EAEnC,OAAI,OAAO,EAAK,EAAK,CAAC,EACtB,EAAI,OAAO,EAAK,EAAK,EAAI,EAAK,MAAM,EAGxC,EAAI,OAAO,EACX,EAAI,QAAQ,EAGd,EAAU,EAAK,CAAa,EAC5B,EAAI,UAAY,EAChB,EAAI,aAAe,SAEnB,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EAAM,EAAM,OAAO,CAAC,EAC1B,GAAI,EACF,EAAI,UAAY,QAChB,EAAI,SAAS,EAAO,GAAI,EAAK,EAAI,EAAG,CAAG,EAEvC,OAAI,UAAY,SAChB,EAAI,SAAS,EAAO,GAAI,EAAK,EAAK,EAAI,EAAK,OAAS,CAAC,EASzD,GAJA,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,UAAU,EACV,EACF,EAAI,OAAO,EAAK,EAAG,EAAK,CAAC,EACzB,EAAI,OAAO,EAAK,EAAG,EAAK,EAAI,EAAK,MAAM,EAEvC,OAAI,OAAO,EAAK,EAAG,EAAK,EAAI,EAAK,MAAM,EACvC,EAAI,OAAO,EAAK,EAAI,EAAK,MAAO,EAAK,EAAI,EAAK,MAAM,EAEtD,EAAI,OAAO,EACX,EAAI,QAAQ,EAEhB,CCnJO,MAAM,EAAa,CACY,IAA7B,WAAW,CAAkB,EAAgB,CAAhB,WAE7B,IAAI,CAAC,EAAkC,CAC5C,IACE,MACA,QACA,WAAW,MACX,WAAW,GACX,QAAQ,EACR,aAAa,GACb,UAAU,IACR,EAEJ,GAAI,EAAM,SAAW,EACnB,OAGF,IAAQ,OAAQ,KAGhB,GAFA,EAAU,EAAK,CAAQ,EAEnB,IAAa,QAAS,CAExB,IAAI,EAAI,EAAI,EAAI,EAAW,EAAI,EAC/B,QAAW,KAAQ,EACjB,KAAK,SAAS,EAAM,EAAI,EAAG,EAAG,EAAU,EAAY,CAAK,EACzD,GAAK,EAAW,EAElB,OAIF,IAAI,EAAa,EACjB,QAAW,KAAQ,EACjB,GAAc,EAAa,EAAI,EAAa,EAAK,EAAK,KAAM,CAAQ,EAAI,EAE1E,GAAc,EAEd,IAAI,EAAI,EAAI,GAAK,EAAI,MAAQ,GAAc,EACrC,EAAI,EAAI,EAAI,EAAI,OAAS,EAE/B,QAAW,KAAQ,EACjB,KAAK,SAAS,EAAM,EAAG,EAAG,EAAU,EAAY,CAAK,EACrD,GAAK,EAAa,EAAI,EAAa,EAAK,EAAK,KAAM,CAAQ,EAAI,EAI3D,QAAQ,CACd,EACA,EACA,EACA,EACA,EACA,EACM,CACN,IAAQ,OAAQ,KAEhB,EAAI,UAAY,EAAK,MACrB,EAAI,UAAU,EACd,EAAI,KAAK,EAAG,EAAU,EAAa,EAAG,EAAY,CAAU,EAC5D,EAAI,KAAK,EAET,EAAI,UAAY,EAChB,EAAI,UAAY,OAChB,EAAI,aAAe,SACnB,EAAI,SAAS,EAAK,KAAM,EAAI,EAAa,EAAG,CAAO,EAEvD,CC7CO,MAAe,CAAiC,CAClC,IACT,OACA,MACA,OACA,IACS,QAGT,UAAoC,KAGpC,KAAmB,KAGnB,MAA8B,KAEhC,UAAY,GAEb,WAAW,CAAC,EAA6B,EAAW,CACzD,KAAK,IAAM,EAAQ,IACnB,KAAK,OAAS,EACd,KAAK,MAAQ,EAAQ,MACrB,KAAK,OAAS,EAAQ,OACtB,KAAK,IAAM,EAAQ,IACnB,KAAK,QAAU,EAAQ,SAAW,GAK7B,SAAS,CAAC,EAA0B,CAEzC,OADA,KAAK,OAAS,IAAK,KAAK,UAAW,CAAO,EACnC,KAGF,MAAM,CAAC,EAAe,EAAgB,EAAoB,CAI/D,GAHA,KAAK,MAAQ,KAAK,IAAI,EAAG,CAAK,EAC9B,KAAK,OAAS,KAAK,IAAI,EAAG,CAAM,EAE5B,IAAQ,QAAa,OAAO,SAAS,CAAG,GAAK,EAAM,EACrD,KAAK,IAAM,EAEb,OAAO,KAGF,MAAM,EAAS,CACpB,GAAI,KAAK,UACP,OAAO,KAET,IAAQ,MAAK,QAAO,SAAQ,OAAQ,KAEpC,EAAI,KAAK,EACT,EAAI,MAAM,EAAK,CAAG,EAClB,EAAI,UAAU,EAAG,EAAG,EAAO,CAAM,EAEjC,IAAM,EAAa,KAAK,mBAAmB,EAC3C,GAAI,EACF,EAAI,UAAY,EAChB,EAAI,SAAS,EAAG,EAAG,EAAO,CAAM,EAGlC,IAAM,EAAS,KAAK,cAAc,EAKlC,GAJA,KAAK,KAAO,EAAO,KACnB,KAAK,UAAU,CAAM,EACrB,KAAK,WAAW,CAAM,EAElB,KAAK,iBAAiB,EACxB,KAAK,UAAY,KAAK,qBAAqB,CAAM,EACjD,KAAK,kBAAkB,CAAM,EAE7B,UAAK,UAAY,KAMnB,GAHA,KAAK,WAAW,EAAK,EAAQ,KAAK,MAAM,EAGpC,KAAK,MACP,KAAK,YAAY,KAAK,KAAK,EAI7B,OADA,EAAI,QAAQ,EACL,KASF,QAAQ,CAAC,EAAW,EAAiB,CAC1C,GAAI,KAAK,OAAO,SAAS,OAAS,GAChC,KAAK,MAAQ,KAEb,UAAK,MAAQ,KAAK,cAAc,EAAG,CAAC,EAEtC,OAAO,KAAK,OAAO,EAId,UAAU,EAAS,CAExB,OADA,KAAK,MAAQ,KACN,KAAK,OAAO,EAMd,OAAO,EAAS,CACrB,KAAK,UAAY,GAGZ,WAAW,EAAY,CAC5B,OAAO,KAAK,UAWJ,gBAAgB,EAAY,CACpC,MAAO,GAGC,cAAc,EAAiC,CACvD,MAAO,CAAE,IAAK,EAAG,IAAK,CAAE,EAGhB,iBAAiB,EAAsB,CAC/C,MAAO,CAAC,EAGA,YAAY,EAAY,CAChC,MAAO,GAKC,kBAAkB,EAAuB,CACjD,OAAQ,KAAK,OAAwC,gBAG7C,QAAQ,EAA4B,CAC5C,OAAQ,KAAK,OAAmC,MAGxC,SAAS,EAA6B,CAC9C,IAAM,EAAU,KAAK,OAAqC,OAC1D,GAAI,EACF,OAAO,EAGT,OAAO,KAAK,eAAe,EAAE,OAAS,EAAI,CAAE,SAAU,KAAM,EAAI,OAGxD,cAAc,EAAiB,CACvC,MAAO,CAAC,EAGA,YAAY,EAAgC,CACpD,OAAQ,KAAK,OAAuC,MAG5C,eAAe,EAAmC,CAC1D,OAAQ,KAAK,OAA0C,MAK/C,aAAa,EAAiB,CACtC,IAAM,EAAQ,KAAK,iBAAiB,EAGpC,OAAO,GAAc,EAFL,CAAC,IACf,EAAa,KAAK,IAAK,EAAM,EAAE,CACE,EAG3B,gBAAgB,EAAgB,CAGxC,IAAM,EAAa,KAAK,aAAa,EAC/B,EAAU,KAAK,iBAAiB,EACtC,MAAO,CACL,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,MAAO,KAAK,SAAS,EACrB,OAAQ,KAAK,UAAU,EACvB,YAAa,KAAK,eAAe,EAAE,IAAI,CAAC,IAAS,EAAK,IAAI,EAC1D,YAAa,GAAW,CAAC,EAAa,KAAK,mBAAmB,EAAI,OAClE,eAAgB,EAAU,KAAK,kBAAkB,EAAI,OACrD,YACF,EAIQ,kBAAkB,EAAa,CACvC,IAAM,EAAS,KAAK,eAAe,EAC7B,EAAY,KAAK,aAAa,EAMpC,OALc,IAAI,EAAY,EAAO,IAAK,EAAO,IAAK,EAAG,EAAG,CAC1D,IAAK,GAAW,IAChB,IAAK,GAAW,IAChB,WAAY,GAAW,UACzB,CAAC,EACY,MAAM,IAAI,CAAC,IACtB,GAAW,OAAS,EAAU,OAAO,CAAI,EAAI,OAAO,CAAI,CAC1D,EAGQ,SAAS,CAAC,EAA4B,CAC9C,IAAM,EAAQ,KAAK,SAAS,EAC5B,GAAI,CAAC,GAAO,MAAQ,CAAC,EAAO,SAC1B,OAEF,IAAQ,OAAQ,KAChB,EAAU,EAAK,EAAM,UAAY,EAAE,EACnC,EAAI,UAAY,EAAM,OAAS,UAC/B,EAAI,UAAY,SAChB,EAAI,aAAe,MACnB,EAAI,SAAS,EAAM,KAAM,KAAK,MAAQ,EAAG,EAAO,SAAS,CAAC,EAGlD,UAAU,CAAC,EAA4B,CAC/C,IAAM,EAAS,KAAK,UAAU,EAC9B,GAAI,GAAQ,OAAS,IAAS,CAAC,EAAO,UACpC,OAEF,IAAM,EAAQ,KAAK,eAAe,EAClC,GAAI,EAAM,SAAW,EACnB,OAEF,IAAI,GAAa,KAAK,GAAG,EAAE,KAAK,CAC9B,IAAK,EAAO,UACZ,QACA,SAAU,GAAQ,UAAY,MAC9B,SAAU,GAAQ,SAClB,MAAO,GAAQ,MACf,WAAY,GAAQ,WACpB,QAAS,GAAQ,OACnB,CAAC,EAGO,oBAAoB,CAAC,EAAuC,CACpE,IAAQ,QAAS,EACX,EAAa,KAAK,aAAa,EAC/B,EAAS,KAAK,eAAe,EAC7B,EAAa,KAAK,kBAAkB,EACpC,EAAY,KAAK,aAAa,EAE9B,EAAQ,IAAI,EAChB,EAAO,IACP,EAAO,IACP,EAAa,EAAK,EAAI,EAAK,EAAI,EAAK,OACpC,EAAa,EAAK,EAAI,EAAK,MAAQ,EAAK,EACxC,CAAE,IAAK,GAAW,IAAK,IAAK,GAAW,IAAK,WAAY,GAAW,UAAW,CAChF,EAEM,EAAW,IAAI,GACnB,EACA,EAAa,EAAK,EAAI,EAAK,EAC3B,EAAa,EAAK,EAAI,EAAK,OAAS,EAAK,EAAI,EAAK,KACpD,EAEA,MAAO,CAAE,QAAO,UAAS,EAGjB,iBAAiB,CAAC,EAA4B,CACtD,IAAM,EAAS,KAAK,UACpB,GAAI,CAAC,EACH,OAEF,IAAQ,OAAQ,MACR,QAAS,EACX,EAAa,KAAK,aAAa,EAC/B,EAAY,KAAK,aAAa,EAC9B,EAAe,KAAK,gBAAgB,EACpC,EAAa,KAAK,kBAAkB,EAEpC,EAAS,IAAI,GAAW,CAAG,EAE3B,EAAc,EAAO,MAAM,MAAM,IAAI,CAAC,IAC1C,GAAW,OAAS,EAAU,OAAO,CAAI,EAAI,OAAO,CAAI,CAC1D,EAEA,EAAO,cAAc,CACnB,OACA,MAAO,EAAO,MACd,OAAQ,EACR,aACA,cAAe,GAAW,cAC1B,WAAY,GAAW,WACvB,UAAW,GAAW,UACtB,cAAe,GAAW,cAC1B,aAAc,GAAW,aACzB,SAAU,GAAW,UAAY,EACnC,CAAC,EAED,EAAO,iBAAiB,CACtB,OACA,MAAO,EAAO,SACd,OAAQ,EACR,aACA,cAAe,GAAc,cAC7B,WAAY,GAAc,WAC1B,UAAW,GAAc,UACzB,cAAe,GAAc,cAC7B,SAAU,GAAc,UAAY,EACtC,CAAC,EAIO,WAAW,CAAC,EAAe,EAAwB,CAC3D,OAAO,GAAS,KAAK,QAAQ,EAAQ,KAAK,QAAQ,QAK1C,gBAAgB,EAA8B,CACtD,OAAQ,KAAK,OAAuC,QAI5C,mBAAmB,CAAC,EAAiC,CAC7D,IAAM,EAAkB,CAAC,EAAO,IAAI,EACpC,QAAW,KAAQ,EAAO,MACxB,EAAM,KAAK,GAAG,EAAK,SAAS,EAAK,OAAO,EAE1C,OAAO,EAIC,WAAW,CAAC,EAA6B,CACjD,IAAM,EAAS,KAAK,iBAAiB,EACrC,GAAI,GAAQ,OAAS,GACnB,OAEF,IAAM,EAAY,GAAQ,UACpB,EAAM,EAAY,EAAU,CAAM,EAAI,KAAK,oBAAoB,CAAM,EACrE,EAAQ,MAAM,QAAQ,CAAG,EAAI,EAAM,CAAC,CAAG,EAC7C,GAAI,EAAM,SAAW,EACnB,OAGF,IAAQ,OAAQ,KACV,EAAW,GACX,EAAO,GACP,EAAO,EACP,EAAQ,GACR,EAAO,EACP,EAAS,EAEf,EAAU,EAAK,CAAQ,EACvB,IAAI,EAAO,EACX,QAAW,KAAQ,EACjB,EAAO,KAAK,IAAI,EAAM,EAAa,EAAK,EAAM,CAAQ,CAAC,EAEzD,IAAM,EAAO,EAAO,EAAO,EAAI,EAAO,EAAI,EACpC,EAAO,EAAM,OAAS,EAAQ,EAAO,EAGrC,EAAO,KAAK,KACd,EACA,EAEJ,GAAI,GAAQ,KAAK,aAAa,GAK5B,GAHA,EAAK,EAAK,EAAI,EAAK,MAAQ,EAC3B,EAAK,EAAO,EAAI,EAAO,EAEnB,EAAK,EAAO,KAAK,MAAQ,EAC3B,EAAK,EAAK,EAAI,EAAO,EAElB,QAAI,GAKT,GAHA,EAAK,EAAO,EAAI,GAChB,EAAK,EAAO,EAAI,EAAO,EAEnB,EAAK,EAAO,KAAK,MAAQ,EAC3B,EAAK,EAAO,EAAI,EAAO,GAMzB,QAFA,EAAK,EAAO,EAAI,GAChB,EAAK,EAAO,EAAI,EAAO,EACnB,EAAK,EAAO,KAAK,MAAQ,EAC3B,EAAK,EAAO,EAAI,EAAO,GAI3B,EAAK,KAAK,IAAI,EAAG,CAAE,EACnB,EAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,KAAK,OAAS,EAAO,CAAC,CAAC,EAErD,EAAI,KAAK,EAET,EAAI,UAAY,yBAChB,EAAI,UAAU,EACd,KAAK,cAAc,EAAI,EAAI,EAAM,EAAM,CAAC,EACxC,EAAI,KAAK,EAGT,EAAI,aAAe,SACnB,EAAI,UAAY,OAChB,EAAM,QAAQ,CAAC,EAAM,IAAM,CACzB,IAAM,EAAK,EAAK,EAAO,EAAQ,EAAI,EAAQ,EACrC,EAAW,EAAI,EAAI,EAAO,MAAM,EAAI,IAAI,MAAQ,OACtD,GAAI,EACF,EAAI,UAAY,EAChB,EAAI,UAAU,EACd,EAAI,IAAI,EAAK,EAAO,EAAM,EAAI,EAAM,EAAG,KAAK,GAAK,CAAC,EAClD,EAAI,KAAK,EAEX,EAAI,UAAY,UAChB,IAAM,EAAK,EAAK,GAAQ,EAAW,EAAO,EAAI,EAAS,GACvD,EAAI,SAAS,EAAM,EAAI,CAAE,EAC1B,EACD,EAAI,QAAQ,EAIN,aAAa,CACnB,EACA,EACA,EACA,EACA,EACM,CACN,IAAM,EAAM,KAAK,IACX,EAAS,KAAK,IAAI,EAAG,EAAI,EAAG,EAAI,CAAC,EACvC,EAAI,OAAO,EAAI,EAAQ,CAAC,EACxB,EAAI,OAAO,EAAI,EAAI,EAAQ,CAAC,EAC5B,EAAI,MAAM,EAAI,EAAG,EAAG,EAAI,EAAG,EAAI,EAAG,CAAM,EACxC,EAAI,MAAM,EAAI,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,CAAM,EACxC,EAAI,MAAM,EAAG,EAAI,EAAG,EAAG,EAAG,CAAM,EAChC,EAAI,MAAM,EAAG,EAAG,EAAI,EAAG,EAAG,CAAM,EAChC,EAAI,UAAU,EAElB,CCtdO,MAAM,WAAkB,CAA2B,CAC9C,cAAc,EAAiC,CACvD,IAAQ,SAAQ,QAAO,gBAAgB,IAAU,KAAK,OAClD,EAAM,IACN,EAAM,KACV,QAAW,KAAK,EACd,QAAW,KAAS,EAAE,KAAM,CAC1B,GAAI,EAAQ,EACV,EAAM,EAER,GAAI,EAAQ,EACV,EAAM,EAIZ,GAAI,CAAC,OAAO,SAAS,CAAG,GAAK,CAAC,OAAO,SAAS,CAAG,EAC/C,MAAO,CAAE,IAAK,EAAG,IAAK,CAAE,EAE1B,GAAI,GAAiB,EAAM,EACzB,EAAM,EAER,GAAI,GAAO,MAAQ,OACjB,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,EAE/B,GAAI,GAAO,MAAQ,OACjB,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,EAE/B,MAAO,CAAE,MAAK,KAAI,EAGV,iBAAiB,EAAsB,CAC/C,OAAO,KAAK,OAAO,MAAM,OAGjB,cAAc,EAAiB,CACvC,OAAO,KAAK,OAAO,OAChB,OAAO,CAAC,IAAM,EAAE,IAAI,EACpB,IAAI,CAAC,EAAG,KAAO,CACd,KAAM,EAAE,KACR,MAAO,KAAK,YAAY,EAAG,EAAE,KAAK,CACpC,EAAE,EAGI,UAAU,CAClB,EACA,EACA,EACM,CACN,IAAM,EAAS,KAAK,UACpB,GAAI,CAAC,EACH,OAEF,IAAQ,QAAS,GACT,QAAO,YAAa,EACtB,EAAa,KAAK,sBAAsB,EAExC,EAA6B,EAAO,OAAO,IAAI,CAAC,IACpD,EAAO,KAAK,IAAI,CAAC,EAAG,KAAO,CACzB,EAAG,EAAS,OAAO,CAAC,EACpB,EAAG,EAAM,MAAM,CAAC,CAClB,EAAE,CACJ,EAGA,GAAI,GAAc,EAAG,CACnB,IAAM,EAAK,EAAS,OAAO,CAAU,EACrC,EAAI,KAAK,EACT,EAAI,YAAc,UAClB,EAAI,UAAY,EAChB,EAAI,YAAY,CAAC,EAAG,CAAC,CAAC,EACtB,EAAI,UAAU,EACd,EAAI,OAAO,EAAI,EAAK,CAAC,EACrB,EAAI,OAAO,EAAI,EAAK,EAAI,EAAK,MAAM,EACnC,EAAI,OAAO,EACX,EAAI,QAAQ,EAGd,EAAO,OAAO,QAAQ,CAAC,EAAQ,IAAU,CACvC,IAAM,EAAS,EAAgB,GAC/B,GAAI,EAAO,SAAW,EACpB,OAEF,IAAM,EAAQ,KAAK,YAAY,EAAO,EAAO,KAAK,EAC5C,EAAY,EAAO,WAAa,EAGtC,GAAI,EAAO,KACT,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,EAAI,YAAc,KAClB,EAAI,UAAU,EACd,KAAK,UAAU,EAAK,EAAQ,EAAO,QAAU,EAAK,EAClD,EAAI,OAAO,EAAO,EAAO,OAAS,GAAG,EAAG,EAAK,EAAI,EAAK,MAAM,EAC5D,EAAI,OAAO,EAAO,GAAG,EAAG,EAAK,EAAI,EAAK,MAAM,EAC5C,EAAI,UAAU,EACd,EAAI,KAAK,EACT,EAAI,QAAQ,EAed,GAXA,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,SAAW,QACf,EAAI,QAAU,QACd,EAAI,UAAU,EACd,KAAK,UAAU,EAAK,EAAQ,EAAO,QAAU,EAAK,EAClD,EAAI,OAAO,EACX,EAAI,QAAQ,EAGR,EAAO,aAAe,GAAO,CAC/B,IAAM,EAAQ,KAAK,IAAI,IAAK,EAAY,GAAG,EAC3C,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAG,CACzC,IAAM,EAAI,EAAO,GACX,EAAI,IAAM,EAAa,EAAQ,IAAM,EAC3C,EAAI,UAAU,EACd,EAAI,IAAI,EAAE,EAAG,EAAE,EAAG,EAAG,EAAG,KAAK,GAAK,CAAC,EACnC,EAAI,KAAK,EAEX,EAAI,QAAQ,GAEf,EAIO,aAAa,CAAC,EAAW,EAAiC,CAClE,IAAM,EAAS,KAAK,UACd,EAAO,KAAK,KAClB,GAAI,CAAC,GAAU,CAAC,EACd,OAAO,KAET,GAAI,EAAI,EAAK,GAAK,EAAI,EAAK,EAAI,EAAK,OAClC,OAAO,KAET,IAAM,EAAS,KAAK,OAAO,MAAM,OAC7B,EAAO,GACP,EAAW,IACf,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAG,CACzC,IAAM,EAAI,KAAK,IAAI,EAAO,SAAS,OAAO,CAAC,EAAI,CAAC,EAChD,GAAI,EAAI,EACN,EAAW,EACX,EAAO,EAGX,GAAI,EAAO,GAAK,EAAW,EAAO,SAAS,UAAY,EACrD,OAAO,KAET,IAAM,EAAQ,KAAK,OAAO,OAAO,IAAI,CAAC,EAAG,KAAO,CAC9C,KAAM,EAAE,MAAQ,KAAK,EAAI,IACzB,MAAO,EAAE,KAAK,IAAS,EACvB,MAAO,KAAK,YAAY,EAAG,EAAE,KAAK,CACpC,EAAE,EACF,MAAO,CAAE,IAAG,IAAG,KAAM,EAAO,GAAO,OAAM,EAInC,qBAAqB,EAAW,CACtC,IAAM,EAAQ,KAAK,MACnB,GAAI,CAAC,EACH,MAAO,GAGT,OADe,KAAK,OAAO,MAAM,OACnB,QAAQ,EAAM,IAAI,EAI1B,SAAS,CAAC,EAAgB,EAA0B,EAAuB,CACjF,GAAI,EAAO,SAAW,EACpB,OAGF,GADA,EAAI,OAAO,EAAO,GAAG,EAAG,EAAO,GAAG,CAAC,EAC/B,CAAC,GAAU,EAAO,OAAS,EAAG,CAChC,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EACtC,EAAI,OAAO,EAAO,GAAG,EAAG,EAAO,GAAG,CAAC,EAErC,OAGF,QAAS,EAAI,EAAG,EAAI,EAAO,OAAS,EAAG,GAAK,EAAG,CAC7C,IAAM,EAAK,EAAO,KAAK,IAAI,EAAG,EAAI,CAAC,GAC7B,EAAK,EAAO,GACZ,EAAK,EAAO,EAAI,GAChB,EAAK,EAAO,KAAK,IAAI,EAAO,OAAS,EAAG,EAAI,CAAC,GAE7C,EAAO,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC9B,EAAO,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC9B,EAAO,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC9B,EAAO,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAEpC,EAAI,cAAc,EAAM,EAAM,EAAM,EAAM,EAAG,EAAG,EAAG,CAAC,GAG1D,CC7LO,MAAM,WAAiB,CAA0B,CAC5C,YAAY,EAAY,CAChC,OAAO,KAAK,OAAO,YAAc,GAGzB,cAAc,EAAiC,CACvD,IAAQ,SAAQ,SAAU,KAAK,OAC3B,EAAM,EACN,EAAM,EAGJ,EAAc,GAAY,CAAM,EAChC,EAAgB,KAAK,IACzB,EACA,GAAG,EAAO,IAAI,CAAC,IAAM,EAAE,KAAK,MAAM,CACpC,EAEA,QAAS,EAAI,EAAG,EAAI,EAAe,GAAK,EACtC,QAAW,KAAS,EAAa,CAC/B,IAAI,EAAW,EACX,EAAW,EACf,QAAW,KAAK,EAAO,CACrB,IAAM,EAAI,EAAE,KAAK,IAAM,EACvB,GAAI,GAAK,EACP,GAAY,EAEZ,QAAY,EAGhB,GAAI,EAAW,EACb,EAAM,EAER,GAAI,EAAW,EACb,EAAM,EAKZ,GAAI,GAAO,MAAQ,OACjB,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,EAE/B,GAAI,GAAO,MAAQ,OACjB,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,EAE/B,MAAO,CAAE,MAAK,KAAI,EAGV,iBAAiB,EAAsB,CAC/C,OAAO,KAAK,OAAO,MAAM,OAGjB,cAAc,EAAiB,CACvC,OAAO,KAAK,OAAO,OAChB,OAAO,CAAC,IAAM,EAAE,IAAI,EACpB,IAAI,CAAC,EAAG,KAAO,CACd,KAAM,EAAE,KACR,MAAO,KAAK,YAAY,EAAG,EAAE,KAAK,CACpC,EAAE,EAGI,UAAU,CAClB,EACA,EACA,EACM,CACN,IAAM,EAAS,KAAK,UACpB,GAAI,CAAC,EACH,OAGF,IAAQ,QAAO,YAAa,EACtB,EAAa,EAAO,YAAc,GAElC,EAAc,GAAY,EAAO,MAAM,EACvC,EAAgB,EAAO,MAAM,OAAO,OACpC,EAAa,KAAK,sBAAsB,EAE9C,QAAS,EAAI,EAAG,EAAI,EAAe,GAAK,EAAG,CAEzC,IAAM,EAAS,EACT,EAAc,EAAO,OACrB,EAAgB,EAAO,OAC1B,IAAI,CAAC,IAAM,EAAE,QAAQ,EACrB,KAAK,CAAC,IAAM,IAAM,QAAa,EAAI,CAAC,EACjC,EAAO,KAAK,YAAY,EAAU,EAAa,CAAa,EAC5D,EAAY,IAAe,EAEjC,EAAO,QAAQ,CAAC,EAAO,IAAe,CACpC,IAAM,EAAa,EAAK,OAAS,EAAa,EAAK,KAC/C,EAAS,EAEb,EAAM,QAAQ,CAAC,IAAW,CACxB,IAAM,EAAM,EAAO,KAAK,IAAM,EACxB,EAAY,KAAK,YACrB,EAAO,OAAO,QAAQ,CAAM,EAC5B,EAAO,KACT,EACM,EAAQ,EAAY,GAAa,EAAW,IAAI,EAAI,EAE1D,GAAI,EAAY,CACd,IAAM,EAAK,EAAM,MAAM,CAAC,EAClB,EAAK,EAAM,MAAM,EAAS,CAAG,EAC7B,EAAO,KAAK,IAAI,EAAI,CAAE,EACtB,EAAQ,KAAK,IAAI,EAAK,CAAE,EACxB,EAAI,EAAS,UAAU,CAAC,EAAI,EAClC,KAAK,QAAQ,EAAK,CAChB,EAAG,EACH,IACA,QACA,OAAQ,EAAK,KACb,OAAQ,EAAO,cAAgB,EAC/B,QACA,UAAW,GAAO,EAAI,QAAU,MAClC,CAAC,EACI,KACL,IAAM,EAAK,EAAM,MAAM,CAAM,EACvB,EAAK,EAAM,MAAM,EAAS,CAAG,EAC7B,EAAM,KAAK,IAAI,EAAI,CAAE,EACrB,EAAS,KAAK,IAAI,EAAK,CAAE,EACzB,EAAI,EAAS,UAAU,CAAC,EAAI,EAClC,KAAK,QAAQ,EAAK,CAChB,IACA,EAAG,EACH,MAAO,EAAK,KACZ,SACA,OAAQ,EAAO,cAAgB,EAC/B,QACA,UAAW,GAAO,EAAI,MAAQ,QAChC,CAAC,EAGH,GAAU,EACX,EACF,GAKK,aAAa,CAAC,EAAW,EAAiC,CAClE,IAAM,EAAS,KAAK,UACpB,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAa,KAAK,OAAO,YAAc,GACvC,EAAS,KAAK,kBAAkB,EAGtC,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAG,CACzC,IAAM,EAAQ,EAAO,SAAS,UAAU,CAAC,EACnC,EAAO,EAAO,SAAS,UAI7B,GAAI,EAHQ,EACR,GAAK,GAAS,GAAK,EAAQ,EAC3B,GAAK,GAAS,GAAK,EAAQ,GAE7B,SAGF,IAAM,EAAQ,KAAK,OAAO,OAAO,IAAI,CAAC,EAAG,KAAQ,CAC/C,KAAM,EAAE,MAAQ,KAAK,EAAK,IAC1B,MAAO,EAAE,KAAK,IAAM,EACpB,MAAO,KAAK,YAAY,EAAI,EAAE,KAAK,CACrC,EAAE,EACF,MAAO,CAAE,IAAG,IAAG,KAAM,EAAO,GAAI,OAAM,EAExC,OAAO,KAID,qBAAqB,EAAW,CACtC,IAAM,EAAQ,KAAK,MACnB,GAAI,CAAC,EACH,MAAO,GAGT,OADe,KAAK,kBAAkB,EACxB,QAAQ,EAAM,IAAI,EAG1B,WAAW,CACjB,EACA,EACA,EACM,CACN,IAAM,EAAO,EAAS,UAChB,EAAQ,EAAS,WAAW,EAClC,GAAI,IAAkB,OAEpB,MAAO,CACL,QAAS,EAAO,EAAgB,GAAc,EAC9C,KAAM,CACR,EAEF,IAAM,EAAQ,EAAQ,KAAK,IAAI,EAAG,CAAU,EAAK,IAG3C,GAAY,EAAO,GAAS,EAC5B,GAAa,EAAQ,EAAO,GAAc,EAChD,MAAO,CAAE,OAAQ,EAAW,EAAW,MAAK,EAGtC,OAAO,CACb,EACA,EASM,CACN,GAAI,EAAI,OAAS,GAAK,EAAI,QAAU,EAClC,OAEF,EAAI,KAAK,EACT,EAAI,UAAY,EAAI,MACpB,EAAI,UAAU,EACd,GAAc,EAAK,EAAK,EAAI,OAAQ,EAAI,SAAS,EACjD,EAAI,KAAK,EACT,EAAI,QAAQ,EAEhB,CAGA,SAAS,EAAW,CAAC,EAA6C,CAChE,IAAM,EAAwB,CAAC,EACzB,EAAW,IAAI,IAErB,QAAW,KAAK,EACd,GAAI,EAAE,MAAO,CACX,IAAI,EAAQ,EAAS,IAAI,EAAE,KAAK,EAChC,GAAI,CAAC,EACH,EAAQ,CAAC,EACT,EAAS,IAAI,EAAE,MAAO,CAAK,EAC3B,EAAO,KAAK,CAAK,EAEnB,EAAM,KAAK,CAAC,EAEZ,OAAO,KAAK,CAAC,CAAC,CAAC,EAGnB,OAAO,EAQT,SAAS,EAAa,CACpB,EACA,EACA,EACA,EACM,CACN,IAAQ,IAAG,IAAG,QAAO,UAAW,EAC1B,EAAI,KAAK,IAAI,EAAQ,EAAQ,EAAG,EAAS,CAAC,EAChD,GAAI,GAAK,EAAG,CACV,EAAI,KAAK,EAAG,EAAG,EAAO,CAAM,EAC5B,OAGF,IAAM,EAAe,IAAc,OAAS,IAAc,OACpD,EAAgB,IAAc,OAAS,IAAc,QACrD,EAAkB,IAAc,UAAY,IAAc,OAC1D,EAAmB,IAAc,UAAY,IAAc,QAIjE,GAFA,EAAI,OAAO,GAAK,EAAe,EAAI,GAAI,CAAC,EACxC,EAAI,OAAO,EAAI,GAAS,EAAgB,EAAI,GAAI,CAAC,EAC7C,EACF,EAAI,MAAM,EAAI,EAAO,EAAG,EAAI,EAAO,EAAI,EAAG,CAAC,EAE3C,OAAI,OAAO,EAAI,EAAO,CAAC,EAIzB,GADA,EAAI,OAAO,EAAI,EAAO,EAAI,GAAU,EAAmB,EAAI,EAAE,EACzD,EACF,EAAI,MAAM,EAAI,EAAO,EAAI,EAAQ,EAAI,EAAQ,EAAG,EAAI,EAAQ,CAAC,EAE7D,OAAI,OAAO,EAAI,EAAO,EAAI,CAAM,EAIlC,GADA,EAAI,OAAO,GAAK,EAAkB,EAAI,GAAI,EAAI,CAAM,EAChD,EACF,EAAI,MAAM,EAAG,EAAI,EAAQ,EAAG,EAAI,EAAS,EAAG,CAAC,EAE7C,OAAI,OAAO,EAAG,EAAI,CAAM,EAI1B,GADA,EAAI,OAAO,EAAG,GAAK,EAAe,EAAI,EAAE,EACpC,EACF,EAAI,MAAM,EAAG,EAAG,EAAI,EAAG,EAAG,CAAC,EAE3B,OAAI,OAAO,EAAG,CAAC,EAEjB,EAAI,UAAU,EAIhB,SAAS,EAAY,CAAC,EAAe,EAAwB,CAC3D,IAAM,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAM,CAAC,EAGnC,EAAM,EAAM,MAAM,qBAAqB,EAC7C,GAAI,EAAK,CACP,IAAI,EACA,EACA,EACE,EAAI,EAAI,GACd,GAAI,EAAE,SAAW,EACf,EAAI,SAAS,EAAE,GAAK,EAAE,GAAI,EAAE,EAC5B,EAAI,SAAS,EAAE,GAAK,EAAE,GAAI,EAAE,EAC5B,EAAI,SAAS,EAAE,GAAK,EAAE,GAAI,EAAE,EAE5B,OAAI,SAAS,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAC9B,EAAI,SAAS,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAC9B,EAAI,SAAS,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAKhC,OAHA,EAAI,KAAK,MAAM,GAAK,IAAM,GAAK,CAAC,EAChC,EAAI,KAAK,MAAM,GAAK,IAAM,GAAK,CAAC,EAChC,EAAI,KAAK,MAAM,GAAK,IAAM,GAAK,CAAC,EACzB,OAAO,MAAM,MAAM,KAI5B,IAAM,EAAO,EAAM,MAAM,yCAAyC,EAClE,GAAI,EAAM,CACR,IAAM,EAAI,KAAK,MAAM,SAAS,EAAK,EAAE,GAAK,IAAM,SAAS,EAAK,EAAE,GAAK,CAAC,EAChE,EAAI,KAAK,MAAM,SAAS,EAAK,EAAE,GAAK,IAAM,SAAS,EAAK,EAAE,GAAK,CAAC,EAChE,EAAI,KAAK,MAAM,SAAS,EAAK,EAAE,GAAK,IAAM,SAAS,EAAK,EAAE,GAAK,CAAC,EACtE,MAAO,OAAO,MAAM,MAAM,KAG5B,OAAO,ECvVT,IAAM,GAAS,KAAK,GAAK,EAElB,MAAM,WAAiB,CAA0B,CAC5C,gBAAgB,EAAY,CACpC,MAAO,GAGC,cAAc,EAAiB,CACvC,OAAO,KAAK,OAAO,KAAK,IAAI,CAAC,EAAG,KAAO,CACrC,KAAM,EAAE,KACR,MAAO,EAAE,OAAS,KAAK,YAAY,CAAC,CACtC,EAAE,EAIM,aAAa,CAAC,EAAW,EAAiC,CAClE,IAAM,EAAO,KAAK,KAClB,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAU,EAAK,EAAI,EAAK,MAAQ,EAChC,EAAU,EAAK,EAAI,EAAK,OAAS,EACjC,EAAY,KAAK,IAAI,EAAK,MAAO,EAAK,MAAM,EAAI,EAChD,EAAc,GAAc,KAAK,OAAO,QAAU,MAAO,CAAS,EAClE,EAAc,GAAc,KAAK,OAAO,aAAe,EAAG,CAAS,EACnE,EAAa,KAAK,OAAO,YAAc,CAAC,KAAK,GAAK,EAElD,EAAK,EAAI,EACT,EAAK,EAAI,EACT,EAAO,KAAK,MAAM,EAAI,CAAE,EAC9B,GAAI,EAAO,GAAe,EAAO,EAC/B,OAAO,KAGT,IAAM,EAAO,KAAK,OAAO,KAAK,OAAO,CAAC,IAAM,EAAE,MAAQ,CAAC,EACjD,EAAQ,EAAK,OAAO,CAAC,EAAK,IAAM,EAAM,EAAE,MAAO,CAAC,EACtD,GAAI,GAAS,EACX,OAAO,KAIT,IAAI,EAAI,KAAK,MAAM,EAAI,CAAE,EACzB,MAAO,EAAI,EACT,GAAK,GAEP,IAAI,EAAM,EACV,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EAAG,CACvC,IAAM,EAAI,EAAK,GACT,EAAS,EAAE,MAAQ,EAAS,GAClC,GAAI,GAAK,GAAO,GAAK,EAAM,EAAO,CAChC,IAAM,EAAU,KAAK,MAAO,EAAE,MAAQ,EAAS,GAAG,EAClD,MAAO,CACL,IACA,IACA,KAAM,EAAE,KACR,MAAO,CACL,CACE,KAAM,EAAE,KACR,MAAO,GAAG,KACV,MAAO,EAAE,OAAS,KAAK,YAAY,CAAC,CACtC,CACF,CACF,EAEF,GAAO,EAET,OAAO,KAGC,UAAU,CAClB,EACA,EACA,EACM,CACN,IAAQ,QAAS,EACX,EAAU,EAAK,EAAI,EAAK,MAAQ,EAChC,EAAU,EAAK,EAAI,EAAK,OAAS,EAEjC,EACJ,KAAK,IAAI,EAAK,MAAO,EAAK,MAAM,EAAI,EAChC,EAAc,GAAc,EAAO,QAAU,MAAO,CAAS,EAC7D,EAAc,GAAc,EAAO,aAAe,EAAG,CAAS,EAC9D,EAAa,EAAO,YAAc,CAAC,KAAK,GAAK,EAE7C,EAAO,EAAO,KAAK,OAAO,CAAC,IAAM,EAAE,MAAQ,CAAC,EAC5C,EAAQ,EAAK,OAAO,CAAC,EAAK,IAAM,EAAM,EAAE,MAAO,CAAC,EACtD,GAAI,GAAS,GAAK,GAAe,EAC/B,OAGF,IAAI,EAAQ,EAEZ,EAAK,QAAQ,CAAC,EAAG,IAAU,CACzB,IAAM,EAAS,EAAE,MAAQ,EAAS,GAC5B,EAAQ,EAAE,OAAS,KAAK,YAAY,CAAK,EAK/C,GAHA,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,EAAI,UAAU,EACV,EAAc,EAEhB,EAAI,IAAI,EAAS,EAAS,EAAa,EAAO,EAAQ,CAAK,EAC3D,EAAI,IACF,EACA,EACA,EACA,EAAQ,EACR,EACA,EACF,EAEA,OAAI,IAAI,EAAS,EAAS,EAAa,EAAO,EAAQ,CAAK,EAC3D,EAAI,OAAO,EAAS,CAAO,EAa7B,GAXA,EAAI,UAAU,EACd,EAAI,KAAK,EAET,EAAI,YAAc,UAClB,EAAI,UAAY,EAChB,EAAI,OAAO,EACX,EAAI,QAAQ,EAKR,EAAO,YAAc,GAAO,CAC9B,IAAM,EAAW,EAAQ,EAAQ,EAC3B,EAAU,EAAQ,EAAI,KAAK,MAAO,EAAE,MAAQ,EAAS,GAAG,EAAI,EAC5D,EAAO,GAAG,EAAE,QAAQ,KAE1B,GAAI,EAAO,gBAAkB,UAAW,CACtC,IAAM,EAAa,EAAO,iBAAmB,GACvC,EAAM,EAAO,UAAY,EACzB,EAAO,KAAK,IAAI,CAAQ,EACxB,EAAO,KAAK,IAAI,CAAQ,EAExB,EAAQ,EAAU,EAAO,EACzB,EAAQ,EAAU,EAAO,EACzB,EAAQ,EAAU,GAAQ,EAAc,GACxC,EAAQ,EAAU,GAAQ,EAAc,GAExC,EAAa,GAAQ,EAAI,EAAI,GAC7B,GAAQ,EAAQ,EAAa,EAC7B,GAAQ,EAEd,EAAI,KAAK,EACT,EAAI,YAAc,EAAO,gBAAkB,UAC3C,EAAI,UAAY,EAChB,EAAI,UAAU,EACd,EAAI,OAAO,EAAO,CAAK,EACvB,EAAI,OAAO,EAAO,CAAK,EACvB,EAAI,OAAO,GAAO,EAAK,EACvB,EAAI,OAAO,EACX,EAAI,QAAQ,EAEZ,EAAU,EAAK,EAAO,eAAiB,EAAE,EACzC,EAAI,UAAY,EAAO,YAAc,UACrC,EAAI,UAAY,EAAa,EAAI,OAAS,QAC1C,EAAI,aAAe,SACnB,EAAI,SAAS,EAAM,GAAO,EAAK,EAC1B,KACL,IAAM,GACF,GAAe,EAAc,EAAI,EAAc,IAAM,EAAK,KACxD,EAAS,EAAU,KAAK,IAAI,CAAQ,EAAI,EACxC,EAAS,EAAU,KAAK,IAAI,CAAQ,EAAI,EAE9C,EAAU,EAAK,EAAO,eAAiB,EAAE,EACzC,EAAI,UAAY,EAAO,YAAc,UACrC,EAAI,UAAY,SAChB,EAAI,aAAe,SACnB,EAAI,SAAS,EAAM,EAAQ,CAAM,GAIrC,GAAS,EACV,EAEL,CAGA,SAAS,EAAa,CAAC,EAAwB,EAA2B,CACxE,GAAI,OAAO,IAAU,SACnB,OAAO,KAAK,IAAI,EAAG,CAAK,EAE1B,IAAM,EAAQ,qBAAqB,KAAK,CAAK,EAC7C,GAAI,CAAC,EACH,OAAO,EAET,OAAQ,OAAO,EAAM,EAAE,EAAI,IAAO,ECvL7B,MAAM,WAAmB,CAA4B,CAChD,gBAAgB,EAAY,CACpC,MAAO,GAGC,cAAc,EAAiB,CACvC,OAAO,KAAK,OAAO,OAChB,OAAO,CAAC,IAAM,EAAE,IAAI,EACpB,IAAI,CAAC,EAAG,KAAO,CACd,KAAM,EAAE,KACR,MAAO,KAAK,YAAY,EAAG,EAAE,KAAK,CACpC,EAAE,EAGI,UAAU,CAClB,EACA,EACA,EACM,CACN,IAAQ,QAAS,EACX,EAAU,EAAK,EAAI,EAAK,MAAQ,EAChC,EAAU,EAAK,EAAI,EAAK,OAAS,EACjC,EACJ,EAAO,QAAU,KAAK,IAAI,EAAK,MAAO,EAAK,MAAM,EAAI,EAAI,IACrD,EAAQ,EAAO,WAAW,OAChC,GAAI,IAAU,GAAK,GAAU,EAC3B,OAGF,IAAM,EAAa,EAAO,YAAc,CAAC,KAAK,GAAK,EAC7C,EAAO,GAAe,EACtB,EAAa,KAAK,IAAI,EAAG,EAAO,YAAc,CAAC,EAC/C,EAAY,EAAO,WAAa,UAChC,EAAgB,EAAO,eAAiB,EAExC,EAAc,CAAC,IACnB,EAAa,EAAQ,EAEjB,EAAa,CAAC,EAAe,KAA2B,CAC5D,EAAG,EAAU,KAAK,IAAI,CAAK,EAAI,EAC/B,EAAG,EAAU,KAAK,IAAI,CAAK,EAAI,CACjC,GAGA,QAAS,EAAQ,EAAG,GAAS,EAAY,GAAS,EAAG,CACnD,IAAM,EAAK,EAAS,EAAS,EAC7B,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,UAAU,EACd,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EAAI,EAAW,EAAY,CAAC,EAAG,CAAC,EACtC,GAAI,IAAM,EACR,EAAI,OAAO,EAAE,EAAG,EAAE,CAAC,EAEnB,OAAI,OAAO,EAAE,EAAG,EAAE,CAAC,EAGvB,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,QAAQ,EAId,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,UAAU,EACd,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EAAI,EAAW,EAAY,CAAC,EAAG,CAAM,EAC3C,EAAI,OAAO,EAAS,CAAO,EAC3B,EAAI,OAAO,EAAE,EAAG,EAAE,CAAC,EAErB,EAAI,OAAO,EACX,EAAI,QAAQ,EAGZ,IAAM,EAAgB,EAAO,eAAiB,GAC9C,EAAU,EAAK,CAAa,EAC5B,EAAI,UAAY,EAAO,YAAc,UACrC,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EAAI,EAAW,EAAY,CAAC,EAAG,EAAS,EAAE,EAChD,EAAI,UAAY,KAAK,IAAI,EAAE,EAAI,CAAO,EAAI,EAAI,SAAW,EAAE,EAAI,EAAU,OAAS,QAClF,EAAI,aACF,KAAK,IAAI,EAAE,EAAI,CAAO,EAAI,EACtB,SACA,EAAE,EAAI,EACJ,MACA,SACR,EAAI,SAAS,EAAO,WAAW,GAAG,KAAM,EAAE,EAAG,EAAE,CAAC,EAIlD,EAAO,OAAO,QAAQ,CAAC,EAAQ,IAAgB,CAC7C,IAAM,EAAQ,KAAK,YAAY,EAAa,EAAO,KAAK,EAClD,EAAuB,EAAO,WAAW,IAAI,CAAC,EAAW,IAAM,CACnE,IAAM,EACJ,EAAU,KAAO,KAAK,aAAa,EAAQ,CAAC,EACxC,EAAQ,EAAO,KAAK,IAAM,EAC1B,EAAQ,EAAM,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,EAAQ,CAAG,CAAC,EAAI,EAChE,OAAO,EAAW,EAAY,CAAC,EAAG,EAAS,CAAK,EACjD,EAED,GAAI,EAAO,OAAS,GAClB,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,EAAI,YAAc,IAClB,EAAI,UAAU,EACd,KAAK,aAAa,EAAK,CAAM,EAC7B,EAAI,UAAU,EACd,EAAI,KAAK,EACT,EAAI,QAAQ,EAGd,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAAO,WAAa,EACpC,EAAI,SAAW,QACf,EAAI,UAAU,EACd,KAAK,aAAa,EAAK,CAAM,EAC7B,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,QAAQ,EACb,EAIO,aAAa,CAAC,EAAW,EAAiC,CAClE,IAAM,EAAO,KAAK,KAClB,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAU,EAAK,EAAI,EAAK,MAAQ,EAChC,EAAU,EAAK,EAAI,EAAK,OAAS,EACjC,EACJ,KAAK,OAAO,QAAW,KAAK,IAAI,EAAK,MAAO,EAAK,MAAM,EAAI,EAAK,IAC5D,EAAQ,KAAK,OAAO,WAAW,OACrC,GAAI,IAAU,EACZ,OAAO,KAET,IAAM,EAAa,KAAK,OAAO,YAAc,CAAC,KAAK,GAAK,EAClD,EAAO,GAAe,EAExB,EAAO,GACP,EAAW,GACf,QAAS,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CACjC,IAAM,EACJ,KAAK,OAAO,WAAW,GAAG,KAAO,KAAK,aAAa,KAAK,OAAQ,CAAC,EAC7D,EAAQ,EAAa,EAAI,EAC/B,QAAS,EAAK,EAAG,EAAK,KAAK,OAAO,OAAO,OAAQ,GAAM,EAAG,CACxD,IAAM,EAAQ,KAAK,OAAO,OAAO,GAAI,KAAK,IAAM,EAC1C,EAAQ,EAAM,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,EAAQ,CAAG,CAAC,EAAI,EAC1D,EAAK,EAAU,KAAK,IAAI,CAAK,EAAI,EAAS,EAC1C,EAAK,EAAU,KAAK,IAAI,CAAK,EAAI,EAAS,EAC1C,EAAI,KAAK,MAAM,EAAI,EAAI,EAAI,CAAE,EACnC,GAAI,EAAI,EACN,EAAW,EACX,EAAO,GAIb,GAAI,EAAO,EACT,OAAO,KAET,IAAM,EAAQ,KAAK,OAAO,OAAO,IAAI,CAAC,EAAG,KAAQ,CAC/C,KAAM,EAAE,MAAQ,KAAK,EAAK,IAC1B,MAAO,EAAE,KAAK,IAAS,EACvB,MAAO,KAAK,YAAY,EAAI,EAAE,KAAK,CACrC,EAAE,EACF,MAAO,CACL,IACA,IACA,KAAM,KAAK,OAAO,WAAW,GAAO,KACpC,OACF,EAGM,YAAY,CAAC,EAA0B,EAAuB,CACpE,IAAI,EAAM,EACV,QAAW,KAAU,EAAO,OAAQ,CAClC,IAAM,EAAI,EAAO,KAAK,IAAU,EAChC,GAAI,EAAI,EACN,EAAM,EAGV,OAAO,EAGD,YAAY,CAAC,EAAgB,EAAqC,CACxE,GAAI,EAAO,SAAW,EACpB,OAEF,EAAI,OAAO,EAAO,GAAG,EAAG,EAAO,GAAG,CAAC,EACnC,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EACtC,EAAI,OAAO,EAAO,GAAG,EAAG,EAAO,GAAG,CAAC,EAGzC,CAEA,IAAM,GAAe,KAAK,GAAK,EC1LxB,SAAS,CAAgB,EAAW,CACzC,IAAM,EAAO,GAAkB,EAC/B,GAAI,OAAO,EAAK,mBAAqB,UAAY,EAAK,iBAAmB,EACvE,OAAO,EAAK,iBAEd,MAAO,GAGT,SAAS,EAAiB,EAA4B,CACpD,GAAI,OAAO,WAAe,IACxB,OAAO,WAET,MAAO,CAAC,ECjBH,SAAS,CAAoB,CAClC,EACgC,CAEhC,IAAM,EADO,GAAQ,EACJ,GACjB,OAAO,OAAO,IAAQ,UAAY,IAAQ,KACrC,EACD,KAQC,SAAS,EAAwB,CAAC,EAON,CACjC,IAAM,EACJ,EAAQ,UAAY,EAAwB,GAAK,KAC7C,EAAM,EAAqB,CAAQ,EACnC,EAAU,GAAK,oBACrB,GAAI,OAAO,IAAY,WACrB,OAAO,QAAQ,OACT,MAAM,6BAA6B,wCAA+C,CACxF,EAGF,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACtC,IAAI,EAAQ,EAAQ,KAAK,CAAG,EAC5B,GAAI,EAAQ,UAAY,OAAO,EAAM,KAAO,WAC1C,EAAQ,EAAM,GAAG,EAAQ,QAAQ,EAEnC,GAAI,OAAO,EAAM,SAAW,WAAY,CACtC,EAAW,MAAM,GAAG,iDAAwD,CAAC,EAC7E,OAEF,EACG,OAAO,EAAQ,QAAQ,EACvB,OAAO,CAAE,KAAM,GAAM,KAAM,EAAK,CAAC,EACjC,KAAK,CAAC,IAAiB,CAEtB,IAAM,GADQ,MAAM,QAAQ,CAAG,EAAI,EAAI,GAAK,SACxB,KACpB,GAAI,CAAC,GAAQ,OAAO,EAAK,aAAe,WAAY,CAClD,EACM,MACF,wDAAwD,EAAQ,WAClE,CACF,EACA,OAEF,EAAQ,CAAI,EACb,EACJ,EAII,SAAS,CAAuB,EAA6B,CAClE,GAAI,EAAqB,IAAI,EAC3B,MAAO,KAET,GAAI,EAAqB,IAAI,EAC3B,MAAO,KAET,GAAI,EAAqB,IAAI,EAC3B,MAAO,KAET,OAAO,KAIF,SAAS,EAA2B,CAAC,EAAsC,CAChF,IAAM,EAAO,GAAY,EAAwB,GAAK,KAChD,EAAM,EAAqB,CAAI,EAC/B,EAAO,GAAK,kBAClB,GAAI,OAAO,IAAS,WAClB,GAAI,CACF,IAAM,EAAO,EAAK,KAAK,CAAG,EAC1B,GAAI,OAAO,EAAK,aAAe,UAAY,EAAK,WAAa,EAC3D,OAAO,EAAK,WAEd,KAAM,EAIV,OAAO,EAAiB,EAQnB,SAAS,CAAwB,CACtC,EACA,EAAgC,CAAC,EACb,CACpB,IAAM,EAAQ,EAAK,WAAW,IAAI,EAClC,GAAI,CAAC,EACH,MAAU,MAAM,uDAAuD,EAGzE,IAAM,EAAM,EAAQ,KAAO,GAA4B,EACjD,EAAQ,EAAQ,OAAS,EAAK,MAC9B,EAAS,EAAQ,QAAU,EAAK,OAGtC,MAAO,CAAE,IAFG,EAEE,QAAO,SAAQ,MAAK,QAAS,EAAQ,OAAQ,EAG7D,SAAS,EAAO,EAA4B,CAC1C,GAAI,OAAO,WAAe,IACxB,OAAO,WAET,MAAO,CAAC,ECjIH,SAAS,CAAgB,CAC9B,EACA,EAAgC,CAAC,EACb,CACpB,GAAI,CAAC,EACH,MAAU,MAAM,8CAA8C,EAGhE,IAAM,EAAQ,EAAO,WAAW,IAAI,EACpC,GAAI,CAAC,EACH,MAAU,MAAM,+CAA+C,EAGjE,IAAM,EAAM,EAAQ,KAAO,EAAiB,EACtC,EAAQ,EAAQ,QAAU,EAAO,aAAe,EAAO,OACvD,EAAS,EAAQ,SAAW,EAAO,cAAgB,EAAO,QAShE,OANA,EAAO,MAAQ,KAAK,MAAM,EAAQ,CAAG,EACrC,EAAO,OAAS,KAAK,MAAM,EAAS,CAAG,EAKhC,CAAE,IAFG,EAEE,QAAO,SAAQ,MAAK,QAAS,EAAQ,OAAQ,ECdtD,SAAS,CAAkC,CAChD,EACA,EACc,CACd,OAAQ,EAAO,UACR,OACH,OAAO,IAAI,GAAU,EAAS,CAAM,MACjC,MACH,OAAO,IAAI,GAAS,EAAS,CAAM,MAChC,MACH,OAAO,IAAI,GAAS,EAAS,CAAM,MAChC,QACH,OAAO,IAAI,GAAW,EAAS,CAAM,UAErC,MAAU,MACR,wCAAyC,EAAuB,OAClE,GAKC,SAAS,EAAqC,CACnD,EACA,EACA,EAAuC,CAAC,EAC1B,CACd,OAAO,EAAY,EAAiB,EAAQ,CAAc,EAAG,CAAM,EAI9D,SAAS,EAA6C,CAC3D,EACA,EACA,EAAuC,CAAC,EAC1B,CACd,OAAO,EAAY,EAAyB,EAAM,CAAc,EAAG,CAAM,EC9BpE,SAAS,EAAmB,CACjC,EACoB,CACpB,MAAU,MACR,uLAGF,ECLK,SAAS,CAAU,CAAC,EAA4C,CACrE,GAAI,IAAa,QAAa,IAAa,KACzC,MAAO,CAAC,EAEV,OAAO,MAAM,QAAQ,CAAQ,EAAI,EAAW,CAAC,CAAQ,EA6DhD,SAAS,EAAe,CAAC,EAAsC,CACpE,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,cAAe,EAGhE,SAAS,EAAU,CAAC,EAAiC,CAC1D,OACE,OAAO,IAAU,UACjB,IAAU,MACV,QAAS,GACT,EAAM,MAAQ,OAIX,SAAS,EAAc,CAAC,EAAqC,CAClE,OACE,OAAO,IAAU,UACjB,IAAU,MACV,QAAS,GACT,EAAM,MAAQ,OAIX,SAAS,EAAC,CACf,EACA,EACA,EACA,EACA,EACA,EACU,CACV,MAAO,CACL,MACA,QACA,WACA,YACA,MACA,YACF,EAGK,SAAS,EAAG,CACjB,EACA,EAAkC,CAAC,EACzB,CACV,MAAO,CACL,SACG,CACL,EAGF,SAAS,CAAoB,CAAC,EAA8B,CAC1D,MAAO,CAAC,EAAkC,CAAC,IAAM,GAAI,EAAK,CAAO,EAG5D,IAAM,GAAM,EAAqB,KAAK,EAChC,GAAO,EAAqB,MAAM,EAClC,GAAI,EAAqB,GAAG,EAC5B,GAAS,EAAqB,QAAQ,EACtC,GAAQ,EAAqB,OAAO,EACpC,GAAU,EAAqB,SAAS,EACxC,GAAO,EAAqB,MAAM,EAClC,GAAS,EAAqB,QAAQ,EACtC,GAAS,EAAqB,QAAQ,EACtC,GAAM,EAAqB,KAAK,EAChC,GAAU,EAAqB,SAAS,EACxC,GAAQ,EAAqB,OAAO,EACpC,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAS,EAAqB,QAAQ,EACtC,GAAK,EAAqB,IAAI,EAC9B,GAAQ,EAAqB,OAAO,EACpC,GAAM,EAAqB,KAAK,EAChC,GAAO,EAAqB,MAAM,EAClC,GAAa,EAAqB,YAAY,EAC9C,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAI,EAAqB,GAAG,EAC5B,GAAM,EAAqB,KAAK,EAChC,GAAO,EAAqB,MAAM,EAClC,GAAQ,EAAqB,OAAO,EACpC,GAAW,EAAqB,UAAU,EAC1C,GAAS,EAAqB,QAAQ,EACtC,GAAS,EAAqB,QAAQ,EACtC,GAAQ,EAAqB,OAAO,EACpC,GAAQ,EAAqB,OAAO,EACpC,GAAQ,EAAqB,OAAO,EACpC,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EAC9B,GAAK,EAAqB,IAAI,EC5KpC,IAAM,EAAc,OAAO,aAAa,EAClC,EAAc,OAAO,aAAa,EAClC,GAAS,OAAO,QAAQ,EAMxB,GAAyB,CACpC,OACA,MACA,QACA,UACA,SACA,OACA,SACF,EAEO,SAAS,CAAe,CAC7B,EACA,EACS,CACT,OAAO,QAAQ,QAAQ,IAAI,EAAO,CAAI,CAAC,EAGlC,SAAS,CAAQ,CAAC,EAAiC,CACxD,OAAO,IAAU,MAAQ,OAAO,IAAU,SChCrC,MAAM,EAAkB,CACZ,QAAU,IAAI,IACvB,SAAW,GACX,aAAqC,KACrC,aAAoC,KAKrC,OAAO,CAAC,EAA8B,CAC3C,GAAI,KAAK,QAAQ,IAAI,CAAM,EACzB,OAGF,GADA,KAAK,QAAQ,IAAI,CAAM,EACnB,CAAC,KAAK,SACR,eAAe,IAAM,KAAK,MAAM,CAAC,EAS9B,KAAK,EAAS,CACnB,GAAI,KAAK,SACP,OAEF,KAAK,SAAW,GAChB,GAAI,CACF,MAAO,KAAK,QAAQ,KAAO,EAAG,CAC5B,IAAM,EAAQ,MAAM,KAAK,KAAK,OAAO,EACrC,KAAK,QAAQ,MAAM,EACnB,QAAW,KAAU,EACnB,GAAI,EAAO,OACT,EAAO,UAIb,CACA,KAAK,SAAW,GAChB,IAAM,EAAU,KAAK,aACrB,KAAK,aAAe,KACpB,KAAK,aAAe,KACpB,IAAU,GAQP,QAAQ,EAAkB,CAC/B,GAAI,CAAC,KAAK,UAAY,KAAK,QAAQ,OAAS,EAC1C,OAAO,QAAQ,QAAQ,EAEzB,GAAI,KAAK,aACP,OAAO,KAAK,aAKd,OAHA,KAAK,aAAe,IAAI,QAAc,CAAC,IAAY,CACjD,KAAK,aAAe,EACrB,EACM,KAAK,aAEhB,CCvDA,IAAI,GAAW,EAGF,GAAoB,IAAI,GAmB9B,MAAM,CAAe,OACX,UACP,aAAsC,KAC7B,YAAgC,CAAC,EAC1C,UAAY,IAAI,QAIhB,YAAc,IAAI,QAClB,YAAc,IAAI,QAElB,SAAW,IAAI,QAEf,WAAW,EAAG,QAER,YAAW,EAAmB,CAC1C,GAAI,CAAC,EAAe,SAClB,EAAe,SAAW,IAAI,EAEhC,OAAO,EAAe,SAGjB,QAA0B,CAAC,EAAc,CAE9C,GAAI,CAAC,EAAS,CAAM,EAElB,OADA,QAAQ,KAAK,oCAAoC,EAC1C,EAIT,GAAI,GAAW,CAAM,EACnB,OAAO,EAIT,GAAI,KAAK,YAAY,IAAI,CAAM,EAC7B,OAAO,KAAK,YAAY,IAAI,CAAM,EAIpC,GAAI,MAAM,QAAQ,CAAM,EACtB,OAAO,KAAK,oBAAoB,CAAM,EAIxC,IAAM,EAAQ,IAAI,MAAM,EAAQ,CAC9B,IAAK,CAAC,EAAQ,IAAyB,CAErC,GAAI,IAAQ,EACV,MAAO,GAET,GAAI,IAAQ,EACV,MAAO,GAIT,KAAK,MAAM,EAAQ,CAAG,EAEtB,IAAM,EAAQ,QAAQ,IAAI,EAAQ,CAAG,EAGrC,GAAI,EAAS,CAAK,GAAK,CAAC,EAAgB,EAAO,CAAW,EACxD,OAAO,KAAK,SAAS,CAAK,EAE5B,OAAO,GAET,IAAK,CAAC,EAAQ,EAAsB,IAAU,CAE5C,GAAI,EAAgB,EAAQ,CAAW,EAErC,OADA,QAAQ,KAAK,uBAAuB,OAAO,CAAG,sBAAsB,EAC7D,GAGT,IAAM,EAAW,QAAQ,IAAI,EAAQ,CAAG,EAGxC,GACE,EAAS,CAAK,GACd,CAAC,EAAgB,EAAO,CAAW,GACnC,CAAC,EAAgB,EAAO,CAAW,EAEnC,EAAQ,KAAK,SAAS,CAAK,EAG7B,IAAM,EAAS,QAAQ,IAAI,EAAQ,EAAK,CAAK,EAG7C,GAAI,IAAa,EACf,KAAK,QAAQ,EAAQ,CAAG,EAE1B,OAAO,GAET,eAAgB,CAAC,EAAQ,IAAyB,CAEhD,GAAI,EAAgB,EAAQ,CAAW,EAIrC,OAHA,QAAQ,KACN,0BAA0B,OAAO,CAAG,sBACtC,EACO,GAGT,IAAM,EAAS,KAAO,EAChB,EAAS,QAAQ,eAAe,EAAQ,CAAG,EAEjD,GAAI,EACF,KAAK,QAAQ,EAAQ,CAAG,EAE1B,OAAO,EAEX,CAAC,EAKD,OAFA,KAAK,YAAY,IAAI,EAAQ,CAAK,EAClC,KAAK,SAAS,IAAI,EAAO,CAAM,EACxB,EAQD,UAAU,CAAC,EAAyB,CAC1C,GAAI,EAAS,CAAK,GAAK,KAAK,SAAS,IAAI,CAAK,EAC5C,OAAO,KAAK,SAAS,IAAI,CAAK,EAEhC,OAAO,EAMD,mBAAwC,CAAC,EAAc,CAE7D,GAAI,KAAK,YAAY,IAAI,CAAM,EAC7B,OAAO,KAAK,YAAY,IAAI,CAAM,EAGpC,IAAM,EAAQ,IAAI,MAAM,EAAQ,CAC9B,IAAK,CAAC,EAAQ,IAAyB,CAErC,GAAI,IAAQ,EACV,MAAO,GAET,GAAI,IAAQ,EACV,MAAO,GAIT,KAAK,MAAM,EAAQ,CAAG,EAEtB,IAAM,EAAQ,QAAQ,IAAI,EAAQ,CAAG,EAIrC,GACE,OAAO,IAAQ,WACd,IAAQ,YAAc,IAAQ,WAAa,IAAQ,eACpD,CAEA,KAAK,MAAM,EAAQ,QAAQ,EAC3B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,KAAK,MAAM,EAAQ,OAAO,CAAC,CAAC,EAE9B,IAAM,EAAS,EACf,MAAO,IAAI,IAAoB,CAC7B,IAAM,EAAS,EAAO,MAAM,EAAQ,CAAI,EACxC,GAAI,IAAW,IAAS,IAAW,GAAI,CACrC,IAAM,EAAc,EAAO,IAAI,CAAC,IAAS,KAAK,WAAW,CAAI,CAAC,EAI9D,OAHuB,EAAY,GAGb,MACpB,EACA,EAAK,IAAI,CAAC,IAAQ,KAAK,WAAW,CAAG,CAAC,CACxC,EAEF,OAAO,GAKX,GACE,OAAO,IAAQ,UACf,GAAuB,SACrB,CACF,EAEA,MAAO,IAAI,IAAoB,CAG7B,IAAM,EADc,EACO,MAAM,EAAQ,CAAI,EAI7C,OAFA,KAAK,QAAQ,EAAQ,QAAQ,EAC7B,KAAK,QAAQ,EAAQ,CAAG,EACjB,GAIX,GAAI,EAAS,CAAK,GAAK,CAAC,EAAgB,EAAO,CAAW,EACxD,OAAO,KAAK,SAAS,CAAK,EAG5B,OAAO,GAET,IAAK,CAAC,EAAQ,EAAsB,IAAU,CAE5C,GAAI,EAAgB,EAAQ,CAAW,EAErC,OADA,QAAQ,KAAK,uBAAuB,OAAO,CAAG,sBAAsB,EAC7D,GAGT,IAAM,EAAW,QAAQ,IAAI,EAAQ,CAAG,EAGxC,GACE,EAAS,CAAK,GACd,CAAC,EAAgB,EAAO,CAAW,GACnC,CAAC,EAAgB,EAAO,CAAW,EAEnC,EAAQ,KAAK,SAAS,CAAK,EAG7B,IAAM,EAAS,QAAQ,IAAI,EAAQ,EAAK,CAAK,EAG7C,GAAI,IAAa,GAGf,GAFA,KAAK,QAAQ,EAAQ,CAAG,EAEpB,OAAO,IAAQ,UAAY,CAAC,MAAM,OAAO,CAAG,CAAC,EAC/C,KAAK,QAAQ,EAAQ,QAAQ,EAGjC,OAAO,GAET,eAAgB,CAAC,EAAQ,IAAyB,CAEhD,GAAI,EAAgB,EAAQ,CAAW,EAIrC,OAHA,QAAQ,KACN,0BAA0B,OAAO,CAAG,sBACtC,EACO,GAGT,IAAM,EAAS,KAAO,EAChB,EAAS,QAAQ,eAAe,EAAQ,CAAG,EAEjD,GAAI,EACF,KAAK,QAAQ,EAAQ,CAAG,EAExB,KAAK,QAAQ,EAAQ,QAAQ,EAE/B,OAAO,EAEX,CAAC,EAKD,OAFA,KAAK,YAAY,IAAI,EAAQ,CAAK,EAClC,KAAK,SAAS,IAAI,EAAO,CAAM,EACxB,EAGF,QAA0B,CAAC,EAAwB,CAExD,GAAI,CAAC,EAAS,CAAM,EAElB,OADA,QAAQ,KAAK,oCAAoC,EAC1C,EAIT,GAAI,EAAgB,EAAQ,CAAW,EACrC,OAAO,EAIT,GAAI,KAAK,YAAY,IAAI,CAAM,EAC7B,OAAO,KAAK,YAAY,IAAI,CAAM,EAGpC,IAAM,EAAQ,IAAI,MAAM,EAAQ,CAC9B,IAAK,CAAC,EAAQ,IAAyB,CAErC,GAAI,IAAQ,EACV,MAAO,GAET,GAAI,IAAQ,EACV,MAAO,GAGT,IAAM,EAAQ,QAAQ,IAAI,EAAQ,CAAG,EAErC,GAAI,EAAS,CAAK,EAChB,OAAO,KAAK,SAAS,CAAK,EAE5B,OAAO,GAET,IAAK,KACH,QAAQ,KAAK,wCAAwC,EAC9C,IAET,eAAgB,KACd,QAAQ,KAAK,2CAA2C,EACjD,GAEX,CAAC,EAID,OADA,KAAK,YAAY,IAAI,EAAQ,CAAK,EAC3B,EAGF,MAAmB,CACxB,EACA,EACmB,CACnB,IAAQ,OAAO,GAAO,YAAW,eAAe,IAAU,GAAW,CAAC,EAEhE,EAA8B,IAAM,CACxC,GAAI,CAAC,EAAS,OACZ,OAAO,EAAG,EAGZ,GAAI,CAKF,OAHA,KAAK,QAAQ,CAAQ,EACrB,KAAK,YAAY,KAAK,CAAQ,EAC9B,KAAK,aAAe,EACb,EAAG,EACV,MAAO,EAAO,CACd,GAAI,EACF,MAAM,EAER,QAAQ,MAAM,gBAAiB,CAAK,EACpC,cACA,CACA,KAAK,YAAY,IAAI,EACrB,KAAK,aACH,KAAK,YAAY,KAAK,YAAY,OAAS,IAAM,OAUvD,GANA,EAAS,GAAK,KACd,EAAS,KAAO,CAAC,EACjB,EAAS,OAAS,GAClB,EAAS,UAAY,EAGjB,CAAC,EACH,EAAS,EAGX,OAAO,EAQF,aAAgB,CAAC,EAAwB,EAAgB,CAC9D,KAAK,YAAY,KAAK,CAAM,EAC5B,KAAK,aAAe,EACpB,GAAI,CACF,OAAO,EAAG,SACV,CACA,KAAK,YAAY,IAAI,EACrB,KAAK,aAAe,KAAK,YAAY,KAAK,YAAY,OAAS,IAAM,MAIlE,QAAW,CAAC,EAAiC,CAClD,IAAI,EAAQ,GACR,EACE,EAAiB,CAAC,EAClB,EAAqB,IAAY,CACrC,KAAK,MAAM,EAAgB,OAAO,GAG9B,EAAS,KAAK,OAClB,IAAM,CACJ,EAAQ,EAAO,EACf,EAAQ,IAEV,CACE,KAAM,GACN,UAAW,IAAM,CACf,GAAI,CAAC,EACH,EAAQ,GACR,KAAK,QAAQ,EAAgB,OAAO,EAG1C,CACF,EAEA,MAAO,IACD,MAAK,EAAM,CACb,GAAI,EACF,EAAO,EAGT,OADA,EAAmB,EACZ,EAEX,EAGM,OAAO,CAAC,EAA8B,CAE5C,EAAO,KAAK,QAAQ,CAAC,IAAQ,CAC3B,EAAI,OAAO,CAAM,EAClB,EACD,EAAO,KAAK,OAAS,EAGf,KAAK,CAAC,EAAgB,EAA4B,CACxD,GAAI,CAAC,KAAK,cAAgB,CAAC,KAAK,aAAa,OAAQ,OAErD,IAAI,EAAU,KAAK,UAAU,IAAI,CAAM,EACvC,GAAI,CAAC,EACH,EAAU,IAAI,IACd,KAAK,UAAU,IAAI,EAAQ,CAAO,EAGpC,IAAI,EAAM,EAAQ,IAAI,CAAG,EACzB,GAAI,CAAC,EACH,EAAM,IAAI,IACV,EAAQ,IAAI,EAAK,CAAG,EAGtB,GAAI,CAAC,EAAI,IAAI,KAAK,YAAY,EAC5B,EAAI,IAAI,KAAK,YAAY,EACzB,KAAK,aAAa,KAAK,KAAK,CAAG,EAI3B,OAAO,CAAC,EAAgB,EAA4B,CAC1D,IAAM,EAAU,KAAK,UAAU,IAAI,CAAM,EACzC,GAAI,CAAC,EAAS,OAEd,IAAM,EAAM,EAAQ,IAAI,CAAG,EAC3B,GAAI,CAAC,EAAK,OAGM,IAAI,IAAI,CAAG,EACnB,QAAQ,CAAC,IAAW,CAC1B,GAAI,EAAO,OACT,GAAI,EAAO,UACT,EAAO,UAAU,CAAM,EAEvB,OAAO,EAGZ,EAII,IAAI,CAAC,EAA8B,CACxC,GAAI,EAAO,OACT,KAAK,QAAQ,CAAM,EACnB,EAAO,OAAS,GAGtB,CAGO,SAAS,EAA0B,CAAC,EAAc,CACvD,OAAO,EAAe,YAAY,EAAE,SAAS,CAAM,EAO9C,SAAS,CAAmB,CACjC,EACA,EACmB,CACnB,OAAO,EAAe,YAAY,EAAE,OAAO,EAAI,CAAO,EA0BjD,SAAS,CAAI,CAAC,EAA8B,CACjD,EAAe,YAAY,EAAE,KAAK,CAAM,EAkHnC,SAAS,EAAU,CAAC,EAAyB,CAClD,OAAO,EAAS,CAAK,GAAK,EAAgB,EAAO,CAAW,EC/nB9D,SAAS,EAAY,CAAC,EAAwB,CAC5C,IAAM,EAAW,EAAK,MAAM,GAAG,EAC/B,GACE,EAAK,SAAW,GAChB,EAAS,KACP,CAAC,IACC,EAAQ,SAAW,GACnB,IAAY,aACZ,IAAY,aACZ,IAAY,aAChB,EAEA,MAAU,MAAM,uBAAuB,IAAO,EAEhD,OAAO,EAGT,SAAS,EAAQ,CAAC,EAAqC,CACrD,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,CAAC,MAAM,QAAQ,CAAK,EAG5E,SAAS,EAAM,CAAC,EAAe,EAAsB,CACnD,OAAO,OAAO,UAAU,eAAe,KAAK,EAAO,CAAG,EAGjD,SAAS,EAAS,CAAC,EAA+B,CACvD,OAAO,OAAO,IAAY,SAAW,EAAU,EAAQ,KAGlD,SAAS,EAAa,CAAC,EAAmB,EAAuB,CACtE,IAAI,EAAiB,EAErB,QAAW,KAAW,GAAa,CAAI,EAAG,CACxC,GAAI,CAAC,GAAS,CAAK,EACjB,MAAU,MAAM,uBAAuB,IAAO,EAEhD,GAAI,CAAC,GAAO,EAAO,CAAO,EAAG,CAC3B,GAAI,KAAW,EACb,MAAU,MAAM,uBAAuB,IAAO,EAEhD,OAEF,EAAQ,EAAM,GAGhB,OAAO,EAGF,SAAS,EAAa,CAC3B,EACA,EACA,EACM,CACN,IAAM,EAAW,GAAa,CAAI,EAC9B,EAAqB,EAEzB,QAAW,KAAW,EAAS,MAAM,EAAG,EAAE,EAAG,CAC3C,GAAI,CAAC,GAAO,EAAQ,CAAO,EAAG,CAC5B,GAAI,KAAW,EACb,MAAU,MAAM,uBAAuB,IAAO,EAEhD,EAAO,GAAW,CAAC,EACd,QAAI,CAAC,GAAS,EAAO,EAAQ,EAClC,MAAU,MAAM,uBAAuB,IAAO,EAEhD,IAAM,EAAa,EAAO,GAC1B,GAAI,CAAC,GAAS,CAAU,EACtB,MAAU,MAAM,uBAAuB,IAAO,EAEhD,EAAS,EAGX,IAAM,EAAc,EAAS,EAAS,OAAS,GAC/C,EAAO,GAAe,EAGxB,SAAS,EAAY,CAAC,EAAuB,EAAwB,CACnE,GAAI,OAAO,IAAY,UAAY,EAAQ,OACzC,OAAO,EAAQ,OAAO,CAAK,EAE7B,OAAO,IAAU,QAAa,IAAU,KAAO,GAAK,OAAO,CAAK,EAGlE,SAAS,EAAY,CAAC,EAAuB,EAAyB,CACpE,GAAI,OAAO,IAAY,UAAY,EAAQ,MACzC,OAAO,EAAQ,MAAM,CAAK,EAE5B,OAAO,EAGT,SAAS,EAAW,CAClB,EACA,EACA,EACM,CACN,GAAI,aAAmB,iBAAkB,CACvC,GAAI,EAAQ,OAAS,WAAY,CAC/B,EAAQ,QAAU,MAAM,QAAQ,CAAK,EACjC,EAAM,KAAK,CAAC,IAAS,OAAO,CAAI,IAAM,EAAQ,KAAK,EACnD,QAAQ,CAAK,EACjB,OAEF,GAAI,EAAQ,OAAS,QAAS,CAC5B,EAAQ,QAAU,IAAU,EAAQ,MACpC,OAEF,EAAQ,MAAQ,GAAa,EAAS,CAAK,EAC3C,OAGF,GAAI,aAAmB,oBAAqB,CAC1C,EAAQ,MAAQ,GAAa,EAAS,CAAK,EAC3C,OAGF,GAAI,aAAmB,kBAAmB,CACxC,GAAI,EAAQ,SAAU,CACpB,IAAM,EAAW,MAAM,QAAQ,CAAK,EAChC,IAAI,IAAI,EAAM,IAAI,MAAM,CAAC,EACzB,IAAI,IACR,QAAS,EAAQ,EAAG,EAAQ,EAAQ,QAAQ,OAAQ,GAAS,EAAG,CAC9D,IAAM,EAAS,EAAQ,QAAQ,KAAK,CAAK,EACzC,GAAI,CAAC,EACH,SAEF,EAAO,SAAW,EAAS,IAAI,EAAO,KAAK,EAE7C,OAEF,EAAQ,MAAQ,GAAa,EAAS,CAAK,GAI/C,SAAS,EAAY,CAAC,EAAsB,EAAgC,CAC1E,GAAI,aAAmB,iBAAkB,CACvC,GAAI,EAAQ,OAAS,WAAY,CAC/B,GAAI,MAAM,QAAQ,CAAY,EAAG,CAC/B,IAAM,EAAS,EAAa,OAC1B,CAAC,IAAU,OAAO,CAAK,IAAM,EAAQ,KACvC,EACA,OAAO,EAAQ,QAAU,CAAC,GAAG,EAAQ,EAAQ,KAAK,EAAI,EAExD,OAAO,EAAQ,QAEjB,GAAI,EAAQ,OAAS,QACnB,OAAO,EAAQ,QAAU,EAAQ,MAAQ,EAE3C,OAAO,EAAQ,MAEjB,GAAI,aAAmB,oBACrB,OAAO,EAAQ,MAEjB,GAAI,aAAmB,kBAAmB,CACxC,GAAI,CAAC,EAAQ,SACX,OAAO,EAAQ,MAEjB,IAAM,EAAmB,CAAC,EAC1B,QAAS,EAAQ,EAAG,EAAQ,EAAQ,gBAAgB,OAAQ,GAAS,EAAG,CACtE,IAAM,EAAS,EAAQ,gBAAgB,KAAK,CAAK,EACjD,GAAI,EACF,EAAO,KAAK,EAAO,KAAK,EAG5B,OAAO,EAET,OAGK,MAAM,EAAuB,CACjB,SAAW,IAAI,QAEzB,IAAI,CACT,EACA,EACA,EACM,CACN,GAAI,CAAC,KAAK,mBAAmB,CAAO,EAClC,OAGF,IAAM,EAAW,KAAK,SAAS,IAAI,CAAO,EAC1C,GAAI,GAAY,KAAK,YAAY,EAAU,CAAO,EAChD,OAEF,KAAK,QAAQ,CAAO,EAEpB,IAAM,EAAO,GAAU,CAAO,EACxB,EAAO,IACX,GAAY,EAAS,EAAS,GAAc,EAAO,CAAI,CAAC,EACpD,EACJ,aAAmB,qBAClB,aAAmB,kBAClB,CAAC,CAAC,WAAY,OAAO,EAAE,SAAS,EAAQ,IAAI,EAC1C,QACA,SACA,EAAW,IAAY,CAC3B,IAAM,EAAe,GAAc,EAAO,CAAI,EAC9C,GACE,EACA,EACA,GAAa,EAAS,GAAa,EAAS,CAAY,CAAC,CAC3D,GAGF,EAAQ,iBAAiB,EAAW,CAAQ,EAC5C,IAAM,EAAY,EAAO,CAAI,EAC7B,KAAK,SAAS,IAAI,EAAS,CACzB,UACA,OACA,MAAO,OAAO,IAAY,SAAW,OAAY,EAAQ,MACzD,OAAQ,OAAO,IAAY,SAAW,OAAY,EAAQ,OAC1D,YACA,WACA,OAAQ,CACV,CAAC,EAGI,OAAO,CAAC,EAA4B,CACzC,IAAM,EAAW,KAAK,SAAS,IAAI,CAAO,EAC1C,GAAI,CAAC,EACH,OAEF,EAAQ,oBAAoB,EAAS,UAAW,EAAS,QAAQ,EACjE,EAAK,EAAS,MAAM,EACpB,KAAK,SAAS,OAAO,CAAO,EAGtB,kBAAkB,CAAC,EAA+B,CACxD,OACE,aAAmB,kBACnB,aAAmB,qBACnB,aAAmB,kBAIf,WAAW,CAAC,EAAuB,EAAgC,CACzE,GAAI,OAAO,EAAO,UAAY,UAAY,OAAO,IAAY,SAC3D,OAAO,EAAO,UAAY,EAE5B,OACE,EAAO,OAAS,EAAQ,MACxB,EAAO,QAAU,EAAQ,OACzB,EAAO,SAAW,EAAQ,OAGhC,CCpQO,IAAM,GACX,iDAEI,GAAc,wBAGb,SAAS,EAAU,CAAC,EAAgC,CACzD,OAAO,OAAO,CAAK,EAAE,QACnB,GACA,CAAC,EAAQ,IAAmB,QAAQ,oBACtC,ECVK,SAAS,EAAW,CAAC,EAAsB,CAChD,MAAO,WAAW,KAAK,CAAG,GAAK,WAAW,KAAK,CAAG,EAG7C,SAAS,EAAiB,CAAC,EAAqB,CACrD,OAAO,EAAI,MAAM,CAAC,EAAE,YAAY,EAG3B,SAAS,EAAc,CAAC,EAAgC,CAC7D,IAAO,KAAc,GAAa,EAAM,MAAM,GAAG,EACjD,MAAO,CAAE,YAAW,UAAW,IAAI,IAAI,CAAS,CAAE,EAG7C,SAAS,EAAgB,CAC9B,EACA,EACe,CACf,IAAM,EAAe,CAAC,IAAuB,CAC3C,GAAI,EAAU,IAAI,MAAM,EACtB,EAAM,gBAAgB,EAGxB,GAAI,EAAU,IAAI,SAAS,EACzB,EAAM,eAAe,EAGvB,GAAI,EAAU,IAAI,MAAM,GAAK,EAAM,gBAAkB,EAAM,OACzD,OAGF,GAAI,EAAU,IAAI,MAAM,EACrB,EAAM,cAA8B,oBACnC,EAAM,KACN,CACF,EAGF,EAAQ,CAAK,GAGf,OAAO,EAGF,SAAS,EAAa,CAC3B,EACA,EACA,EACM,CACN,IAAM,EAAc,EAAS,SAAS,GAAG,EACrC,EACA,EAAS,QAAQ,SAAU,CAAC,IAAU,IAAI,EAAM,YAAY,GAAG,EAEnE,EAAM,YAAY,EAAa,GAAW,CAAK,CAAC,EClD3C,MAAM,EAAa,CACjB,aAAwC,KACxC,OAAoC,IAAI,IAE/C,WAAW,EAAG,EAIP,QAAQ,CAAC,EAAc,EAA6B,CACzD,KAAK,OAAO,IAAI,EAAM,CAAO,EAC7B,KAAK,aAAa,EAGb,WAAW,CAAC,EAAoB,CACrC,KAAK,OAAO,OAAO,CAAI,EACvB,KAAK,aAAa,EAGb,WAAW,EAAS,CAEzB,GADA,KAAK,OAAO,MAAM,EACd,KAAK,aACP,KAAK,aAAa,YAAc,GAI7B,OAAO,EAAS,CAErB,GADA,KAAK,YAAY,EACb,KAAK,aACP,KAAK,aAAa,OAAO,EACzB,KAAK,aAAe,KAIhB,kBAAkB,EAAqB,CAC7C,GAAI,CAAC,KAAK,aAAc,CACtB,IAAM,EAAU,SAAS,cAAc,OAAO,EAC9C,SAAS,KAAK,YAAY,CAAO,EACjC,KAAK,aAAe,EAEtB,OAAO,KAAK,aAGN,YAAY,CAAC,EAAqD,CACxE,OAAO,OAAO,QAAQ,CAAU,EAC7B,IAAI,EAAE,EAAK,KAEH,GADQ,EAAI,QAAQ,WAAY,KAAK,EAAE,YAAY,MACrC,GAAW,CAAK,IACtC,EACA,KAAK;AAAA,CAAI,EAGN,YAAY,EAAS,CAC3B,GAAI,KAAK,OAAO,OAAS,EAAG,CAC1B,GAAI,KAAK,aACP,KAAK,aAAa,YAAc,GAElC,OAGF,IAAM,EAAU,KAAK,mBAAmB,EACpC,EAAU,GAAgB;AAAA,EAE9B,KAAK,OAAO,QAAQ,CAAC,IAAU,CAK7B,GAHA,GAAW,GAAG,EAAM;AAAA,EAAe,KAAK,aAAa,EAAM,UAAU;AAAA;AAAA,EAGjE,EAAM,MACR,GAAW,GAAG,EAAM;AAAA,EAAqB,KAAK,aAAa,EAAM,KAAK;AAAA;AAAA,EAIxE,GAAI,EAAM,MACR,OAAO,QAAQ,EAAM,KAAK,EAAE,QAAQ,EAAE,EAAO,KAAgB,CAC3D,GAAW,UAAU;AAAA,EAAY,EAAM;AAAA,EAAe,KAAK,aAAa,CAAU;AAAA;AAAA;AAAA,EACnF,EAEJ,EAED,EAAQ,YAAc,EAE1B,CClFO,MAAM,CAAe,CAIP,MAHX,SAA8B,CAAC,EACtB,cAAgB,aAEjC,WAAW,CAAQ,EAAe,CAAf,aACjB,GAAI,CAAC,GAAS,OAAO,IAAU,SAC7B,MAAU,MAAM,8CAA8C,EAS3D,aAAa,CAAC,EAAoB,CACvC,GAAI,OAAO,IAAS,SAClB,EAAO,OAAO,CAAI,EAGpB,IAAM,EAAW,SAAS,eAAe,EAAE,EAC3C,KAAK,cAAc,UAAY,EAC/B,IAAM,EAAU,MAAM,KAAK,EAAK,SAAS,KAAK,aAAa,CAAC,EAE5D,GAAI,GAAW,EAAQ,OAAS,EAC9B,KAAK,sBAAsB,EAAU,EAAM,CAAO,EAGlD,OAAS,YAAc,EAGzB,OAAO,EAMD,qBAAqB,CAC3B,EACA,EACA,EACM,CAEN,IAAM,EAAO,IAAI,IAGX,EAAc,KAAK,iBAAiB,EAAc,EAAS,CAAI,EACrE,EAAK,YAAc,EAGnB,IAAM,EAAW,EAAO,IAAM,CAC5B,GAAI,CACF,IAAM,EAAc,KAAK,iBAAiB,EAAc,EAAS,CAAI,EACrE,GAAI,EAAK,cAAgB,EACvB,EAAK,YAAc,EAErB,MAAO,EAAO,CACd,QAAQ,MAAM,yBAA0B,CAAK,EAC7C,EAAK,YAAc,UAAU,aAAiB,MAAQ,EAAM,QAAU,mBAEzE,EAGD,KAAK,SAAS,KAAK,CACjB,OACA,eACA,OAAQ,CACV,CAAC,EAMK,gBAAgB,CACtB,EACA,EACA,EACQ,CACR,IAAI,EAAS,EAgBb,OAdA,EAAQ,QAAQ,CAAC,IAAU,CACzB,IAAM,EAAM,EAAM,IAAI,KAAK,EAC3B,GAAI,EAAK,CACP,EAAK,IAAI,CAAG,EAGZ,IAAM,EAAQ,KAAK,kBAAkB,CAAG,EAElC,EACJ,IAAU,QAAa,IAAU,KAAO,GAAK,OAAO,CAAK,EAC3D,EAAS,EAAO,QAAQ,EAAM,GAAI,CAAY,GAEjD,EAEM,EAMD,iBAAiB,CAAC,EAA0B,CAClD,GAAI,CAAC,EAAS,OAGd,IAAM,EAAO,EAAQ,MAAM,GAAG,EAC1B,EAAiB,KAAK,MAE1B,QAAW,KAAO,EAAM,CACtB,GAAI,CAAC,GAAS,OAAO,IAAU,SAC7B,OAEF,EAAS,EAAkC,GAG7C,OAAO,EAMF,aAAa,EAAS,CAE3B,KAAK,SAAS,QAAQ,CAAC,IAAY,CACjC,EAAK,EAAQ,MAAM,EACpB,EACD,KAAK,SAAW,CAAC,EAMZ,eAAe,EAAW,CAC/B,OAAO,KAAK,SAAS,OAMhB,cAAc,CAAC,EAAuB,CAE3C,OADA,KAAK,cAAc,UAAY,EACxB,KAAK,cAAc,KAAK,CAAI,EAM9B,WAAW,CAAC,EAAwB,CACzC,IAAM,EAAiB,CAAC,EACpB,EACE,EAAQ,IAAI,OAAO,KAAK,cAAe,GAAG,EAEhD,OAAQ,EAAQ,EAAM,KAAK,CAAI,KAAO,KAAM,CAC1C,IAAM,EAAM,EAAM,IAAI,KAAK,EAC3B,GAAI,EACF,EAAK,KAAK,CAAG,EAIjB,OAAO,EAMF,qBAAqB,CAAC,EAAsB,CACjD,KAAK,cAAc,UAAY,EAC/B,IAAM,EAAU,MAAM,KAAK,EAAK,SAAS,KAAK,aAAa,CAAC,EAC5D,GAAI,CAAC,GAAW,EAAQ,SAAW,EACjC,OAAO,EAGT,IAAM,EAAO,IAAI,IACjB,OAAO,KAAK,iBAAiB,EAAM,EAAS,CAAI,EAEpD,CC5IO,MAAe,CAGS,CAmBP,MAlBd,MAAsB,KACpB,GAAkB,KACX,SAAW,IAAI,GACf,eACA,gBAAkB,IAAI,IACtB,eACf,CAAC,EACc,UAAY,IAAI,IAChB,aACT,WAAsB,KACtB,gBAA4C,KAC5C,sBACwD,KAEtD,aACH,MACA,QAAU,GAEjB,WAAW,CAAW,EAAgB,CAAC,EAAa,CAA9B,aACpB,KAAK,aAAe,IAAI,GACxB,KAAK,MAAQ,GAAS,KAAK,UAAU,GAAK,CAAC,CAAC,EAC5C,KAAK,eAAiB,IAAI,EAAe,KAAK,KAAK,EACnD,KAAK,WAAW,EAEhB,KAAK,aAAe,EAClB,IAAM,CAGJ,GAAI,KAAK,QACP,GAAI,CACF,KAAK,OAAO,EACZ,MAAO,EAAO,CACd,GAAI,CAAC,KAAK,cAAc,CAAK,EAC3B,MAAM,IAKd,CACE,aAAc,GAEd,UAAW,CAAC,IAAiB,CAC3B,GAAkB,QAAQ,CAAY,EAE1C,CACF,EAOK,KAAK,CAAC,EAA8B,CACzC,GAAI,CAAC,GAAa,EAAE,aAAqB,aACvC,MAAU,MAAM,2BAA2B,EAG7C,GAAI,CACF,EAAU,YAAY,KAAK,YAAY,CAAC,EACxC,MAAO,EAAO,CAEd,MADA,QAAQ,MAAM,UAAW,CAAK,EACxB,GAIH,WAAW,EAAS,CACzB,GAAI,KAAK,SAAW,KAAK,GACvB,OAAO,KAAK,GAuBd,OApBA,KAAK,YAAY,EAGjB,KAAK,GAAK,EAAe,YAAY,EAAE,cACrC,KAAK,aACL,IAAM,CACJ,GAAI,CAEF,OADA,KAAK,MAAQ,KAAK,OAAO,EAClB,KAAK,SAAS,MAAM,KAAK,MAAO,KAAK,oBAAoB,CAAC,EACjE,MAAO,EAAO,CAEd,GAAI,KAAK,cAAc,CAAK,EAC1B,OAAO,SAAS,cAAc,gBAAgB,EAEhD,MAAM,GAGZ,EACA,KAAK,QAAU,GACf,KAAK,UAAU,EACR,KAAK,GAGP,MAAM,EAAS,CACpB,GAAI,CAAC,KAAK,IAAM,CAAC,KAAK,MACpB,OAGF,KAAK,aAAa,EAClB,IAAM,EAAe,KAAK,MACpB,EAAiB,KAAK,GAgB5B,GAdA,KAAK,GAAK,EAAe,YAAY,EAAE,cACrC,KAAK,aACL,IAAM,CACJ,IAAM,EAAW,KAAK,OAAO,EACvB,EAAc,KAAK,SAAS,MAChC,EACA,EACA,EACA,KAAK,oBAAoB,CAC3B,EAEA,OADA,KAAK,MAAQ,EACN,EAEX,EACI,IAAmB,KAAK,GAC1B,KAAK,wBAAwB,EAAgB,KAAK,EAAE,EAEtD,KAAK,UAAU,EACf,KAAK,cAAc,EAGd,OAAO,EAAS,CACrB,GAAI,CAAC,KAAK,QACR,OAKF,GAFA,KAAK,cAAc,EAEf,KAAK,OAAS,KAAK,GACrB,KAAK,SAAS,QAAQ,KAAK,MAAO,KAAK,GAAI,KAAK,oBAAoB,CAAC,EAevE,GAZA,KAAK,gBAAgB,MAAM,EAC3B,OAAO,KAAK,KAAK,cAAc,EAAE,QAAQ,CAAC,IAAc,CACtD,KAAK,eAAe,GAAW,MAAM,EACrC,OAAO,KAAK,eAAe,GAC5B,EACD,KAAK,UAAU,MAAM,EACrB,KAAK,gBAAkB,KACvB,KAAK,sBAAwB,KAC7B,KAAK,eAAe,cAAc,EAClC,KAAK,aAAa,QAAQ,EAC1B,EAAK,KAAK,YAAY,EAElB,KAAK,IAAI,WACX,KAAK,GAAG,WAAW,YAAY,KAAK,EAAE,EAGxC,KAAK,GAAK,KACV,KAAK,MAAQ,KACb,KAAK,QAAU,GACf,KAAK,YAAY,EAGZ,QAAQ,CAAC,EAA8B,CAM5C,GALA,KAAK,MAAQ,IACR,KAAK,SACL,CACL,EAEI,KAAK,QAEP,GAAkB,QAAQ,KAAK,YAAY,EAIxC,QAAQ,CAAC,EAA8B,CAC5C,OAAO,OAAO,KAAK,MAAO,CAAK,EAG1B,aAAa,CAAC,EAAwB,CAC3C,KAAK,WAAa,EAClB,KAAK,gBAAgB,QAAQ,CAAC,IAAU,CACtC,EAAM,gBAAgB,CAAO,EAC9B,EAGI,kBAAkB,CAAC,EAAwC,CAChE,KAAK,gBAAkB,EAGlB,kBAAkB,EAA6B,CACpD,OAAO,KAAK,gBAGP,wBAAwB,CAC7B,EACM,CACN,KAAK,sBAAwB,EAGxB,OAAU,CAAC,EAAsB,EAAgB,CACtD,KAAK,UAAU,IAAI,EAAK,CAAK,EAKxB,MAAS,CAAC,EAAsB,EAA6B,CAClE,IAAM,EAAS,KAAK,iBAAiB,CAAG,EACxC,OAAO,EAAO,MAAQ,EAAO,MAAQ,EAGhC,gBAAmB,CAAC,EAA0C,CACnE,GAAI,KAAK,UAAU,IAAI,CAAG,EACxB,MAAO,CAAE,MAAO,GAAM,MAAO,KAAK,UAAU,IAAI,CAAG,CAAmB,EAGxE,GAAI,KAAK,iBAAiB,iBACxB,OAAO,KAAK,gBAAgB,iBAAiB,CAAG,EAGlD,OAAO,KAAK,oBAAoB,CAAG,EAG9B,UAAU,EAAgB,CAC/B,OAAO,KAAK,GAGJ,WAAW,EAAS,EAEpB,SAAS,EAAS,EAElB,YAAY,EAAS,EAErB,SAAS,EAAS,EAElB,aAAa,EAAS,EAEtB,aAAa,EAAS,EAEtB,WAAW,EAAS,EAetB,aAAa,CAAC,EAAyB,CAC7C,IAAI,EAAoC,KAAK,mBAAmB,EAChE,MAAO,EAAS,CAEd,IAAM,EAAW,EACjB,GAAI,OAAO,EAAS,kBAAoB,YAEtC,GADgB,EAAS,gBAAgB,EAAO,IAAI,IACpC,GACd,MAAO,GAGX,EAAU,EAAQ,qBAAqB,GAAK,KAE9C,MAAO,GAGC,UAAU,EAAY,CAC9B,OAAO,KAAK,cAGA,OAAM,EAAG,CACrB,OAAO,KAAK,cAAc,KAAK,UAAU,GAAK,KAAK,uBAAuB,EAGlE,IAAI,CAAC,KAAsB,EAAuB,CAC1D,KAAK,eAAe,IAAY,QAAQ,CAAC,IAAa,CACpD,EAAS,GAAG,CAAI,EACjB,EAGI,EAAE,CAAC,EAAmB,EAA8C,CACzE,GAAI,CAAC,KAAK,eAAe,GACvB,KAAK,eAAe,GAAa,IAAI,IAIvC,OAFA,KAAK,eAAe,GAAW,IAAI,CAAQ,EAEpC,IAAM,KAAK,IAAI,EAAW,CAAQ,EAGpC,GAAG,CAAC,EAAmB,EAAwC,CACpE,KAAK,eAAe,IAAY,OAAO,CAAQ,EAGzC,mBAAmB,EAAyB,CAClD,MAAO,CACL,WAAY,KAAK,WACjB,eAAgB,KAAK,eACrB,SAAU,KAAK,SACf,MAAO,KAAK,aAAa,EACzB,cAAe,CAAC,IAAc,CAC5B,KAAK,gBAAgB,IAAI,CAAS,EAClC,EAAU,qBAAqB,IAAI,EACnC,EAAU,gBAAgB,KAAK,UAAU,GAE3C,gBAAiB,CAAC,IAAc,CAC9B,KAAK,gBAAgB,OAAO,CAAS,EACrC,EAAU,qBAAqB,IAAI,EAEvC,EAGM,YAAY,EAA0C,CAC5D,IAAM,EAA+C,CAAE,QAAS,CAAC,CAAE,EAanE,OAZiB,EACd,KAAK,MAA+C,QACvD,EAES,QAAQ,CAAC,IAAU,CAC1B,IAAM,EAAW,KAAK,YAAY,CAAK,EACvC,GAAI,CAAC,EAAM,GACT,EAAM,GAAY,CAAC,EAErB,EAAM,GAAU,KAAK,KAAK,mBAAmB,CAAK,CAAC,EACpD,EAEM,EAGD,WAAW,CAAC,EAA+B,CACjD,GAAI,OAAO,IAAU,SACnB,MAAO,UAGT,MAAO,SAAU,GAAS,OAAO,EAAM,OAAS,SAC5C,EAAM,KACN,UAGE,kBAAkB,CAAC,EAAuC,CAChE,GAAI,OAAO,IAAU,UAAY,EAAE,SAAU,GAC3C,OAAO,EAGT,IAAM,EAAQ,IAAK,CAAM,EAEzB,OADA,OAAO,EAAM,KACN,EAGD,aAAa,CAAC,EAAyB,CAC7C,GAAI,CAAC,GAAS,OAAO,IAAU,UAAY,EAAE,WAAY,GACvD,OAGF,OAAQ,EAA+B,OAGjC,sBAAsB,EAAY,CACxC,IAAM,EAAa,WAAqC,QACxD,OAAO,KAAK,cAAc,CAAS,EAG7B,mBAAsB,CAAC,EAA0C,CACvE,GAAI,CAAC,KAAK,YAAc,OAAO,KAAK,aAAe,SACjD,MAAO,CAAE,MAAO,GAAO,MAAO,MAAU,EAa1C,OATE,KAAK,WAOL,KAEU,mBAAmB,CAAG,GAAK,CAAE,MAAO,GAAO,MAAO,MAAU,EAE5E,CClaA,IAAI,GAAwB,KA+BrB,SAAS,EAAS,EAAkB,CACzC,OAAO,GCfF,IAAM,GAAgB,6BAOhB,GAAgC,IAAI,IAAI,CACnD,MACA,IACA,OACA,OACA,SACA,UACA,OACA,WACA,UACA,OACA,OACA,QACA,WACA,MACA,SACA,SACA,iBACA,iBACA,OACA,UACA,OACA,WACA,eACF,CAAC,EAEM,MAAM,EAEsB,CAChB,UAAY,IAAI,QAIhB,QAAU,IAAI,QACd,cAAgB,IAAI,GAE9B,OAAO,CAAC,EAAmC,CAChD,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,GAAW,CAAK,EAGjE,KAAK,CAAC,EAAc,EAAqC,CAC9D,GAAI,EAAM,YAAY,KAAO,GAC3B,OAAO,SAAS,cAAc,IAAI,EAKpC,IAAM,EAAc,EAAM,MAAQ,YAC5B,EAAU,EACZ,SAAS,cAAc,GAAG,EAC1B,GAAS,IAAI,EAAM,GAAG,EACpB,SAAS,gBAAgB,GAAe,EAAM,GAAG,EACjD,SAAS,cAAc,EAAM,GAAG,EAEhC,EAAQ,EAAM,OAAS,CAAC,EAC9B,GAAI,EAAa,CACf,IAAQ,IAAK,EAAW,SAAU,KAAc,GAAc,EACxD,EAAM,OAAO,IAAc,SAAW,EAAY,IACxD,EAAQ,aAAa,OAAQ,CAAG,EAChC,EAAQ,iBAAiB,QAAS,CAAC,IAAU,CAC3C,IAAM,EAAS,GAAU,EACzB,GAAI,EACF,EAAM,eAAe,EAChB,EAAO,KAAK,EAAQ,aAAa,MAAM,GAAK,GAAG,EAEvD,EACD,KAAK,WAAW,EAAS,CAAC,EAAG,EAAW,CAAO,EAE/C,UAAK,WAAW,EAAS,CAAC,EAAG,EAAO,CAAO,EAM7C,OAJA,KAAK,gBAAgB,EAAS,CAAC,EAAG,KAAK,iBAAiB,CAAK,CAAC,EAC9D,KAAK,cAAc,EAAS,EAAO,CAAO,EAC1C,KAAK,gBAAgB,EAAS,OAAW,EAAM,WAAY,CAAO,EAE3D,EAGF,KAAK,CACV,EACA,EACA,EACA,EACM,CACN,GACE,EAAS,MAAQ,EAAS,KAC1B,EAAY,WAAa,KAAK,aAC9B,CACA,IAAM,EAAW,KAAK,MAAM,EAAU,CAAO,EAG7C,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,KAAK,QAAQ,EAAU,EAAa,CAAO,EACpC,EAIT,GAAI,EAAE,aAAuB,SAC3B,OAAO,EAGT,GAAI,EAAS,YAAY,KAAO,GAAO,CACrC,IAAM,EAAW,SAAS,cAAc,IAAI,EAG5C,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,KAAK,QAAQ,EAAU,EAAa,CAAO,EACpC,EAKT,GADE,EAAS,MAAQ,aAAe,EAAS,MAAQ,YAClC,CACf,IAAM,EAAW,EAAS,OAAS,CAAC,EAC9B,EAAW,EAAS,OAAS,CAAC,EAC9B,EAAS,OAAO,EAAS,MAAQ,SAAW,EAAS,IAAM,GAC3D,EAAS,OAAO,EAAS,MAAQ,SAAW,EAAS,IAAM,GACjE,GAAI,IAAW,EACb,EAAY,aAAa,OAAQ,CAAM,EAEzC,IAAM,EAAS,IAAK,CAAS,EAC7B,OAAQ,EAA6B,IACrC,OAAQ,EAAkC,SAC1C,KAAK,WAAW,EAAa,EAAU,EAAQ,CAAO,EAEtD,UAAK,WACH,EACA,EAAS,OAAS,CAAC,EACnB,EAAS,OAAS,CAAC,EACnB,CACF,EAeF,OAbA,KAAK,gBACH,EACA,KAAK,iBAAiB,CAAQ,EAC9B,KAAK,iBAAiB,CAAQ,CAChC,EACA,KAAK,eAAe,EAAa,EAAU,EAAU,CAAO,EAC5D,KAAK,gBACH,EACA,EAAS,WACT,EAAS,WACT,CACF,EAEO,EAGF,OAAO,CACZ,EACA,EACA,EACM,CACN,GAAI,EAAE,aAAuB,SAC3B,OAGF,KAAK,QAAQ,IAAI,CAAW,GAAG,QAAQ,CAAC,IAAS,EAAK,CAAI,CAAC,EAC3D,KAAK,QAAQ,OAAO,CAAW,EAE/B,KAAK,UAAU,IAAI,CAAW,GAAG,QAAQ,EAAG,YAAW,cAAe,CACpE,EAAY,oBAAoB,EAAW,CAAQ,EACpD,EACD,KAAK,UAAU,OAAO,CAAW,EACjC,KAAK,cAAc,QAAQ,CAA0B,EACrD,KAAK,gBAAgB,EAAa,EAAO,CAAO,EAGxC,aAAa,CACrB,EACA,EACA,EACM,CACN,EAAW,EAAM,QAAQ,EAAE,QAAQ,CAAC,IAAU,CAC5C,EAAQ,YAAY,EAAQ,SAAS,MAAM,EAAO,CAAO,CAAC,EAC3D,EAGO,cAAc,CACtB,EACA,EACA,EACA,EACM,CACN,KAAK,uBACH,EACA,EAAW,EAAS,QAAQ,EAC5B,EAAW,EAAS,QAAQ,EAC5B,CACF,EAGQ,eAAe,CACvB,EACA,EACA,EACM,CACN,EAAW,EAAM,QAAQ,EAAE,QAAQ,CAAC,EAAO,IAAU,CACnD,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,EACF,EAAQ,SAAS,QAAQ,EAAO,EAAW,CAAO,EAErD,EAGK,UAAU,CAChB,EACA,EACA,EACA,EACM,CACN,OAAO,KAAK,CAAQ,EAAE,QAAQ,CAAC,IAAQ,CACrC,GAAI,GAAY,CAAG,GAAK,KAAO,EAC7B,OAGF,GAAI,IAAQ,aAAe,IAAQ,QACjC,EAAQ,gBAAgB,OAAO,EAC1B,QAAI,IAAQ,QACjB,EAAQ,gBAAgB,OAAO,EAC1B,QACL,IAAQ,SACR,OAAO,IAAY,UACnB,IAAY,MACZ,UAAW,EAEV,EAA4C,MAAQ,GAErD,OAAQ,gBAAgB,GAAc,CAAG,CAAC,EAE7C,EAED,OAAO,QAAQ,CAAQ,EAAE,QAAQ,EAAE,EAAK,KAAW,CACjD,GAAI,GAAY,CAAG,EACjB,OAIF,GAAI,EAAS,KAAS,EACpB,OAGF,GAAI,IAAQ,aAAe,IAAQ,QAAS,CAG1C,GAAI,EAAQ,eAAiB,GAC3B,EAAQ,aAAa,QAAS,OAAO,GAAS,EAAE,CAAC,EAEjD,KAAC,EAAwB,UAAY,OAAO,GAAS,EAAE,EAEzD,OAMF,GACE,IAAQ,SACR,OAAO,IAAY,UACnB,IAAY,MACZ,UAAW,EACX,CACC,EAA4C,MAAQ,OACnD,GAAS,EACX,EACA,OAGF,GAAI,IAAQ,SAAW,OAAO,IAAU,UAAY,IAAU,KAAM,CAClE,EAAQ,gBAAgB,OAAO,EAC/B,IAAM,EAAS,EAAwB,MACvC,OAAO,QAAQ,CAAK,EAAE,QAAQ,EAAE,EAAQ,KAAc,CACpD,GAAc,EAAO,EAAQ,CAAQ,EACtC,EACD,OAGF,GAAI,IAAU,IAAS,IAAU,QAAa,IAAU,KAAM,CAC5D,EAAQ,gBAAgB,GAAc,CAAG,CAAC,EAC1C,OAGF,GAAI,IAAU,GAAM,CAClB,EAAQ,aAAa,GAAc,CAAG,EAAG,EAAE,EAC3C,OAGF,GACE,OAAO,IAAU,UACjB,EAAQ,eAAe,eAAe,CAAK,EAC3C,CACA,KAAK,uBAAuB,EAAS,EAAK,EAAO,CAAO,EACxD,OAGF,EAAQ,aAAa,GAAc,CAAG,EAAG,OAAO,CAAK,CAAC,EACvD,EAGK,eAAe,CACrB,EACA,EACA,EACA,EACM,CACN,GAAI,GAAiB,SAAU,EAC5B,EAAwB,MAAM,QAAU,EAAc,KAAO,GAAK,OAC9D,QAAI,GAAiB,SAAU,EACnC,EAAwB,MAAM,QAAU,GAG3C,GAAI,CAAC,GAAe,MAAO,CACzB,KAAK,cAAc,QAAQ,CAAsB,EACjD,OAGF,KAAK,cAAc,KACjB,EACA,EAAc,MACd,EAAQ,eAAe,KACzB,EAGM,sBAAsB,CAC5B,EACA,EACA,EACA,EACM,CAIN,GAHA,KAAK,sBAAsB,CAAW,EACtC,KAAK,sBAAsB,CAAW,EAElC,KAAK,qBAAqB,EAAa,CAAW,EAAG,CACvD,KAAK,oBAAoB,EAAS,EAAa,EAAa,CAAO,EACnE,OAGF,IAAM,EAAe,KAAK,IAAI,EAAY,OAAQ,EAAY,MAAM,EAEpE,QAAS,EAAQ,EAAG,EAAQ,EAAc,GAAS,EAAG,CACpD,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,CAAC,EAAW,CACd,EAAQ,YACN,EAAQ,SAAS,MAAM,EAAY,GAAQ,CAAO,CACpD,EACA,SAEF,EAAQ,SAAS,MACf,EAAY,GACZ,EAAY,GACZ,EACA,CACF,EAGF,QAAS,EAAQ,EAAc,EAAQ,EAAY,OAAQ,GAAS,EAClE,EAAQ,YAAY,EAAQ,SAAS,MAAM,EAAY,GAAQ,CAAO,CAAC,EAGzE,QACM,EAAQ,EAAY,OAAS,EACjC,GAAS,EAAY,OACrB,GAAS,EACT,CACA,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,GAEF,GADA,EAAQ,SAAS,QAAQ,EAAY,GAAQ,EAAW,CAAO,EAC3D,EAAU,aAAe,EAC3B,EAAQ,YAAY,CAAS,IAM7B,mBAAmB,CACzB,EACA,EACA,EACA,EACM,CACN,IAAM,EAAa,EAAY,IAAI,CAAC,EAAO,KAAW,CACpD,QACA,KAAM,EAAQ,WAAW,GACzB,OACF,EAAE,EACI,EAAkB,IAAI,IAItB,EAAiB,IAAI,IAE3B,EAAW,QAAQ,CAAC,IAAU,CAC5B,IAAM,EAAM,KAAK,YAAY,EAAM,KAAK,EACxC,GAAI,IAAQ,QAAa,EAAM,KAC7B,EAAgB,IAAI,EAAK,CACvB,MAAO,EAAM,MACb,KAAM,EAAM,KACZ,MAAO,EAAM,KACf,CAAC,EAEJ,EAED,EAAY,QAAQ,CAAC,EAAU,IAAa,CAC1C,IAAM,EAAM,KAAK,YAAY,CAAQ,EAC/B,EAAW,IAAQ,OAAY,OAAY,EAAgB,IAAI,CAAG,EACpE,EAEJ,GAAI,EACF,EAAW,EAAQ,SAAS,MAC1B,EAAS,MACT,EACA,EAAS,KACT,CACF,EACA,EAAe,IAAI,EAAS,KAAK,EAEjC,OAAW,EAAQ,SAAS,MAAM,EAAU,CAAO,EAGrD,IAAM,EAAgB,EAAQ,WAAW,IAAa,KACtD,GAAI,IAAa,EACf,EAAQ,aAAa,EAAU,CAAa,EAE/C,EAED,EAAW,QAAQ,CAAC,IAAU,CAC5B,GAAI,CAAC,EAAM,MAAQ,EAAe,IAAI,EAAM,KAAK,EAC/C,OAIF,GADA,EAAQ,SAAS,QAAQ,EAAM,MAAO,EAAM,KAAM,CAAO,EACrD,EAAM,KAAK,aAAe,EAC5B,EAAQ,YAAY,EAAM,IAAI,EAEjC,EAGK,oBAAoB,CAC1B,EACA,EACS,CACT,MAAO,CAAC,GAAG,EAAa,GAAG,CAAW,EAAE,MACtC,CAAC,IAAU,KAAK,YAAY,CAAK,IAAM,MACzC,EAGM,qBAAqB,CAAC,EAAuC,CACnE,IAAM,EAAO,IAAI,IAEjB,EAAS,QAAQ,CAAC,IAAU,CAC1B,IAAM,EAAM,KAAK,YAAY,CAAK,EAClC,GAAI,IAAQ,OACV,OAGF,GAAI,EAAK,IAAI,CAAG,EACd,MAAU,MAAM,kBAAkB,IAAM,EAG1C,EAAK,IAAI,CAAG,EACb,EAGK,WAAW,CAAC,EAAoD,CACtE,GAAI,OAAO,IAAU,SACnB,OAGF,OAAO,EAAM,IAGP,gBAAgB,CAAC,EAAiC,CACxD,IAAM,EAA4B,CAAC,EAQnC,OANA,OAAO,QAAQ,EAAM,OAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAK,KAAW,CAC1D,GAAI,GAAY,CAAG,GAAK,OAAO,IAAU,WACvC,EAAU,GAAkB,CAAG,GAAK,EAEvC,EAEM,IACF,KACC,EAAM,WAAa,CAAC,CAC1B,EAGM,eAAe,CACrB,EACA,EACA,EACM,CACN,IAAM,EAAQ,KAAK,UAAU,IAAI,CAAO,GAAK,IAAI,IAC3C,EAAU,IAAI,IAAI,OAAO,KAAK,CAAY,CAAC,EAC3C,EAAU,IAAI,IAAI,OAAO,KAAK,CAAY,CAAC,EAEjD,EAAQ,QAAQ,CAAC,IAAU,CACzB,GAAI,CAAC,EAAQ,IAAI,CAAK,GAAK,EAAa,KAAW,EAAa,GAAQ,CACtE,IAAM,EAAS,EAAM,IAAI,CAAK,EAC9B,GAAI,EACF,EAAQ,oBAAoB,EAAO,UAAW,EAAO,QAAQ,EAC7D,EAAM,OAAO,CAAK,GAGvB,EAED,EAAQ,QAAQ,CAAC,IAAU,CACzB,GAAI,CAAC,EAAQ,IAAI,CAAK,GAAK,EAAa,KAAW,EAAa,GAAQ,CACtE,IAAQ,YAAW,aAAc,GAAe,CAAK,EAG/C,EACJ,OAAO,EAAQ,UAAY,UAC3B,EAAQ,QAAQ,YAAY,IAAM,WAC9B,EAAW,IAAc,WAAa,CAAC,EAAa,UAAY,EAChE,EAAW,GACf,CAAC,IAAuB,CACtB,GAAI,IAAa,WAEf,GADa,EAA8B,MAC/B,QACV,OAGJ,EAAa,GAAO,CAAW,GAEjC,CACF,EACA,EAAQ,iBAAiB,EAAU,CAAQ,EAC3C,EAAM,IAAI,EAAO,CAAE,UAAW,EAAU,UAAS,CAAC,GAErD,EAED,KAAK,UAAU,IAAI,EAAS,CAAK,EAG3B,sBAAsB,CAC5B,EACA,EACA,EACA,EACM,CACN,IAAM,EAAY,EAAO,IAAM,CAC7B,EAAQ,aACN,EACA,EAAQ,eAAe,sBAAsB,CAAS,CACxD,EACD,EAED,KAAK,YAAY,EAAS,CAAS,EAG7B,WAAW,CAAC,EAAkB,EAAiC,CACrE,IAAM,EAAU,KAAK,QAAQ,IAAI,CAAO,GAAK,IAAI,IACjD,EAAQ,IAAI,CAAS,EACrB,KAAK,QAAQ,IAAI,EAAS,CAAO,EAErC,CAGA,SAAS,EAAa,CAAC,EAAqB,CAC1C,GAAI,EAAI,WAAW,MAAM,GAAK,EAAI,OAAS,EACzC,MAAO,OAAO,EACX,MAAM,CAAC,EACP,QAAQ,SAAU,CAAC,IAAU,IAAI,EAAM,YAAY,GAAG,IAG3D,GAAI,IAAQ,YAAc,IAAQ,WAAa,IAAQ,UACrD,OAAO,EAAI,YAAY,EAEzB,OAAO,ECrjBF,MAAM,EAAgB,CACV,WAEjB,WAAW,EAAG,CACZ,KAAK,WAAa,CAChB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,EACN,EAGK,KAAK,CAAC,EAAmB,EAAqC,CACnE,OAAO,KAAK,aAAa,CAAK,EAAE,MAAM,EAAgB,CAAO,EAGxD,KAAK,CACV,EACA,EACA,EACA,EACM,CACN,IAAM,EAAc,KAAK,aAAa,CAAQ,EACxC,EAAc,KAAK,aAAa,CAAQ,EAE9C,GAAI,IAAgB,EAAa,CAC/B,IAAM,EAAW,EAAY,MAAM,EAAmB,CAAO,EAG7D,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,EAAY,QAAQ,EAAmB,EAAa,CAAO,EACpD,EAGT,OAAO,EAAY,MACjB,EACA,EACA,EACA,CACF,EAGK,OAAO,CACZ,EACA,EACA,EACM,CACN,KAAK,aAAa,CAAK,EAAE,QAAQ,EAAgB,EAAa,CAAO,EAG/D,YAAY,CAAC,EAAmC,CACtD,IAAM,EAAW,KAAK,WAAW,KAAK,CAAC,IAAS,EAAK,QAAQ,CAAK,CAAC,EACnE,GAAI,CAAC,EACH,MAAU,MAAM,oCAAoC,EAEtD,OAAO,EAEX,CAEO,MAAM,EAAqD,CACzD,OAAO,CAAC,EAAoC,CACjD,OAAO,OAAO,IAAU,SAGnB,KAAK,CAAC,EAAe,EAAqC,CAC/D,OAAO,EAAQ,eAAe,cAAc,CAAK,EAG5C,KAAK,CACV,EACA,EACA,EACA,EACM,CACN,GAAI,IAAa,EACf,OAAO,EAGT,IAAM,EAAW,KAAK,MAAM,EAAU,CAAO,EAE7C,OADA,EAAY,YAAY,aAAa,EAAU,CAAW,EACnD,EAGF,OAAO,EAAS,EACzB,CAEO,MAAM,EAAiE,CAC3D,UAAY,IAAI,QAChB,cAAgB,IAAI,IACpB,qBAAuB,IAAI,QAKrC,OAAO,CAAC,EAA2C,CACxD,OACE,OAAO,IAAU,UAAY,IAAU,MAAQ,GAAgB,CAAK,EAIjE,KAAK,CAAC,EAAsB,EAAqC,CACtE,GAAI,EAAM,YAAY,KAAO,GAC3B,OAAO,SAAS,cAAc,IAAI,EAMpC,IAAM,EAAW,IAHM,EAAM,UAGO,KAAK,YAAY,CAAK,CAAC,EAE3D,GAAI,EAAQ,YAAc,EAAS,cACjC,EAAS,cAAc,EAAQ,UAAU,EAG3C,KAAK,aAAa,EAAU,EAAM,UAAY,CAAC,CAAC,EAEhD,EAAQ,cAAc,CAAQ,EAE9B,IAAM,EAAO,EAAS,YAAY,EAMlC,OALA,KAAK,kBAAkB,EAAU,CAAI,EACrC,EAAS,2BAA2B,CAAC,EAAc,IAAa,CAC9D,KAAK,kBAAkB,EAAU,CAAY,EAC7C,KAAK,kBAAkB,EAAU,CAAQ,EAC1C,EACM,EAGF,KAAK,CACV,EACA,EACA,EACA,EACM,CACN,GAAI,EAAY,WAAa,KAAK,aAAc,CAC9C,IAAM,EAAW,KAAK,MAAM,EAAU,CAAO,EAE7C,OADA,EAAY,YAAY,aAAa,EAAU,CAAW,EACnD,EAGT,GAAI,EAAS,YAAY,KAAO,GAAO,CACrC,IAAM,EAAW,SAAS,cAAc,IAAI,EAG5C,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,KAAK,QAAQ,EAAU,EAAa,CAAO,EACpC,EAGT,IAAM,EAAW,KAAK,UAAU,IAAI,CAAW,EAE/C,GAAI,GAAY,EAAS,YAAc,EAAS,UAAW,CACzD,KAAK,aAAa,EAAU,EAAS,UAAY,CAAC,CAAC,EACnD,EAAS,SAAS,KAAK,YAAY,CAAQ,CAAC,EAC5C,IAAM,EAAW,EAAS,WAAW,GAAK,EAE1C,OADA,KAAK,kBAAkB,EAAU,CAAQ,EAClC,EAGT,IAAM,EAAW,KAAK,MAAM,EAAU,CAAO,EAG7C,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,KAAK,QAAQ,EAAU,EAAa,CAAO,EACpC,EAGF,OAAO,CACZ,EACA,EACA,EACM,CACN,IAAM,EAAW,KAAK,UAAU,IAAI,CAAW,EAC/C,GAAI,EACF,KAAK,cAAc,CAAQ,EAC3B,EAAS,QAAQ,EACjB,KAAK,mBAAmB,CAAQ,EAChC,EAAQ,gBAAgB,CAAQ,EAI5B,WAAW,CAAC,EAAsC,CACxD,MAAO,IACD,EAAM,OAAS,CAAC,EACpB,SAAU,EAAW,EAAM,QAAQ,CACrC,EAGM,YAAY,CAClB,EACA,EACM,CACN,IAAM,EAAU,KAAK,qBAAqB,IAAI,CAAQ,GAAK,IAAI,IAE/D,EAAQ,QAAQ,EAAG,SAAU,EAAiB,eAAe,IAAc,CACzE,IAAM,EAAW,EAAS,GAC1B,GAAI,CAAC,GAAY,IAAa,EAC5B,EAAY,EACZ,EAAQ,OAAO,CAAS,EAE3B,EAED,OAAO,QAAQ,CAAQ,EAAE,QAAQ,EAAE,EAAW,KAAc,CAC1D,GAAI,EAAQ,IAAI,CAAS,GAAG,WAAa,EACvC,OAGF,EAAQ,IAAI,EAAW,CACrB,WACA,YAAa,EAAS,GAAG,EAAW,CAAQ,CAC9C,CAAC,EACF,EAED,KAAK,qBAAqB,IAAI,EAAU,CAAO,EAGzC,aAAa,CAAC,EAAmC,CACvD,KAAK,qBAAqB,IAAI,CAAQ,GAAG,QAAQ,EAAG,iBAAkB,CACpE,EAAY,EACb,EACD,KAAK,qBAAqB,OAAO,CAAQ,EAGnC,iBAAiB,CAAC,EAA6B,EAAkB,CACvE,KAAK,UAAU,IAAI,EAAM,CAAQ,EACjC,IAAM,EAAQ,KAAK,cAAc,IAAI,CAAQ,GAAK,IAAI,IACtD,EAAM,IAAI,CAAI,EACd,KAAK,cAAc,IAAI,EAAU,CAAK,EAGhC,kBAAkB,CAAC,EAAmC,CAC5D,KAAK,cAAc,IAAI,CAAQ,GAAG,QAAQ,CAAC,IAAS,CAClD,KAAK,UAAU,OAAO,CAAI,EAC3B,EACD,KAAK,cAAc,OAAO,CAAQ,EAEtC,CAEO,MAAM,EAA2D,CACrD,iBAAmB,IAAI,QAKjC,OAAO,CAAC,EAA0C,CACvD,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,GAAe,CAAK,EAGrE,KAAK,CAAC,EAAqB,EAAqC,CACrE,GAAI,EAAM,YAAY,KAAO,GAC3B,OAAO,SAAS,cAAc,IAAI,EAGpC,IAAM,EAAgB,SAAS,cAAc,KAAK,EAOlD,OANA,EAAc,aAAa,YAAa,EAAM,MAAM,IAAI,EACxD,KAAK,kBACH,EACA,KAAK,gBAAgB,EAAO,CAAO,EACnC,CACF,EACO,EAGF,KAAK,CACV,EACA,EACA,EACA,EACM,CACN,GAAI,EAAY,WAAa,KAAK,aAAc,CAC9C,IAAM,EAAW,KAAK,MAAM,EAAU,CAAO,EAE7C,OADA,EAAY,YAAY,aAAa,EAAU,CAAW,EACnD,EAGT,GAAI,EAAS,YAAY,KAAO,GAAO,CACrC,IAAM,EAAW,SAAS,cAAc,IAAI,EAG5C,OAFA,EAAY,YAAY,aAAa,EAAU,CAAW,EAC1D,KAAK,QAAQ,EAAU,EAAa,CAAO,EACpC,EAGT,GAAI,aAAuB,YACzB,EAAY,aAAa,YAAa,EAAS,MAAM,IAAI,EACzD,KAAK,oBAAoB,EAAa,EAAU,EAAU,CAAO,EAEnE,OAAO,EAGF,OAAO,CACZ,EACA,EACA,EACM,CACN,GAAI,EAAE,aAAuB,aAC3B,OAGF,KAAK,oBAAoB,EAAa,CAAO,EAC7C,KAAK,iBAAiB,OAAO,CAAW,EAGlC,eAAe,CACrB,EACA,EACuB,CACvB,OAAO,EAAQ,MAAM,EAAM,MAAM,OAAS,EAAW,EAAM,QAAQ,EAG7D,mBAAmB,CACzB,EACA,EACA,EACA,EACM,CACN,IAAM,EAAc,KAAK,iBAAiB,IAAI,CAAO,GAAK,CAAC,EACrD,EAAc,KAAK,gBAAgB,EAAU,CAAO,EACpD,EAAe,KAAK,IAAI,EAAY,OAAQ,EAAY,MAAM,EAIpE,QAAS,EAAQ,EAAG,EAAQ,EAAc,GAAS,EAAG,CACpD,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,CAAC,EAAW,CACd,EAAQ,YACN,EAAQ,SAAS,MAAM,EAAY,GAAQ,CAAO,CACpD,EACA,SAEF,EAAQ,SAAS,MACf,EAAY,GACZ,EAAY,GACZ,EACA,CACF,EAGF,QAAS,EAAQ,EAAc,EAAQ,EAAY,OAAQ,GAAS,EAClE,EAAQ,YAAY,EAAQ,SAAS,MAAM,EAAY,GAAQ,CAAO,CAAC,EAGzE,QACM,EAAQ,EAAY,OAAS,EACjC,GAAS,EAAY,OACrB,GAAS,EACT,CACA,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,GAEF,GADA,EAAQ,SAAS,QAAQ,EAAY,GAAQ,EAAW,CAAO,EAC3D,EAAU,aAAe,EAC3B,EAAQ,YAAY,CAAS,GAKnC,KAAK,iBAAiB,IAAI,EAAS,CAAW,EAGxC,iBAAiB,CACvB,EACA,EACA,EACM,CACN,EAAS,QAAQ,CAAC,IAAU,CAC1B,EAAQ,YAAY,EAAQ,SAAS,MAAM,EAAO,CAAO,CAAC,EAC3D,EACD,KAAK,iBAAiB,IAAI,EAAS,CAAQ,EAGrC,mBAAmB,CACzB,EACA,EACM,EACW,KAAK,iBAAiB,IAAI,CAAO,GAAK,CAAC,GAC/C,QAAQ,CAAC,EAAO,IAAU,CACjC,IAAM,EAAY,EAAQ,WAAW,GACrC,GAAI,EACF,EAAQ,SAAS,QAAQ,EAAO,EAAW,CAAO,EAErD,EAEL,CC7WO,MAAM,UAAqB,KAAM,CAC7B,KACA,OACA,SACA,MAEF,WAAW,CAAC,EAA8B,CAC/C,MAAM,EAAQ,OAAO,EACrB,KAAK,KAAO,eACZ,KAAK,KAAO,EAAQ,KACpB,KAAK,OAAS,EAAQ,OACtB,KAAK,SAAW,EAAQ,SACxB,KAAK,MAAQ,EAAQ,MAEzB,CC1CA,IAAM,GAAoC,IAAI,IAAI,CAChD,MACA,OACA,MACA,SACA,QACA,OACA,SACF,CAAC,EAGM,SAAS,EAAe,CAAC,EAAwC,CACtE,GAAI,IAAW,OACb,MAAO,MAET,IAAM,EAAa,EAAO,YAAY,EACtC,GAAI,CAAC,GAAa,IAAI,CAAU,EAC9B,MAAU,MAAM,4BAA4B,GAAQ,EAEtD,OAAO,EAGT,IAAM,GAAkB,0BAGjB,SAAS,EAAa,CAAC,EAAsB,CAClD,OAAO,GAAgB,KAAK,CAAG,EAI1B,SAAS,EAAW,CAAC,EAA6B,EAAqB,CAC5E,GAAI,CAAC,GAAW,GAAc,CAAG,EAC/B,OAAO,EAET,MAAO,GAAG,EAAQ,QAAQ,OAAQ,EAAE,KAAK,EAAI,QAAQ,OAAQ,EAAE,IAGjE,SAAS,EAAgB,CAAC,EAAwB,CAChD,GAAI,aAAiB,KACnB,OAAO,EAAM,YAAY,EAE3B,GAAI,OAAO,IAAU,SACnB,OAAO,KAAK,UAAU,CAAK,EAE7B,OAAO,OAAO,CAAK,EAOd,SAAS,EAAe,CAC7B,EACQ,CACR,GAAI,CAAC,EACH,MAAO,GAET,IAAM,EAAkB,CAAC,EAoBzB,OAnBA,OAAO,KAAK,CAAM,EAAE,QAAQ,CAAC,IAAQ,CACnC,IAAM,EAAQ,EAAO,GACrB,GAAI,IAAU,QAAa,IAAU,KACnC,OAEF,IAAM,EAAa,mBAAmB,CAAG,EACzC,GAAI,MAAM,QAAQ,CAAK,EAAG,CACxB,EAAM,QAAQ,CAAC,IAAS,CACtB,GAAI,IAAS,QAAa,IAAS,KACjC,OAEF,EAAM,KACJ,GAAG,KAAc,mBAAmB,GAAiB,CAAI,CAAC,GAC5D,EACD,EACD,OAEF,EAAM,KAAK,GAAG,KAAc,mBAAmB,GAAiB,CAAK,CAAC,GAAG,EAC1E,EACM,EAAM,KAAK,GAAG,EAIhB,SAAS,EAAQ,CACtB,EACA,EACA,EACQ,CACR,IAAM,EAAO,GAAY,EAAS,CAAG,EAC/B,EAAQ,GAAgB,CAAM,EACpC,GAAI,CAAC,EACH,OAAO,EAET,IAAM,EAAY,EAAK,SAAS,GAAG,EAAI,IAAM,IAC7C,MAAO,GAAG,IAAO,IAAY,IAG/B,SAAS,EAAoB,CAAC,EAAwC,CACpE,GAAI,IAAU,QAAa,IAAU,KACnC,OAEF,OAAO,OAAO,CAAK,EAOd,SAAS,CAAY,IACvB,EACqB,CACxB,IAAM,EAAiC,CAAC,EAClC,EAAa,IAAI,IAqBvB,OAnBA,EAAQ,QAAQ,CAAC,IAAW,CAC1B,GAAI,CAAC,EACH,OAEF,OAAO,KAAK,CAAM,EAAE,QAAQ,CAAC,IAAQ,CACnC,IAAM,EAAQ,GAAqB,EAAO,EAAI,EAC9C,GAAI,IAAU,OACZ,OAEF,IAAM,EAAQ,EAAI,YAAY,EACxB,EAAW,EAAW,IAAI,CAAK,EACrC,GAAI,IAAa,QAAa,IAAa,EACzC,OAAO,EAAO,GAEhB,EAAW,IAAI,EAAO,CAAG,EACzB,EAAO,GAAO,EACf,EACF,EAEM,EAGT,SAAS,EAAS,CAAC,EAAiC,EAAuB,CACzE,OAAO,OAAO,KAAK,CAAO,EAAE,KAC1B,CAAC,IAAQ,EAAI,YAAY,IAAM,EAAK,YAAY,CAClD,EASK,SAAS,EAAa,CAC3B,EACA,EACA,EACsB,CACtB,GAAI,IAAW,OAAS,IAAW,OACjC,OAEF,GAAI,IAAS,QAAa,IAAS,KACjC,OAEF,GAAI,OAAO,IAAS,SAClB,OAAO,EAET,GAAI,OAAO,SAAa,KAAe,aAAgB,SACrD,OAAO,EAET,GAAI,OAAO,KAAS,KAAe,aAAgB,KACjD,OAAO,EAET,GAAI,aAAgB,aAAe,YAAY,OAAO,CAAI,EACxD,OAAO,EAET,GAAI,CAAC,GAAU,EAAS,cAAc,EACpC,EAAQ,gBAAkB,mBAE5B,OAAO,KAAK,UAAU,CAAI,EClKrB,MAAM,EAAuC,CAClC,SAAW,WAEd,QAAU,CACrB,EAC6B,CAC7B,IAAM,EAAS,GAAgB,EAAO,MAAM,EACtC,EAAM,GAAS,EAAO,QAAS,EAAO,IAAK,EAAO,MAAM,EACxD,EAAU,EAAa,EAAO,OAAO,EACrC,EAAO,GAAc,EAAO,KAAM,EAAS,CAAM,EACjD,EAAa,IAAI,gBACnB,EAAW,GACX,EAAkB,GAClB,EAEJ,GAAI,EAAO,OACT,GAAI,EAAO,OAAO,QAChB,EAAkB,GAClB,EAAW,MAAM,EAEjB,OAAO,OAAO,iBACZ,QACA,IAAM,CACJ,EAAkB,GAClB,EAAW,MAAM,GAEnB,CAAE,KAAM,EAAK,CACf,EAIJ,GAAI,OAAO,EAAO,UAAY,UAAY,EAAO,QAAU,EACzD,EAAQ,WAAW,IAAM,CACvB,EAAW,GACX,EAAW,MAAM,GAChB,EAAO,OAAO,EAGnB,IAAM,EACJ,EAAO,cACN,EAAO,kBAAoB,GAAO,UAAY,eAEjD,GAAI,CACF,IAAM,EAAW,MAAM,MAAM,EAAK,CAChC,SACA,UACA,OACA,OAAQ,EAAW,OACnB,aACF,CAAC,EAEK,EAA0C,CAAC,EAMjD,OALA,EAAS,QAAQ,QAAQ,CAAC,EAAO,IAAQ,CACvC,EAAgB,GAAO,EACxB,EAGM,CACL,KAFW,MAAM,GAAe,EAAU,CAAM,EAGhD,WAAY,EAAS,OACrB,WAAY,EAAS,WACrB,QAAS,EACT,QACF,EACA,MAAO,EAAO,CACd,GAAI,EACF,MAAM,IAAI,EAAa,CACrB,KAAM,UACN,QAAS,yBAAyB,OAAO,EAAO,OAAO,MACvD,SACA,MAAO,CACT,CAAC,EAEH,GAAI,GAAmB,EAAW,OAAO,QACvC,MAAM,IAAI,EAAa,CACrB,KAAM,UACN,QAAS,kBACT,SACA,MAAO,CACT,CAAC,EAEH,MAAM,IAAI,EAAa,CACrB,KAAM,gBACN,QAAS,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAC9D,SACA,MAAO,CACT,CAAC,SACD,CACA,GAAI,IAAU,OACZ,aAAa,CAAK,GAI1B,CAEA,eAAe,EAAc,CAC3B,EACA,EACkB,CAClB,GAAI,EAAO,eAAiB,cAC1B,OAAO,EAAS,YAAY,EAE9B,IAAM,EAAO,MAAM,EAAS,KAAK,EACjC,GAAI,EAAO,WAAa,QAAU,CAAC,EACjC,OAAO,EAET,GAAI,CACF,OAAO,KAAK,MAAM,CAAI,EACtB,KAAM,CACN,OAAO,GCxHX,SAAS,EAAO,EAAS,CACvB,GAAI,OAAO,WAAe,IACxB,OAAO,WAET,GAAI,OAAO,KAAS,IAClB,OAAO,KAET,GAAI,OAAO,OAAW,IACpB,OAAO,OAET,MAAO,CAAC,EAaH,SAAS,EAAiB,CAC/B,EAC8B,CAC9B,IAAM,EAAM,GAAQ,EAAE,GACtB,OAAO,OAAO,IAAQ,UAAY,IAAQ,KACrC,EACD,KAOC,SAAS,EAAc,EAAqB,CACjD,GAAI,GAAc,IAAI,EACpB,MAAO,SAET,GAAI,GAAc,IAAI,EACpB,MAAO,SAET,GAAI,GAAc,IAAI,EACpB,MAAO,YAET,GAAI,OAAO,QAAU,WACnB,MAAO,MAET,MAAO,UAGT,SAAS,EAAa,CAAC,EAAmC,CACxD,IAAM,EAAM,GAAkB,CAAI,EAClC,OAAO,IAAQ,MAAQ,OAAO,EAAI,UAAY,WC/BzC,IAAM,GAAqC,CAChD,SAAU,SACV,WAAY,KACZ,YAAa,SACb,YAAa,aACb,oBAAqB,QACvB,EAEa,GAAqC,CAChD,SAAU,SACV,WAAY,KACZ,YAAa,UACb,YAAa,SACb,oBAAqB,SACvB,EAEa,GAAwC,CACnD,SAAU,YACV,WAAY,KACZ,YAAa,SACb,YAAa,aACb,oBAAqB,QACvB,EASO,MAAM,EAA6C,CAGpB,QAFpB,SAET,WAAW,CAAkB,EAA6B,CAA7B,eAClC,KAAK,SAAW,EAAQ,SAGnB,OAAU,CAAC,EAAuD,CACvE,IAAM,EAAM,GAAkB,KAAK,QAAQ,UAAU,EACrD,GAAI,CAAC,GAAO,OAAO,EAAI,UAAY,WACjC,OAAO,QAAQ,OACb,IAAI,EAAa,CACf,KAAM,uBACN,QAAS,GAAG,KAAK,QAAQ,6DACzB,QACF,CAAC,CACH,EAGF,IAAM,EAAY,EAAI,QAEtB,OAAO,IAAI,QAA4B,CAAC,EAAS,IAAW,CAC1D,IAAI,EAAW,GACX,EAAU,GACV,EACA,EAGE,EAAS,CAAC,IAAyB,CACvC,GAAI,EACF,OAGF,GADA,EAAU,GACN,IAAU,OACZ,aAAa,CAAK,EAEpB,EAAG,GAGC,EAAmC,CACvC,IAAK,GAAS,EAAO,QAAS,EAAO,IAAK,EAAO,MAAM,EACvD,OAAQ,EAAO,QAAU,MACzB,KAAM,EAAO,MACZ,KAAK,QAAQ,aAAc,GAAiB,EAAO,OAAO,EAC3D,SAAU,EAAO,UAAY,UACzB,EAAO,eAAiB,OACxB,CAAE,aAAc,EAAO,YAAa,EACpC,CAAC,KACD,EAAO,UAAY,QAAa,EAAO,QAAU,EACjD,CAAE,QAAS,EAAO,OAAQ,EAC1B,CAAC,EACL,QAAS,CAAC,IAAiC,CACzC,EAAO,IAAM,CACX,IAAM,EAAY,EAAI,KAAK,QAAQ,aAC7B,EAAa,OAAO,GAAa,EAAI,YAAc,CAAC,EACpD,EAAkB,GACtB,EAAI,KAAK,QAAQ,oBACnB,EACA,EAAQ,CACN,KAAM,EAAI,KACV,aACA,QAAS,EACT,YACI,MAAM,QAAQ,EAAI,OAAO,EACzB,CAAE,QAAS,EAAI,OAAoB,EACnC,CAAC,KACD,OAAO,EAAI,SAAW,SAAW,CAAE,OAAQ,EAAI,MAAO,EAAI,CAAC,CACjE,CAAC,EACF,GAEH,KAAM,CAAC,IAAiC,CACtC,EAAO,IAAM,CACX,IAAM,EAAS,GAAmB,CAAG,EACrC,EACE,IAAI,EAAa,CACf,KAAM,EAAW,UAAY,GAAgB,CAAM,EACnD,QAAS,GAAU,yBACnB,SACA,MAAO,CACT,CAAC,CACH,EACD,EAEL,EAEA,GAAI,EAAO,UAAY,QAAa,EAAO,QAAU,EACnD,EAAQ,WAAW,IAAM,CACvB,EAAW,GACX,GAAM,QAAQ,GACb,EAAO,OAAO,EAKnB,GAFA,EAAO,EAAU,CAAO,GAAK,OAEzB,EAAO,OACT,GAAI,EAAO,OAAO,QAChB,GAAM,QAAQ,EAEd,OAAO,OAAO,iBACZ,QACA,IAAM,CACJ,GAAM,QAAQ,GAEhB,CAAE,KAAM,EAAK,CACf,EAGL,EAEL,CAEA,SAAS,EAAgB,CACvB,EACwB,CACxB,OAAO,EAAa,CAAO,EAG7B,SAAS,EAAwB,CAAC,EAAwC,CACxE,GAAI,OAAO,IAAU,UAAY,IAAU,KACzC,MAAO,CAAC,EAEV,IAAM,EAAiC,CAAC,EAOxC,OANA,OAAO,KAAK,CAAgC,EAAE,QAAQ,CAAC,IAAQ,CAC7D,IAAM,EAAQ,EAAkC,GAChD,GAAI,IAAS,QAAa,IAAS,KACjC,EAAO,GAAO,OAAO,CAAI,EAE5B,EACM,EAGT,SAAS,EAAkB,CAAC,EAAsC,CAChE,GAAI,OAAO,EAAI,SAAW,SACxB,OAAO,EAAI,OAEb,GAAI,OAAO,EAAI,eAAiB,SAC9B,OAAO,EAAI,aAEb,GAAI,OAAO,EAAI,QAAU,SACvB,OAAO,EAAI,MAEb,MAAO,GAIT,SAAS,EAAe,CAAC,EAAkC,CACzD,GAAI,CAAC,EACH,MAAO,UAET,GAAI,WAAW,KAAK,CAAM,EACxB,MAAO,UAET,GAAI,SAAS,KAAK,CAAM,EACtB,MAAO,UAET,MAAO,gBChMF,IAAM,GAGT,CACF,IAAK,IAAI,GACT,OAAQ,IAAI,GAAmB,EAAc,EAC7C,OAAQ,IAAI,GAAmB,EAAc,EAC7C,UAAW,IAAI,GAAmB,EAAiB,CACrD,EAGO,SAAS,EAAa,CAC3B,EACgB,CAChB,IAAM,EAAU,GAAS,GACzB,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,CACrB,KAAM,uBACN,QAAS,iCAAiC,OAAO,CAAQ,IACzD,OAAQ,CAAE,IAAK,EAAG,CACpB,CAAC,EAEH,OAAO,EAST,eAAsB,EAAc,CAClC,EACA,EACA,EACyB,CACzB,GAAI,EAAO,WAAa,QAAa,EAAO,WAAa,OACvD,OAAO,GAAc,EAAO,QAAQ,EAEtC,GAAI,IAAoB,OACtB,OAAO,OAAO,IAAoB,WAC9B,MAAM,EAAgB,CAAM,EAC5B,EAEN,GAAI,IAAqB,QAAa,IAAqB,OACzD,OAAO,GAAc,CAAgB,EAEvC,IAAM,EAA6B,GAAe,EAClD,GAAI,IAAa,UACf,MAAM,IAAI,EAAa,CACrB,KAAM,uBACN,QACE,4FACF,QACF,CAAC,EAEH,OAAO,GAAc,CAAQ,ECnExB,MAAM,EAAsB,CAChB,SAAgD,CAAC,EAE3D,GAAG,CACR,EACA,EACQ,CAER,OADA,KAAK,SAAS,KAAK,CAAE,cAAa,YAAW,CAAC,EACvC,KAAK,SAAS,OAAS,EAGzB,KAAK,CAAC,EAAkB,CAC7B,GAAI,KAAK,SAAS,KAAQ,OACxB,KAAK,SAAS,GAAM,KAIjB,KAAK,EAAS,CACnB,KAAK,SAAS,OAAS,EAGlB,OAAO,CACZ,EACM,CACN,KAAK,SAAS,QAAQ,CAAC,EAAS,IAAO,CACrC,GAAI,IAAY,KACd,EAAG,EAAS,CAAE,EAEjB,EAEL,CCVO,MAAM,EAAQ,CAEH,aAGZ,CACF,QAAS,IAAI,GACb,SAAU,IAAI,EAChB,EAEiB,iBACA,gBACA,iBAEV,WAAW,CAAC,EAA0B,CAAC,EAAG,CAC/C,IACE,QAAS,EACT,SAAU,KACP,GACD,EACJ,KAAK,gBAAkB,EACvB,KAAK,iBAAmB,EACxB,KAAK,iBAAmB,IAAK,CAAK,EAI7B,OAAoB,CACzB,EAC6B,CAC7B,IAAI,EACJ,GAAI,CACF,EAAS,KAAK,YAAY,CAAM,EAChC,MAAO,EAAO,CAEd,OAAO,QAAQ,OAAO,CAAK,EAM7B,IAAM,EAAsC,CAAC,EAC7C,KAAK,aAAa,QAAQ,QAAQ,CAAC,IAAY,CAC7C,EAAM,KACJ,EAAQ,YACR,EAAQ,UACV,EACD,EACD,EAAM,KACJ,CAAC,IAAmB,KAAK,SAAS,CAAyB,EAC3D,MACF,EACA,IAAM,EAGD,CAAC,EACN,KAAK,aAAa,SAAS,QAAQ,CAAC,IAAY,CAC9C,EAAiB,KAAK,CACpB,YAAa,EAAQ,YACrB,WAAY,EAAQ,UACtB,CAAC,EACF,EACD,QAAS,EAAQ,EAAiB,OAAS,EAAG,GAAS,EAAG,GAAS,EAAG,CACpE,IAAM,EAAU,EAAiB,GACjC,EAAM,KAAK,EAAQ,YAAa,EAAQ,UAAU,EAGpD,IAAI,EAA4B,QAAQ,QAAQ,CAAM,EACtD,MAAO,EAAM,OAAS,EAAG,CACvB,IAAM,EAAY,EAAM,MAAM,EACxB,EAAW,EAAM,MAAM,EAC7B,EAAU,EAAQ,KAChB,EACA,CACF,EAEF,OAAO,EAGF,GAAgB,CACrB,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,KAAM,CAAC,EAGnD,MAAmB,CACxB,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,QAAS,CAAC,EAGtD,IAAiB,CACtB,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,MAAO,CAAC,EAGpD,OAAoB,CACzB,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,SAAU,CAAC,EAGvD,IAAiB,CACtB,EACA,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,OAAQ,MAAK,CAAC,EAG1D,GAAgB,CACrB,EACA,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,MAAO,MAAK,CAAC,EAGzD,KAAkB,CACvB,EACA,EACA,EAC6B,CAC7B,OAAO,KAAK,QAAW,IAAK,EAAQ,MAAK,OAAQ,QAAS,MAAK,CAAC,EAG1D,QAAW,CAAC,EAAuD,CACzE,OAAO,GACL,EACA,KAAK,gBACL,KAAK,gBACP,EAAE,KAAK,CAAC,IAA4B,EAAQ,QAAW,CAAM,CAAC,EAIxD,WAAc,CAAC,EAA4C,CACjE,GAAI,CAAC,GAAU,OAAO,IAAW,SAC/B,MAAM,IAAI,EAAa,CACrB,KAAM,cACN,QAAS,mCACT,OAAQ,CACV,CAAC,EAGH,IAAM,EAAwB,IACzB,KAAK,oBACL,EACH,QAAS,EAAa,KAAK,iBAAiB,QAAS,EAAO,OAAO,EACnE,OAAQ,IAAK,KAAK,iBAAiB,UAAW,EAAO,MAAO,CAC9D,EAEA,GAAI,OAAO,EAAO,MAAQ,UAAY,EAAO,IAAI,SAAW,EAC1D,MAAM,IAAI,EAAa,CACrB,KAAM,cACN,QAAS,0BACT,OAAQ,CACV,CAAC,EAGH,GAAI,CACF,EAAO,OAAS,GAAgB,EAAO,MAAM,EAC7C,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,CACrB,KAAM,cACN,QAAU,EAAgB,QAC1B,OAAQ,EACR,OACF,CAAC,EAGH,OAAO,EAEX,CChMO,IAAM,GAAmB,IAAI,GCiCpC,IAAM,GAAY,kBAGZ,GAAqB,IAOpB,MAAM,WAAgB,CAAsC,CACzD,MAAuC,KACvC,UAAY,GACZ,gBAAgD,KAChD,eAAwC,KACxC,gBAAuC,KAEvC,cAAqD,CAAC,EAEpD,SAAS,EAAiB,CAClC,MAAO,CAAE,SAAU,EAAU,EAGrB,UAAU,EAAS,CAC3B,KAAK,aAAa,SAAS,kBAAmB,CAC5C,SAAU,oBACV,WAAY,CACV,QAAS,QACT,OAAQ,OACR,MAAO,MACT,CACF,CAAC,EAGO,MAAM,EAAU,CACxB,OAAO,GAAE,SAAU,CACjB,GAAI,KAAK,MAAM,SACf,UAAW,mBAAmB,KAAK,MAAM,UAAY,IAAI,KAAK,MAAM,YAAc,KAClF,KAAM,IACR,CAAC,EAGO,SAAS,EAAS,CAC1B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAGd,SAAS,EAAS,CAC1B,GAAI,KAAK,OAAS,CAAC,KAAK,UACtB,KAAK,MAAM,UAAU,KAAK,MAAM,MAAM,EAAE,OAAO,EAC1C,QAAI,CAAC,KAAK,OAAS,CAAC,KAAK,UAC9B,KAAK,YAAY,EAIX,WAAW,EAAS,CAC5B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,UAAY,GACjB,KAAK,OAAO,QAAQ,EACpB,KAAK,MAAQ,KAIR,QAAQ,EAAkC,CAC/C,OAAO,KAAK,MAGN,WAAW,EAAS,CAC1B,GAAI,KAAK,UACP,OAEF,KAAK,eAAe,EACjB,KAAK,CAAC,IAAY,CACjB,GAAI,KAAK,WAAa,CAAC,EAErB,OAEF,KAAK,MAAQ,EAAY,EAAS,KAAK,MAAM,MAAM,EACnD,KAAK,MAAM,OAAO,EACnB,EACA,MAAM,CAAC,IAAmB,CACzB,QAAQ,MAAM,2BAA4B,CAAK,EAChD,EASE,UAAU,EAA6B,CAC5C,OAAO,KAAK,GAMN,gBAAgB,EAAS,CAC/B,GAAI,KAAK,WAAa,KAAK,cAAc,OAAS,EAChD,OAGF,GAAI,EAAwB,EAC1B,OAEF,IAAM,EAAU,KAAK,WAAW,EAChC,GAAI,CAAC,GAAW,OAAO,EAAQ,mBAAqB,WAClD,OAGF,IAAM,EAAS,CAAC,IAAuB,CACrC,IAAM,EAAQ,KAAK,MACnB,GAAI,CAAC,EACH,OAEF,IAAM,EAAQ,EACR,EAAO,EAAQ,sBAAsB,EACrC,EAAO,EAAM,QAAU,EAAK,KAC5B,EAAO,EAAM,QAAU,EAAK,IAE5B,EAAI,EAAK,MACT,EAAI,EAAK,OACf,GAAI,EAAI,GAAK,EAAI,EACf,EAAM,OAAO,EAAG,CAAC,EAEnB,EAAM,SAAS,EAAM,CAAI,GAErB,EAAU,IAAY,CAC1B,KAAK,OAAO,WAAW,GAGzB,EAAQ,iBAAiB,YAAa,CAAM,EAC5C,EAAQ,iBAAiB,aAAc,CAAO,EAC9C,KAAK,cAAgB,CACnB,CAAC,YAAa,CAAM,EACpB,CAAC,aAAc,CAAO,CACxB,EAGM,mBAAmB,EAAS,CAClC,IAAM,EAAU,KAAK,WAAW,EAChC,QAAY,EAAM,KAAY,KAAK,cACjC,GAAS,oBAAoB,EAAM,CAAO,EAE5C,KAAK,cAAgB,CAAC,EAKhB,eAAe,EAAS,CAC9B,GAAI,KAAK,WAAa,KAAK,gBACzB,OAEF,KAAK,gBAAkB,GAAS,IAAM,KAAK,aAAa,EAAG,EAAkB,EAE7E,IAAM,EAAW,EAAwB,EACzC,GAAI,EAAU,CAEZ,IAAM,EAAK,EAAqB,CAAQ,EACxC,GAAI,GAAM,OAAO,EAAG,iBAAmB,WACrC,KAAK,gBAAkB,IAAM,KAAK,gBAAiB,IAAI,EACvD,EAAG,eAAe,KAAK,eAAe,EAExC,OAKF,IAAM,EAAU,KAAK,WAAW,EAChC,GACE,GACA,OAAO,EAAQ,aAAe,YAC9B,OAAO,iBAAmB,WAE1B,KAAK,eAAiB,IAAI,eAAe,IAAM,KAAK,gBAAiB,IAAI,CAAC,EAC1E,KAAK,eAAe,QAAQ,CAAO,EAI/B,kBAAkB,EAAS,CAKjC,GAJA,KAAK,gBAAgB,WAAW,EAChC,KAAK,eAAiB,KACtB,KAAK,iBAAiB,OAAO,EAC7B,KAAK,gBAAkB,KACnB,KAAK,gBAAiB,CACxB,IAAM,EAAW,EAAwB,EACnC,EAAK,EACN,EAAqB,CAAQ,EAC9B,KACJ,GAAI,GAAM,OAAO,EAAG,kBAAoB,WACtC,EAAG,gBAAgB,KAAK,eAAe,EAEzC,KAAK,gBAAkB,MAInB,YAAY,EAAS,CAC3B,GAAI,KAAK,UACP,OAEF,GAAI,EAAwB,EAAG,CAG7B,KAAK,OAAO,QAAQ,EACpB,KAAK,MAAQ,KACb,KAAK,YAAY,EACjB,OAEF,IAAM,EAAU,KAAK,WAAW,EAChC,GAAI,CAAC,GAAW,OAAO,EAAQ,aAAe,WAC5C,OAEF,IAAM,EAAQ,EAAQ,aAAe,EAC/B,EAAS,EAAQ,cAAgB,EACvC,GAAI,GAAS,GAAK,GAAU,EAC1B,OAEF,GAAI,CAAC,KAAK,MAAO,CACf,KAAK,YAAY,EACjB,OAGF,IAAM,EAAM,EAAiB,EAC7B,EAAQ,MAAQ,KAAK,MAAM,EAAQ,CAAG,EACtC,EAAQ,OAAS,KAAK,MAAM,EAAS,CAAG,EACxC,KAAK,MAAM,OAAO,EAAO,EAAQ,CAAG,EAAE,OAAO,EAGvC,cAAc,EAAuC,CAC3D,GAAI,KAAK,MAAM,QACb,OAAO,QAAQ,QAAQ,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,CAAC,EAG9D,IAAM,EAAW,EAAwB,EACzC,GAAI,EAAU,CAEZ,IAAM,EAAW,IAAI,KAAK,MAAM,WAC1B,EAAU,CAAC,IACf,GAAyB,CACvB,WACA,SAAU,KACV,UACF,CAAC,EACE,KAAK,CAAC,IAAS,EAAyB,CAAI,CAAC,EAC7C,MAAM,CAAC,IAAmB,CACzB,GAAI,GAAQ,EACV,MAAM,EAER,OAAO,IAAI,QAAQ,CAAC,IAAY,WAAW,EAAS,EAAE,CAAC,EAAE,KAAK,IAC5D,EAAQ,EAAO,CAAC,CAClB,EACD,EACL,OAAO,EAAQ,CAAC,EAMlB,IAAM,EAAU,KAAK,WAAW,EAChC,GAAI,CAAC,GAAW,OAAO,EAAQ,aAAe,WAC5C,OAAO,QAAQ,QAAQ,IAAI,EAE7B,OAAO,QAAQ,QACb,EAAiB,CAAO,CAC1B,EAEJ",
48
48
  "debugId": "0275C413C5C4432664756E2164756E21",
49
49
  "names": []
50
50
  }
@@ -29,14 +29,14 @@ export interface ResolvedCanvas {
29
29
 
30
30
  /** 通用探测设备像素比(web 与小程序可用 globalThis 访问)。 */
31
31
  export function detectPixelRatio(): number {
32
- const host = getHost();
32
+ const host = getPixelRatioHost();
33
33
  if (typeof host.devicePixelRatio === 'number' && host.devicePixelRatio > 0) {
34
34
  return host.devicePixelRatio;
35
35
  }
36
36
  return 1;
37
37
  }
38
38
 
39
- function getHost(): Record<string, unknown> {
39
+ function getPixelRatioHost(): Record<string, unknown> {
40
40
  if (typeof globalThis !== 'undefined') {
41
41
  return globalThis as unknown as Record<string, unknown>;
42
42
  }
@@ -45,7 +45,7 @@ export class RadarChart extends ChartBase<RadarChartOption> {
45
45
  }
46
46
 
47
47
  const startAngle = option.startAngle ?? -Math.PI / 2;
48
- const step = TWO_PI / count;
48
+ const step = RADAR_TWO_PI / count;
49
49
  const splitCount = Math.max(1, option.splitCount ?? 5);
50
50
  const gridColor = option.gridColor ?? '#ebedf0';
51
51
  const gridLineWidth = option.gridLineWidth ?? 1;
@@ -156,7 +156,7 @@ export class RadarChart extends ChartBase<RadarChartOption> {
156
156
  return null;
157
157
  }
158
158
  const startAngle = this.option.startAngle ?? -Math.PI / 2;
159
- const step = TWO_PI / count;
159
+ const step = RADAR_TWO_PI / count;
160
160
 
161
161
  let best = -1;
162
162
  let bestDist = 24; // 命中阈值(px)
@@ -214,4 +214,4 @@ export class RadarChart extends ChartBase<RadarChartOption> {
214
214
  }
215
215
  }
216
216
 
217
- const TWO_PI = Math.PI * 2;
217
+ const RADAR_TWO_PI = Math.PI * 2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transone-chart",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "TransOne 跨端图表库:一份 TypeScript 源码,基于 Canvas 2D 渲染,兼容 Web 与多端小程序,预留原生 App(iOS/Android/鸿蒙)扩展",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",