@pawells/math-extended 1.0.1 → 1.0.4

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.
Files changed (94) hide show
  1. package/README.md +24 -1
  2. package/build/index.d.ts +3 -0
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +5 -0
  5. package/build/index.js.map +1 -1
  6. package/build/quaternions/asserts.d.ts +1 -1
  7. package/build/quaternions/asserts.d.ts.map +1 -1
  8. package/build/quaternions/asserts.js +1 -1
  9. package/build/quaternions/asserts.js.map +1 -1
  10. package/package.json +16 -4
  11. package/build/angles.spec.d.ts +0 -2
  12. package/build/angles.spec.d.ts.map +0 -1
  13. package/build/angles.spec.js +0 -147
  14. package/build/angles.spec.js.map +0 -1
  15. package/build/clamp.spec.d.ts +0 -2
  16. package/build/clamp.spec.d.ts.map +0 -1
  17. package/build/clamp.spec.js +0 -19
  18. package/build/clamp.spec.js.map +0 -1
  19. package/build/documentation-validation.spec.d.ts +0 -11
  20. package/build/documentation-validation.spec.d.ts.map +0 -1
  21. package/build/documentation-validation.spec.js +0 -401
  22. package/build/documentation-validation.spec.js.map +0 -1
  23. package/build/interpolation.spec.d.ts +0 -2
  24. package/build/interpolation.spec.d.ts.map +0 -1
  25. package/build/interpolation.spec.js +0 -480
  26. package/build/interpolation.spec.js.map +0 -1
  27. package/build/matrices/arithmetic.spec.d.ts +0 -2
  28. package/build/matrices/arithmetic.spec.d.ts.map +0 -1
  29. package/build/matrices/arithmetic.spec.js +0 -915
  30. package/build/matrices/arithmetic.spec.js.map +0 -1
  31. package/build/matrices/asserts.spec.d.ts +0 -2
  32. package/build/matrices/asserts.spec.d.ts.map +0 -1
  33. package/build/matrices/asserts.spec.js +0 -565
  34. package/build/matrices/asserts.spec.js.map +0 -1
  35. package/build/matrices/core.spec.d.ts +0 -2
  36. package/build/matrices/core.spec.d.ts.map +0 -1
  37. package/build/matrices/core.spec.js +0 -634
  38. package/build/matrices/core.spec.js.map +0 -1
  39. package/build/matrices/decompositions.spec.d.ts +0 -2
  40. package/build/matrices/decompositions.spec.d.ts.map +0 -1
  41. package/build/matrices/decompositions.spec.js +0 -195
  42. package/build/matrices/decompositions.spec.js.map +0 -1
  43. package/build/matrices/linear-algebra.spec.d.ts +0 -2
  44. package/build/matrices/linear-algebra.spec.d.ts.map +0 -1
  45. package/build/matrices/linear-algebra.spec.js +0 -355
  46. package/build/matrices/linear-algebra.spec.js.map +0 -1
  47. package/build/matrices/normalization.spec.d.ts +0 -2
  48. package/build/matrices/normalization.spec.d.ts.map +0 -1
  49. package/build/matrices/normalization.spec.js +0 -335
  50. package/build/matrices/normalization.spec.js.map +0 -1
  51. package/build/matrices/transformations.spec.d.ts +0 -2
  52. package/build/matrices/transformations.spec.d.ts.map +0 -1
  53. package/build/matrices/transformations.spec.js +0 -755
  54. package/build/matrices/transformations.spec.js.map +0 -1
  55. package/build/quaternions/asserts.spec.d.ts +0 -2
  56. package/build/quaternions/asserts.spec.d.ts.map +0 -1
  57. package/build/quaternions/asserts.spec.js +0 -320
  58. package/build/quaternions/asserts.spec.js.map +0 -1
  59. package/build/quaternions/conversions.spec.d.ts +0 -2
  60. package/build/quaternions/conversions.spec.d.ts.map +0 -1
  61. package/build/quaternions/conversions.spec.js +0 -344
  62. package/build/quaternions/conversions.spec.js.map +0 -1
  63. package/build/quaternions/core.spec.d.ts +0 -2
  64. package/build/quaternions/core.spec.d.ts.map +0 -1
  65. package/build/quaternions/core.spec.js +0 -294
  66. package/build/quaternions/core.spec.js.map +0 -1
  67. package/build/quaternions/interpolation.spec.d.ts +0 -2
  68. package/build/quaternions/interpolation.spec.d.ts.map +0 -1
  69. package/build/quaternions/interpolation.spec.js +0 -64
  70. package/build/quaternions/interpolation.spec.js.map +0 -1
  71. package/build/quaternions/predefined.spec.d.ts +0 -2
  72. package/build/quaternions/predefined.spec.d.ts.map +0 -1
  73. package/build/quaternions/predefined.spec.js +0 -35
  74. package/build/quaternions/predefined.spec.js.map +0 -1
  75. package/build/random.spec.d.ts +0 -2
  76. package/build/random.spec.d.ts.map +0 -1
  77. package/build/random.spec.js +0 -267
  78. package/build/random.spec.js.map +0 -1
  79. package/build/vectors/asserts.spec.d.ts +0 -2
  80. package/build/vectors/asserts.spec.d.ts.map +0 -1
  81. package/build/vectors/asserts.spec.js +0 -260
  82. package/build/vectors/asserts.spec.js.map +0 -1
  83. package/build/vectors/core.spec.d.ts +0 -2
  84. package/build/vectors/core.spec.d.ts.map +0 -1
  85. package/build/vectors/core.spec.js +0 -343
  86. package/build/vectors/core.spec.js.map +0 -1
  87. package/build/vectors/interpolation.spec.d.ts +0 -2
  88. package/build/vectors/interpolation.spec.d.ts.map +0 -1
  89. package/build/vectors/interpolation.spec.js +0 -378
  90. package/build/vectors/interpolation.spec.js.map +0 -1
  91. package/build/vectors/predefined.spec.d.ts +0 -2
  92. package/build/vectors/predefined.spec.d.ts.map +0 -1
  93. package/build/vectors/predefined.spec.js +0 -333
  94. package/build/vectors/predefined.spec.js.map +0 -1
