@mlightcad/geometry-engine 1.0.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/geometry-engine.js +727 -488
- package/dist/geometry-engine.umd.cjs +1 -1
- package/lib/geometry/AcGeCatmullRomCurve3d.d.ts +146 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.js +358 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts +5 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.js +18 -2
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts +69 -0
- package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -0
- package/lib/geometry/AcGeNurbsCurve.js +166 -0
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +16 -57
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +85 -197
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/geometry/index.d.ts +2 -0
- package/lib/geometry/index.d.ts.map +1 -1
- package/lib/geometry/index.js +2 -0
- package/lib/geometry/index.js.map +1 -1
- package/lib/util/AcGeSplineUtil.d.ts +36 -0
- package/lib/util/AcGeSplineUtil.d.ts.map +1 -0
- package/lib/util/AcGeSplineUtil.js +491 -0
- package/lib/util/AcGeSplineUtil.js.map +1 -0
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
package/lib/geometry/index.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA"}
|
package/lib/geometry/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import verb from 'verb-nurbs-web';
|
2
|
+
import { AcGeKnotParameterizationType } from '../geometry';
|
3
|
+
/**
|
4
|
+
* Represents the data structure for a NURBS curve including control points, weights, knots, and degree
|
5
|
+
*/
|
6
|
+
export type NurbsCurveData = {
|
7
|
+
points: number[][];
|
8
|
+
weights?: number[];
|
9
|
+
knots: number[];
|
10
|
+
degree: number;
|
11
|
+
};
|
12
|
+
/**
|
13
|
+
* Main spline utility class
|
14
|
+
*/
|
15
|
+
export declare class AcGeSplineUtil {
|
16
|
+
/**
|
17
|
+
* Creates a NURBS curve from fit points using the specified knot parameterization
|
18
|
+
* @param fitPoints Array of fit points in 3D space
|
19
|
+
* @param knotParameterization Type of knot parameterization ('Uniform', 'Chord', or 'SqrtChord')
|
20
|
+
* @returns A NURBS curve object or undefined if insufficient points
|
21
|
+
*/
|
22
|
+
static createByFitPoints(fitPoints: number[][], knotParameterization?: AcGeKnotParameterizationType): verb.geom.NurbsCurve | undefined;
|
23
|
+
/**
|
24
|
+
* Converts closed fit points to control points for NURBS curve creation
|
25
|
+
* @param fitPoints Array of fit points defining the curve
|
26
|
+
* @param knotParameterization Type of knot parameterization
|
27
|
+
* @returns NURBS curve data with control points, weights, knots, and degree
|
28
|
+
*/
|
29
|
+
static convertClosedFitPointsToControlPoints(fitPoints: number[][], knotParameterization: AcGeKnotParameterizationType): NurbsCurveData;
|
30
|
+
private static removeDuplicateEndPoint;
|
31
|
+
private static createClosedSplineInterpolation;
|
32
|
+
private static convertClosedNurbsToClamped;
|
33
|
+
}
|
34
|
+
export declare const createByFitPoints: typeof AcGeSplineUtil.createByFitPoints;
|
35
|
+
export declare const convertClosedFitPointsToControlPoints: typeof AcGeSplineUtil.convertClosedFitPointsToControlPoints;
|
36
|
+
//# sourceMappingURL=AcGeSplineUtil.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeSplineUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeSplineUtil.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAO1D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAikBD;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CACtB,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,oBAAoB,GAAE,4BAAwC;IAgBhE;;;;;OAKG;IACH,MAAM,CAAC,qCAAqC,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,oBAAoB,EAAE,4BAA4B,GACjD,cAAc;IAMjB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAWtC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAqC9C,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAqB3C;AAGD,eAAO,MAAM,iBAAiB,yCAAmC,CAAA;AACjE,eAAO,MAAM,qCAAqC,6DAAuD,CAAA"}
|
@@ -0,0 +1,491 @@
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
3
|
+
if (!m) return o;
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
5
|
+
try {
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
7
|
+
}
|
8
|
+
catch (error) { e = { error: error }; }
|
9
|
+
finally {
|
10
|
+
try {
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
12
|
+
}
|
13
|
+
finally { if (e) throw e.error; }
|
14
|
+
}
|
15
|
+
return ar;
|
16
|
+
};
|
17
|
+
import verb from 'verb-nurbs-web';
|
18
|
+
// Constants
|
19
|
+
var SPLINE_DEGREE = 3;
|
20
|
+
var MIN_FIT_POINTS_FOR_SPLINE = 3;
|
21
|
+
var CLOSED_SPLINE_EXTRA_CONTROL_POINTS = 3;
|
22
|
+
/**
|
23
|
+
* Utility class for NURBS basis function calculations
|
24
|
+
*/
|
25
|
+
var NurbsBasisCalculator = /** @class */ (function () {
|
26
|
+
function NurbsBasisCalculator() {
|
27
|
+
}
|
28
|
+
/**
|
29
|
+
* Evaluates a degree 3 NURBS basis function at a given parameter value
|
30
|
+
*/
|
31
|
+
NurbsBasisCalculator.evaluateDegree3 = function (knotVector, knotCount, parameterValue, controlPointIndex) {
|
32
|
+
var interval = this.findKnotInterval(knotVector, knotCount, parameterValue);
|
33
|
+
var knots = this.extractKnotValues(knotVector, interval.start);
|
34
|
+
return this.applyDeBoorsAlgorithm(parameterValue, controlPointIndex, interval.start, knots);
|
35
|
+
};
|
36
|
+
NurbsBasisCalculator.findKnotInterval = function (knotVector, knotCount, parameterValue) {
|
37
|
+
var knotIntervalStart = 0;
|
38
|
+
var knotIntervalEnd = knotCount;
|
39
|
+
while (knotIntervalEnd > knotIntervalStart + 1) {
|
40
|
+
var middleIndex = (0.5 * (knotIntervalEnd + knotIntervalStart)) | 0;
|
41
|
+
if (knotVector[middleIndex] > parameterValue) {
|
42
|
+
knotIntervalEnd = middleIndex;
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
knotIntervalStart = middleIndex;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return { start: knotIntervalStart };
|
49
|
+
};
|
50
|
+
NurbsBasisCalculator.extractKnotValues = function (knotVector, intervalStart) {
|
51
|
+
return [
|
52
|
+
knotVector[intervalStart - 2], // knotMinus2
|
53
|
+
knotVector[intervalStart - 1], // knotMinus1
|
54
|
+
knotVector[intervalStart], // knotZero
|
55
|
+
knotVector[intervalStart + 1], // knotPlus1
|
56
|
+
knotVector[intervalStart + 2], // knotPlus2
|
57
|
+
knotVector[intervalStart + 3] // knotPlus3
|
58
|
+
];
|
59
|
+
};
|
60
|
+
NurbsBasisCalculator.applyDeBoorsAlgorithm = function (parameterValue, controlPointIndex, intervalStart, knots) {
|
61
|
+
var _a = __read(knots, 6), knotMinus2 = _a[0], knotMinus1 = _a[1], knotZero = _a[2], knotPlus1 = _a[3], knotPlus2 = _a[4], knotPlus3 = _a[5];
|
62
|
+
// Initialize basis function values
|
63
|
+
var basisValueMinus3 = intervalStart - 3 === controlPointIndex ? 1 : 0;
|
64
|
+
var basisValueMinus2 = intervalStart - 2 === controlPointIndex ? 1 : 0;
|
65
|
+
var basisValueMinus1 = intervalStart - 1 === controlPointIndex ? 1 : 0;
|
66
|
+
var basisValueZero = intervalStart === controlPointIndex ? 1 : 0;
|
67
|
+
// De Boor's algorithm for degree 3 evaluation - Step 1
|
68
|
+
var alpha = (parameterValue - knotZero) / (knotPlus3 - knotZero);
|
69
|
+
var beta = 1 - alpha;
|
70
|
+
basisValueZero = beta * basisValueMinus1 + alpha * basisValueZero;
|
71
|
+
alpha = (parameterValue - knotMinus1) / (knotPlus2 - knotMinus1);
|
72
|
+
beta = 1 - alpha;
|
73
|
+
basisValueMinus1 = beta * basisValueMinus2 + alpha * basisValueMinus1;
|
74
|
+
alpha = (parameterValue - knotMinus2) / (knotPlus1 - knotMinus2);
|
75
|
+
beta = 1 - alpha;
|
76
|
+
basisValueMinus2 = beta * basisValueMinus3 + alpha * basisValueMinus2;
|
77
|
+
// De Boor's algorithm for degree 3 evaluation - Step 2
|
78
|
+
alpha = (parameterValue - knotZero) / (knotPlus2 - knotZero);
|
79
|
+
beta = 1 - alpha;
|
80
|
+
basisValueZero = beta * basisValueMinus1 + alpha * basisValueZero;
|
81
|
+
alpha = (parameterValue - knotMinus1) / (knotPlus1 - knotMinus1);
|
82
|
+
beta = 1 - alpha;
|
83
|
+
basisValueMinus1 = beta * basisValueMinus2 + alpha * basisValueMinus1;
|
84
|
+
// De Boor's algorithm for degree 3 evaluation - Step 3
|
85
|
+
alpha = (parameterValue - knotZero) / (knotPlus1 - knotZero);
|
86
|
+
beta = 1 - alpha;
|
87
|
+
basisValueZero = beta * basisValueMinus1 + alpha * basisValueZero;
|
88
|
+
return basisValueZero;
|
89
|
+
};
|
90
|
+
return NurbsBasisCalculator;
|
91
|
+
}());
|
92
|
+
/**
|
93
|
+
* Utility class for knot vector generation
|
94
|
+
*/
|
95
|
+
var KnotVectorGenerator = /** @class */ (function () {
|
96
|
+
function KnotVectorGenerator() {
|
97
|
+
}
|
98
|
+
/**
|
99
|
+
* Generates a knot vector based on the specified parameterization type
|
100
|
+
*/
|
101
|
+
KnotVectorGenerator.generate = function (fitPoints, knotParameterization, knotVectorSize) {
|
102
|
+
switch (knotParameterization) {
|
103
|
+
case 'Uniform':
|
104
|
+
return this.generateUniformKnotVector(knotVectorSize);
|
105
|
+
case 'Chord':
|
106
|
+
return this.generateChordKnotVector(fitPoints, knotVectorSize);
|
107
|
+
case 'SqrtChord':
|
108
|
+
return this.generateSqrtChordKnotVector(fitPoints, knotVectorSize);
|
109
|
+
default:
|
110
|
+
throw new Error("Unsupported knot parameterization: ".concat(knotParameterization));
|
111
|
+
}
|
112
|
+
};
|
113
|
+
KnotVectorGenerator.generateUniformKnotVector = function (knotVectorSize) {
|
114
|
+
var knotVector = new Array(knotVectorSize);
|
115
|
+
for (var i = 0; i < knotVectorSize; i++) {
|
116
|
+
knotVector[i] = i;
|
117
|
+
}
|
118
|
+
return knotVector;
|
119
|
+
};
|
120
|
+
KnotVectorGenerator.generateChordKnotVector = function (fitPoints, knotVectorSize) {
|
121
|
+
var knotVector = new Array(knotVectorSize);
|
122
|
+
var fitPointCount = fitPoints.length;
|
123
|
+
var cumulativeDistance = 0;
|
124
|
+
knotVector[0] = 0;
|
125
|
+
for (var i = 1; i < knotVectorSize; i++) {
|
126
|
+
var point1 = fitPoints[(i - 4 + fitPointCount) % fitPointCount];
|
127
|
+
var point2 = fitPoints[(i - 3 + fitPointCount) % fitPointCount];
|
128
|
+
var segmentLength = this.calculateDistance(point1, point2);
|
129
|
+
cumulativeDistance += segmentLength;
|
130
|
+
knotVector[i] = cumulativeDistance;
|
131
|
+
}
|
132
|
+
return knotVector;
|
133
|
+
};
|
134
|
+
KnotVectorGenerator.generateSqrtChordKnotVector = function (fitPoints, knotVectorSize) {
|
135
|
+
var knotVector = new Array(knotVectorSize);
|
136
|
+
var fitPointCount = fitPoints.length;
|
137
|
+
var cumulativeDistance = 0;
|
138
|
+
knotVector[0] = 0;
|
139
|
+
for (var i = 1; i < knotVectorSize; i++) {
|
140
|
+
var point1 = fitPoints[(i - 4 + fitPointCount) % fitPointCount];
|
141
|
+
var point2 = fitPoints[(i - 3 + fitPointCount) % fitPointCount];
|
142
|
+
var segmentLength = Math.sqrt(this.calculateDistance(point1, point2));
|
143
|
+
cumulativeDistance += segmentLength;
|
144
|
+
knotVector[i] = cumulativeDistance;
|
145
|
+
}
|
146
|
+
return knotVector;
|
147
|
+
};
|
148
|
+
KnotVectorGenerator.calculateDistance = function (point1, point2) {
|
149
|
+
return Math.sqrt(Math.pow(point2[0] - point1[0], 2) + Math.pow(point2[1] - point1[1], 2));
|
150
|
+
};
|
151
|
+
return KnotVectorGenerator;
|
152
|
+
}());
|
153
|
+
/**
|
154
|
+
* Utility class for basis matrix operations
|
155
|
+
*/
|
156
|
+
var BasisMatrixBuilder = /** @class */ (function () {
|
157
|
+
function BasisMatrixBuilder() {
|
158
|
+
}
|
159
|
+
/**
|
160
|
+
* Builds the basis matrix for spline interpolation
|
161
|
+
*/
|
162
|
+
BasisMatrixBuilder.buildBasisMatrix = function (fitPoints, knotVector, parameterValues) {
|
163
|
+
var fitPointCount = fitPoints.length;
|
164
|
+
var controlPointCount = fitPointCount + CLOSED_SPLINE_EXTRA_CONTROL_POINTS;
|
165
|
+
var basisMatrix = new Array(fitPointCount);
|
166
|
+
for (var i = 0; i < fitPointCount; i++) {
|
167
|
+
basisMatrix[i] = new Array(controlPointCount);
|
168
|
+
for (var j = 0; j < controlPointCount; j++) {
|
169
|
+
basisMatrix[i][j] = NurbsBasisCalculator.evaluateDegree3(knotVector, controlPointCount, parameterValues[i], j);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
return basisMatrix;
|
173
|
+
};
|
174
|
+
/**
|
175
|
+
* Reduces the basis matrix for closed spline interpolation
|
176
|
+
*/
|
177
|
+
BasisMatrixBuilder.reduceForClosedSpline = function (basisMatrix, fitPointCount) {
|
178
|
+
var reducedBasisMatrix = new Array(fitPointCount);
|
179
|
+
for (var i = 0; i < fitPointCount; i++) {
|
180
|
+
reducedBasisMatrix[i] = new Array(fitPointCount);
|
181
|
+
reducedBasisMatrix[i][0] = basisMatrix[i][0] + basisMatrix[i][fitPointCount];
|
182
|
+
reducedBasisMatrix[i][1] = basisMatrix[i][1] + basisMatrix[i][fitPointCount + 1];
|
183
|
+
reducedBasisMatrix[i][2] = basisMatrix[i][2] + basisMatrix[i][fitPointCount + 2];
|
184
|
+
for (var j = 3; j < fitPointCount; j++) {
|
185
|
+
reducedBasisMatrix[i][j] = basisMatrix[i][j];
|
186
|
+
}
|
187
|
+
}
|
188
|
+
return reducedBasisMatrix;
|
189
|
+
};
|
190
|
+
return BasisMatrixBuilder;
|
191
|
+
}());
|
192
|
+
/**
|
193
|
+
* Utility class for control point calculations
|
194
|
+
*/
|
195
|
+
var ControlPointCalculator = /** @class */ (function () {
|
196
|
+
function ControlPointCalculator() {
|
197
|
+
}
|
198
|
+
/**
|
199
|
+
* Solves for control points using the reduced basis matrix
|
200
|
+
*/
|
201
|
+
ControlPointCalculator.solveControlPoints = function (reducedBasisMatrix, fitPoints) {
|
202
|
+
var dimensions = fitPoints[0].length;
|
203
|
+
var fitPointCount = fitPoints.length;
|
204
|
+
var solvedControlPoints = [];
|
205
|
+
// Create dimension matrices from fit points
|
206
|
+
for (var i = 0; i < dimensions; i++) {
|
207
|
+
var dimensionMatrix = new Array(fitPointCount);
|
208
|
+
for (var j = 0; j < fitPointCount; j++) {
|
209
|
+
dimensionMatrix[j] = fitPoints[j][i];
|
210
|
+
}
|
211
|
+
// @ts-expect-error - verb library typing issue
|
212
|
+
solvedControlPoints[i] = verb.core.Mat.solve(reducedBasisMatrix, dimensionMatrix);
|
213
|
+
}
|
214
|
+
return solvedControlPoints;
|
215
|
+
};
|
216
|
+
/**
|
217
|
+
* Constructs control points from solved values
|
218
|
+
*/
|
219
|
+
ControlPointCalculator.constructControlPoints = function (solvedControlPoints, fitPointCount, dimensions) {
|
220
|
+
var controlPoints = new Array(fitPointCount);
|
221
|
+
// Construct control points from solved values
|
222
|
+
for (var i = 0; i < fitPointCount; i++) {
|
223
|
+
controlPoints[i] = dimensions >= 3
|
224
|
+
? [solvedControlPoints[0][i], solvedControlPoints[1][i], solvedControlPoints[2][i]]
|
225
|
+
: [solvedControlPoints[0][i], solvedControlPoints[1][i]];
|
226
|
+
}
|
227
|
+
// Add duplicate control points for closed spline
|
228
|
+
for (var i = 0; i < CLOSED_SPLINE_EXTRA_CONTROL_POINTS; i++) {
|
229
|
+
controlPoints[i + fitPointCount] = dimensions >= 3
|
230
|
+
? [solvedControlPoints[0][i], solvedControlPoints[1][i], solvedControlPoints[2][i]]
|
231
|
+
: [solvedControlPoints[0][i], solvedControlPoints[1][i]];
|
232
|
+
}
|
233
|
+
return controlPoints;
|
234
|
+
};
|
235
|
+
/**
|
236
|
+
* Creates uniform weights array
|
237
|
+
*/
|
238
|
+
ControlPointCalculator.createUniformWeights = function (controlPointCount) {
|
239
|
+
return new Array(controlPointCount).fill(1);
|
240
|
+
};
|
241
|
+
return ControlPointCalculator;
|
242
|
+
}());
|
243
|
+
/**
|
244
|
+
* Utility class for NURBS curve subdivision
|
245
|
+
*/
|
246
|
+
var NurbsSubdivider = /** @class */ (function () {
|
247
|
+
function NurbsSubdivider() {
|
248
|
+
}
|
249
|
+
/**
|
250
|
+
* Subdivides a degree 3 NURBS curve at a given parameter value
|
251
|
+
*/
|
252
|
+
NurbsSubdivider.subdivideDegree3 = function (controlPoints, knotVector, subdivisionParameter) {
|
253
|
+
var interval = this.findKnotInterval(knotVector, controlPoints.length, subdivisionParameter);
|
254
|
+
var knots = this.extractKnotValues(knotVector, interval.start);
|
255
|
+
var controlPointCoords = this.extractControlPointCoordinates(controlPoints, interval.start);
|
256
|
+
var subdividedPoints = this.applyDeBoorsSubdivision(subdivisionParameter, knots, controlPointCoords);
|
257
|
+
return this.constructSubdividedCurves(controlPoints, knotVector, interval.start, subdivisionParameter, subdividedPoints);
|
258
|
+
};
|
259
|
+
NurbsSubdivider.findKnotInterval = function (knotVector, controlPointCount, subdivisionParameter) {
|
260
|
+
var knotIntervalEnd = controlPointCount;
|
261
|
+
var knotIntervalStart = 0;
|
262
|
+
while (knotIntervalEnd > knotIntervalStart + 1) {
|
263
|
+
var middleIndex = (0.5 * (knotIntervalEnd + knotIntervalStart)) | 0;
|
264
|
+
if (knotVector[middleIndex] > subdivisionParameter) {
|
265
|
+
knotIntervalEnd = middleIndex;
|
266
|
+
}
|
267
|
+
else {
|
268
|
+
knotIntervalStart = middleIndex;
|
269
|
+
}
|
270
|
+
}
|
271
|
+
return { start: knotIntervalStart };
|
272
|
+
};
|
273
|
+
NurbsSubdivider.extractKnotValues = function (knotVector, intervalStart) {
|
274
|
+
return [
|
275
|
+
knotVector[intervalStart - 2], // knotMinus2
|
276
|
+
knotVector[intervalStart - 1], // knotMinus1
|
277
|
+
knotVector[intervalStart], // knotZero
|
278
|
+
knotVector[intervalStart + 1], // knotPlus1
|
279
|
+
knotVector[intervalStart + 2], // knotPlus2
|
280
|
+
knotVector[intervalStart + 3] // knotPlus3
|
281
|
+
];
|
282
|
+
};
|
283
|
+
NurbsSubdivider.extractControlPointCoordinates = function (controlPoints, intervalStart) {
|
284
|
+
var dimensions = controlPoints[0].length;
|
285
|
+
return [
|
286
|
+
{
|
287
|
+
x: controlPoints[intervalStart - 3][0],
|
288
|
+
y: controlPoints[intervalStart - 3][1],
|
289
|
+
z: dimensions >= 3 ? controlPoints[intervalStart - 3][2] : 0
|
290
|
+
},
|
291
|
+
{
|
292
|
+
x: controlPoints[intervalStart - 2][0],
|
293
|
+
y: controlPoints[intervalStart - 2][1],
|
294
|
+
z: dimensions >= 3 ? controlPoints[intervalStart - 2][2] : 0
|
295
|
+
},
|
296
|
+
{
|
297
|
+
x: controlPoints[intervalStart - 1][0],
|
298
|
+
y: controlPoints[intervalStart - 1][1],
|
299
|
+
z: dimensions >= 3 ? controlPoints[intervalStart - 1][2] : 0
|
300
|
+
},
|
301
|
+
{
|
302
|
+
x: controlPoints[intervalStart][0],
|
303
|
+
y: controlPoints[intervalStart][1],
|
304
|
+
z: dimensions >= 3 ? controlPoints[intervalStart][2] : 0
|
305
|
+
}
|
306
|
+
];
|
307
|
+
};
|
308
|
+
NurbsSubdivider.applyDeBoorsSubdivision = function (subdivisionParameter, knots, controlPoints) {
|
309
|
+
var _a = __read(knots, 6), knotMinus2 = _a[0], knotMinus1 = _a[1], knotZero = _a[2], knotPlus1 = _a[3], knotPlus2 = _a[4], knotPlus3 = _a[5];
|
310
|
+
var _b = __read(controlPoints, 4), cpMinus3 = _b[0], cpMinus2 = _b[1], cpMinus1 = _b[2], cpZero = _b[3];
|
311
|
+
// De Boor's algorithm for degree 3 subdivision - Step 1
|
312
|
+
var alphaZero_1 = (subdivisionParameter - knotZero) / (knotPlus3 - knotZero);
|
313
|
+
var betaZero_1 = 1 - alphaZero_1;
|
314
|
+
var cpZero_1 = this.interpolatePoint(cpMinus1, cpZero, alphaZero_1, betaZero_1);
|
315
|
+
var alphaMinus1_1 = (subdivisionParameter - knotMinus1) / (knotPlus2 - knotMinus1);
|
316
|
+
var betaMinus1_1 = 1 - alphaMinus1_1;
|
317
|
+
var cpMinus1_1 = this.interpolatePoint(cpMinus2, cpMinus1, alphaMinus1_1, betaMinus1_1);
|
318
|
+
var alphaMinus2_1 = (subdivisionParameter - knotMinus2) / (knotPlus1 - knotMinus2);
|
319
|
+
var betaMinus2_1 = 1 - alphaMinus2_1;
|
320
|
+
var cpMinus2_1 = this.interpolatePoint(cpMinus3, cpMinus2, alphaMinus2_1, betaMinus2_1);
|
321
|
+
// De Boor's algorithm for degree 3 subdivision - Step 2
|
322
|
+
var alphaZero_2 = (subdivisionParameter - knotZero) / (knotPlus2 - knotZero);
|
323
|
+
var betaZero_2 = 1 - alphaZero_2;
|
324
|
+
var cpZero_2 = this.interpolatePoint(cpMinus1_1, cpZero_1, alphaZero_2, betaZero_2);
|
325
|
+
var alphaMinus1_2 = (subdivisionParameter - knotMinus1) / (knotPlus1 - knotMinus1);
|
326
|
+
var betaMinus1_2 = 1 - alphaMinus1_2;
|
327
|
+
var cpMinus1_2 = this.interpolatePoint(cpMinus2_1, cpMinus1_1, alphaMinus1_2, betaMinus1_2);
|
328
|
+
// De Boor's algorithm for degree 3 subdivision - Step 3
|
329
|
+
var alphaZero_3 = (subdivisionParameter - knotZero) / (knotPlus1 - knotZero);
|
330
|
+
var betaZero_3 = 1 - alphaZero_3;
|
331
|
+
var cpZero_3 = this.interpolatePoint(cpMinus1_2, cpZero_2, alphaZero_3, betaZero_3);
|
332
|
+
return [cpMinus2_1, cpMinus1_2, cpZero_3, cpZero_2, cpZero_1];
|
333
|
+
};
|
334
|
+
NurbsSubdivider.interpolatePoint = function (p1, p2, alpha, beta) {
|
335
|
+
return {
|
336
|
+
x: beta * p1.x + alpha * p2.x,
|
337
|
+
y: beta * p1.y + alpha * p2.y,
|
338
|
+
z: beta * p1.z + alpha * p2.z
|
339
|
+
};
|
340
|
+
};
|
341
|
+
NurbsSubdivider.constructSubdividedCurves = function (controlPoints, knotVector, intervalStart, subdivisionParameter, subdividedPoints) {
|
342
|
+
var dimensions = controlPoints[0].length;
|
343
|
+
var _a = __read(subdividedPoints, 5), cpMinus2_1 = _a[0], cpMinus1_2 = _a[1], cpZero_3 = _a[2], cpZero_2 = _a[3], cpZero_1 = _a[4];
|
344
|
+
// Construct first subdivided curve (before subdivision point)
|
345
|
+
var firstCurveControlPoints = this.buildFirstCurveControlPoints(controlPoints, intervalStart, [cpMinus2_1, cpMinus1_2, cpZero_3], dimensions);
|
346
|
+
var firstCurveKnots = this.buildFirstCurveKnots(knotVector, intervalStart, subdivisionParameter);
|
347
|
+
// Construct second subdivided curve (after subdivision point)
|
348
|
+
var secondCurveControlPoints = this.buildSecondCurveControlPoints(controlPoints, intervalStart, [cpZero_3, cpZero_2, cpZero_1], dimensions);
|
349
|
+
var secondCurveKnots = this.buildSecondCurveKnots(knotVector, intervalStart, subdivisionParameter);
|
350
|
+
return [
|
351
|
+
{
|
352
|
+
points: firstCurveControlPoints,
|
353
|
+
knots: firstCurveKnots,
|
354
|
+
degree: SPLINE_DEGREE
|
355
|
+
},
|
356
|
+
{
|
357
|
+
points: secondCurveControlPoints,
|
358
|
+
knots: secondCurveKnots,
|
359
|
+
degree: SPLINE_DEGREE
|
360
|
+
}
|
361
|
+
];
|
362
|
+
};
|
363
|
+
NurbsSubdivider.buildFirstCurveControlPoints = function (controlPoints, intervalStart, subdividedPoints, dimensions) {
|
364
|
+
var firstCurveControlPoints = [];
|
365
|
+
// Add control points before subdivision
|
366
|
+
for (var i = 0; i < intervalStart - 2; i++) {
|
367
|
+
firstCurveControlPoints[i] = controlPoints[i];
|
368
|
+
}
|
369
|
+
// Add subdivided control points
|
370
|
+
subdividedPoints.forEach(function (point) {
|
371
|
+
firstCurveControlPoints.push(dimensions >= 3 ? [point.x, point.y, point.z] : [point.x, point.y]);
|
372
|
+
});
|
373
|
+
return firstCurveControlPoints;
|
374
|
+
};
|
375
|
+
NurbsSubdivider.buildFirstCurveKnots = function (knotVector, intervalStart, subdivisionParameter) {
|
376
|
+
var firstCurveKnots = [];
|
377
|
+
// Add knots before subdivision
|
378
|
+
for (var i = 0; i < intervalStart + 1; i++) {
|
379
|
+
firstCurveKnots[i] = knotVector[i];
|
380
|
+
}
|
381
|
+
// Add subdivision parameter knots
|
382
|
+
firstCurveKnots.push(subdivisionParameter, subdivisionParameter, subdivisionParameter, subdivisionParameter);
|
383
|
+
return firstCurveKnots;
|
384
|
+
};
|
385
|
+
NurbsSubdivider.buildSecondCurveControlPoints = function (controlPoints, intervalStart, subdividedPoints, dimensions) {
|
386
|
+
var secondCurveControlPoints = [];
|
387
|
+
// Add subdivided control points
|
388
|
+
subdividedPoints.forEach(function (point) {
|
389
|
+
secondCurveControlPoints.push(dimensions >= 3 ? [point.x, point.y, point.z] : [point.x, point.y]);
|
390
|
+
});
|
391
|
+
// Add remaining control points
|
392
|
+
for (var i = intervalStart; i < controlPoints.length; i++) {
|
393
|
+
secondCurveControlPoints[i + 3 - intervalStart] = controlPoints[i];
|
394
|
+
}
|
395
|
+
return secondCurveControlPoints;
|
396
|
+
};
|
397
|
+
NurbsSubdivider.buildSecondCurveKnots = function (knotVector, intervalStart, subdivisionParameter) {
|
398
|
+
var secondCurveKnots = [
|
399
|
+
subdivisionParameter,
|
400
|
+
subdivisionParameter,
|
401
|
+
subdivisionParameter,
|
402
|
+
subdivisionParameter
|
403
|
+
];
|
404
|
+
for (var i = intervalStart + 1; i < knotVector.length; i++) {
|
405
|
+
secondCurveKnots[i + 3 - intervalStart] = knotVector[i];
|
406
|
+
}
|
407
|
+
return secondCurveKnots;
|
408
|
+
};
|
409
|
+
return NurbsSubdivider;
|
410
|
+
}());
|
411
|
+
/**
|
412
|
+
* Main spline utility class
|
413
|
+
*/
|
414
|
+
var AcGeSplineUtil = /** @class */ (function () {
|
415
|
+
function AcGeSplineUtil() {
|
416
|
+
}
|
417
|
+
/**
|
418
|
+
* Creates a NURBS curve from fit points using the specified knot parameterization
|
419
|
+
* @param fitPoints Array of fit points in 3D space
|
420
|
+
* @param knotParameterization Type of knot parameterization ('Uniform', 'Chord', or 'SqrtChord')
|
421
|
+
* @returns A NURBS curve object or undefined if insufficient points
|
422
|
+
*/
|
423
|
+
AcGeSplineUtil.createByFitPoints = function (fitPoints, knotParameterization) {
|
424
|
+
if (knotParameterization === void 0) { knotParameterization = 'Uniform'; }
|
425
|
+
if (fitPoints.length < MIN_FIT_POINTS_FOR_SPLINE) {
|
426
|
+
return undefined;
|
427
|
+
}
|
428
|
+
var closedSplineData = this.convertClosedFitPointsToControlPoints(fitPoints, knotParameterization);
|
429
|
+
var nurbsCurve = verb.geom.NurbsCurve.byKnotsControlPointsWeights(closedSplineData.degree, closedSplineData.knots, closedSplineData.points, closedSplineData.weights);
|
430
|
+
return nurbsCurve;
|
431
|
+
};
|
432
|
+
/**
|
433
|
+
* Converts closed fit points to control points for NURBS curve creation
|
434
|
+
* @param fitPoints Array of fit points defining the curve
|
435
|
+
* @param knotParameterization Type of knot parameterization
|
436
|
+
* @returns NURBS curve data with control points, weights, knots, and degree
|
437
|
+
*/
|
438
|
+
AcGeSplineUtil.convertClosedFitPointsToControlPoints = function (fitPoints, knotParameterization) {
|
439
|
+
var cleanedFitPoints = this.removeDuplicateEndPoint(fitPoints);
|
440
|
+
var closedSplineData = this.createClosedSplineInterpolation(cleanedFitPoints, knotParameterization);
|
441
|
+
return this.convertClosedNurbsToClamped(closedSplineData);
|
442
|
+
};
|
443
|
+
AcGeSplineUtil.removeDuplicateEndPoint = function (fitPoints) {
|
444
|
+
var startPoint = fitPoints[0];
|
445
|
+
var endPoint = fitPoints[fitPoints.length - 1];
|
446
|
+
if (startPoint[0] === endPoint[0] && startPoint[1] === endPoint[1]) {
|
447
|
+
return fitPoints.slice(0, -1);
|
448
|
+
}
|
449
|
+
return fitPoints;
|
450
|
+
};
|
451
|
+
AcGeSplineUtil.createClosedSplineInterpolation = function (fitPoints, knotParameterization) {
|
452
|
+
var fitPointCount = fitPoints.length;
|
453
|
+
var controlPointCount = fitPointCount + CLOSED_SPLINE_EXTRA_CONTROL_POINTS;
|
454
|
+
var knotVectorSize = fitPointCount + CLOSED_SPLINE_EXTRA_CONTROL_POINTS + SPLINE_DEGREE + 1;
|
455
|
+
// Generate knot vector
|
456
|
+
var knotVector = KnotVectorGenerator.generate(fitPoints, knotParameterization, knotVectorSize);
|
457
|
+
// Extract parameter values for fit points
|
458
|
+
var parameterValues = knotVector.slice(SPLINE_DEGREE, SPLINE_DEGREE + fitPointCount);
|
459
|
+
// Build basis matrix
|
460
|
+
var basisMatrix = BasisMatrixBuilder.buildBasisMatrix(fitPoints, knotVector, parameterValues);
|
461
|
+
var reducedBasisMatrix = BasisMatrixBuilder.reduceForClosedSpline(basisMatrix, fitPointCount);
|
462
|
+
// Solve for control points
|
463
|
+
var solvedControlPoints = ControlPointCalculator.solveControlPoints(reducedBasisMatrix, fitPoints);
|
464
|
+
var controlPoints = ControlPointCalculator.constructControlPoints(solvedControlPoints, fitPointCount, fitPoints[0].length);
|
465
|
+
// Create weights
|
466
|
+
var weights = ControlPointCalculator.createUniformWeights(controlPointCount);
|
467
|
+
return {
|
468
|
+
points: controlPoints,
|
469
|
+
weights: weights,
|
470
|
+
knots: knotVector,
|
471
|
+
degree: SPLINE_DEGREE
|
472
|
+
};
|
473
|
+
};
|
474
|
+
AcGeSplineUtil.convertClosedNurbsToClamped = function (closedSplineData) {
|
475
|
+
var splineDegree = closedSplineData.degree;
|
476
|
+
var startParameter = closedSplineData.knots[splineDegree];
|
477
|
+
var endParameter = closedSplineData.knots[closedSplineData.knots.length - splineDegree - 1];
|
478
|
+
if (splineDegree === SPLINE_DEGREE) {
|
479
|
+
var subdividedCurves = NurbsSubdivider.subdivideDegree3(closedSplineData.points, closedSplineData.knots, startParameter);
|
480
|
+
subdividedCurves = NurbsSubdivider.subdivideDegree3(subdividedCurves[1].points, subdividedCurves[1].knots, endParameter);
|
481
|
+
return subdividedCurves[0];
|
482
|
+
}
|
483
|
+
return closedSplineData;
|
484
|
+
};
|
485
|
+
return AcGeSplineUtil;
|
486
|
+
}());
|
487
|
+
export { AcGeSplineUtil };
|
488
|
+
// Export the main function for backward compatibility
|
489
|
+
export var createByFitPoints = AcGeSplineUtil.createByFitPoints;
|
490
|
+
export var convertClosedFitPointsToControlPoints = AcGeSplineUtil.convertClosedFitPointsToControlPoints;
|
491
|
+
//# sourceMappingURL=AcGeSplineUtil.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeSplineUtil.js","sourceRoot":"","sources":["../../src/util/AcGeSplineUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAIjC,YAAY;AACZ,IAAM,aAAa,GAAG,CAAC,CAAA;AACvB,IAAM,yBAAyB,GAAG,CAAC,CAAA;AACnC,IAAM,kCAAkC,GAAG,CAAC,CAAA;AAqB5C;;GAEG;AACH;IAAA;IA+FA,CAAC;IA9FC;;OAEG;IACI,oCAAe,GAAtB,UACE,UAAoB,EACpB,SAAiB,EACjB,cAAsB,EACtB,iBAAyB;QAEzB,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;QAC7E,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEhE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,EACd,iBAAiB,EACjB,QAAQ,CAAC,KAAK,EACd,KAAK,CACN,CAAA;IACH,CAAC;IAEc,qCAAgB,GAA/B,UACE,UAAoB,EACpB,SAAiB,EACjB,cAAsB;QAEtB,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,IAAI,eAAe,GAAG,SAAS,CAAA;QAE/B,OAAO,eAAe,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAM,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAA;YACrE,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,cAAc,EAAE,CAAC;gBAC7C,eAAe,GAAG,WAAW,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,WAAW,CAAA;YACjC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEc,sCAAiB,GAAhC,UAAiC,UAAoB,EAAE,aAAqB;QAC1E,OAAO;YACL,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa;YAC5C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa;YAC5C,UAAU,CAAC,aAAa,CAAC,EAAM,WAAW;YAC1C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,YAAY;YAC3C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,YAAY;YAC3C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAE,YAAY;SAC5C,CAAA;IACH,CAAC;IAEc,0CAAqB,GAApC,UACE,cAAsB,EACtB,iBAAyB,EACzB,aAAqB,EACrB,KAAe;QAET,IAAA,KAAA,OAAsE,KAAK,IAAA,EAA1E,UAAU,QAAA,EAAE,UAAU,QAAA,EAAE,QAAQ,QAAA,EAAE,SAAS,QAAA,EAAE,SAAS,QAAA,EAAE,SAAS,QAAS,CAAA;QAEjF,mCAAmC;QACnC,IAAM,gBAAgB,GAAG,aAAa,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,IAAI,gBAAgB,GAAG,aAAa,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,IAAI,gBAAgB,GAAG,aAAa,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,IAAI,cAAc,GAAG,aAAa,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEhE,uDAAuD;QACvD,IAAI,KAAK,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAChE,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QACpB,cAAc,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,cAAc,CAAA;QAEjE,KAAK,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QAChE,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QAChB,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,gBAAgB,CAAA;QAErE,KAAK,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QAChE,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QAChB,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,gBAAgB,CAAA;QAErE,uDAAuD;QACvD,KAAK,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QAChB,cAAc,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,cAAc,CAAA;QAEjE,KAAK,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QAChE,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QAChB,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,gBAAgB,CAAA;QAErE,uDAAuD;QACvD,KAAK,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;QAChB,cAAc,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,GAAG,cAAc,CAAA;QAEjE,OAAO,cAAc,CAAA;IACvB,CAAC;IACH,2BAAC;AAAD,CAAC,AA/FD,IA+FC;AAED;;GAEG;AACH;IAAA;IAkEA,CAAC;IAjEC;;OAEG;IACI,4BAAQ,GAAf,UACE,SAAqB,EACrB,oBAAkD,EAClD,cAAsB;QAEtB,QAAQ,oBAAoB,EAAE,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAA;YACvD,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;YAChE,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,6CAAsC,oBAAoB,CAAE,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAEc,6CAAyB,GAAxC,UAAyC,cAAsB;QAC7D,IAAM,UAAU,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEc,2CAAuB,GAAtC,UAAuC,SAAqB,EAAE,cAAsB;QAClF,IAAM,UAAU,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAC5C,IAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAA;QACtC,IAAI,kBAAkB,GAAG,CAAC,CAAA;QAE1B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAA;YACjE,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAA;YACjE,IAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC5D,kBAAkB,IAAI,aAAa,CAAA;YACnC,UAAU,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAA;QACpC,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAEc,+CAA2B,GAA1C,UAA2C,SAAqB,EAAE,cAAsB;QACtF,IAAM,UAAU,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAC5C,IAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAA;QACtC,IAAI,kBAAkB,GAAG,CAAC,CAAA;QAE1B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAA;YACjE,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAA;YACjE,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;YACvE,kBAAkB,IAAI,aAAa,CAAA;YACnC,UAAU,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAA;QACpC,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAEc,qCAAiB,GAAhC,UAAiC,MAAgB,EAAE,MAAgB;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3F,CAAC;IACH,0BAAC;AAAD,CAAC,AAlED,IAkEC;AAED;;GAEG;AACH;IAAA;IA+CA,CAAC;IA9CC;;OAEG;IACI,mCAAgB,GAAvB,UACE,SAAqB,EACrB,UAAoB,EACpB,eAAyB;QAEzB,IAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAA;QACtC,IAAM,iBAAiB,GAAG,aAAa,GAAG,kCAAkC,CAAA;QAC5E,IAAM,WAAW,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,eAAe,CACtD,UAAU,EACV,iBAAiB,EACjB,eAAe,CAAC,CAAC,CAAC,EAClB,CAAC,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED;;OAEG;IACI,wCAAqB,GAA5B,UAA6B,WAAuB,EAAE,aAAqB;QACzE,IAAM,kBAAkB,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;YAChD,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;YAC5E,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YAChF,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IACH,yBAAC;AAAD,CAAC,AA/CD,IA+CC;AAED;;GAEG;AACH;IAAA;IA2DA,CAAC;IA1DC;;OAEG;IACI,yCAAkB,GAAzB,UACE,kBAA8B,EAC9B,SAAqB;QAErB,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACtC,IAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAA;QACtC,IAAM,mBAAmB,GAAe,EAAE,CAAA;QAE1C,4CAA4C;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAM,eAAe,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;YAED,+CAA+C;YAC/C,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED;;OAEG;IACI,6CAAsB,GAA7B,UACE,mBAA+B,EAC/B,aAAqB,EACrB,UAAkB;QAElB,IAAM,aAAa,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAE9C,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;gBAChC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kCAAkC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,UAAU,IAAI,CAAC;gBAChD,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;OAEG;IACI,2CAAoB,GAA3B,UAA4B,iBAAyB;QACnD,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IACH,6BAAC;AAAD,CAAC,AA3DD,IA2DC;AAED;;GAEG;AACH;IAAA;IAkRA,CAAC;IAjRC;;OAEG;IACI,gCAAgB,GAAvB,UACE,aAAyB,EACzB,UAAoB,EACpB,oBAA4B;QAE5B,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAC9F,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAChE,IAAM,kBAAkB,GAAG,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE7F,IAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CACnD,oBAAoB,EACpB,KAAK,EACL,kBAAkB,CACnB,CAAA;QAED,OAAO,IAAI,CAAC,yBAAyB,CACnC,aAAa,EACb,UAAU,EACV,QAAQ,CAAC,KAAK,EACd,oBAAoB,EACpB,gBAAgB,CACjB,CAAA;IACH,CAAC;IAEc,gCAAgB,GAA/B,UACE,UAAoB,EACpB,iBAAyB,EACzB,oBAA4B;QAE5B,IAAI,eAAe,GAAG,iBAAiB,CAAA;QACvC,IAAI,iBAAiB,GAAG,CAAC,CAAA;QAEzB,OAAO,eAAe,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAM,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAA;YACrE,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,oBAAoB,EAAE,CAAC;gBACnD,eAAe,GAAG,WAAW,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,WAAW,CAAA;YACjC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEc,iCAAiB,GAAhC,UAAiC,UAAoB,EAAE,aAAqB;QAC1E,OAAO;YACL,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa;YAC5C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa;YAC5C,UAAU,CAAC,aAAa,CAAC,EAAM,WAAW;YAC1C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,YAAY;YAC3C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,YAAY;YAC3C,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAE,YAAY;SAC5C,CAAA;IACH,CAAC;IAEc,8CAA8B,GAA7C,UACE,aAAyB,EACzB,aAAqB;QAErB,IAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAE1C,OAAO;YACL;gBACE,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7D;YACD;gBACE,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7D;YACD;gBACE,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7D;YACD;gBACE,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD;SACF,CAAA;IACH,CAAC;IAEc,uCAAuB,GAAtC,UACE,oBAA4B,EAC5B,KAAe,EACf,aAAwB;QAElB,IAAA,KAAA,OAAsE,KAAK,IAAA,EAA1E,UAAU,QAAA,EAAE,UAAU,QAAA,EAAE,QAAQ,QAAA,EAAE,SAAS,QAAA,EAAE,SAAS,QAAA,EAAE,SAAS,QAAS,CAAA;QAC3E,IAAA,KAAA,OAAyC,aAAa,IAAA,EAArD,QAAQ,QAAA,EAAE,QAAQ,QAAA,EAAE,QAAQ,QAAA,EAAE,MAAM,QAAiB,CAAA;QAE5D,wDAAwD;QACxD,IAAM,WAAW,GAAG,CAAC,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAC9E,IAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAA;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAEjF,IAAM,aAAa,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QACpF,IAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAA;QACtC,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QAEzF,IAAM,aAAa,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QACpF,IAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAA;QACtC,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QAEzF,wDAAwD;QACxD,IAAM,WAAW,GAAG,CAAC,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAC9E,IAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAA;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAErF,IAAM,aAAa,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;QACpF,IAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAA;QACtC,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QAE7F,wDAAwD;QACxD,IAAM,WAAW,GAAG,CAAC,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAA;QAC9E,IAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAA;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAErF,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAEc,gCAAgB,GAA/B,UAAgC,EAAW,EAAE,EAAW,EAAE,KAAa,EAAE,IAAY;QACnF,OAAO;YACL,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YAC7B,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YAC7B,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;SAC9B,CAAA;IACH,CAAC;IAEc,yCAAyB,GAAxC,UACE,aAAyB,EACzB,UAAoB,EACpB,aAAqB,EACrB,oBAA4B,EAC5B,gBAA2B;QAE3B,IAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACpC,IAAA,KAAA,OAAyD,gBAAgB,IAAA,EAAxE,UAAU,QAAA,EAAE,UAAU,QAAA,EAAE,QAAQ,QAAA,EAAE,QAAQ,QAAA,EAAE,QAAQ,QAAoB,CAAA;QAE/E,8DAA8D;QAC9D,IAAM,uBAAuB,GAAG,IAAI,CAAC,4BAA4B,CAC/D,aAAa,EACb,aAAa,EACb,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAClC,UAAU,CACX,CAAA;QAED,IAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,UAAU,EACV,aAAa,EACb,oBAAoB,CACrB,CAAA;QAED,8DAA8D;QAC9D,IAAM,wBAAwB,GAAG,IAAI,CAAC,6BAA6B,CACjE,aAAa,EACb,aAAa,EACb,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC9B,UAAU,CACX,CAAA;QAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CACjD,UAAU,EACV,aAAa,EACb,oBAAoB,CACrB,CAAA;QAED,OAAO;YACL;gBACE,MAAM,EAAE,uBAAuB;gBAC/B,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,aAAa;aACtB;YACD;gBACE,MAAM,EAAE,wBAAwB;gBAChC,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,aAAa;aACtB;SACF,CAAA;IACH,CAAC;IAEc,4CAA4B,GAA3C,UACE,aAAyB,EACzB,aAAqB,EACrB,gBAA2B,EAC3B,UAAkB;QAElB,IAAM,uBAAuB,GAAe,EAAE,CAAA;QAE9C,wCAAwC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,gCAAgC;QAChC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK;YAC5B,uBAAuB,CAAC,IAAI,CAC1B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CACnE,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAEc,oCAAoB,GAAnC,UACE,UAAoB,EACpB,aAAqB,EACrB,oBAA4B;QAE5B,IAAM,eAAe,GAAa,EAAE,CAAA;QAEpC,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,kCAAkC;QAClC,eAAe,CAAC,IAAI,CAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,CACrB,CAAA;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAEc,6CAA6B,GAA5C,UACE,aAAyB,EACzB,aAAqB,EACrB,gBAA2B,EAC3B,UAAkB;QAElB,IAAM,wBAAwB,GAAe,EAAE,CAAA;QAE/C,gCAAgC;QAChC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK;YAC5B,wBAAwB,CAAC,IAAI,CAC3B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CACnE,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1D,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,OAAO,wBAAwB,CAAA;IACjC,CAAC;IAEc,qCAAqB,GAApC,UACE,UAAoB,EACpB,aAAqB,EACrB,oBAA4B;QAE5B,IAAM,gBAAgB,GAAG;YACvB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;SACrB,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3D,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACH,sBAAC;AAAD,CAAC,AAlRD,IAkRC;AAED;;GAEG;AACH;IAAA;IA6GA,CAAC;IA5GC;;;;;OAKG;IACI,gCAAiB,GAAxB,UACE,SAAqB,EACrB,oBAA8D;QAA9D,qCAAA,EAAA,gCAA8D;QAE9D,IAAI,SAAS,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;YACjD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,qCAAqC,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;QACpG,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,CACjE,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CAAC,OAAO,CACzB,CAAA;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;;OAKG;IACI,oDAAqC,GAA5C,UACE,SAAqB,EACrB,oBAAkD;QAElD,IAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAA;QAChE,IAAM,gBAAgB,GAAG,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;QACrG,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;IAC3D,CAAC;IAEc,sCAAuB,GAAtC,UAAuC,SAAqB;QAC1D,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAEhD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEc,8CAA+B,GAA9C,UACE,SAAqB,EACrB,oBAAkD;QAElD,IAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAA;QACtC,IAAM,iBAAiB,GAAG,aAAa,GAAG,kCAAkC,CAAA;QAC5E,IAAM,cAAc,GAAG,aAAa,GAAG,kCAAkC,GAAG,aAAa,GAAG,CAAC,CAAA;QAE7F,uBAAuB;QACvB,IAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAA;QAEhG,0CAA0C;QAC1C,IAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,CAAA;QAEtF,qBAAqB;QACrB,IAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;QAC/F,IAAM,kBAAkB,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAE/F,2BAA2B;QAC3B,IAAM,mBAAmB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;QACpG,IAAM,aAAa,GAAG,sBAAsB,CAAC,sBAAsB,CACjE,mBAAmB,EACnB,aAAa,EACb,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CACpB,CAAA;QAED,iBAAiB;QACjB,IAAM,OAAO,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;QAE9E,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,SAAA;YACP,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,aAAa;SACtB,CAAA;IACH,CAAC;IAEc,0CAA2B,GAA1C,UAA2C,gBAAgC;QACzE,IAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAA;QAC5C,IAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC,CAAA;QAE7F,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;YACnC,IAAI,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CACrD,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CAAC,KAAK,EACtB,cAAc,CACf,CAAA;YACD,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CACjD,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,EAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EACzB,YAAY,CACb,CAAA;YACD,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;QAED,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACH,qBAAC;AAAD,CAAC,AA7GD,IA6GC;;AAED,sDAAsD;AACtD,MAAM,CAAC,IAAM,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAA;AACjE,MAAM,CAAC,IAAM,qCAAqC,GAAG,cAAc,CAAC,qCAAqC,CAAA"}
|