@undp/data-viz 1.5.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.d.ts +1 -0
- package/dist/AreaChart.js +420 -520
- package/dist/AreaChart.js.map +1 -1
- package/dist/Axis-CRyfcLjc.js +32 -0
- package/dist/Axis-CRyfcLjc.js.map +1 -0
- package/dist/Axis-DxRV2yMi.cjs +2 -0
- package/dist/Axis-DxRV2yMi.cjs.map +1 -0
- package/dist/AxisTitle-jeI7am8o.js +29 -0
- package/dist/AxisTitle-jeI7am8o.js.map +1 -0
- package/dist/AxisTitle-sS5bLLR7.cjs +2 -0
- package/dist/AxisTitle-sS5bLLR7.cjs.map +1 -0
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +1 -0
- package/dist/BarGraph.js +2188 -4045
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.d.ts +1 -0
- package/dist/BasicStatCard.js +120 -186
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +5 -0
- package/dist/BeeSwarmChart.js +500 -1018
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +1 -0
- package/dist/BiVariateChoroplethMap.js +458 -699
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +1 -0
- package/dist/BulletChart.js +863 -1414
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +1 -0
- package/dist/ButterflyChart.js +474 -684
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +1 -0
- package/dist/ChoroplethMap.js +466 -720
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +1 -0
- package/dist/CirclePackingGraph.js +5 -4
- package/dist/CirclePackingGraph.js.map +1 -1
- package/dist/ColorLegend.cjs +1 -1
- package/dist/ColorLegend.cjs.map +1 -1
- package/dist/ColorLegend.js +57 -44
- package/dist/ColorLegend.js.map +1 -1
- package/dist/ColorLegendWithMouseOver.cjs +1 -1
- package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ColorLegendWithMouseOver.js +60 -65
- package/dist/ColorLegendWithMouseOver.js.map +1 -1
- package/dist/Colors.cjs.map +1 -1
- package/dist/Colors.js +44 -430
- package/dist/Colors.js.map +1 -1
- package/dist/CopyTextButton.cjs +3 -3
- package/dist/CopyTextButton.cjs.map +1 -1
- package/dist/CopyTextButton.js +537 -455
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/CsvDownloadButton.cjs +7 -7
- package/dist/CsvDownloadButton.cjs.map +1 -1
- package/dist/CsvDownloadButton.js +442 -447
- package/dist/CsvDownloadButton.js.map +1 -1
- package/dist/DataCards.cjs +5 -5
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.d.ts +1 -0
- package/dist/DataCards.js +488 -581
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.d.ts +1 -0
- package/dist/DataTable.js +183 -326
- package/dist/DataTable.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.d.ts +1 -0
- package/dist/DifferenceLineChart.js +729 -794
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +1 -4
- package/dist/DonutChart.js +260 -444
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +1 -0
- package/dist/DotDensityMap.js +387 -574
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/{DropdownSelect-6kjXM6oW.js → DropdownSelect-BbdPQa2k.js} +1401 -1374
- package/dist/DropdownSelect-BbdPQa2k.js.map +1 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs +29 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs.map +1 -0
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +1 -0
- package/dist/DualAxisLineChart.js +617 -712
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +1 -0
- package/dist/DumbbellChart.js +789 -1499
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/EmptyState-BZo1BbAn.js +15 -0
- package/dist/{EmptyState-36lXXyui.js.map → EmptyState-BZo1BbAn.js.map} +1 -1
- package/dist/EmptyState-sAEZ_5rU.cjs +2 -0
- package/dist/{EmptyState-B8IpKGcL.cjs.map → EmptyState-sAEZ_5rU.cjs.map} +1 -1
- package/dist/ExcelDownloadButton.cjs +1 -1
- package/dist/ExcelDownloadButton.cjs.map +1 -1
- package/dist/ExcelDownloadButton.js +20 -24
- package/dist/ExcelDownloadButton.js.map +1 -1
- package/dist/FootNote.cjs +1 -1
- package/dist/FootNote.cjs.map +1 -1
- package/dist/FootNote.js +26 -17
- package/dist/FootNote.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.d.ts +1 -0
- package/dist/GeoHubCompareMaps.js +265 -340
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.cjs.map +1 -1
- package/dist/GeoHubMap.d.ts +1 -0
- package/dist/GeoHubMap.js +214 -379
- package/dist/GeoHubMap.js.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.d.ts +1 -0
- package/dist/GeoHubMapWithLayerSelection.js +192 -278
- package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
- package/dist/GraphContainer-CRqzdKu2.js +78 -0
- package/dist/GraphContainer-CRqzdKu2.js.map +1 -0
- package/dist/GraphContainer-d8A46BK2.cjs +2 -0
- package/dist/GraphContainer-d8A46BK2.cjs.map +1 -0
- package/dist/GraphDescription.cjs +1 -1
- package/dist/GraphDescription.cjs.map +1 -1
- package/dist/GraphDescription.js +23 -17
- package/dist/GraphDescription.js.map +1 -1
- package/dist/GraphEl-BkyLYXG5.cjs +2 -0
- package/dist/GraphEl-BkyLYXG5.cjs.map +1 -0
- package/dist/{GraphEl-2IiUDxjR.js → GraphEl-DzRon4cb.js} +181 -202
- package/dist/GraphEl-DzRon4cb.js.map +1 -0
- package/dist/GraphFooter.cjs +1 -1
- package/dist/GraphFooter.cjs.map +1 -1
- package/dist/GraphFooter.js +28 -18
- package/dist/GraphFooter.js.map +1 -1
- package/dist/GraphHeader.cjs +1 -1
- package/dist/GraphHeader.cjs.map +1 -1
- package/dist/GraphHeader.d.ts +2 -1
- package/dist/GraphHeader.js +45 -59
- package/dist/GraphHeader.js.map +1 -1
- package/dist/GraphTitle.cjs +1 -1
- package/dist/GraphTitle.cjs.map +1 -1
- package/dist/GraphTitle.js +29 -24
- package/dist/GraphTitle.js.map +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +216 -450
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.cjs +1 -1
- package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/GriddedGraphsFromConfig.js +22 -36
- package/dist/GriddedGraphsFromConfig.js.map +1 -1
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +1 -0
- package/dist/HeatMap.js +278 -446
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.d.ts +1 -0
- package/dist/Histogram.js +154 -264
- package/dist/Histogram.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.cjs.map +1 -1
- package/dist/ImageDownloadButton.d.ts +2 -1
- package/dist/ImageDownloadButton.js +21 -25
- package/dist/ImageDownloadButton.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +1 -0
- package/dist/LineChartWithConfidenceInterval.js +674 -825
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.cjs.map +1 -1
- package/dist/LinearColorLegend.js +49 -30
- package/dist/LinearColorLegend.js.map +1 -1
- package/dist/Modal-DGcuAHyK.js +1047 -0
- package/dist/Modal-DGcuAHyK.js.map +1 -0
- package/dist/Modal-JW_IExO3.cjs +46 -0
- package/dist/Modal-JW_IExO3.cjs.map +1 -0
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +122 -290
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardFromConfig.js +22 -31
- package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormat.js +137 -223
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +25 -27
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +1 -0
- package/dist/MultiLineAltChart.js +581 -659
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.d.ts +1 -0
- package/dist/MultiLineChart.js +617 -725
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +1 -0
- package/dist/ParetoChart.js +531 -635
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +147 -338
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +22 -31
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
- package/dist/PerformanceIntensiveScrollStory.js +93 -114
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -1
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +1 -0
- package/dist/RadarChart.js +426 -575
- package/dist/RadarChart.js.map +1 -1
- package/dist/ReferenceLine-2XCwHXQ4.js +162 -0
- package/dist/ReferenceLine-2XCwHXQ4.js.map +1 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs +2 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs.map +1 -0
- package/dist/RegressionLine-BOTTNSrr.cjs +2 -0
- package/dist/RegressionLine-BOTTNSrr.cjs.map +1 -0
- package/dist/RegressionLine-DAcY2DjT.js +87 -0
- package/dist/RegressionLine-DAcY2DjT.js.map +1 -0
- package/dist/SVGDownloadButton.cjs +1 -1
- package/dist/SVGDownloadButton.cjs.map +1 -1
- package/dist/SVGDownloadButton.js +21 -25
- package/dist/SVGDownloadButton.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +1 -0
- package/dist/SankeyChart.js +665 -854
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +1 -0
- package/dist/ScatterPlot.js +675 -815
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.cjs +1 -1
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.d.ts +1 -0
- package/dist/ScrollStory.js +85 -97
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.d.ts +1 -0
- package/dist/SimpleLineChart.js +504 -613
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +2 -1
- package/dist/SingleGraphDashboard.js +279 -507
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +2 -1
- package/dist/SingleGraphDashboardFromConfig.js +25 -31
- package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +146 -168
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -21
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +357 -591
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +25 -31
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -1
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.d.ts +1 -0
- package/dist/SlopeChart.js +539 -573
- package/dist/SlopeChart.js.map +1 -1
- package/dist/Source-DYMJRrsq.cjs +2 -0
- package/dist/Source-DYMJRrsq.cjs.map +1 -0
- package/dist/Source-DwTHB8fn.js +78 -0
- package/dist/Source-DwTHB8fn.js.map +1 -0
- package/dist/Source.cjs +1 -1
- package/dist/Source.cjs.map +1 -1
- package/dist/Source.js +4 -38
- package/dist/Source.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.cjs.map +1 -1
- package/dist/SparkLine.d.ts +1 -0
- package/dist/SparkLine.js +286 -314
- package/dist/SparkLine.js.map +1 -1
- package/dist/Spinner-D7rnnwnA.js +47 -0
- package/dist/Spinner-D7rnnwnA.js.map +1 -0
- package/dist/Spinner-DRMBUsX7.cjs +2 -0
- package/dist/Spinner-DRMBUsX7.cjs.map +1 -0
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.d.ts +1 -0
- package/dist/StatCardFromData.js +163 -243
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +1 -0
- package/dist/StripChart.js +665 -983
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +1 -0
- package/dist/ThreeDGlobe.js +356 -519
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +96 -126
- package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
- package/dist/Tooltip-4dJo4_AF.cjs +2 -0
- package/dist/Tooltip-4dJo4_AF.cjs.map +1 -0
- package/dist/Tooltip-CwWUegPB.js +43 -0
- package/dist/Tooltip-CwWUegPB.js.map +1 -0
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +1 -0
- package/dist/TreeMapGraph.js +479 -617
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/Typography-DX7PlgQU.cjs +2 -0
- package/dist/Typography-DX7PlgQU.cjs.map +1 -0
- package/dist/Typography-PxtFcnJb.js +142 -0
- package/dist/Typography-PxtFcnJb.js.map +1 -0
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.d.ts +1 -0
- package/dist/UnitChart.js +160 -212
- package/dist/UnitChart.js.map +1 -1
- package/dist/XAxesLabels-D5X8jngD.cjs +2 -0
- package/dist/XAxesLabels-D5X8jngD.cjs.map +1 -0
- package/dist/XAxesLabels-DNO0KmjL.js +73 -0
- package/dist/XAxesLabels-DNO0KmjL.js.map +1 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs +2 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs.map +1 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js +38 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js.map +1 -0
- package/dist/YAxesLabels-DcS85Beo.cjs +2 -0
- package/dist/YAxesLabels-DcS85Beo.cjs.map +1 -0
- package/dist/YAxesLabels-Dnnng49-.js +70 -0
- package/dist/YAxesLabels-Dnnng49-.js.map +1 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs +2 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs.map +1 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js +38 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js.map +1 -0
- package/dist/{band-BEjh2CHI.js → band-CyHaVft5.js} +3 -3
- package/dist/{band-BEjh2CHI.js.map → band-CyHaVft5.js.map} +1 -1
- package/dist/{band-CAApY4Pd.cjs → band-VYfcZeJ2.cjs} +2 -2
- package/dist/{band-CAApY4Pd.cjs.map → band-VYfcZeJ2.cjs.map} +1 -1
- package/dist/checkIfMultiple-Y9iKaV_u.js +950 -0
- package/dist/checkIfMultiple-Y9iKaV_u.js.map +1 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs +12 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs.map +1 -0
- package/dist/customArea-BUhPiPT6.js +163 -0
- package/dist/{customArea-x4L4xwLl.js.map → customArea-BUhPiPT6.js.map} +1 -1
- package/dist/customArea-CMF5g-C3.cjs +2 -0
- package/dist/{customArea-1G1S78s_.cjs.map → customArea-CMF5g-C3.cjs.map} +1 -1
- package/dist/delaunay-C1uAf38t.js.map +1 -1
- package/dist/delaunay-rcy0HhZi.cjs.map +1 -1
- package/dist/{ensureCompleteData-DlmibgaI.js → ensureCompleteData-DNKEGRiP.js} +12 -32
- package/dist/{ensureCompleteData-DlmibgaI.js.map → ensureCompleteData-DNKEGRiP.js.map} +1 -1
- package/dist/{ensureCompleteData-DkQYPeDa.cjs → ensureCompleteData-I6nYmT8E.cjs} +2 -2
- package/dist/{ensureCompleteData-DkQYPeDa.cjs.map → ensureCompleteData-I6nYmT8E.cjs.map} +1 -1
- package/dist/{excelDownload-BOA-lskf.js → excelDownload-BEC1AyQW.js} +12 -2
- package/dist/{excelDownload-BOA-lskf.js.map → excelDownload-BEC1AyQW.js.map} +1 -1
- package/dist/excelDownload-BQpsCa62.cjs.map +1 -1
- package/dist/{fetchAndParseData-sapWbnYk.js → fetchAndParseData-BpqkBPQL.js} +15 -28
- package/dist/{fetchAndParseData-sapWbnYk.js.map → fetchAndParseData-BpqkBPQL.js.map} +1 -1
- package/dist/fetchAndParseData-l5HGMAEs.cjs +16 -0
- package/dist/{fetchAndParseData-Ba-_CgxS.cjs.map → fetchAndParseData-l5HGMAEs.cjs.map} +1 -1
- package/dist/fetchAndParseData.cjs +1 -1
- package/dist/fetchAndParseData.js +1 -1
- package/dist/{filterData-9nEcQ-Jp.js → filterData-DsAiFzKY.js} +3 -5
- package/dist/{filterData-9nEcQ-Jp.js.map → filterData-DsAiFzKY.js.map} +1 -1
- package/dist/{filterData-BoYadk0l.cjs → filterData-T5DQBE9b.cjs} +2 -2
- package/dist/{filterData-BoYadk0l.cjs.map → filterData-T5DQBE9b.cjs.map} +1 -1
- package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -1
- package/dist/generateRandomString-za3IQGfQ.js.map +1 -1
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js → getCentroidCoordinates-D7r34N4w.js} +2 -2
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js.map → getCentroidCoordinates-D7r34N4w.js.map} +1 -1
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs → getCentroidCoordinates-Dng1HVjO.cjs} +2 -2
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs.map → getCentroidCoordinates-Dng1HVjO.cjs.map} +1 -1
- package/dist/getGraphList-BpEWn1Tk.js +227 -0
- package/dist/{getGraphList-DuColTJM.js.map → getGraphList-BpEWn1Tk.js.map} +1 -1
- package/dist/getGraphList-gf02xgT2.cjs.map +1 -1
- package/dist/getJenks-BbngDoBQ.js.map +1 -1
- package/dist/getJenks-GYmdwBqm.cjs.map +1 -1
- package/dist/getSchema.cjs.map +1 -1
- package/dist/getSchema.js +445 -231
- package/dist/getSchema.js.map +1 -1
- package/dist/getSliderMarks-BmADcPQt.cjs +6 -0
- package/dist/getSliderMarks-BmADcPQt.cjs.map +1 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js +1033 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js.map +1 -0
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js → getTextColorBasedOnBgColor-CDY808zi.js} +11 -3
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js.map → getTextColorBasedOnBgColor-CDY808zi.js.map} +1 -1
- package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -1
- package/dist/{getUniqValue-DiCh_MOD.js → getUniqValue-BKHCm3zE.js} +2 -4
- package/dist/{getUniqValue-DiCh_MOD.js.map → getUniqValue-BKHCm3zE.js.map} +1 -1
- package/dist/getUniqValue-RViz8tTw.cjs.map +1 -1
- package/dist/{imageDownload-Dcci2LEy.js → imageDownload-BX6SILNZ.js} +4 -2
- package/dist/{imageDownload-Dcci2LEy.js.map → imageDownload-BX6SILNZ.js.map} +1 -1
- package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -1
- package/dist/{index-DvVprvy6.js → index-BZQYSqar.js} +7 -7
- package/dist/{index-DvVprvy6.js.map → index-BZQYSqar.js.map} +1 -1
- package/dist/index-B_sAFsEV.cjs +2 -0
- package/dist/{index-BHe3wsWF.cjs.map → index-B_sAFsEV.cjs.map} +1 -1
- package/dist/index-BqfRwk1n.js +146 -0
- package/dist/index-BqfRwk1n.js.map +1 -0
- package/dist/{index-V_JXij1_.js → index-BuwmuDFJ.js} +3 -3
- package/dist/{index-V_JXij1_.js.map → index-BuwmuDFJ.js.map} +1 -1
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs +84 -0
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs.map +1 -0
- package/dist/{index-CHPV5EwG-DBWUSD9b.js → index-CHPV5EwG-Curnpaqc.js} +724 -625
- package/dist/index-CHPV5EwG-Curnpaqc.js.map +1 -0
- package/dist/index-Cno4Q0YE.cjs +2 -0
- package/dist/{index-CQ3e6Ewi.cjs.map → index-Cno4Q0YE.cjs.map} +1 -1
- package/dist/{index-Cw8sCyo_-BuI_jX5Z.js → index-Cw8sCyo_-B2hEKjzG.js} +16 -16
- package/dist/{index-Cw8sCyo_-BuI_jX5Z.js.map → index-Cw8sCyo_-B2hEKjzG.js.map} +1 -1
- package/dist/{index-Cw8sCyo_-gxT8ADyn.cjs → index-Cw8sCyo_-BrHiWiRF.cjs} +2 -2
- package/dist/{index-Cw8sCyo_-gxT8ADyn.cjs.map → index-Cw8sCyo_-BrHiWiRF.cjs.map} +1 -1
- package/dist/index-CyZ1lmi_.cjs +2 -0
- package/dist/{index-D72cOtq7.cjs.map → index-CyZ1lmi_.cjs.map} +1 -1
- package/dist/index-D491FEn1.js +184 -0
- package/dist/index-D491FEn1.js.map +1 -0
- package/dist/index-DG2bgAva.cjs +10 -0
- package/dist/index-DG2bgAva.cjs.map +1 -0
- package/dist/index-DRXx7m-C.cjs +2 -0
- package/dist/index-DRXx7m-C.cjs.map +1 -0
- package/dist/index-DoY3Ga3W.cjs +2 -0
- package/dist/index-DoY3Ga3W.cjs.map +1 -0
- package/dist/index-DxXnJ8Ti.cjs +2 -0
- package/dist/index-DxXnJ8Ti.cjs.map +1 -0
- package/dist/{index-Dzc_aaI9-BKklH89r.js → index-Dzc_aaI9-Bb7gobH_.js} +2 -2
- package/dist/{index-Dzc_aaI9-BKklH89r.js.map → index-Dzc_aaI9-Bb7gobH_.js.map} +1 -1
- package/dist/{index-Dzc_aaI9-RIk2GRHD.cjs → index-Dzc_aaI9-BmkfPMyc.cjs} +2 -2
- package/dist/{index-Dzc_aaI9-RIk2GRHD.cjs.map → index-Dzc_aaI9-BmkfPMyc.cjs.map} +1 -1
- package/dist/{index-9tDEUqOZ.js → index-GEsywGxz.js} +9 -9
- package/dist/index-GEsywGxz.js.map +1 -0
- package/dist/index-SKgJALZg.js +99 -0
- package/dist/{index-Bw_eHBVN.js.map → index-SKgJALZg.js.map} +1 -1
- package/dist/index-leTnKT2q.js +329 -0
- package/dist/index-leTnKT2q.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.js +13 -13
- package/dist/{init-BhZylTFx.js → init-BJFW6EwE.js} +3 -3
- package/dist/{init-BhZylTFx.js.map → init-BJFW6EwE.js.map} +1 -1
- package/dist/{linear-BVckp9RD.cjs → linear-BwPAspcq.cjs} +2 -2
- package/dist/{linear-BVckp9RD.cjs.map → linear-BwPAspcq.cjs.map} +1 -1
- package/dist/{linear-DUdu7l2G.js → linear-BwnDd9KF.js} +3 -3
- package/dist/{linear-DUdu7l2G.js.map → linear-BwnDd9KF.js.map} +1 -1
- package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -1
- package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -1
- package/dist/{ordinal-BOeNbyae.cjs → ordinal-CrsysVE-.cjs} +2 -2
- package/dist/ordinal-CrsysVE-.cjs.map +1 -0
- package/dist/{ordinal-w9Lu4Stb.js → ordinal-P77xw8aL.js} +24 -24
- package/dist/ordinal-P77xw8aL.js.map +1 -0
- package/dist/{pow-e8zx3AQJ.js → pow-DE4c7dbW.js} +3 -3
- package/dist/{pow-e8zx3AQJ.js.map → pow-DE4c7dbW.js.map} +1 -1
- package/dist/{pow-B5-jkdHU.cjs → pow-DgrUorRi.cjs} +2 -2
- package/dist/{pow-B5-jkdHU.cjs.map → pow-DgrUorRi.cjs.map} +1 -1
- package/dist/{proxy-BYIC9BuT.js → proxy-BxkFHwUw.js} +144 -134
- package/dist/proxy-BxkFHwUw.js.map +1 -0
- package/dist/proxy-BxvUI_9l.cjs +2 -0
- package/dist/proxy-BxvUI_9l.cjs.map +1 -0
- package/dist/{removeOutliers-DR48e-18.js → removeOutliers-BqW0sPqj.js} +2 -5
- package/dist/{removeOutliers-DR48e-18.js.map → removeOutliers-BqW0sPqj.js.map} +1 -1
- package/dist/removeOutliers-WELHHqiI.cjs.map +1 -1
- package/dist/{sort-DfK1b0F5.js → sort-BIvMlUH1.js} +5 -5
- package/dist/{sort-DfK1b0F5.js.map → sort-BIvMlUH1.js.map} +1 -1
- package/dist/{string-CRoCZCYa.cjs → string-C-kRh1bQ.cjs} +2 -2
- package/dist/{string-CRoCZCYa.cjs.map → string-C-kRh1bQ.cjs.map} +1 -1
- package/dist/{string-B8KlVSPX.js → string-C_xJ4Wg4.js} +3 -3
- package/dist/{string-B8KlVSPX.js.map → string-C_xJ4Wg4.js.map} +1 -1
- package/dist/string2HTML-CPGr_I5E.cjs +3 -0
- package/dist/{string2HTML-z7CwHXcx.cjs.map → string2HTML-CPGr_I5E.cjs.map} +1 -1
- package/dist/{string2HTML-oFCROsus.js → string2HTML-DhG75NqA.js} +15 -9
- package/dist/{string2HTML-oFCROsus.js.map → string2HTML-DhG75NqA.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{svgDownload-C2-E3yf2.js → svgDownload-BAoarWNt.js} +4 -2
- package/dist/{svgDownload-C2-E3yf2.js.map → svgDownload-BAoarWNt.js.map} +1 -1
- package/dist/svgDownload-D9zEGjTF.cjs.map +1 -1
- package/dist/{threshold-DFfqcDMa.js → threshold-Bgr20hik.js} +2 -2
- package/dist/{threshold-DFfqcDMa.js.map → threshold-Bgr20hik.js.map} +1 -1
- package/dist/{time-Byw_jYQ7.cjs → time-CZd5YLSP.cjs} +2 -2
- package/dist/{time-Byw_jYQ7.cjs.map → time-CZd5YLSP.cjs.map} +1 -1
- package/dist/{time-BzJP5SPC.js → time-DCCfQk3V.js} +3 -3
- package/dist/{time-BzJP5SPC.js.map → time-DCCfQk3V.js.map} +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +3 -3
- package/dist/transformDataForAggregation-CE3bAlHU.js +585 -0
- package/dist/{transformDataForAggregation-sBpdlX8n.js.map → transformDataForAggregation-CE3bAlHU.js.map} +1 -1
- package/dist/transformDataForAggregation-KXGm6flX.cjs.map +1 -1
- package/dist/transformDataForGraphFromFile-BExxcITV.js +14 -0
- package/dist/{transformDataForGraphFromFile-ComYvzuz.js.map → transformDataForGraphFromFile-BExxcITV.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs → transformDataForGraphFromFile-DaJHQCsL.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs.map → transformDataForGraphFromFile-DaJHQCsL.cjs.map} +1 -1
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -1
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -1
- package/dist/uniqBy-BHy4I8PK.js.map +1 -1
- package/dist/uniqBy-O05lp2S5.cjs.map +1 -1
- package/dist/{use-in-view-DR-UTB96.js → use-in-view-Cxa7y1TH.js} +2 -2
- package/dist/use-in-view-Cxa7y1TH.js.map +1 -0
- package/dist/use-in-view-QcfiW0w3.cjs +2 -0
- package/dist/use-in-view-QcfiW0w3.cjs.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +8 -8
- package/dist/validateSchema.cjs.map +1 -1
- package/dist/validateSchema.js +33 -29
- package/dist/validateSchema.js.map +1 -1
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs → x-BBpi7a_7-mTo40uId.cjs} +2 -2
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs.map → x-BBpi7a_7-mTo40uId.cjs.map} +1 -1
- package/dist/{y-D0sAaVii.js → y-BqfogMAB.js} +3 -3
- package/dist/{y-D0sAaVii.js.map → y-BqfogMAB.js.map} +1 -1
- package/dist/{zoom-QipiAl5W.js → zoom-C9MFjAaV.js} +5 -5
- package/dist/{zoom-QipiAl5W.js.map → zoom-C9MFjAaV.js.map} +1 -1
- package/dist/zoom-DPw8bba-.cjs +2 -0
- package/dist/{zoom-BiMNsz72.cjs.map → zoom-DPw8bba-.cjs.map} +1 -1
- package/package.json +7 -6
- package/dist/Axis-4gUOL8B7.js +0 -43
- package/dist/Axis-4gUOL8B7.js.map +0 -1
- package/dist/Axis-CkNn1wit.cjs +0 -2
- package/dist/Axis-CkNn1wit.cjs.map +0 -1
- package/dist/AxisTitle-Wkz-xeQL.cjs +0 -2
- package/dist/AxisTitle-Wkz-xeQL.cjs.map +0 -1
- package/dist/AxisTitle-v6_xcXZ-.js +0 -20
- package/dist/AxisTitle-v6_xcXZ-.js.map +0 -1
- package/dist/DropdownSelect-6kjXM6oW.js.map +0 -1
- package/dist/DropdownSelect-vt8yiB-g.cjs +0 -29
- package/dist/DropdownSelect-vt8yiB-g.cjs.map +0 -1
- package/dist/EmptyState-36lXXyui.js +0 -22
- package/dist/EmptyState-B8IpKGcL.cjs +0 -2
- package/dist/GraphEl-2IiUDxjR.js.map +0 -1
- package/dist/GraphEl-qrlfGPe3.cjs +0 -2
- package/dist/GraphEl-qrlfGPe3.cjs.map +0 -1
- package/dist/Modal-Cg8daIlV.js +0 -1030
- package/dist/Modal-Cg8daIlV.js.map +0 -1
- package/dist/Modal-CuuJdWkD.cjs +0 -46
- package/dist/Modal-CuuJdWkD.cjs.map +0 -1
- package/dist/ReferenceLine-CPMaAX0r.js +0 -128
- package/dist/ReferenceLine-CPMaAX0r.js.map +0 -1
- package/dist/ReferenceLine-D04j-zeV.cjs +0 -2
- package/dist/ReferenceLine-D04j-zeV.cjs.map +0 -1
- package/dist/RegressionLine-CW7iViH2.js +0 -49
- package/dist/RegressionLine-CW7iViH2.js.map +0 -1
- package/dist/RegressionLine-D-49RaHa.cjs +0 -2
- package/dist/RegressionLine-D-49RaHa.cjs.map +0 -1
- package/dist/Spinner-Bpz70q_g.js +0 -30
- package/dist/Spinner-Bpz70q_g.js.map +0 -1
- package/dist/Spinner-C6wLp85s.cjs +0 -2
- package/dist/Spinner-C6wLp85s.cjs.map +0 -1
- package/dist/Tooltip-6LIdPQGC.js +0 -46
- package/dist/Tooltip-6LIdPQGC.js.map +0 -1
- package/dist/Tooltip-Cpv0QohJ.cjs +0 -2
- package/dist/Tooltip-Cpv0QohJ.cjs.map +0 -1
- package/dist/Typography-BDULiwlF.cjs +0 -2
- package/dist/Typography-BDULiwlF.cjs.map +0 -1
- package/dist/Typography-LmZ9LEpe.js +0 -140
- package/dist/Typography-LmZ9LEpe.js.map +0 -1
- package/dist/XAxesLabels-CLZnBgSr.cjs +0 -2
- package/dist/XAxesLabels-CLZnBgSr.cjs.map +0 -1
- package/dist/XAxesLabels-SOSmso5J.js +0 -57
- package/dist/XAxesLabels-SOSmso5J.js.map +0 -1
- package/dist/XTicksAndGridLines-DuydSnZ_.js +0 -56
- package/dist/XTicksAndGridLines-DuydSnZ_.js.map +0 -1
- package/dist/XTicksAndGridLines-RKy7BVCO.cjs +0 -2
- package/dist/XTicksAndGridLines-RKy7BVCO.cjs.map +0 -1
- package/dist/YAxesLabels-DlDyLvhi.js +0 -52
- package/dist/YAxesLabels-DlDyLvhi.js.map +0 -1
- package/dist/YAxesLabels-Dqd259-t.cjs +0 -2
- package/dist/YAxesLabels-Dqd259-t.cjs.map +0 -1
- package/dist/YTicksAndGridLines-7t4MKtGw.js +0 -56
- package/dist/YTicksAndGridLines-7t4MKtGw.js.map +0 -1
- package/dist/YTicksAndGridLines-qGpRo_t1.cjs +0 -2
- package/dist/YTicksAndGridLines-qGpRo_t1.cjs.map +0 -1
- package/dist/checkIfMultiple-Dko_cBvE.cjs +0 -12
- package/dist/checkIfMultiple-Dko_cBvE.cjs.map +0 -1
- package/dist/checkIfMultiple-u2SmbiCf.js +0 -912
- package/dist/checkIfMultiple-u2SmbiCf.js.map +0 -1
- package/dist/customArea-1G1S78s_.cjs +0 -2
- package/dist/customArea-x4L4xwLl.js +0 -175
- package/dist/fetchAndParseData-Ba-_CgxS.cjs +0 -16
- package/dist/getGraphList-DuColTJM.js +0 -265
- package/dist/getSliderMarks-CUxPy36E.cjs +0 -6
- package/dist/getSliderMarks-CUxPy36E.cjs.map +0 -1
- package/dist/getSliderMarks-_pYOWEtO.js +0 -1023
- package/dist/getSliderMarks-_pYOWEtO.js.map +0 -1
- package/dist/index-9tDEUqOZ.js.map +0 -1
- package/dist/index-BHe3wsWF.cjs +0 -2
- package/dist/index-Bw_eHBVN.js +0 -77
- package/dist/index-C0bpbS4F.cjs +0 -2
- package/dist/index-C0bpbS4F.cjs.map +0 -1
- package/dist/index-CE9pmfxt.js +0 -430
- package/dist/index-CE9pmfxt.js.map +0 -1
- package/dist/index-CEJwW3lL.cjs +0 -2
- package/dist/index-CEJwW3lL.cjs.map +0 -1
- package/dist/index-CHPV5EwG-DBWUSD9b.js.map +0 -1
- package/dist/index-CHPV5EwG-DjM48pIC.cjs +0 -44
- package/dist/index-CHPV5EwG-DjM48pIC.cjs.map +0 -1
- package/dist/index-CQ3e6Ewi.cjs +0 -2
- package/dist/index-Cm8NIdOO.cjs +0 -10
- package/dist/index-Cm8NIdOO.cjs.map +0 -1
- package/dist/index-CoZbeNM9.cjs +0 -2
- package/dist/index-CoZbeNM9.cjs.map +0 -1
- package/dist/index-Cwgh7i7X.js +0 -122
- package/dist/index-Cwgh7i7X.js.map +0 -1
- package/dist/index-D72cOtq7.cjs +0 -2
- package/dist/index-zZjQEHlm.js +0 -342
- package/dist/index-zZjQEHlm.js.map +0 -1
- package/dist/ordinal-BOeNbyae.cjs.map +0 -1
- package/dist/ordinal-w9Lu4Stb.js.map +0 -1
- package/dist/proxy-BYIC9BuT.js.map +0 -1
- package/dist/proxy-CKadx4lC.cjs +0 -2
- package/dist/proxy-CKadx4lC.cjs.map +0 -1
- package/dist/string2HTML-z7CwHXcx.cjs +0 -3
- package/dist/transformDataForAggregation-sBpdlX8n.js +0 -755
- package/dist/transformDataForGraphFromFile-ComYvzuz.js +0 -24
- package/dist/use-in-view-CEwlc_dd.cjs +0 -2
- package/dist/use-in-view-CEwlc_dd.cjs.map +0 -1
- package/dist/use-in-view-DR-UTB96.js.map +0 -1
- package/dist/zoom-BiMNsz72.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delaunay-C1uAf38t.js","sources":["../node_modules/robust-predicates/esm/util.js","../node_modules/robust-predicates/esm/orient2d.js","../node_modules/delaunator/index.js","../node_modules/d3-delaunay/src/path.js","../node_modules/d3-delaunay/src/polygon.js","../node_modules/d3-delaunay/src/voronoi.js","../node_modules/d3-delaunay/src/delaunay.js"],"sourcesContent":["export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0, minDist = Infinity; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n // find the point closest to the seed\n for (let i = 0, minDist = Infinity; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n const d = this._dists[id];\n if (d > d0) {\n hull[j++] = id;\n d0 = d;\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n let bx, by; // lazily computed barycenter of the hull\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // For a degenerate triangle, the circumcenter is at the infinity, in a\n // direction orthogonal to the halfedge and away from the “center” of\n // the diagram <bx, by>, defined as the hull’s barycenter.\n if (bx === undefined) {\n bx = by = 0;\n for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];\n bx /= hull.length, by /= hull.length;\n }\n const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] === cj[aj]\n && ci[ai + 1] === cj[aj + 1]\n && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return this._simplify(V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points));\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n // for more robustness, always consider the segment in the same order\n const flip = c0 < c1;\n if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];\n while (true) {\n if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n _simplify(P) {\n if (P && P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {\n P.splice(j, 2), i -= 2;\n }\n }\n if (!P.length) P = null;\n }\n return P;\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n"],"names":["epsilon","splitter","resulterrbound","sum","elen","e","flen","f","h","Q","Qnew","hh","bvirt","enow","fnow","eindex","findex","hindex","estimate","i","vec","n","ccwerrboundA","ccwerrboundB","ccwerrboundC","B","C1","C2","D","u","orient2dadapt","ax","ay","bx","by","cx","cy","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_i","_j","_0","s1","s0","t1","t0","u3","acx","bcx","acy","bcy","det","errbound","C1len","C2len","Dlen","orient2d","detleft","detright","EPSILON","EDGE_STACK","Delaunator","points","getX","defaultGetX","getY","defaultGetY","coords","p","maxTriangles","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","y","i0","i1","i2","minDist","d","dist","i0x","i0y","i1x","i1y","minRadius","r","circumradius","i2x","i2y","quicksort","hull","j","d0","id","center","circumcenter","hullSize","k","xp","yp","x","start","key","q","t","pseudoAngle","a","triangles","halfedges","ar","b","a0","b0","al","bl","p0","pr","pl","p1","inCircle","hbl","br","c","dx","dy","px","py","ex","ey","fx","fy","ap","bp","cp","cl","ids","dists","left","right","temp","tempDist","median","swap","arr","tmp","Path","x0","y0","w","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","vectors","circumcenters","t2","t3","x1","y1","x2","y2","x3","y3","ab","context","buffer","inedges","ti","tj","xi","yi","xj","yj","h0","h1","v","cell","polygon","S","c0","c1","ci","cj","loop","ai","li","aj","lj","e0","V","P","e1","sx0","sy0","sx1","sy1","flip","vx0","vy0","vxn","vyn","vx","vy","tau","pow","pointX","pointY","collinear","jitter","Delaunay","that","flatArray","flatIterable","_","bounds","hullIndex","_hullIndex","l","dc","dt","array"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"delaunay-C1uAf38t.js","sources":["../node_modules/delaunator/node_modules/robust-predicates/esm/util.js","../node_modules/delaunator/node_modules/robust-predicates/esm/orient2d.js","../node_modules/delaunator/index.js","../node_modules/d3-delaunay/src/path.js","../node_modules/d3-delaunay/src/polygon.js","../node_modules/d3-delaunay/src/voronoi.js","../node_modules/d3-delaunay/src/delaunay.js"],"sourcesContent":["export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0, minDist = Infinity; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n // find the point closest to the seed\n for (let i = 0, minDist = Infinity; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n const d = this._dists[id];\n if (d > d0) {\n hull[j++] = id;\n d0 = d;\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n let bx, by; // lazily computed barycenter of the hull\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // For a degenerate triangle, the circumcenter is at the infinity, in a\n // direction orthogonal to the halfedge and away from the “center” of\n // the diagram <bx, by>, defined as the hull’s barycenter.\n if (bx === undefined) {\n bx = by = 0;\n for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];\n bx /= hull.length, by /= hull.length;\n }\n const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] === cj[aj]\n && ci[ai + 1] === cj[aj + 1]\n && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return this._simplify(V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points));\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n // for more robustness, always consider the segment in the same order\n const flip = c0 < c1;\n if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];\n while (true) {\n if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n _simplify(P) {\n if (P && P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {\n P.splice(j, 2), i -= 2;\n }\n }\n if (!P.length) P = null;\n }\n return P;\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n"],"names":["epsilon","splitter","resulterrbound","sum","elen","e","flen","f","h","Q","Qnew","hh","bvirt","enow","fnow","eindex","findex","hindex","estimate","i","vec","n","ccwerrboundA","ccwerrboundB","ccwerrboundC","B","C1","C2","D","u","orient2dadapt","ax","ay","bx","by","cx","cy","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_i","_j","_0","s1","s0","t1","t0","u3","acx","bcx","acy","bcy","det","errbound","C1len","C2len","Dlen","orient2d","detleft","detright","EPSILON","EDGE_STACK","Delaunator","points","getX","defaultGetX","getY","defaultGetY","coords","p","maxTriangles","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","y","i0","i1","i2","minDist","d","dist","i0x","i0y","i1x","i1y","minRadius","r","circumradius","i2x","i2y","quicksort","hull","j","d0","id","center","circumcenter","hullSize","k","xp","yp","x","start","key","q","t","pseudoAngle","a","triangles","halfedges","ar","b","a0","b0","al","bl","p0","pr","pl","p1","inCircle","hbl","br","c","dx","dy","px","py","ex","ey","fx","fy","ap","bp","cp","cl","ids","dists","left","right","temp","tempDist","median","swap","arr","tmp","Path","x0","y0","w","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","vectors","circumcenters","t2","t3","x1","y1","x2","y2","x3","y3","ab","context","buffer","inedges","ti","tj","xi","yi","xj","yj","h0","h1","v","cell","polygon","S","c0","c1","ci","cj","loop","ai","li","aj","lj","e0","V","P","e1","sx0","sy0","sx1","sy1","flip","vx0","vy0","vxn","vyn","vx","vy","tau","pow","pointX","pointY","collinear","jitter","Delaunay","that","flatArray","flatIterable","_","bounds","hullIndex","_hullIndex","l","dc","dt","array"],"mappings":"AAAO,MAAMA,IAAU,uBACVC,IAAW,WACXC,MAAkB,IAAI,IAAIF,KAAWA;AAG3C,SAASG,EAAIC,GAAMC,GAAGC,GAAMC,GAAGC,GAAG;AACrC,MAAIC,GAAGC,GAAMC,GAAIC,GACbC,IAAOR,EAAE,CAAC,GACVS,IAAOP,EAAE,CAAC,GACVQ,IAAS,GACTC,IAAS;AACb,EAAKF,IAAOD,KAAWC,IAAO,CAACD,KAC3BJ,IAAII,GACJA,IAAOR,EAAE,EAAEU,CAAM,MAEjBN,IAAIK,GACJA,IAAOP,EAAE,EAAES,CAAM;AAErB,MAAIC,IAAS;AACb,MAAIF,IAASX,KAAQY,IAASV;AAc1B,SAbKQ,IAAOD,KAAWC,IAAO,CAACD,KAC3BH,IAAOG,IAAOJ,GACdE,IAAKF,KAAKC,IAAOG,IACjBA,IAAOR,EAAE,EAAEU,CAAM,MAEjBL,IAAOI,IAAOL,GACdE,IAAKF,KAAKC,IAAOI,IACjBA,IAAOP,EAAE,EAAES,CAAM,IAErBP,IAAIC,GACAC,MAAO,MACPH,EAAES,GAAQ,IAAIN,IAEXI,IAASX,KAAQY,IAASV;AAC7B,MAAKQ,IAAOD,KAAWC,IAAO,CAACD,KAC3BH,IAAOD,IAAII,GACXD,IAAQF,IAAOD,GACfE,IAAKF,KAAKC,IAAOE,MAAUC,IAAOD,IAClCC,IAAOR,EAAE,EAAEU,CAAM,MAEjBL,IAAOD,IAAIK,GACXF,IAAQF,IAAOD,GACfE,IAAKF,KAAKC,IAAOE,MAAUE,IAAOF,IAClCE,IAAOP,EAAE,EAAES,CAAM,IAErBP,IAAIC,GACAC,MAAO,MACPH,EAAES,GAAQ,IAAIN;AAI1B,SAAOI,IAASX;AACZ,IAAAM,IAAOD,IAAII,GACXD,IAAQF,IAAOD,GACfE,IAAKF,KAAKC,IAAOE,MAAUC,IAAOD,IAClCC,IAAOR,EAAE,EAAEU,CAAM,GACjBN,IAAIC,GACAC,MAAO,MACPH,EAAES,GAAQ,IAAIN;AAGtB,SAAOK,IAASV;AACZ,IAAAI,IAAOD,IAAIK,GACXF,IAAQF,IAAOD,GACfE,IAAKF,KAAKC,IAAOE,MAAUE,IAAOF,IAClCE,IAAOP,EAAE,EAAES,CAAM,GACjBP,IAAIC,GACAC,MAAO,MACPH,EAAES,GAAQ,IAAIN;AAGtB,UAAIF,MAAM,KAAKQ,MAAW,OACtBT,EAAES,GAAQ,IAAIR,IAEXQ;AACX;AAsDO,SAASC,GAASd,GAAMC,GAAG;AAC9B,MAAII,IAAIJ,EAAE,CAAC;AACX,WAASc,IAAI,GAAGA,IAAIf,GAAMe,IAAK,CAAAV,KAAKJ,EAAEc,CAAC;AACvC,SAAOV;AACX;AAEO,SAASW,EAAIC,GAAG;AACnB,SAAO,IAAI,aAAaA,CAAC;AAC7B;ACvIA,MAAMC,MAAgB,IAAI,KAAKtB,KAAWA,GACpCuB,MAAgB,IAAI,KAAKvB,KAAWA,GACpCwB,MAAgB,IAAI,KAAKxB,KAAWA,IAAUA,GAE9CyB,IAAIL,EAAI,CAAC,GACTM,IAAKN,EAAI,CAAC,GACVO,IAAKP,EAAI,EAAE,GACXQ,KAAIR,EAAI,EAAE,GACVS,IAAIT,EAAI,CAAC;AAEf,SAASU,GAAcC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAQ;AACnD,MAAIC,GAASC,GAASC,GAASC,GAC3B7B,GAAO,GAAG8B,GAAKC,GAAKC,GAAKC,GAAKC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC;AAE9D,QAAMC,IAAMvB,IAAKI,GACXoB,IAAMtB,IAAKE,GACXqB,IAAMxB,IAAKI,GACXqB,IAAMvB,IAAKE;AAEjB,EAAAa,IAAKK,IAAMG,GACX,IAAIxD,IAAWqD,GACfZ,IAAM,KAAK,IAAIY,IACfX,IAAMW,IAAMZ,GACZ,IAAIzC,IAAWwD,GACfb,IAAM,KAAK,IAAIa,IACfZ,IAAMY,IAAMb,GACZM,IAAKP,IAAME,KAAOI,IAAKP,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDM,IAAKK,IAAMD,GACX,IAAItD,IAAWuD,GACfd,IAAM,KAAK,IAAIc,IACfb,IAAMa,IAAMd,GACZ,IAAIzC,IAAWsD,GACfX,IAAM,KAAK,IAAIW,IACfV,IAAMU,IAAMX,GACZQ,IAAKT,IAAME,KAAOM,IAAKT,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDC,IAAKI,IAAKE,GACVxC,IAAQsC,IAAKJ,GACbrB,EAAE,CAAC,IAAIyB,KAAMJ,IAAKlC,MAAUA,IAAQwC,IACpCL,IAAKE,IAAKH,GACVlC,IAAQmC,IAAKE,GACbD,IAAKC,KAAMF,IAAKnC,MAAUkC,IAAKlC,IAC/BkC,IAAKE,IAAKG,GACVvC,IAAQoC,IAAKF,GACbrB,EAAE,CAAC,IAAIuB,KAAMF,IAAKlC,MAAUA,IAAQuC,IACpCE,IAAKN,IAAKD,GACVlC,IAAQyC,IAAKN,GACbtB,EAAE,CAAC,IAAIsB,KAAMM,IAAKzC,MAAUkC,IAAKlC,IACjCa,EAAE,CAAC,IAAI4B;AAEP,MAAIK,IAAMxC,GAAS,GAAGO,CAAC,GACnBkC,IAAWpC,KAAec;AAoB9B,MAnBIqB,KAAOC,KAAY,CAACD,KAAOC,MAI/B/C,IAAQmB,IAAKuB,GACbhB,IAAUP,KAAMuB,IAAM1C,MAAUA,IAAQuB,IACxCvB,IAAQqB,IAAKsB,GACbf,IAAUP,KAAMsB,IAAM3C,MAAUA,IAAQuB,IACxCvB,IAAQoB,IAAKwB,GACbjB,IAAUP,KAAMwB,IAAM5C,MAAUA,IAAQwB,IACxCxB,IAAQsB,IAAKuB,GACbhB,IAAUP,KAAMuB,IAAM7C,MAAUA,IAAQwB,IAEpCE,MAAY,KAAKC,MAAY,KAAKC,MAAY,KAAKC,MAAY,OAInEkB,IAAWnC,KAAea,IAASnC,KAAiB,KAAK,IAAIwD,CAAG,GAChEA,KAAQJ,IAAMb,IAAUgB,IAAMnB,KAAYkB,IAAMhB,IAAUe,IAAMhB,IAC5DmB,KAAOC,KAAY,CAACD,KAAOC,GAAU,QAAOD;AAEhD,EAAAT,IAAKX,IAAUmB,GACf,IAAIxD,IAAWqC,GACfI,IAAM,KAAK,IAAIJ,IACfK,IAAML,IAAUI,GAChB,IAAIzC,IAAWwD,GACfb,IAAM,KAAK,IAAIa,IACfZ,IAAMY,IAAMb,GACZM,IAAKP,IAAME,KAAOI,IAAKP,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDM,IAAKZ,IAAUgB,GACf,IAAItD,IAAWsC,GACfG,IAAM,KAAK,IAAIH,IACfI,IAAMJ,IAAUG,GAChB,IAAIzC,IAAWsD,GACfX,IAAM,KAAK,IAAIW,IACfV,IAAMU,IAAMX,GACZQ,IAAKT,IAAME,KAAOM,IAAKT,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDC,IAAKI,IAAKE,GACVxC,IAAQsC,IAAKJ,GACbjB,EAAE,CAAC,IAAIqB,KAAMJ,IAAKlC,MAAUA,IAAQwC,IACpCL,IAAKE,IAAKH,GACVlC,IAAQmC,IAAKE,GACbD,IAAKC,KAAMF,IAAKnC,MAAUkC,IAAKlC,IAC/BkC,IAAKE,IAAKG,GACVvC,IAAQoC,IAAKF,GACbjB,EAAE,CAAC,IAAImB,KAAMF,IAAKlC,MAAUA,IAAQuC,IACpCE,IAAKN,IAAKD,GACVlC,IAAQyC,IAAKN,GACblB,EAAE,CAAC,IAAIkB,KAAMM,IAAKzC,MAAUkC,IAAKlC,IACjCiB,EAAE,CAAC,IAAIwB;AACP,QAAMO,IAAQzD,EAAI,GAAGsB,GAAG,GAAGI,GAAGH,CAAE;AAEhC,EAAAuB,IAAKK,IAAMb,GACX,IAAIxC,IAAWqD,GACfZ,IAAM,KAAK,IAAIY,IACfX,IAAMW,IAAMZ,GACZ,IAAIzC,IAAWwC,GACfG,IAAM,KAAK,IAAIH,IACfI,IAAMJ,IAAUG,GAChBM,IAAKP,IAAME,KAAOI,IAAKP,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDM,IAAKK,IAAMhB,GACX,IAAIvC,IAAWuD,GACfd,IAAM,KAAK,IAAIc,IACfb,IAAMa,IAAMd,GACZ,IAAIzC,IAAWuC,GACfI,IAAM,KAAK,IAAIJ,IACfK,IAAML,IAAUI,GAChBQ,IAAKT,IAAME,KAAOM,IAAKT,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDC,IAAKI,IAAKE,GACVxC,IAAQsC,IAAKJ,GACbjB,EAAE,CAAC,IAAIqB,KAAMJ,IAAKlC,MAAUA,IAAQwC,IACpCL,IAAKE,IAAKH,GACVlC,IAAQmC,IAAKE,GACbD,IAAKC,KAAMF,IAAKnC,MAAUkC,IAAKlC,IAC/BkC,IAAKE,IAAKG,GACVvC,IAAQoC,IAAKF,GACbjB,EAAE,CAAC,IAAImB,KAAMF,IAAKlC,MAAUA,IAAQuC,IACpCE,IAAKN,IAAKD,GACVlC,IAAQyC,IAAKN,GACblB,EAAE,CAAC,IAAIkB,KAAMM,IAAKzC,MAAUkC,IAAKlC,IACjCiB,EAAE,CAAC,IAAIwB;AACP,QAAMQ,IAAQ1D,EAAIyD,GAAOlC,GAAI,GAAGG,GAAGF,CAAE;AAErC,EAAAsB,IAAKX,IAAUG,GACf,IAAIxC,IAAWqC,GACfI,IAAM,KAAK,IAAIJ,IACfK,IAAML,IAAUI,GAChB,IAAIzC,IAAWwC,GACfG,IAAM,KAAK,IAAIH,IACfI,IAAMJ,IAAUG,GAChBM,IAAKP,IAAME,KAAOI,IAAKP,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDM,IAAKZ,IAAUC,GACf,IAAIvC,IAAWsC,GACfG,IAAM,KAAK,IAAIH,IACfI,IAAMJ,IAAUG,GAChB,IAAIzC,IAAWuC,GACfI,IAAM,KAAK,IAAIJ,IACfK,IAAML,IAAUI,GAChBQ,IAAKT,IAAME,KAAOM,IAAKT,IAAME,IAAMD,IAAMC,IAAMF,IAAMG,IACrDC,IAAKI,IAAKE,GACVxC,IAAQsC,IAAKJ,GACbjB,EAAE,CAAC,IAAIqB,KAAMJ,IAAKlC,MAAUA,IAAQwC,IACpCL,IAAKE,IAAKH,GACVlC,IAAQmC,IAAKE,GACbD,IAAKC,KAAMF,IAAKnC,MAAUkC,IAAKlC,IAC/BkC,IAAKE,IAAKG,GACVvC,IAAQoC,IAAKF,GACbjB,EAAE,CAAC,IAAImB,KAAMF,IAAKlC,MAAUA,IAAQuC,IACpCE,IAAKN,IAAKD,GACVlC,IAAQyC,IAAKN,GACblB,EAAE,CAAC,IAAIkB,KAAMM,IAAKzC,MAAUkC,IAAKlC,IACjCiB,EAAE,CAAC,IAAIwB;AACP,QAAMS,IAAO3D,EAAI0D,GAAOlC,GAAI,GAAGE,GAAGD,EAAC;AAEnC,SAAOA,GAAEkC,IAAO,CAAC;AACrB;AAEO,SAASC,EAAShC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI;AAC7C,QAAM4B,KAAWhC,IAAKI,MAAOH,IAAKE,IAC5B8B,KAAYlC,IAAKI,MAAOD,IAAKE,IAC7BsB,IAAMM,IAAUC,GAEhB5B,IAAS,KAAK,IAAI2B,IAAUC,CAAQ;AAC1C,SAAI,KAAK,IAAIP,CAAG,KAAKpC,KAAee,IAAeqB,IAE5C,CAAC5B,GAAcC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,CAAM;AACxD;AClLA,MAAM6B,KAAU,KAAK,IAAI,GAAG,GAAG,GACzBC,IAAa,IAAI,YAAY,GAAG;AAIvB,MAAMC,EAAW;AAAA,EAE5B,OAAO,KAAKC,GAAQC,IAAOC,IAAaC,IAAOC,IAAa;AACxD,UAAMpD,IAAIgD,EAAO,QACXK,IAAS,IAAI,aAAarD,IAAI,CAAC;AAErC,aAASF,IAAI,GAAGA,IAAIE,GAAGF,KAAK;AACxB,YAAMwD,IAAIN,EAAOlD,CAAC;AAClB,MAAAuD,EAAO,IAAIvD,CAAC,IAAImD,EAAKK,CAAC,GACtBD,EAAO,IAAIvD,IAAI,CAAC,IAAIqD,EAAKG,CAAC;AAAA,IAC9B;AAEA,WAAO,IAAIP,EAAWM,CAAM;AAAA,EAChC;AAAA,EAEA,YAAYA,GAAQ;AAChB,UAAM,IAAIA,EAAO,UAAU;AAC3B,QAAI,IAAI,KAAK,OAAOA,EAAO,CAAC,KAAM,SAAU,OAAM,IAAI,MAAM,qCAAqC;AAEjG,SAAK,SAASA;AAGd,UAAME,IAAe,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;AAC1C,SAAK,aAAa,IAAI,YAAYA,IAAe,CAAC,GAClD,KAAK,aAAa,IAAI,WAAWA,IAAe,CAAC,GAGjD,KAAK,YAAY,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,GACvC,KAAK,YAAY,IAAI,YAAY,CAAC,GAClC,KAAK,YAAY,IAAI,YAAY,CAAC,GAClC,KAAK,WAAW,IAAI,YAAY,CAAC,GACjC,KAAK,YAAY,IAAI,WAAW,KAAK,SAAS,GAG9C,KAAK,OAAO,IAAI,YAAY,CAAC,GAC7B,KAAK,SAAS,IAAI,aAAa,CAAC,GAEhC,KAAK,OAAM;AAAA,EACf;AAAA,EAEA,SAAS;AACL,UAAM,EAAC,QAAAF,GAAQ,WAAWG,GAAU,WAAWC,GAAU,UAAUC,GAAS,WAAWC,EAAQ,IAAK,MAC9F3D,IAAIqD,EAAO,UAAU;AAG3B,QAAIO,IAAO,OACPC,IAAO,OACPC,IAAO,QACPC,IAAO;AAEX,aAASjE,IAAI,GAAGA,IAAIE,GAAGF,KAAK;AACxB,YAAM,IAAIuD,EAAO,IAAIvD,CAAC,GAChBkE,IAAIX,EAAO,IAAIvD,IAAI,CAAC;AAC1B,MAAI,IAAI8D,MAAMA,IAAO,IACjBI,IAAIH,MAAMA,IAAOG,IACjB,IAAIF,MAAMA,IAAO,IACjBE,IAAID,MAAMA,IAAOC,IACrB,KAAK,KAAKlE,CAAC,IAAIA;AAAA,IACnB;AACA,UAAMgB,KAAM8C,IAAOE,KAAQ,GACrB/C,KAAM8C,IAAOE,KAAQ;AAE3B,QAAIE,GAAIC,GAAIC;AAGZ,aAASrE,IAAI,GAAGsE,IAAU,OAAUtE,IAAIE,GAAGF,KAAK;AAC5C,YAAMuE,IAAIC,EAAKxD,GAAIC,GAAIsC,EAAO,IAAIvD,CAAC,GAAGuD,EAAO,IAAIvD,IAAI,CAAC,CAAC;AACvD,MAAIuE,IAAID,MACJH,IAAKnE,GACLsE,IAAUC;AAAA,IAElB;AACA,UAAME,IAAMlB,EAAO,IAAIY,CAAE,GACnBO,IAAMnB,EAAO,IAAIY,IAAK,CAAC;AAG7B,aAASnE,IAAI,GAAGsE,IAAU,OAAUtE,IAAIE,GAAGF,KAAK;AAC5C,UAAIA,MAAMmE,EAAI;AACd,YAAMI,IAAIC,EAAKC,GAAKC,GAAKnB,EAAO,IAAIvD,CAAC,GAAGuD,EAAO,IAAIvD,IAAI,CAAC,CAAC;AACzD,MAAIuE,IAAID,KAAWC,IAAI,MACnBH,IAAKpE,GACLsE,IAAUC;AAAA,IAElB;AACA,QAAII,IAAMpB,EAAO,IAAIa,CAAE,GACnBQ,IAAMrB,EAAO,IAAIa,IAAK,CAAC,GAEvBS,IAAY;AAGhB,aAAS7E,IAAI,GAAGA,IAAIE,GAAGF,KAAK;AACxB,UAAIA,MAAMmE,KAAMnE,MAAMoE,EAAI;AAC1B,YAAMU,IAAIC,GAAaN,GAAKC,GAAKC,GAAKC,GAAKrB,EAAO,IAAIvD,CAAC,GAAGuD,EAAO,IAAIvD,IAAI,CAAC,CAAC;AAC3E,MAAI8E,IAAID,MACJR,IAAKrE,GACL6E,IAAYC;AAAA,IAEpB;AACA,QAAIE,IAAMzB,EAAO,IAAIc,CAAE,GACnBY,IAAM1B,EAAO,IAAIc,IAAK,CAAC;AAE3B,QAAIQ,MAAc,OAAU;AAGxB,eAAS7E,IAAI,GAAGA,IAAIE,GAAGF;AACnB,aAAK,OAAOA,CAAC,IAAKuD,EAAO,IAAIvD,CAAC,IAAIuD,EAAO,CAAC,KAAOA,EAAO,IAAIvD,IAAI,CAAC,IAAIuD,EAAO,CAAC;AAEjF,MAAA2B,EAAU,KAAK,MAAM,KAAK,QAAQ,GAAGhF,IAAI,CAAC;AAC1C,YAAMiF,IAAO,IAAI,YAAYjF,CAAC;AAC9B,UAAIkF,IAAI;AACR,eAASpF,IAAI,GAAGqF,IAAK,QAAWrF,IAAIE,GAAGF,KAAK;AACxC,cAAMsF,IAAK,KAAK,KAAKtF,CAAC,GAChBuE,IAAI,KAAK,OAAOe,CAAE;AACxB,QAAIf,IAAIc,MACJF,EAAKC,GAAG,IAAIE,GACZD,IAAKd;AAAA,MAEb;AACA,WAAK,OAAOY,EAAK,SAAS,GAAGC,CAAC,GAC9B,KAAK,YAAY,IAAI,YAAY,CAAC,GAClC,KAAK,YAAY,IAAI,YAAY,CAAC;AAClC;AAAA,IACJ;AAGA,QAAIxC,EAAS6B,GAAKC,GAAKC,GAAKC,GAAKI,GAAKC,CAAG,IAAI,GAAG;AAC5C,YAAMjF,IAAIoE,GACJ,IAAIO,GACJT,IAAIU;AACV,MAAAR,IAAKC,GACLM,IAAMK,GACNJ,IAAMK,GACNZ,IAAKrE,GACLgF,IAAM,GACNC,IAAMf;AAAA,IACV;AAEA,UAAMqB,IAASC,GAAaf,GAAKC,GAAKC,GAAKC,GAAKI,GAAKC,CAAG;AACxD,SAAK,MAAMM,EAAO,GAClB,KAAK,MAAMA,EAAO;AAElB,aAASvF,IAAI,GAAGA,IAAIE,GAAGF;AACnB,WAAK,OAAOA,CAAC,IAAIwE,EAAKjB,EAAO,IAAIvD,CAAC,GAAGuD,EAAO,IAAIvD,IAAI,CAAC,GAAGuF,EAAO,GAAGA,EAAO,CAAC;AAI9E,IAAAL,EAAU,KAAK,MAAM,KAAK,QAAQ,GAAGhF,IAAI,CAAC,GAG1C,KAAK,aAAaiE;AAClB,QAAIsB,IAAW;AAEf,IAAA9B,EAASQ,CAAE,IAAIT,EAASW,CAAE,IAAID,GAC9BT,EAASS,CAAE,IAAIV,EAASS,CAAE,IAAIE,GAC9BV,EAASU,CAAE,IAAIX,EAASU,CAAE,IAAID,GAE9BP,EAAQO,CAAE,IAAI,GACdP,EAAQQ,CAAE,IAAI,GACdR,EAAQS,CAAE,IAAI,GAEdR,EAAS,KAAK,EAAE,GAChBA,EAAS,KAAK,SAASY,GAAKC,CAAG,CAAC,IAAIP,GACpCN,EAAS,KAAK,SAASc,GAAKC,CAAG,CAAC,IAAIR,GACpCP,EAAS,KAAK,SAASmB,GAAKC,CAAG,CAAC,IAAIZ,GAEpC,KAAK,eAAe,GACpB,KAAK,aAAaF,GAAIC,GAAIC,GAAI,IAAI,IAAI,EAAE;AAExC,aAASqB,IAAI,GAAGC,GAAIC,GAAIF,IAAI,KAAK,KAAK,QAAQA,KAAK;AAC/C,YAAM1F,IAAI,KAAK,KAAK0F,CAAC,GACfG,IAAItC,EAAO,IAAIvD,CAAC,GAChBkE,IAAIX,EAAO,IAAIvD,IAAI,CAAC;AAQ1B,UALI0F,IAAI,KAAK,KAAK,IAAIG,IAAIF,CAAE,KAAK5C,MAAW,KAAK,IAAImB,IAAI0B,CAAE,KAAK7C,OAChE4C,IAAKE,GACLD,IAAK1B,GAGDlE,MAAMmE,KAAMnE,MAAMoE,KAAMpE,MAAMqE,GAAI;AAGtC,UAAIyB,IAAQ;AACZ,eAASV,IAAI,GAAGW,KAAM,KAAK,SAASF,GAAG3B,CAAC,GAAGkB,IAAI,KAAK,cAChDU,IAAQjC,GAAUkC,KAAMX,KAAK,KAAK,SAAS,GACvC,EAAAU,MAAU,MAAMA,MAAUnC,EAASmC,CAAK,KAFeV;AAE3D;AAGJ,MAAAU,IAAQpC,EAASoC,CAAK;AACtB,UAAI5G,IAAI4G,GAAOE;AACf,aAAOA,IAAIrC,EAASzE,CAAC,GAAG0D,EAASiD,GAAG3B,GAAGX,EAAO,IAAIrE,CAAC,GAAGqE,EAAO,IAAIrE,IAAI,CAAC,GAAGqE,EAAO,IAAIyC,CAAC,GAAGzC,EAAO,IAAIyC,IAAI,CAAC,CAAC,KAAK;AAE1G,YADA9G,IAAI8G,GACA9G,MAAM4G,GAAO;AACb,UAAA5G,IAAI;AACJ;AAAA,QACJ;AAEJ,UAAIA,MAAM,GAAI;AAGd,UAAI+G,IAAI,KAAK,aAAa/G,GAAGc,GAAG2D,EAASzE,CAAC,GAAG,IAAI,IAAI0E,EAAQ1E,CAAC,CAAC;AAG/D,MAAA0E,EAAQ5D,CAAC,IAAI,KAAK,UAAUiG,IAAI,CAAC,GACjCrC,EAAQ1E,CAAC,IAAI+G,GACbR;AAGA,UAAIvF,IAAIyD,EAASzE,CAAC;AAClB,aAAO8G,IAAIrC,EAASzD,CAAC,GAAG0C,EAASiD,GAAG3B,GAAGX,EAAO,IAAIrD,CAAC,GAAGqD,EAAO,IAAIrD,IAAI,CAAC,GAAGqD,EAAO,IAAIyC,CAAC,GAAGzC,EAAO,IAAIyC,IAAI,CAAC,CAAC,IAAI;AACzG,QAAAC,IAAI,KAAK,aAAa/F,GAAGF,GAAGgG,GAAGpC,EAAQ5D,CAAC,GAAG,IAAI4D,EAAQ1D,CAAC,CAAC,GACzD0D,EAAQ5D,CAAC,IAAI,KAAK,UAAUiG,IAAI,CAAC,GACjCtC,EAASzD,CAAC,IAAIA,GACduF,KACAvF,IAAI8F;AAIR,UAAI9G,MAAM4G;AACN,eAAOE,IAAItC,EAASxE,CAAC,GAAG0D,EAASiD,GAAG3B,GAAGX,EAAO,IAAIyC,CAAC,GAAGzC,EAAO,IAAIyC,IAAI,CAAC,GAAGzC,EAAO,IAAIrE,CAAC,GAAGqE,EAAO,IAAIrE,IAAI,CAAC,CAAC,IAAI;AACzG,UAAA+G,IAAI,KAAK,aAAaD,GAAGhG,GAAGd,GAAG,IAAI0E,EAAQ1E,CAAC,GAAG0E,EAAQoC,CAAC,CAAC,GACzD,KAAK,UAAUC,IAAI,CAAC,GACpBrC,EAAQoC,CAAC,IAAIC,GACbtC,EAASzE,CAAC,IAAIA,GACduG,KACAvG,IAAI8G;AAKZ,WAAK,aAAatC,EAAS1D,CAAC,IAAId,GAChCyE,EAASzE,CAAC,IAAIwE,EAASxD,CAAC,IAAIF,GAC5B2D,EAAS3D,CAAC,IAAIE,GAGd2D,EAAS,KAAK,SAASgC,GAAG3B,CAAC,CAAC,IAAIlE,GAChC6D,EAAS,KAAK,SAASN,EAAO,IAAIrE,CAAC,GAAGqE,EAAO,IAAIrE,IAAI,CAAC,CAAC,CAAC,IAAIA;AAAA,IAChE;AAEA,SAAK,OAAO,IAAI,YAAYuG,CAAQ;AACpC,aAASzF,IAAI,GAAGd,IAAI,KAAK,YAAYc,IAAIyF,GAAUzF;AAC/C,WAAK,KAAKA,CAAC,IAAId,GACfA,IAAIyE,EAASzE,CAAC;AAIlB,SAAK,YAAY,KAAK,WAAW,SAAS,GAAG,KAAK,YAAY,GAC9D,KAAK,YAAY,KAAK,WAAW,SAAS,GAAG,KAAK,YAAY;AAAA,EAClE;AAAA,EAEA,SAAS2G,GAAG3B,GAAG;AACX,WAAO,KAAK,MAAMgC,GAAYL,IAAI,KAAK,KAAK3B,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,IAAI,KAAK;AAAA,EACvF;AAAA,EAEA,UAAUiC,GAAG;AACT,UAAM,EAAC,YAAYC,GAAW,YAAYC,GAAW,QAAA9C,EAAM,IAAI;AAE/D,QAAIvD,IAAI,GACJsG,IAAK;AAGT,eAAa;AACT,YAAMC,IAAIF,EAAUF,CAAC,GAiBfK,IAAKL,IAAIA,IAAI;AAGnB,UAFAG,IAAKE,KAAML,IAAI,KAAK,GAEhBI,MAAM,IAAI;AACV,YAAIvG,MAAM,EAAG;AACb,QAAAmG,IAAInD,EAAW,EAAEhD,CAAC;AAClB;AAAA,MACJ;AAEA,YAAMyG,IAAKF,IAAIA,IAAI,GACbG,IAAKF,KAAML,IAAI,KAAK,GACpBQ,IAAKF,KAAMF,IAAI,KAAK,GAEpBK,IAAKR,EAAUE,CAAE,GACjBO,IAAKT,EAAUD,CAAC,GAChBW,IAAKV,EAAUM,CAAE,GACjBK,IAAKX,EAAUO,CAAE;AAQvB,UANgBK;AAAA,QACZzD,EAAO,IAAIqD,CAAE;AAAA,QAAGrD,EAAO,IAAIqD,IAAK,CAAC;AAAA,QACjCrD,EAAO,IAAIsD,CAAE;AAAA,QAAGtD,EAAO,IAAIsD,IAAK,CAAC;AAAA,QACjCtD,EAAO,IAAIuD,CAAE;AAAA,QAAGvD,EAAO,IAAIuD,IAAK,CAAC;AAAA,QACjCvD,EAAO,IAAIwD,CAAE;AAAA,QAAGxD,EAAO,IAAIwD,IAAK,CAAC;AAAA,MAAC,GAEzB;AACT,QAAAX,EAAUD,CAAC,IAAIY,GACfX,EAAUG,CAAC,IAAIK;AAEf,cAAMK,IAAMZ,EAAUM,CAAE;AAGxB,YAAIM,MAAQ,IAAI;AACZ,cAAI/H,IAAI,KAAK;AACb,aAAG;AACC,gBAAI,KAAK,SAASA,CAAC,MAAMyH,GAAI;AACzB,mBAAK,SAASzH,CAAC,IAAIiH;AACnB;AAAA,YACJ;AACA,YAAAjH,IAAI,KAAK,UAAUA,CAAC;AAAA,UACxB,SAASA,MAAM,KAAK;AAAA,QACxB;AACA,aAAK,MAAMiH,GAAGc,CAAG,GACjB,KAAK,MAAMV,GAAGF,EAAUC,CAAE,CAAC,GAC3B,KAAK,MAAMA,GAAIK,CAAE;AAEjB,cAAMO,IAAKT,KAAMF,IAAI,KAAK;AAG1B,QAAIvG,IAAIgD,EAAW,WACfA,EAAWhD,GAAG,IAAIkH;AAAA,MAE1B,OAAO;AACH,YAAIlH,MAAM,EAAG;AACb,QAAAmG,IAAInD,EAAW,EAAEhD,CAAC;AAAA,MACtB;AAAA,IACJ;AAEA,WAAOsG;AAAA,EACX;AAAA,EAEA,MAAMH,GAAGI,GAAG;AACR,SAAK,WAAWJ,CAAC,IAAII,GACjBA,MAAM,OAAI,KAAK,WAAWA,CAAC,IAAIJ;AAAA,EACvC;AAAA;AAAA,EAGA,aAAahC,GAAIC,GAAIC,GAAI8B,GAAGI,GAAGY,GAAG;AAC9B,UAAMlB,IAAI,KAAK;AAEf,gBAAK,WAAWA,CAAC,IAAI9B,GACrB,KAAK,WAAW8B,IAAI,CAAC,IAAI7B,GACzB,KAAK,WAAW6B,IAAI,CAAC,IAAI5B,GAEzB,KAAK,MAAM4B,GAAGE,CAAC,GACf,KAAK,MAAMF,IAAI,GAAGM,CAAC,GACnB,KAAK,MAAMN,IAAI,GAAGkB,CAAC,GAEnB,KAAK,gBAAgB,GAEdlB;AAAA,EACX;AACJ;AAGA,SAASC,GAAYkB,GAAIC,GAAI;AACzB,QAAM7D,IAAI4D,KAAM,KAAK,IAAIA,CAAE,IAAI,KAAK,IAAIC,CAAE;AAC1C,UAAQA,IAAK,IAAI,IAAI7D,IAAI,IAAIA,KAAK;AACtC;AAEA,SAASgB,EAAK5D,GAAIC,GAAIC,GAAIC,GAAI;AAC1B,QAAMqG,IAAKxG,IAAKE,GACVuG,IAAKxG,IAAKE;AAChB,SAAOqG,IAAKA,IAAKC,IAAKA;AAC1B;AAEA,SAASL,GAASpG,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIqG,GAAIC,GAAI;AAC9C,QAAMH,IAAKxG,IAAK0G,GACVD,IAAKxG,IAAK0G,GACVC,IAAK1G,IAAKwG,GACVG,IAAK1G,IAAKwG,GACVG,IAAK1G,IAAKsG,GACVK,IAAK1G,IAAKsG,GAEVK,IAAKR,IAAKA,IAAKC,IAAKA,GACpBQ,IAAKL,IAAKA,IAAKC,IAAKA,GACpBK,IAAKJ,IAAKA,IAAKC,IAAKA;AAE1B,SAAOP,KAAMK,IAAKK,IAAKD,IAAKF,KACrBN,KAAMG,IAAKM,IAAKD,IAAKH,KACrBE,KAAMJ,IAAKG,IAAKF,IAAKC,KAAM;AACtC;AAEA,SAAS3C,GAAanE,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI;AAC1C,QAAMmG,IAAKtG,IAAKF,GACVyG,IAAKtG,IAAKF,GACV2G,IAAKxG,IAAKJ,GACV6G,IAAKxG,IAAKJ,GAEV8F,IAAKS,IAAKA,IAAKC,IAAKA,GACpBU,IAAKP,IAAKA,IAAKC,IAAKA,GACpBlD,IAAI,OAAO6C,IAAKK,IAAKJ,IAAKG,IAE1B3B,KAAK4B,IAAKd,IAAKU,IAAKU,KAAMxD,GAC1BL,KAAKkD,IAAKW,IAAKP,IAAKb,KAAMpC;AAEhC,SAAOsB,IAAIA,IAAI3B,IAAIA;AACvB;AAEA,SAASsB,GAAa5E,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI;AAC1C,QAAMmG,IAAKtG,IAAKF,GACVyG,IAAKtG,IAAKF,GACV2G,IAAKxG,IAAKJ,GACV6G,IAAKxG,IAAKJ,GAEV8F,IAAKS,IAAKA,IAAKC,IAAKA,GACpBU,IAAKP,IAAKA,IAAKC,IAAKA,GACpBlD,IAAI,OAAO6C,IAAKK,IAAKJ,IAAKG,IAE1B3B,IAAIjF,KAAM6G,IAAKd,IAAKU,IAAKU,KAAMxD,GAC/BL,IAAIrD,KAAMuG,IAAKW,IAAKP,IAAKb,KAAMpC;AAErC,SAAO,EAAC,GAAAsB,GAAG,GAAA3B,EAAC;AAChB;AAEA,SAASgB,EAAU8C,GAAKC,GAAOC,GAAMC,GAAO;AACxC,MAAIA,IAAQD,KAAQ;AAChB,aAAS,IAAIA,IAAO,GAAG,KAAKC,GAAO,KAAK;AACpC,YAAMC,IAAOJ,EAAI,CAAC,GACZK,IAAWJ,EAAMG,CAAI;AAC3B,UAAIhD,IAAI,IAAI;AACZ,aAAOA,KAAK8C,KAAQD,EAAMD,EAAI5C,CAAC,CAAC,IAAIiD,IAAU,CAAAL,EAAI5C,IAAI,CAAC,IAAI4C,EAAI5C,GAAG;AAClE,MAAA4C,EAAI5C,IAAI,CAAC,IAAIgD;AAAA,IACjB;AAAA,OACG;AACH,UAAME,IAAUJ,IAAOC,KAAU;AACjC,QAAInI,IAAIkI,IAAO,GACX9C,IAAI+C;AACR,IAAAI,EAAKP,GAAKM,GAAQtI,CAAC,GACfiI,EAAMD,EAAIE,CAAI,CAAC,IAAID,EAAMD,EAAIG,CAAK,CAAC,KAAGI,EAAKP,GAAKE,GAAMC,CAAK,GAC3DF,EAAMD,EAAIhI,CAAC,CAAC,IAAIiI,EAAMD,EAAIG,CAAK,CAAC,KAAGI,EAAKP,GAAKhI,GAAGmI,CAAK,GACrDF,EAAMD,EAAIE,CAAI,CAAC,IAAID,EAAMD,EAAIhI,CAAC,CAAC,KAAGuI,EAAKP,GAAKE,GAAMlI,CAAC;AAEvD,UAAMoI,IAAOJ,EAAIhI,CAAC,GACZqI,IAAWJ,EAAMG,CAAI;AAC3B,eAAa;AACT;AAAG,QAAApI;AAAA,aAAYiI,EAAMD,EAAIhI,CAAC,CAAC,IAAIqI;AAC/B;AAAG,QAAAjD;AAAA,aAAY6C,EAAMD,EAAI5C,CAAC,CAAC,IAAIiD;AAC/B,UAAIjD,IAAIpF,EAAG;AACX,MAAAuI,EAAKP,GAAKhI,GAAGoF,CAAC;AAAA,IAClB;AACA,IAAA4C,EAAIE,IAAO,CAAC,IAAIF,EAAI5C,CAAC,GACrB4C,EAAI5C,CAAC,IAAIgD,GAELD,IAAQnI,IAAI,KAAKoF,IAAI8C,KACrBhD,EAAU8C,GAAKC,GAAOjI,GAAGmI,CAAK,GAC9BjD,EAAU8C,GAAKC,GAAOC,GAAM9C,IAAI,CAAC,MAEjCF,EAAU8C,GAAKC,GAAOC,GAAM9C,IAAI,CAAC,GACjCF,EAAU8C,GAAKC,GAAOjI,GAAGmI,CAAK;AAAA,EAEtC;AACJ;AAEA,SAASI,EAAKC,GAAKxI,GAAGoF,GAAG;AACrB,QAAMqD,IAAMD,EAAIxI,CAAC;AACjB,EAAAwI,EAAIxI,CAAC,IAAIwI,EAAIpD,CAAC,GACdoD,EAAIpD,CAAC,IAAIqD;AACb;AAEA,SAASrF,GAAYI,GAAG;AACpB,SAAOA,EAAE,CAAC;AACd;AACA,SAASF,GAAYE,GAAG;AACpB,SAAOA,EAAE,CAAC;AACd;AC/dA,MAAM3E,KAAU;AAED,MAAM6J,EAAK;AAAA,EACxB,cAAc;AACZ,SAAK,MAAM,KAAK;AAAA,IAChB,KAAK,MAAM,KAAK,MAAM,MACtB,KAAK,IAAI;AAAA,EACX;AAAA,EACA,OAAO7C,GAAG3B,GAAG;AACX,SAAK,KAAK,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC2B,CAAC,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC3B,CAAC;AAAA,EACpE;AAAA,EACA,YAAY;AACV,IAAI,KAAK,QAAQ,SACf,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KACrC,KAAK,KAAK;AAAA,EAEd;AAAA,EACA,OAAO2B,GAAG3B,GAAG;AACX,SAAK,KAAK,IAAI,KAAK,MAAM,CAAC2B,CAAC,IAAI,KAAK,MAAM,CAAC3B,CAAC;AAAA,EAC9C;AAAA,EACA,IAAI2B,GAAG3B,GAAGY,GAAG;AACX,IAAAe,IAAI,CAACA,GAAG3B,IAAI,CAACA,GAAGY,IAAI,CAACA;AACrB,UAAM6D,IAAK9C,IAAIf,GACT8D,IAAK1E;AACX,QAAIY,IAAI,EAAG,OAAM,IAAI,MAAM,iBAAiB;AAG5C,IAFI,KAAK,QAAQ,OAAM,KAAK,KAAK,IAAI6D,CAAE,IAAIC,CAAE,MACpC,KAAK,IAAI,KAAK,MAAMD,CAAE,IAAI9J,MAAW,KAAK,IAAI,KAAK,MAAM+J,CAAE,IAAI/J,QAAS,KAAK,KAAK,MAAM8J,IAAK,MAAMC,IACvG9D,MACL,KAAK,KAAK,IAAIA,CAAC,IAAIA,CAAC,UAAUe,IAAIf,CAAC,IAAIZ,CAAC,IAAIY,CAAC,IAAIA,CAAC,UAAU,KAAK,MAAM6D,CAAE,IAAI,KAAK,MAAMC,CAAE;AAAA,EAC5F;AAAA,EACA,KAAK/C,GAAG3B,GAAG2E,GAAGxJ,GAAG;AACf,SAAK,KAAK,IAAI,KAAK,MAAM,KAAK,MAAM,CAACwG,CAAC,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC3B,CAAC,IAAI,CAAC2E,CAAC,IAAI,CAACxJ,CAAC,IAAI,CAACwJ,CAAC;AAAA,EACtF;AAAA,EACA,QAAQ;AACN,WAAO,KAAK,KAAK;AAAA,EACnB;AACF;ACpCe,MAAMC,EAAQ;AAAA,EAC3B,cAAc;AACZ,SAAK,IAAI,CAAA;AAAA,EACX;AAAA,EACA,OAAOjD,GAAG3B,GAAG;AACX,SAAK,EAAE,KAAK,CAAC2B,GAAG3B,CAAC,CAAC;AAAA,EACpB;AAAA,EACA,YAAY;AACV,SAAK,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,OAAO;AAAA,EAC/B;AAAA,EACA,OAAO2B,GAAG3B,GAAG;AACX,SAAK,EAAE,KAAK,CAAC2B,GAAG3B,CAAC,CAAC;AAAA,EACpB;AAAA,EACA,QAAQ;AACN,WAAO,KAAK,EAAE,SAAS,KAAK,IAAI;AAAA,EAClC;AACF;ACbe,MAAM6E,GAAQ;AAAA,EAC3B,YAAYC,GAAU,CAACC,GAAMC,GAAMC,GAAMC,CAAI,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG;AACjE,QAAI,GAAGD,IAAO,CAACA,OAAUF,IAAO,CAACA,OAAU,GAAGG,IAAO,CAACA,OAAUF,IAAO,CAACA,IAAQ,OAAM,IAAI,MAAM,gBAAgB;AAChH,SAAK,WAAWF,GAChB,KAAK,iBAAiB,IAAI,aAAaA,EAAS,OAAO,SAAS,CAAC,GACjE,KAAK,UAAU,IAAI,aAAaA,EAAS,OAAO,SAAS,CAAC,GAC1D,KAAK,OAAOG,GAAM,KAAK,OAAOF,GAC9B,KAAK,OAAOG,GAAM,KAAK,OAAOF,GAC9B,KAAK,MAAK;AAAA,EACZ;AAAA,EACA,SAAS;AACP,gBAAK,SAAS,OAAM,GACpB,KAAK,MAAK,GACH;AAAA,EACT;AAAA,EACA,QAAQ;AACN,UAAM,EAAC,UAAU,EAAC,QAAAhG,GAAQ,MAAAiC,GAAM,WAAAiB,EAAS,GAAG,SAAAiD,EAAO,IAAI;AACvD,QAAIvI,GAAIC;AAGR,UAAMuI,IAAgB,KAAK,gBAAgB,KAAK,eAAe,SAAS,GAAGlD,EAAU,SAAS,IAAI,CAAC;AACnG,aAASpG,IAAI,GAAGoF,IAAI,GAAGlF,IAAIkG,EAAU,QAAQP,GAAG3B,GAAGlE,IAAIE,GAAGF,KAAK,GAAGoF,KAAK,GAAG;AACxE,YAAMpD,IAAKoE,EAAUpG,CAAC,IAAI,GACpBuJ,IAAKnD,EAAUpG,IAAI,CAAC,IAAI,GACxBwJ,IAAKpD,EAAUpG,IAAI,CAAC,IAAI,GACxByJ,IAAKvG,EAAOlB,CAAE,GACd0H,IAAKxG,EAAOlB,IAAK,CAAC,GAClB2H,IAAKzG,EAAOqG,CAAE,GACdK,IAAK1G,EAAOqG,IAAK,CAAC,GAClBM,IAAK3G,EAAOsG,CAAE,GACdM,IAAK5G,EAAOsG,IAAK,CAAC,GAElBpC,IAAKuC,IAAKF,GACVpC,IAAKuC,IAAKF,GACVlC,IAAKqC,IAAKJ,GACVhC,IAAKqC,IAAKJ,GACVK,KAAM3C,IAAKK,IAAKJ,IAAKG,KAAM;AAEjC,UAAI,KAAK,IAAIuC,CAAE,IAAI,MAAM;AAIvB,YAAIjJ,MAAO,QAAW;AACpB,UAAAA,IAAKC,IAAK;AACV,qBAAWf,KAAKmF,EAAM,CAAArE,KAAMoC,EAAOlD,IAAI,CAAC,GAAGe,KAAMmC,EAAOlD,IAAI,IAAI,CAAC;AACjE,UAAAc,KAAMqE,EAAK,QAAQpE,KAAMoE,EAAK;AAAA,QAChC;AACA,cAAMgB,IAAI,MAAM,KAAK,MAAMrF,IAAK2I,KAAMhC,KAAM1G,IAAK2I,KAAMlC,CAAE;AACzD,QAAA3B,KAAK4D,IAAKI,KAAM,IAAI1D,IAAIsB,GACxBvD,KAAKwF,IAAKI,KAAM,IAAI3D,IAAIqB;AAAA,MAC1B,OAAO;AACL,cAAMjD,IAAI,IAAIwF,GACRpD,IAAKS,IAAKA,IAAKC,IAAKA,GACpBU,IAAKP,IAAKA,IAAKC,IAAKA;AAC1B,QAAA5B,IAAI4D,KAAMhC,IAAKd,IAAKU,IAAKU,KAAMxD,GAC/BL,IAAIwF,KAAMtC,IAAKW,IAAKP,IAAKb,KAAMpC;AAAA,MACjC;AACA,MAAA+E,EAAclE,CAAC,IAAIS,GACnByD,EAAclE,IAAI,CAAC,IAAIlB;AAAA,IACzB;AAGA,QAAI7E,IAAI8F,EAAKA,EAAK,SAAS,CAAC,GACxByB,GAAIG,IAAK1H,IAAI,GACbsJ,GAAIc,IAAKvG,EAAO,IAAI7D,CAAC,GACrBuJ,GAAIc,IAAKxG,EAAO,IAAI7D,IAAI,CAAC;AAC7B,IAAAgK,EAAQ,KAAK,CAAC;AACd,aAASrJ,IAAI,GAAGA,IAAImF,EAAK,QAAQ,EAAEnF;AACjC,MAAAX,IAAI8F,EAAKnF,CAAC,GACV4G,IAAKG,GAAI4B,IAAKc,GAAIb,IAAKc,GACvB3C,IAAK1H,IAAI,GAAGoK,IAAKvG,EAAO,IAAI7D,CAAC,GAAGqK,IAAKxG,EAAO,IAAI7D,IAAI,CAAC,GACrDgK,EAAQzC,IAAK,CAAC,IAAIyC,EAAQtC,CAAE,IAAI6B,IAAKc,GACrCL,EAAQzC,IAAK,CAAC,IAAIyC,EAAQtC,IAAK,CAAC,IAAI0C,IAAKd;AAAA,EAE7C;AAAA,EACA,OAAOqB,GAAS;AACd,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChD,EAAC,UAAU,EAAC,WAAArC,GAAW,SAAA6D,GAAS,MAAA/E,EAAI,GAAG,eAAAmE,GAAe,SAAAD,EAAO,IAAI;AACvE,QAAIlE,EAAK,UAAU,EAAG,QAAO;AAC7B,aAASnF,IAAI,GAAGE,IAAImG,EAAU,QAAQrG,IAAIE,GAAG,EAAEF,GAAG;AAChD,YAAMoF,IAAIiB,EAAUrG,CAAC;AACrB,UAAIoF,IAAIpF,EAAG;AACX,YAAMmK,IAAK,KAAK,MAAMnK,IAAI,CAAC,IAAI,GACzBoK,IAAK,KAAK,MAAMhF,IAAI,CAAC,IAAI,GACzBiF,IAAKf,EAAca,CAAE,GACrBG,IAAKhB,EAAca,IAAK,CAAC,GACzBI,IAAKjB,EAAcc,CAAE,GACrBI,IAAKlB,EAAcc,IAAK,CAAC;AAC/B,WAAK,eAAeC,GAAIC,GAAIC,GAAIC,GAAIR,CAAO;AAAA,IAC7C;AACA,QAAIS,GAAIC,IAAKvF,EAAKA,EAAK,SAAS,CAAC;AACjC,aAASnF,IAAI,GAAGA,IAAImF,EAAK,QAAQ,EAAEnF,GAAG;AACpC,MAAAyK,IAAKC,GAAIA,IAAKvF,EAAKnF,CAAC;AACpB,YAAMiG,IAAI,KAAK,MAAMiE,EAAQQ,CAAE,IAAI,CAAC,IAAI,GAClC7E,IAAIyD,EAAcrD,CAAC,GACnB/B,IAAIoF,EAAcrD,IAAI,CAAC,GACvB0E,IAAIF,IAAK,GACTjH,IAAI,KAAK,SAASqC,GAAG3B,GAAGmF,EAAQsB,IAAI,CAAC,GAAGtB,EAAQsB,IAAI,CAAC,CAAC;AAC5D,MAAInH,KAAG,KAAK,eAAeqC,GAAG3B,GAAGV,EAAE,CAAC,GAAGA,EAAE,CAAC,GAAGwG,CAAO;AAAA,IACtD;AACA,WAAOC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,aAAaD,GAAS;AACpB,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO;AACtD,WAAAsB,EAAQ,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,GACxEC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,WAAWjK,GAAGgK,GAAS;AACrB,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChDxF,IAAS,KAAK,MAAMlD,CAAC;AAC3B,QAAIkD,MAAW,QAAQ,CAACA,EAAO,OAAQ;AACvC,IAAA8G,EAAQ,OAAO9G,EAAO,CAAC,GAAGA,EAAO,CAAC,CAAC;AACnC,QAAIhD,IAAIgD,EAAO;AACf,WAAOA,EAAO,CAAC,MAAMA,EAAOhD,IAAE,CAAC,KAAKgD,EAAO,CAAC,MAAMA,EAAOhD,IAAE,CAAC,KAAKA,IAAI,IAAG,CAAAA,KAAK;AAC7E,aAASF,IAAI,GAAGA,IAAIE,GAAGF,KAAK;AAC1B,OAAIkD,EAAOlD,CAAC,MAAMkD,EAAOlD,IAAE,CAAC,KAAKkD,EAAOlD,IAAE,CAAC,MAAMkD,EAAOlD,IAAE,CAAC,MACzDgK,EAAQ,OAAO9G,EAAOlD,CAAC,GAAGkD,EAAOlD,IAAI,CAAC,CAAC;AAE3C,WAAAgK,EAAQ,UAAS,GACVC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,CAAC,eAAe;AACd,UAAM,EAAC,UAAU,EAAC,QAAA/G,EAAM,EAAC,IAAI;AAC7B,aAASlD,IAAI,GAAGE,IAAIgD,EAAO,SAAS,GAAGlD,IAAIE,GAAG,EAAEF,GAAG;AACjD,YAAM4K,IAAO,KAAK,YAAY5K,CAAC;AAC/B,MAAI4K,MAAMA,EAAK,QAAQ5K,GAAG,MAAM4K;AAAA,IAClC;AAAA,EACF;AAAA,EACA,YAAY5K,GAAG;AACb,UAAM6K,IAAU,IAAI/B;AACpB,gBAAK,WAAW9I,GAAG6K,CAAO,GACnBA,EAAQ,MAAK;AAAA,EACtB;AAAA,EACA,eAAelC,GAAIC,GAAIa,GAAIC,GAAIM,GAAS;AACtC,QAAIc;AACJ,UAAMC,IAAK,KAAK,YAAYpC,GAAIC,CAAE,GAC5BoC,IAAK,KAAK,YAAYvB,GAAIC,CAAE;AAClC,IAAIqB,MAAO,KAAKC,MAAO,KACrBhB,EAAQ,OAAOrB,GAAIC,CAAE,GACrBoB,EAAQ,OAAOP,GAAIC,CAAE,MACZoB,IAAI,KAAK,aAAanC,GAAIC,GAAIa,GAAIC,GAAIqB,GAAIC,CAAE,OACrDhB,EAAQ,OAAOc,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,GACzBd,EAAQ,OAAOc,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC;AAAA,EAE7B;AAAA,EACA,SAAS9K,GAAG6F,GAAG3B,GAAG;AAChB,WAAK2B,IAAI,CAACA,GAAGA,MAAMA,MAAO3B,IAAI,CAACA,GAAGA,MAAMA,KAAW,KAC5C,KAAK,SAAS,MAAMlE,GAAG6F,GAAG3B,CAAC,MAAMlE;AAAA,EAC1C;AAAA,EACA,CAAC,UAAUA,GAAG;AACZ,UAAMiL,IAAK,KAAK,MAAMjL,CAAC;AACvB,QAAIiL,EAAI,YAAW7F,KAAK,KAAK,SAAS,UAAUpF,CAAC,GAAG;AAClD,YAAMkL,IAAK,KAAK,MAAM9F,CAAC;AAEvB,UAAI8F;AAAI,QAAAC,EAAM,UAASC,IAAK,GAAGC,IAAKJ,EAAG,QAAQG,IAAKC,GAAID,KAAM;AAC5D,mBAASE,IAAK,GAAGC,IAAKL,EAAG,QAAQI,IAAKC,GAAID,KAAM;AAC9C,gBAAIL,EAAGG,CAAE,MAAMF,EAAGI,CAAE,KACbL,EAAGG,IAAK,CAAC,MAAMF,EAAGI,IAAK,CAAC,KACxBL,GAAIG,IAAK,KAAKC,CAAE,MAAMH,GAAII,IAAKC,IAAK,KAAKA,CAAE,KAC3CN,GAAIG,IAAK,KAAKC,CAAE,MAAMH,GAAII,IAAKC,IAAK,KAAKA,CAAE,GAAG;AACnD,oBAAMnG;AACN,oBAAM+F;AAAA,YACR;AAAA;AAAA,IAGN;AAAA,EACF;AAAA,EACA,MAAMnL,GAAG;AACP,UAAM,EAAC,eAAAsJ,GAAe,UAAU,EAAC,SAAAY,GAAS,WAAA7D,GAAW,WAAAD,EAAS,EAAC,IAAI,MAC7DoF,IAAKtB,EAAQlK,CAAC;AACpB,QAAIwL,MAAO,GAAI,QAAO;AACtB,UAAMtI,IAAS,CAAA;AACf,QAAIhE,IAAIsM;AACR,OAAG;AACD,YAAMvF,IAAI,KAAK,MAAM/G,IAAI,CAAC;AAG1B,UAFAgE,EAAO,KAAKoG,EAAcrD,IAAI,CAAC,GAAGqD,EAAcrD,IAAI,IAAI,CAAC,CAAC,GAC1D/G,IAAIA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,GAC1BkH,EAAUlH,CAAC,MAAMc,EAAG;AACxB,MAAAd,IAAImH,EAAUnH,CAAC;AAAA,IACjB,SAASA,MAAMsM,KAAMtM,MAAM;AAC3B,WAAOgE;AAAA,EACT;AAAA,EACA,MAAMlD,GAAG;AAEP,QAAIA,MAAM,KAAK,KAAK,SAAS,KAAK,WAAW;AAC3C,aAAO,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAEhG,UAAMkD,IAAS,KAAK,MAAMlD,CAAC;AAC3B,QAAIkD,MAAW,KAAM,QAAO;AAC5B,UAAM,EAAC,SAASuI,EAAC,IAAI,MACfd,IAAI3K,IAAI;AACd,WAAO,KAAK,UAAUyL,EAAEd,CAAC,KAAKc,EAAEd,IAAI,CAAC,IAC/B,KAAK,cAAc3K,GAAGkD,GAAQuI,EAAEd,CAAC,GAAGc,EAAEd,IAAI,CAAC,GAAGc,EAAEd,IAAI,CAAC,GAAGc,EAAEd,IAAI,CAAC,CAAC,IAChE,KAAK,YAAY3K,GAAGkD,CAAM,CAAC;AAAA,EACnC;AAAA,EACA,YAAYlD,GAAGkD,GAAQ;AACrB,UAAMhD,IAAIgD,EAAO;AACjB,QAAIwI,IAAI,MACJ/C,GAAIC,GAAIa,IAAKvG,EAAOhD,IAAI,CAAC,GAAGwJ,IAAKxG,EAAOhD,IAAI,CAAC,GAC7C6K,GAAIC,IAAK,KAAK,YAAYvB,GAAIC,CAAE,GAChC8B,GAAIG,IAAK;AACb,aAASvG,IAAI,GAAGA,IAAIlF,GAAGkF,KAAK;AAG1B,UAFAuD,IAAKc,GAAIb,IAAKc,GAAID,IAAKvG,EAAOkC,CAAC,GAAGsE,IAAKxG,EAAOkC,IAAI,CAAC,GACnD2F,IAAKC,GAAIA,IAAK,KAAK,YAAYvB,GAAIC,CAAE,GACjCqB,MAAO,KAAKC,MAAO;AACrB,QAAAQ,IAAKG,GAAIA,IAAK,GACVD,IAAGA,EAAE,KAAKjC,GAAIC,CAAE,IACfgC,IAAI,CAACjC,GAAIC,CAAE;AAAA,WACX;AACL,YAAIoB,GAAGc,GAAKC,GAAKC,GAAKC;AACtB,YAAIhB,MAAO,GAAG;AACZ,eAAKD,IAAI,KAAK,aAAanC,GAAIC,GAAIa,GAAIC,GAAIqB,GAAIC,CAAE,OAAO,KAAM;AAC9D,WAACY,GAAKC,GAAKC,GAAKC,CAAG,IAAIjB;AAAA,QACzB,OAAO;AACL,eAAKA,IAAI,KAAK,aAAarB,GAAIC,GAAIf,GAAIC,GAAIoC,GAAID,CAAE,OAAO,KAAM;AAC9D,WAACe,GAAKC,GAAKH,GAAKC,CAAG,IAAIf,GACvBU,IAAKG,GAAIA,IAAK,KAAK,UAAUC,GAAKC,CAAG,GACjCL,KAAMG,KAAI,KAAK,MAAM3L,GAAGwL,GAAIG,GAAID,GAAGA,EAAE,MAAM,GAC3CA,IAAGA,EAAE,KAAKE,GAAKC,CAAG,IACjBH,IAAI,CAACE,GAAKC,CAAG;AAAA,QACpB;AACA,QAAAL,IAAKG,GAAIA,IAAK,KAAK,UAAUG,GAAKC,CAAG,GACjCP,KAAMG,KAAI,KAAK,MAAM3L,GAAGwL,GAAIG,GAAID,GAAGA,EAAE,MAAM,GAC3CA,IAAGA,EAAE,KAAKI,GAAKC,CAAG,IACjBL,IAAI,CAACI,GAAKC,CAAG;AAAA,MACpB;AAEF,QAAIL;AACF,MAAAF,IAAKG,GAAIA,IAAK,KAAK,UAAUD,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,GACnCF,KAAMG,KAAI,KAAK,MAAM3L,GAAGwL,GAAIG,GAAID,GAAGA,EAAE,MAAM;AAAA,aACtC,KAAK,SAAS1L,IAAI,KAAK,OAAO,KAAK,QAAQ,IAAI,KAAK,OAAO,KAAK,QAAQ,CAAC;AAClF,aAAO,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAEhG,WAAO0L;AAAA,EACT;AAAA,EACA,aAAa/C,GAAIC,GAAIa,GAAIC,GAAIqB,GAAIC,GAAI;AAEnC,UAAMgB,IAAOjB,IAAKC;AAElB,SADIgB,MAAM,CAACrD,GAAIC,GAAIa,GAAIC,GAAIqB,GAAIC,CAAE,IAAI,CAACvB,GAAIC,GAAIf,GAAIC,GAAIoC,GAAID,CAAE,QAC/C;AACX,UAAIA,MAAO,KAAKC,MAAO,EAAG,QAAOgB,IAAO,CAACvC,GAAIC,GAAIf,GAAIC,CAAE,IAAI,CAACD,GAAIC,GAAIa,GAAIC,CAAE;AAC1E,UAAIqB,IAAKC,EAAI,QAAO;AACpB,UAAInF,GAAG3B,GAAGiD,IAAI4D,KAAMC;AACpB,MAAI7D,IAAI,KAAQtB,IAAI8C,KAAMc,IAAKd,MAAO,KAAK,OAAOC,MAAOc,IAAKd,IAAK1E,IAAI,KAAK,QACnEiD,IAAI,KAAQtB,IAAI8C,KAAMc,IAAKd,MAAO,KAAK,OAAOC,MAAOc,IAAKd,IAAK1E,IAAI,KAAK,QACxEiD,IAAI,KAAQjD,IAAI0E,KAAMc,IAAKd,MAAO,KAAK,OAAOD,MAAOc,IAAKd,IAAK9C,IAAI,KAAK,SAC5E3B,IAAI0E,KAAMc,IAAKd,MAAO,KAAK,OAAOD,MAAOc,IAAKd,IAAK9C,IAAI,KAAK,OAC7DkF,KAAIpC,IAAK9C,GAAG+C,IAAK1E,GAAG6G,IAAK,KAAK,YAAYpC,GAAIC,CAAE,MAC/Ca,IAAK5D,GAAG6D,IAAKxF,GAAG8G,IAAK,KAAK,YAAYvB,GAAIC,CAAE;AAAA,IACnD;AAAA,EACF;AAAA,EACA,cAAc1J,GAAGkD,GAAQ+I,GAAKC,GAAKC,GAAKC,GAAK;AAC3C,QAAIV,IAAI,MAAM,KAAKxI,CAAM,GAAGM;AAG5B,SAFIA,IAAI,KAAK,SAASkI,EAAE,CAAC,GAAGA,EAAE,CAAC,GAAGO,GAAKC,CAAG,MAAGR,EAAE,QAAQlI,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,IAC7DA,IAAI,KAAK,SAASkI,EAAEA,EAAE,SAAS,CAAC,GAAGA,EAAEA,EAAE,SAAS,CAAC,GAAGS,GAAKC,CAAG,MAAGV,EAAE,KAAKlI,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,GAChFkI,IAAI,KAAK,YAAY1L,GAAG0L,CAAC;AAC3B,eAAStG,IAAI,GAAGlF,IAAIwL,EAAE,QAAQX,GAAIC,IAAK,KAAK,UAAUU,EAAExL,IAAI,CAAC,GAAGwL,EAAExL,IAAI,CAAC,CAAC,GAAGkF,IAAIlF,GAAGkF,KAAK;AACrF,QAAA2F,IAAKC,GAAIA,IAAK,KAAK,UAAUU,EAAEtG,CAAC,GAAGsG,EAAEtG,IAAI,CAAC,CAAC,GACvC2F,KAAMC,MAAI5F,IAAI,KAAK,MAAMpF,GAAG+K,GAAIC,GAAIU,GAAGtG,CAAC,GAAGlF,IAAIwL,EAAE;AAAA,QAElD,CAAI,KAAK,SAAS1L,IAAI,KAAK,OAAO,KAAK,QAAQ,IAAI,KAAK,OAAO,KAAK,QAAQ,CAAC,MAClF0L,IAAI,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAE7F,WAAOA;AAAA,EACT;AAAA,EACA,MAAM1L,GAAGwL,GAAIG,GAAID,GAAGtG,GAAG;AACrB,WAAOoG,MAAOG,KAAI;AAChB,UAAI9F,GAAG3B;AACP,cAAQsH,GAAE;AAAA,QACR,KAAK;AAAQ,UAAAA,IAAK;AAAQ;AAAA;AAAA,QAC1B,KAAK;AAAQ,UAAAA,IAAK,GAAQ3F,IAAI,KAAK,MAAM3B,IAAI,KAAK;AAAM;AAAA;AAAA,QACxD,KAAK;AAAQ,UAAAsH,IAAK;AAAQ;AAAA;AAAA,QAC1B,KAAK;AAAQ,UAAAA,IAAK,IAAQ3F,IAAI,KAAK,MAAM3B,IAAI,KAAK;AAAM;AAAA;AAAA,QACxD,KAAK;AAAQ,UAAAsH,IAAK;AAAQ;AAAA;AAAA,QAC1B,KAAK;AAAQ,UAAAA,IAAK,GAAQ3F,IAAI,KAAK,MAAM3B,IAAI,KAAK;AAAM;AAAA;AAAA,QACxD,KAAK;AAAQ,UAAAsH,IAAK;AAAQ;AAAA;AAAA,QAC1B,KAAK;AAAQ,UAAAA,IAAK,GAAQ3F,IAAI,KAAK,MAAM3B,IAAI,KAAK;AAAM;AAAA,MAChE;AAGM,OAAKwH,EAAEtG,CAAC,MAAMS,KAAK6F,EAAEtG,IAAI,CAAC,MAAMlB,MAAM,KAAK,SAASlE,GAAG6F,GAAG3B,CAAC,MACzDwH,EAAE,OAAOtG,GAAG,GAAGS,GAAG3B,CAAC,GAAGkB,KAAK;AAAA,IAE/B;AACA,WAAOA;AAAA,EACT;AAAA,EACA,SAASuD,GAAIC,GAAIyD,GAAIC,GAAI;AACvB,QAAIrG,IAAI,OAAUkB,GAAGtB,GAAG3B;AACxB,QAAIoI,IAAK,GAAG;AACV,UAAI1D,KAAM,KAAK,KAAM,QAAO;AAC5B,OAAKzB,KAAK,KAAK,OAAOyB,KAAM0D,KAAMrG,MAAG/B,IAAI,KAAK,MAAM2B,IAAI8C,KAAM1C,IAAIkB,KAAKkF;AAAA,IACzE,WAAWC,IAAK,GAAG;AACjB,UAAI1D,KAAM,KAAK,KAAM,QAAO;AAC5B,OAAKzB,KAAK,KAAK,OAAOyB,KAAM0D,KAAMrG,MAAG/B,IAAI,KAAK,MAAM2B,IAAI8C,KAAM1C,IAAIkB,KAAKkF;AAAA,IACzE;AACA,QAAIA,IAAK,GAAG;AACV,UAAI1D,KAAM,KAAK,KAAM,QAAO;AAC5B,OAAKxB,KAAK,KAAK,OAAOwB,KAAM0D,KAAMpG,MAAGJ,IAAI,KAAK,MAAM3B,IAAI0E,KAAM3C,IAAIkB,KAAKmF;AAAA,IACzE,WAAWD,IAAK,GAAG;AACjB,UAAI1D,KAAM,KAAK,KAAM,QAAO;AAC5B,OAAKxB,KAAK,KAAK,OAAOwB,KAAM0D,KAAMpG,MAAGJ,IAAI,KAAK,MAAM3B,IAAI0E,KAAM3C,IAAIkB,KAAKmF;AAAA,IACzE;AACA,WAAO,CAACzG,GAAG3B,CAAC;AAAA,EACd;AAAA,EACA,UAAU2B,GAAG3B,GAAG;AACd,YAAQ2B,MAAM,KAAK,OAAO,IACpBA,MAAM,KAAK,OAAO,IAAS,MAC1B3B,MAAM,KAAK,OAAO,IACnBA,MAAM,KAAK,OAAO,IAAS;AAAA,EACnC;AAAA,EACA,YAAY2B,GAAG3B,GAAG;AAChB,YAAQ2B,IAAI,KAAK,OAAO,IAClBA,IAAI,KAAK,OAAO,IAAS,MACxB3B,IAAI,KAAK,OAAO,IACjBA,IAAI,KAAK,OAAO,IAAS;AAAA,EACjC;AAAA,EACA,UAAUwH,GAAG;AACX,QAAIA,KAAKA,EAAE,SAAS,GAAG;AACrB,eAAS1L,IAAI,GAAGA,IAAI0L,EAAE,QAAQ1L,KAAI,GAAG;AACnC,cAAMoF,KAAKpF,IAAI,KAAK0L,EAAE,QAAQhG,KAAK1F,IAAI,KAAK0L,EAAE;AAC9C,SAAIA,EAAE1L,CAAC,MAAM0L,EAAEtG,CAAC,KAAKsG,EAAEtG,CAAC,MAAMsG,EAAEhG,CAAC,KAAKgG,EAAE1L,IAAI,CAAC,MAAM0L,EAAEtG,IAAI,CAAC,KAAKsG,EAAEtG,IAAI,CAAC,MAAMsG,EAAEhG,IAAI,CAAC,OACjFgG,EAAE,OAAOtG,GAAG,CAAC,GAAGpF,KAAK;AAAA,MAEzB;AACA,MAAK0L,EAAE,WAAQA,IAAI;AAAA,IACrB;AACA,WAAOA;AAAA,EACT;AACF;ACtUA,MAAMa,KAAM,IAAI,KAAK,IAAIC,IAAM,KAAK;AAEpC,SAASC,GAAOjJ,GAAG;AACjB,SAAOA,EAAE,CAAC;AACZ;AAEA,SAASkJ,GAAOlJ,GAAG;AACjB,SAAOA,EAAE,CAAC;AACZ;AAGA,SAASmJ,GAAUpI,GAAG;AACpB,QAAM,EAAC,WAAA6B,GAAW,QAAA7C,EAAM,IAAIgB;AAC5B,WAASvE,IAAI,GAAGA,IAAIoG,EAAU,QAAQpG,KAAK,GAAG;AAC5C,UAAMmG,IAAI,IAAIC,EAAUpG,CAAC,GACnBuG,IAAI,IAAIH,EAAUpG,IAAI,CAAC,GACvBmH,IAAI,IAAIf,EAAUpG,IAAI,CAAC;AAG7B,SAFeuD,EAAO4D,CAAC,IAAI5D,EAAO4C,CAAC,MAAM5C,EAAOgD,IAAI,CAAC,IAAIhD,EAAO4C,IAAI,CAAC,MACtD5C,EAAOgD,CAAC,IAAIhD,EAAO4C,CAAC,MAAM5C,EAAO4D,IAAI,CAAC,IAAI5D,EAAO4C,IAAI,CAAC,KACzD,MAAO,QAAO;AAAA,EAC5B;AACA,SAAO;AACT;AAEA,SAASyG,GAAO/G,GAAG3B,GAAGY,GAAG;AACvB,SAAO,CAACe,IAAI,KAAK,IAAIA,IAAI3B,CAAC,IAAIY,GAAGZ,IAAI,KAAK,IAAI2B,IAAI3B,CAAC,IAAIY,CAAC;AAC1D;AAEe,MAAM+H,GAAS;AAAA,EAC5B,OAAO,KAAK3J,GAAQwE,IAAK+E,IAAQ9E,IAAK+E,IAAQI,GAAM;AAClD,WAAO,IAAID,GAAS,YAAY3J,IAC1B6J,GAAU7J,GAAQwE,GAAIC,GAAImF,CAAI,IAC9B,aAAa,KAAKE,GAAa9J,GAAQwE,GAAIC,GAAImF,CAAI,CAAC,CAAC;AAAA,EAC7D;AAAA,EACA,YAAY5J,GAAQ;AAClB,SAAK,cAAc,IAAID,EAAWC,CAAM,GACxC,KAAK,UAAU,IAAI,WAAWA,EAAO,SAAS,CAAC,GAC/C,KAAK,aAAa,IAAI,WAAWA,EAAO,SAAS,CAAC,GAClD,KAAK,SAAS,KAAK,YAAY,QAC/B,KAAK,MAAK;AAAA,EACZ;AAAA,EACA,SAAS;AACP,gBAAK,YAAY,OAAM,GACvB,KAAK,MAAK,GACH;AAAA,EACT;AAAA,EACA,QAAQ;AACN,UAAMqB,IAAI,KAAK,aAAarB,IAAS,KAAK;AAG1C,QAAIqB,EAAE,QAAQA,EAAE,KAAK,SAAS,KAAKoI,GAAUpI,CAAC,GAAG;AAC/C,WAAK,YAAY,WAAW,KAAK,EAAC,QAAQrB,EAAO,SAAO,EAAC,GAAG,CAAC+J,GAAEjN,MAAMA,CAAC,EACnE,KAAK,CAACA,GAAGoF,MAAMlC,EAAO,IAAIlD,CAAC,IAAIkD,EAAO,IAAIkC,CAAC,KAAKlC,EAAO,IAAIlD,IAAI,CAAC,IAAIkD,EAAO,IAAIkC,IAAI,CAAC,CAAC;AACxF,YAAMlG,IAAI,KAAK,UAAU,CAAC,GAAGE,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,GACvE8N,IAAS,CAAEhK,EAAO,IAAIhE,CAAC,GAAGgE,EAAO,IAAIhE,IAAI,CAAC,GAAGgE,EAAO,IAAI9D,CAAC,GAAG8D,EAAO,IAAI9D,IAAI,CAAC,CAAC,GAC7E0F,IAAI,OAAO,KAAK,MAAMoI,EAAO,CAAC,IAAIA,EAAO,CAAC,GAAGA,EAAO,CAAC,IAAIA,EAAO,CAAC,CAAC;AACpE,eAASlN,IAAI,GAAGE,IAAIgD,EAAO,SAAS,GAAGlD,IAAIE,GAAG,EAAEF,GAAG;AACjD,cAAMwD,IAAIoJ,GAAO1J,EAAO,IAAIlD,CAAC,GAAGkD,EAAO,IAAIlD,IAAI,CAAC,GAAG8E,CAAC;AACpD,QAAA5B,EAAO,IAAIlD,CAAC,IAAIwD,EAAE,CAAC,GACnBN,EAAO,IAAIlD,IAAI,CAAC,IAAIwD,EAAE,CAAC;AAAA,MACzB;AACA,WAAK,cAAc,IAAIP,EAAWC,CAAM;AAAA,IAC1C;AACE,aAAO,KAAK;AAGd,UAAMmD,IAAY,KAAK,YAAY,KAAK,YAAY,WAC9ClB,IAAO,KAAK,OAAO,KAAK,YAAY,MACpCiB,IAAY,KAAK,YAAY,KAAK,YAAY,WAC9C8D,IAAU,KAAK,QAAQ,KAAK,EAAE,GAC9BiD,IAAY,KAAK,WAAW,KAAK,EAAE;AAKzC,aAASjO,IAAI,GAAGgB,IAAImG,EAAU,QAAQnH,IAAIgB,GAAG,EAAEhB,GAAG;AAChD,YAAMsE,IAAI4C,EAAUlH,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAAC;AAC/C,OAAImH,EAAUnH,CAAC,MAAM,MAAMgL,EAAQ1G,CAAC,MAAM,QAAI0G,EAAQ1G,CAAC,IAAItE;AAAA,IAC7D;AACA,aAASc,IAAI,GAAGE,IAAIiF,EAAK,QAAQnF,IAAIE,GAAG,EAAEF;AACxC,MAAAmN,EAAUhI,EAAKnF,CAAC,CAAC,IAAIA;AAIvB,IAAImF,EAAK,UAAU,KAAKA,EAAK,SAAS,MACpC,KAAK,YAAY,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,GAC1C,KAAK,YAAY,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,GAC1C,KAAK,UAAU,CAAC,IAAIA,EAAK,CAAC,GAC1B+E,EAAQ/E,EAAK,CAAC,CAAC,IAAI,GACfA,EAAK,WAAW,MAClB+E,EAAQ/E,EAAK,CAAC,CAAC,IAAI,GACnB,KAAK,UAAU,CAAC,IAAIA,EAAK,CAAC,GAC1B,KAAK,UAAU,CAAC,IAAIA,EAAK,CAAC;AAAA,EAGhC;AAAA,EACA,QAAQ+H,GAAQ;AACd,WAAO,IAAInE,GAAQ,MAAMmE,CAAM;AAAA,EACjC;AAAA,EACA,CAAC,UAAUlN,GAAG;AACZ,UAAM,EAAC,SAAAkK,GAAS,MAAA/E,GAAM,YAAAiI,GAAY,WAAA/G,GAAW,WAAAD,GAAW,WAAAuG,EAAS,IAAI;AAGrE,QAAIA,GAAW;AACb,YAAMU,IAAIV,EAAU,QAAQ3M,CAAC;AAC7B,MAAIqN,IAAI,MAAG,MAAMV,EAAUU,IAAI,CAAC,IAC5BA,IAAIV,EAAU,SAAS,MAAG,MAAMA,EAAUU,IAAI,CAAC;AACnD;AAAA,IACF;AAEA,UAAM7B,IAAKtB,EAAQlK,CAAC;AACpB,QAAIwL,MAAO,GAAI;AACf,QAAItM,IAAIsM,GAAI5E,IAAK;AACjB,OAAG;AAGD,UAFA,MAAMA,IAAKR,EAAUlH,CAAC,GACtBA,IAAIA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,GAC1BkH,EAAUlH,CAAC,MAAMc,EAAG;AAExB,UADAd,IAAImH,EAAUnH,CAAC,GACXA,MAAM,IAAI;AACZ,cAAMsE,IAAI2B,GAAMiI,EAAWpN,CAAC,IAAI,KAAKmF,EAAK,MAAM;AAChD,QAAI3B,MAAMoD,MAAI,MAAMpD;AACpB;AAAA,MACF;AAAA,IACF,SAAStE,MAAMsM;AAAA,EACjB;AAAA,EACA,KAAK3F,GAAG3B,GAAGlE,IAAI,GAAG;AAChB,QAAK6F,IAAI,CAACA,GAAGA,MAAMA,MAAO3B,IAAI,CAACA,GAAGA,MAAMA,GAAI,QAAO;AACnD,UAAMC,IAAKnE;AACX,QAAImH;AACJ,YAAQA,IAAI,KAAK,MAAMnH,GAAG6F,GAAG3B,CAAC,MAAM,KAAKiD,MAAMnH,KAAKmH,MAAMhD,IAAI,CAAAnE,IAAImH;AAClE,WAAOA;AAAA,EACT;AAAA,EACA,MAAMnH,GAAG6F,GAAG3B,GAAG;AACb,UAAM,EAAC,SAAAgG,GAAS,MAAA/E,GAAM,YAAAiI,GAAY,WAAA/G,GAAW,WAAAD,GAAW,QAAAlD,EAAM,IAAI;AAClE,QAAIgH,EAAQlK,CAAC,MAAM,MAAM,CAACkD,EAAO,OAAQ,SAAQlD,IAAI,MAAMkD,EAAO,UAAU;AAC5E,QAAIiE,IAAInH,GACJsN,IAAKd,EAAI3G,IAAI3C,EAAOlD,IAAI,CAAC,GAAG,CAAC,IAAIwM,EAAItI,IAAIhB,EAAOlD,IAAI,IAAI,CAAC,GAAG,CAAC;AACjE,UAAMwL,IAAKtB,EAAQlK,CAAC;AACpB,QAAId,IAAIsM;AACR,OAAG;AACD,UAAIvF,IAAIG,EAAUlH,CAAC;AACnB,YAAMqO,IAAKf,EAAI3G,IAAI3C,EAAO+C,IAAI,CAAC,GAAG,CAAC,IAAIuG,EAAItI,IAAIhB,EAAO+C,IAAI,IAAI,CAAC,GAAG,CAAC;AAGnE,UAFIsH,IAAKD,MAAIA,IAAKC,GAAIpG,IAAIlB,IAC1B/G,IAAIA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,GAC1BkH,EAAUlH,CAAC,MAAMc,EAAG;AAExB,UADAd,IAAImH,EAAUnH,CAAC,GACXA,MAAM,IAAI;AAEZ,YADAA,IAAIiG,GAAMiI,EAAWpN,CAAC,IAAI,KAAKmF,EAAK,MAAM,GACtCjG,MAAM+G,KACJuG,EAAI3G,IAAI3C,EAAOhE,IAAI,CAAC,GAAG,CAAC,IAAIsN,EAAItI,IAAIhB,EAAOhE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAIoO;AAAI,iBAAOpO;AAE7E;AAAA,MACF;AAAA,IACF,SAASA,MAAMsM;AACf,WAAOrE;AAAA,EACT;AAAA,EACA,OAAO6C,GAAS;AACd,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChD,EAAC,QAAAxF,GAAQ,WAAAmD,GAAW,WAAAD,EAAS,IAAI;AACvC,aAASpG,IAAI,GAAGE,IAAImG,EAAU,QAAQrG,IAAIE,GAAG,EAAEF,GAAG;AAChD,YAAMoF,IAAIiB,EAAUrG,CAAC;AACrB,UAAIoF,IAAIpF,EAAG;AACX,YAAMmK,IAAK/D,EAAUpG,CAAC,IAAI,GACpBoK,IAAKhE,EAAUhB,CAAC,IAAI;AAC1B,MAAA4E,EAAQ,OAAO9G,EAAOiH,CAAE,GAAGjH,EAAOiH,IAAK,CAAC,CAAC,GACzCH,EAAQ,OAAO9G,EAAOkH,CAAE,GAAGlH,EAAOkH,IAAK,CAAC,CAAC;AAAA,IAC3C;AACA,gBAAK,WAAWJ,CAAO,GAChBC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,aAAaD,GAASlF,GAAG;AACvB,IAAIA,MAAM,WAAc,CAACkF,KAAW,OAAOA,EAAQ,UAAW,gBAAalF,IAAIkF,GAASA,IAAU,OAClGlF,IAAIA,KAAK,OAAY,IAAI,CAACA;AAC1B,UAAMmF,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChD,EAAC,QAAAxF,EAAM,IAAI;AACjB,aAASlD,IAAI,GAAGE,IAAIgD,EAAO,QAAQlD,IAAIE,GAAGF,KAAK,GAAG;AAChD,YAAM6F,IAAI3C,EAAOlD,CAAC,GAAGkE,IAAIhB,EAAOlD,IAAI,CAAC;AACrC,MAAAgK,EAAQ,OAAOnE,IAAIf,GAAGZ,CAAC,GACvB8F,EAAQ,IAAInE,GAAG3B,GAAGY,GAAG,GAAGyH,EAAG;AAAA,IAC7B;AACA,WAAOtC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,WAAWD,GAAS;AAClB,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChD,EAAC,MAAAvD,GAAM,QAAAjC,EAAM,IAAI,MACjB7D,IAAI8F,EAAK,CAAC,IAAI,GAAGjF,IAAIiF,EAAK;AAChC,IAAA6E,EAAQ,OAAO9G,EAAO7D,CAAC,GAAG6D,EAAO7D,IAAI,CAAC,CAAC;AACvC,aAASW,IAAI,GAAGA,IAAIE,GAAG,EAAEF,GAAG;AAC1B,YAAMX,IAAI,IAAI8F,EAAKnF,CAAC;AACpB,MAAAgK,EAAQ,OAAO9G,EAAO7D,CAAC,GAAG6D,EAAO7D,IAAI,CAAC,CAAC;AAAA,IACzC;AACA,WAAA2K,EAAQ,UAAS,GACVC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,cAAc;AACZ,UAAMY,IAAU,IAAI/B;AACpB,gBAAK,WAAW+B,CAAO,GAChBA,EAAQ,MAAK;AAAA,EACtB;AAAA,EACA,eAAe7K,GAAGgK,GAAS;AACzB,UAAMC,IAASD,KAAW,OAAOA,IAAU,IAAItB,MAAO,QAChD,EAAC,QAAAxF,GAAQ,WAAAkD,EAAS,IAAI,MACtBnE,IAAKmE,EAAUpG,KAAK,CAAC,IAAI,GACzBgC,IAAKoE,EAAUpG,IAAI,CAAC,IAAI,GACxBuJ,IAAKnD,EAAUpG,IAAI,CAAC,IAAI;AAC9B,WAAAgK,EAAQ,OAAO9G,EAAOjB,CAAE,GAAGiB,EAAOjB,IAAK,CAAC,CAAC,GACzC+H,EAAQ,OAAO9G,EAAOlB,CAAE,GAAGkB,EAAOlB,IAAK,CAAC,CAAC,GACzCgI,EAAQ,OAAO9G,EAAOqG,CAAE,GAAGrG,EAAOqG,IAAK,CAAC,CAAC,GACzCS,EAAQ,UAAS,GACVC,KAAUA,EAAO,MAAK;AAAA,EAC/B;AAAA,EACA,CAAC,mBAAmB;AAClB,UAAM,EAAC,WAAA7D,EAAS,IAAI;AACpB,aAASpG,IAAI,GAAGE,IAAIkG,EAAU,SAAS,GAAGpG,IAAIE,GAAG,EAAEF;AACjD,YAAM,KAAK,gBAAgBA,CAAC;AAAA,EAEhC;AAAA,EACA,gBAAgBA,GAAG;AACjB,UAAM6K,IAAU,IAAI/B;AACpB,gBAAK,eAAe9I,GAAG6K,CAAO,GACvBA,EAAQ,MAAK;AAAA,EACtB;AACF;AAEA,SAASkC,GAAU7J,GAAQwE,GAAIC,GAAImF,GAAM;AACvC,QAAM5M,IAAIgD,EAAO,QACXsK,IAAQ,IAAI,aAAatN,IAAI,CAAC;AACpC,WAASF,IAAI,GAAGA,IAAIE,GAAG,EAAEF,GAAG;AAC1B,UAAMwD,IAAIN,EAAOlD,CAAC;AAClB,IAAAwN,EAAMxN,IAAI,CAAC,IAAI0H,EAAG,KAAKoF,GAAMtJ,GAAGxD,GAAGkD,CAAM,GACzCsK,EAAMxN,IAAI,IAAI,CAAC,IAAI2H,EAAG,KAAKmF,GAAMtJ,GAAGxD,GAAGkD,CAAM;AAAA,EAC/C;AACA,SAAOsK;AACT;AAEA,UAAUR,GAAa9J,GAAQwE,GAAIC,GAAImF,GAAM;AAC3C,MAAI,IAAI;AACR,aAAWtJ,KAAKN;AACd,UAAMwE,EAAG,KAAKoF,GAAMtJ,GAAG,GAAGN,CAAM,GAChC,MAAMyE,EAAG,KAAKmF,GAAMtJ,GAAG,GAAGN,CAAM,GAChC,EAAE;AAEN;","x_google_ignoreList":[0,1,2,3,4,5,6]}
|