@@ -1,401 +0,0 @@
1
- /**
2
- * Documentation Validation Tests
3
- *
4
- * This file validates all code examples from README.md to ensure:
5
- * 1. All examples compile correctly
6
- * 2. Type inference works as documented
7
- * 3. Examples produce expected results
8
- * 4. No runtime errors occur
9
- */
10
- import {
11
- // Matrix operations
12
- MatrixAdd, MatrixMultiply, MatrixInverse, MatrixTranspose, MatrixDeterminant, MatrixLU, MatrixQR, MatrixSVD, MatrixEigen,
13
- // Vector operations
14
- VectorAdd, VectorDot, Vector3Cross, VectorNormalize, VectorMultiply, VectorDistance, VectorAngle, VectorLERP, VectorSmoothStep, VectorCubicEaseOut,
15
- // Quaternion operations
16
- QuaternionFromAxisAngle, QuaternionRotateVector, QuaternionSLERP, QuaternionFromEuler, QuaternionMultiply, QuaternionToRotationMatrix, QuaternionFromRotationMatrix, QuaternionIdentity,
17
- // Transformations
18
- MatrixRotation3D, MatrixScale3D, MatrixTranslation3D, MatrixRotation2D, MatrixScale2D, MatrixTranslation2D, MatrixView, MatrixPerspective, MatrixTransform3D,
19
- // Interpolation
20
- LinearInterpolation, SmoothStep, ElasticEaseOut,
21
- // Utilities
22
- DegreesToRadians, RadiansToDegrees, Clamp, RandomInt, RandomNormal,
23
- // Predefined vectors
24
- Vector3Up, Vector3Forward, VectorZero,
25
- // Validation
26
- AssertMatrix2, AssertVector3, } from './index.ts';
27
- describe('README.md Code Examples Validation', () => {
28
- describe('Quick Start Examples', () => {
29
- test('Matrix operations example', () => {
30
- const a = [
31
- [1, 0, 0],
32
- [0, 1, 0],
33
- [0, 0, 1],
34
- ];
35
- const b = [
36
- [2, 0, 0],
37
- [0, 2, 0],
38
- [0, 0, 2],
39
- ];
40
- const sum = MatrixAdd(a, b);
41
- const product = MatrixMultiply(a, b);
42
- expect(sum).toEqual([
43
- [3, 0, 0],
44
- [0, 3, 0],
45
- [0, 0, 3],
46
- ]);
47
- expect(product).toEqual(b); // Identity × B = B
48
- });
49
- test('Vector operations example', () => {
50
- const v1 = [1, 2, 3];
51
- const v2 = [4, 5, 6];
52
- const vSum = VectorAdd(v1, v2);
53
- const dot = VectorDot(v1, v2);
54
- const cross = Vector3Cross(v1, v2);
55
- expect(vSum).toEqual([5, 7, 9]);
56
- expect(dot).toBe(32);
57
- expect(cross).toEqual([-3, 6, -3]);
58
- });
59
- test('Quaternion rotations example', () => {
60
- const axis = [0, 1, 0];
61
- const rotation = QuaternionFromAxisAngle(axis, Math.PI / 2);
62
- const rotated = QuaternionRotateVector(rotation, [1, 0, 0]);
63
- // Should rotate [1,0,0] 90° around Y-axis to approximately [0,0,-1]
64
- expect(rotated[0]).toBeCloseTo(0, 5);
65
- expect(rotated[1]).toBeCloseTo(0, 5);
66
- expect(rotated[2]).toBeCloseTo(-1, 5);
67
- });
68
- });
69
- describe('Matrix Operations Examples', () => {
70
- test('Basic arithmetic', () => {
71
- const a = [
72
- [1, 2],
73
- [3, 4],
74
- ];
75
- const b = [
76
- [5, 6],
77
- [7, 8],
78
- ];
79
- const sum = MatrixAdd(a, b);
80
- const product = MatrixMultiply(a, b);
81
- expect(sum).toEqual([
82
- [6, 8],
83
- [10, 12],
84
- ]);
85
- expect(product).toEqual([
86
- [19, 22],
87
- [43, 50],
88
- ]);
89
- });
90
- test('Linear algebra operations', () => {
91
- const a = [
92
- [1, 2],
93
- [3, 4],
94
- ];
95
- const transposed = MatrixTranspose(a);
96
- const inverse = MatrixInverse(a);
97
- const det = MatrixDeterminant(a);
98
- expect(transposed).toEqual([
99
- [1, 3],
100
- [2, 4],
101
- ]);
102
- // Verify inverse exists and has correct values
103
- expect(inverse).toBeDefined();
104
- expect(inverse.length).toBe(2);
105
- expect(inverse[0]?.length).toBe(2);
106
- expect(inverse[0]?.[0]).toBeCloseTo(-2, 5);
107
- expect(inverse[0]?.[1]).toBeCloseTo(1, 5);
108
- expect(inverse[1]?.[0]).toBeCloseTo(1.5, 5);
109
- expect(inverse[1]?.[1]).toBeCloseTo(-0.5, 5);
110
- expect(det).toBeCloseTo(-2, 5);
111
- });
112
- test('Matrix decompositions', () => {
113
- const a = [
114
- [1, 2],
115
- [3, 4],
116
- ];
117
- const { L, U } = MatrixLU(a);
118
- const { Q, R } = MatrixQR(a);
119
- const { U: svdU, S, VT } = MatrixSVD(a);
120
- const { eigenvalues, eigenvectors } = MatrixEigen(a);
121
- // Verify decompositions exist and have correct structure
122
- expect(L).toBeDefined();
123
- expect(U).toBeDefined();
124
- expect(Q).toBeDefined();
125
- expect(R).toBeDefined();
126
- expect(svdU).toBeDefined();
127
- expect(S).toBeDefined();
128
- expect(VT).toBeDefined();
129
- expect(eigenvalues).toBeDefined();
130
- expect(eigenvectors).toBeDefined();
131
- });
132
- test('Transformation matrices', () => {
133
- const rotation = MatrixRotation3D(0, Math.PI / 4, 0);
134
- const scale = MatrixScale3D(2, 2, 2);
135
- const translation = MatrixTranslation3D(10, 5, 0);
136
- expect(rotation).toBeDefined();
137
- expect(rotation.length).toBe(4);
138
- expect(rotation[0].length).toBe(4);
139
- expect(scale).toBeDefined();
140
- expect(translation).toBeDefined();
141
- });
142
- });
143
- describe('Vector Operations Examples', () => {
144
- test('Basic operations', () => {
145
- const v1 = [1, 2, 3];
146
- const v2 = [4, 5, 6];
147
- const sum = VectorAdd(v1, v2);
148
- const scaled = VectorMultiply(v1, 2);
149
- expect(sum).toEqual([5, 7, 9]);
150
- expect(scaled).toEqual([2, 4, 6]);
151
- });
152
- test('Geometric operations', () => {
153
- const v1 = [1, 2, 3];
154
- const v2 = [4, 5, 6];
155
- const dot = VectorDot(v1, v2);
156
- const cross = Vector3Cross(v1, v2);
157
- const normalized = VectorNormalize(v1);
158
- const distance = VectorDistance(v1, v2);
159
- const angle = VectorAngle(v1, v2);
160
- expect(dot).toBe(32);
161
- expect(cross).toEqual([-3, 6, -3]);
162
- expect(normalized[0]).toBeCloseTo(0.267, 2);
163
- expect(normalized[1]).toBeCloseTo(0.535, 2);
164
- expect(normalized[2]).toBeCloseTo(0.802, 2);
165
- expect(distance).toBeCloseTo(5.196, 2);
166
- expect(angle).toBeCloseTo(0.226, 2);
167
- });
168
- test('Interpolation', () => {
169
- const v1 = [1, 2, 3];
170
- const v2 = [4, 5, 6];
171
- const lerp = VectorLERP(v1, v2, 0.5);
172
- const smooth = VectorSmoothStep(v1, v2, 0.5);
173
- const cubic = VectorCubicEaseOut(v1, v2, 0.5);
174
- expect(lerp).toEqual([2.5, 3.5, 4.5]);
175
- expect(smooth).toBeDefined();
176
- expect(cubic).toBeDefined();
177
- });
178
- test('Predefined vectors', () => {
179
- const up = Vector3Up();
180
- const forward = Vector3Forward();
181
- const zero = VectorZero(3);
182
- expect(up).toEqual([0, 1, 0]);
183
- expect(forward).toEqual([0, 0, 1]);
184
- expect(zero).toEqual([0, 0, 0]);
185
- });
186
- });
187
- describe('Quaternion Operations Examples', () => {
188
- test('Create rotations', () => {
189
- const identity = QuaternionIdentity();
190
- const axis = [0, 1, 0];
191
- const rotation = QuaternionFromAxisAngle(axis, Math.PI / 2);
192
- expect(identity).toEqual([0, 0, 0, 1]);
193
- expect(rotation).toBeDefined();
194
- expect(rotation.length).toBe(4);
195
- });
196
- test('Euler angle conversion', () => {
197
- const euler = [0, Math.PI / 4, 0];
198
- const quat = QuaternionFromEuler(euler);
199
- expect(quat).toBeDefined();
200
- expect(quat.length).toBe(4);
201
- });
202
- test('Rotate vectors', () => {
203
- const axis = [0, 1, 0];
204
- const rotation = QuaternionFromAxisAngle(axis, Math.PI / 2);
205
- const vector = [1, 0, 0];
206
- const rotated = QuaternionRotateVector(rotation, vector);
207
- expect(rotated[0]).toBeCloseTo(0, 5);
208
- expect(rotated[1]).toBeCloseTo(0, 5);
209
- expect(rotated[2]).toBeCloseTo(-1, 5);
210
- });
211
- test('Combine rotations', () => {
212
- const q1 = QuaternionFromAxisAngle([1, 0, 0], Math.PI / 4);
213
- const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI / 4);
214
- const combined = QuaternionMultiply(q1, q2);
215
- expect(combined).toBeDefined();
216
- expect(combined.length).toBe(4);
217
- });
218
- test('Smooth interpolation (SLERP)', () => {
219
- const q1 = QuaternionFromAxisAngle([1, 0, 0], Math.PI / 4);
220
- const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI / 4);
221
- const interpolated = QuaternionSLERP(q1, q2, 0.5);
222
- expect(interpolated).toBeDefined();
223
- expect(interpolated.length).toBe(4);
224
- });
225
- test('Convert to/from rotation matrices', () => {
226
- const axis = [0, 1, 0];
227
- const rotation = QuaternionFromAxisAngle(axis, Math.PI / 2);
228
- const matrix = QuaternionToRotationMatrix(rotation);
229
- const quatFromMatrix = QuaternionFromRotationMatrix(matrix);
230
- expect(matrix).toBeDefined();
231
- expect(matrix.length).toBe(3);
232
- expect(matrix[0].length).toBe(3);
233
- expect(quatFromMatrix).toBeDefined();
234
- expect(quatFromMatrix.length).toBe(4);
235
- });
236
- });
237
- describe('Transformation Matrices Examples', () => {
238
- test('2D transformations', () => {
239
- const rotation2D = MatrixRotation2D(Math.PI / 4);
240
- const scale2D = MatrixScale2D(2, 3);
241
- const translation2D = MatrixTranslation2D(10, 20);
242
- expect(rotation2D).toBeDefined();
243
- expect(rotation2D.length).toBe(3);
244
- expect(scale2D).toBeDefined();
245
- expect(translation2D).toBeDefined();
246
- });
247
- test('3D transformations', () => {
248
- const rotation3D = MatrixRotation3D(0, Math.PI / 4, 0);
249
- const scale3D = MatrixScale3D(2, 2, 2);
250
- const translation3D = MatrixTranslation3D(10, 5, 0);
251
- expect(rotation3D).toBeDefined();
252
- expect(rotation3D.length).toBe(4);
253
- expect(scale3D).toBeDefined();
254
- expect(translation3D).toBeDefined();
255
- });
256
- test('Camera matrices', () => {
257
- const eye = [0, 5, 10];
258
- const target = [0, 0, 0];
259
- const up = [0, 1, 0];
260
- const view = MatrixView(eye, target, up);
261
- const perspective = MatrixPerspective(Math.PI / 4, 16 / 9, 0.1, 100);
262
- expect(view).toBeDefined();
263
- expect(view.length).toBe(4);
264
- expect(perspective).toBeDefined();
265
- expect(perspective.length).toBe(4);
266
- });
267
- test('Apply transformations', () => {
268
- const rotation3D = MatrixRotation3D(0, Math.PI / 4, 0);
269
- const point = [1, 2, 3];
270
- const transformed = MatrixTransform3D(point, rotation3D);
271
- expect(transformed).toBeDefined();
272
- expect(transformed.length).toBe(3);
273
- });
274
- });
275
- describe('Interpolation & Utilities Examples', () => {
276
- test('Scalar interpolation', () => {
277
- const lerp = LinearInterpolation(0, 100, 0.5);
278
- const smooth = SmoothStep(0, 100, 0.5);
279
- const elastic = ElasticEaseOut(0, 100, 0.8);
280
- expect(lerp).toBe(50);
281
- expect(smooth).toBeDefined();
282
- expect(elastic).toBeDefined();
283
- });
284
- test('Angle utilities', () => {
285
- const radians = DegreesToRadians(90);
286
- const degrees = RadiansToDegrees(Math.PI);
287
- expect(radians).toBeCloseTo(Math.PI / 2, 5);
288
- expect(degrees).toBeCloseTo(180, 5);
289
- });
290
- test('Utilities', () => {
291
- const clamped = Clamp(150, 0, 100);
292
- const randomInt = RandomInt(1, 10);
293
- const gaussian = RandomNormal(0, 1);
294
- expect(clamped).toBe(100);
295
- expect(randomInt).toBeGreaterThanOrEqual(1);
296
- expect(randomInt).toBeLessThanOrEqual(10);
297
- expect(gaussian).toBeDefined();
298
- expect(typeof gaussian).toBe('number');
299
- });
300
- });
301
- describe('Validation & Error Handling Examples', () => {
302
- test('Type guards with runtime validation', () => {
303
- const matrix = [
304
- [1, 2],
305
- [3, 4],
306
- ];
307
- expect(() => AssertMatrix2(matrix)).not.toThrow();
308
- const vector = [1, 2, 3];
309
- expect(() => AssertVector3(vector)).not.toThrow();
310
- });
311
- test('Automatic validation in operations', () => {
312
- const a = [
313
- [1, 2],
314
- [3, 4],
315
- ];
316
- const b = [
317
- [5, 6],
318
- [7, 8],
319
- ];
320
- expect(() => MatrixAdd(a, b)).not.toThrow();
321
- const v1 = [1, 2, 3];
322
- const v2 = [4, 5, 6];
323
- expect(() => VectorDot(v1, v2)).not.toThrow();
324
- });
325
- });
326
- describe('SPECIFICATION.md Examples', () => {
327
- test('Matrix operations example', () => {
328
- const a = [
329
- [1, 2],
330
- [3, 4],
331
- ];
332
- const b = [
333
- [5, 6],
334
- [7, 8],
335
- ];
336
- const sum = MatrixAdd(a, b);
337
- const product = MatrixMultiply(a, b);
338
- expect(sum).toEqual([
339
- [6, 8],
340
- [10, 12],
341
- ]);
342
- expect(product).toEqual([
343
- [19, 22],
344
- [43, 50],
345
- ]);
346
- });
347
- test('Vector operations example', () => {
348
- const v1 = [1, 2, 3];
349
- const v2 = [4, 5, 6];
350
- const sum = VectorAdd(v1, v2);
351
- const dot = VectorDot(v1, v2);
352
- const cross = Vector3Cross(v1, v2);
353
- const normalized = VectorNormalize(v1);
354
- expect(sum).toEqual([5, 7, 9]);
355
- expect(dot).toBe(32);
356
- expect(cross).toEqual([-3, 6, -3]);
357
- expect(normalized[0]).toBeCloseTo(0.267, 2);
358
- expect(normalized[1]).toBeCloseTo(0.535, 2);
359
- expect(normalized[2]).toBeCloseTo(0.802, 2);
360
- });
361
- test('Quaternion operations example', () => {
362
- const axis = [0, 1, 0];
363
- const rotation = QuaternionFromAxisAngle(axis, Math.PI / 2);
364
- const vector = [1, 0, 0];
365
- const rotated = QuaternionRotateVector(rotation, vector);
366
- expect(rotated[0]).toBeCloseTo(0, 5);
367
- expect(rotated[1]).toBeCloseTo(0, 5);
368
- expect(rotated[2]).toBeCloseTo(-1, 5);
369
- });
370
- test('Transformation matrices example', () => {
371
- const rotation = MatrixRotation3D(0, Math.PI / 4, 0);
372
- const scale = MatrixScale3D(2, 2, 2);
373
- const translation = MatrixTranslation3D(10, 5, 0);
374
- const transform = MatrixMultiply(MatrixMultiply(translation, rotation), scale);
375
- const point = [1, 0, 0];
376
- const transformed = MatrixTransform3D(point, transform);
377
- expect(transformed).toBeDefined();
378
- expect(transformed.length).toBe(3);
379
- });
380
- test('Matrix decompositions example', () => {
381
- const matrix = [
382
- [4, 3],
383
- [6, 3],
384
- ];
385
- const { L, U } = MatrixLU(matrix);
386
- const { Q, R } = MatrixQR(matrix);
387
- const { U: svdU, S, VT } = MatrixSVD(matrix);
388
- const { eigenvalues, eigenvectors } = MatrixEigen(matrix);
389
- expect(L).toBeDefined();
390
- expect(U).toBeDefined();
391
- expect(Q).toBeDefined();
392
- expect(R).toBeDefined();
393
- expect(svdU).toBeDefined();
394
- expect(S).toBeDefined();
395
- expect(VT).toBeDefined();
396
- expect(eigenvalues).toBeDefined();
397
- expect(eigenvectors).toBeDefined();
398
- });
399
- });
400
- });
401
- //# sourceMappingURL=documentation-validation.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documentation-validation.spec.js","sourceRoot":"","sources":["../src/documentation-validation.spec.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO;AACN,oBAAoB;AACpB,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW;AACX,oBAAoB;AACpB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB;AAClB,wBAAwB;AACxB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB;AAClB,kBAAkB;AAClB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB,EACnB,UAAU,EACV,cAAc;AACd,YAAY;AACZ,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,YAAY;AACZ,qBAAqB;AACrB,SAAS,EACT,cAAc,EACd,UAAU;AACV,aAAa;AACb,aAAa,EACb,aAAa,GAOb,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IACnD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACT,CAAC;YACF,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACT,CAAC;YACF,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACT,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACtC,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACzC,MAAM,IAAI,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5D,oEAAoE;YACpE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC3C,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,EAAE,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBACvB,CAAC,EAAE,EAAE,EAAE,CAAC;gBACR,CAAC,EAAE,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC,CAAC;YACH,+CAA+C;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAErD,yDAAyD;YACzD,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAElD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC3C,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC7B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACjC,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAElC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;YAC1B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAE9C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/B,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3B,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC7B,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAE5D,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACnC,MAAM,KAAK,GAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3B,MAAM,IAAI,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEzD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE5C,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACzC,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAElD,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC9C,MAAM,IAAI,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACjD,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/B,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAElD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/B,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,MAAM,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAEzC,MAAM,WAAW,GAAG,iBAAiB,CACpC,IAAI,CAAC,EAAE,GAAG,CAAC,EACX,EAAE,GAAG,CAAC,EACN,GAAG,EACH,GAAG,CACH,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QACnD,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAE5C,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACrD,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG;gBACd,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAElD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YAEF,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAE5C,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/B,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YACF,MAAM,CAAC,GAAa;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YAEF,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,EAAE,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBACvB,CAAC,EAAE,EAAE,EAAE,CAAC;gBACR,CAAC,EAAE,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACtC,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,IAAI,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEzD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAElD,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;YAE/E,MAAM,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAExD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY;gBACvB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACN,CAAC;YAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1D,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interpolation.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpolation.spec.d.ts","sourceRoot":"","sources":["../src/interpolation.spec.ts"],"names":[],"mappings":""}