linearly 0.2.0 → 0.4.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.
Files changed (78) hide show
  1. package/README.md +16 -0
  2. package/lib/{common.d.ts → cjs/common.d.ts} +1 -0
  3. package/lib/cjs/common.d.ts.map +1 -0
  4. package/lib/cjs/common.js +20 -0
  5. package/lib/{index.d.ts → cjs/index.d.ts} +1 -0
  6. package/lib/cjs/index.d.ts.map +1 -0
  7. package/lib/cjs/index.js +35 -0
  8. package/lib/{mat2.d.ts → cjs/mat2.d.ts} +12 -0
  9. package/lib/cjs/mat2.d.ts.map +1 -0
  10. package/lib/cjs/mat2.js +224 -0
  11. package/lib/{mat2d.d.ts → cjs/mat2d.d.ts} +13 -1
  12. package/lib/cjs/mat2d.d.ts.map +1 -0
  13. package/lib/cjs/mat2d.js +291 -0
  14. package/lib/{mat3.d.ts → cjs/mat3.d.ts} +2 -0
  15. package/lib/cjs/mat3.d.ts.map +1 -0
  16. package/lib/cjs/mat3.js +450 -0
  17. package/lib/{mat4.d.ts → cjs/mat4.d.ts} +5 -3
  18. package/lib/cjs/mat4.d.ts.map +1 -0
  19. package/lib/cjs/mat4.js +1250 -0
  20. package/lib/{quat.d.ts → cjs/quat.d.ts} +3 -1
  21. package/lib/cjs/quat.d.ts.map +1 -0
  22. package/lib/cjs/quat.js +504 -0
  23. package/lib/{vec2.d.ts → cjs/vec2.d.ts} +2 -0
  24. package/lib/cjs/vec2.d.ts.map +1 -0
  25. package/lib/cjs/vec2.js +205 -0
  26. package/lib/{vec3.d.ts → cjs/vec3.d.ts} +3 -1
  27. package/lib/cjs/vec3.d.ts.map +1 -0
  28. package/lib/cjs/vec3.js +409 -0
  29. package/lib/{vec4.d.ts → cjs/vec4.d.ts} +2 -0
  30. package/lib/cjs/vec4.d.ts.map +1 -0
  31. package/lib/cjs/vec4.js +319 -0
  32. package/lib/esm/common.d.ts +12 -0
  33. package/lib/esm/common.d.ts.map +1 -0
  34. package/lib/esm/common.js +16 -0
  35. package/lib/esm/index.d.ts +17 -0
  36. package/lib/esm/index.d.ts.map +1 -0
  37. package/lib/esm/index.js +9 -0
  38. package/lib/esm/mat2.d.ts +91 -0
  39. package/lib/esm/mat2.d.ts.map +1 -0
  40. package/lib/esm/mat2.js +179 -0
  41. package/lib/esm/mat2d.d.ts +102 -0
  42. package/lib/esm/mat2d.d.ts.map +1 -0
  43. package/lib/esm/mat2d.js +246 -0
  44. package/lib/esm/mat3.d.ts +120 -0
  45. package/lib/esm/mat3.d.ts.map +1 -0
  46. package/lib/esm/mat3.js +400 -0
  47. package/lib/esm/mat4.d.ts +313 -0
  48. package/lib/esm/mat4.d.ts.map +1 -0
  49. package/lib/esm/mat4.js +1183 -0
  50. package/lib/esm/quat.d.ts +220 -0
  51. package/lib/esm/quat.d.ts.map +1 -0
  52. package/lib/esm/quat.js +458 -0
  53. package/lib/esm/vec2.d.ts +66 -0
  54. package/lib/esm/vec2.d.ts.map +1 -0
  55. package/lib/esm/vec2.js +149 -0
  56. package/lib/esm/vec3.d.ts +167 -0
  57. package/lib/esm/vec3.d.ts.map +1 -0
  58. package/lib/esm/vec3.js +348 -0
  59. package/lib/esm/vec4.d.ts +116 -0
  60. package/lib/esm/vec4.d.ts.map +1 -0
  61. package/lib/esm/vec4.js +266 -0
  62. package/package.json +6 -4
  63. package/lib/common.js +0 -30
  64. package/lib/index.js +0 -45
  65. package/lib/mat2.js +0 -208
  66. package/lib/mat2d.js +0 -291
  67. package/lib/mat2d.test.d.ts +0 -1
  68. package/lib/mat2d.test.js +0 -123
  69. package/lib/mat3.js +0 -450
  70. package/lib/mat4.js +0 -1252
  71. package/lib/quat.js +0 -514
  72. package/lib/vec2.js +0 -211
  73. package/lib/vec2.test.d.ts +0 -1
  74. package/lib/vec2.test.js +0 -143
  75. package/lib/vec3.js +0 -408
  76. package/lib/vec3.test.d.ts +0 -1
  77. package/lib/vec3.test.js +0 -143
  78. package/lib/vec4.js +0 -316
package/lib/mat2d.js DELETED
@@ -1,291 +0,0 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- var desc = Object.getOwnPropertyDescriptor(m, k);
4
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
- desc = { enumerable: true, get: function() { return m[k]; } };
6
- }
7
- Object.defineProperty(o, k2, desc);
8
- }) : (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- o[k2] = m[k];
11
- }));
12
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
- Object.defineProperty(o, "default", { enumerable: true, value: v });
14
- }) : function(o, v) {
15
- o["default"] = v;
16
- });
17
- var __importStar = (this && this.__importStar) || function (mod) {
18
- if (mod && mod.__esModule) return mod;
19
- var result = {};
20
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
- __setModuleDefault(result, mod);
22
- return result;
23
- };
24
- (function (factory) {
25
- if (typeof module === "object" && typeof module.exports === "object") {
26
- var v = factory(require, exports);
27
- if (v !== undefined) module.exports = v;
28
- }
29
- else if (typeof define === "function" && define.amd) {
30
- define(["require", "exports", "./common"], factory);
31
- }
32
- })(function (require, exports) {
33
- "use strict";
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.equals = exports.exactEquals = exports.multiplyScalarAndAdd = exports.multiplyScalar = exports.subtract = exports.add = exports.frob = exports.fromTranslation = exports.fromScaling = exports.fromRotation = exports.translate = exports.scale = exports.rotate = exports.multiply = exports.determinant = exports.invert = exports.zero = exports.identity = void 0;
36
- const Common = __importStar(require("./common"));
37
- /**
38
- * 2x3 Matrix
39
- * @module mat2d
40
- * @description
41
- * A mat2d contains six elements defined as:
42
- * <pre>
43
- * [a, b,
44
- * c, d,
45
- * tx, ty]
46
- * </pre>
47
- * This is a short form for the 3x3 matrix:
48
- * <pre>
49
- * [a, b, 0,
50
- * c, d, 0,
51
- * tx, ty, 1]
52
- * </pre>
53
- * The last column is ignored so the array is shorter and operations are faster.
54
- */
55
- /**
56
- * The identity matrix of mat2d
57
- */
58
- // prettier-ignore
59
- exports.identity = Object.freeze([
60
- 1, 0,
61
- 0, 1,
62
- 0, 0
63
- ]);
64
- exports.zero = Object.freeze([0, 0, 0, 0, 0, 0]);
65
- /**
66
- * Inverts a mat2d
67
- */
68
- function invert(a) {
69
- const [aa, ab, ac, ad, atx, aty] = a;
70
- const det = aa * ad - ab * ac;
71
- if (!det) {
72
- return null;
73
- }
74
- const detinv = 1 / det;
75
- // prettier-ignore
76
- return [
77
- ad * detinv, -ab * detinv,
78
- -ac * detinv, aa * detinv,
79
- (ac * aty - ad * atx) * detinv,
80
- (ab * atx - aa * aty) * detinv,
81
- ];
82
- }
83
- exports.invert = invert;
84
- /**
85
- * Calculates the determinant of a mat2d
86
- */
87
- function determinant(a) {
88
- return a[0] * a[3] - a[1] * a[2];
89
- }
90
- exports.determinant = determinant;
91
- /**
92
- * Multiplies two mat2d's
93
- */
94
- function multiply(a, b) {
95
- const [a0, a1, a2, a3, a4, a5] = a;
96
- const [b0, b1, b2, b3, b4, b5] = b;
97
- // prettier-ignore
98
- return [
99
- a0 * b0 + a2 * b1, a1 * b0 + a3 * b1,
100
- a0 * b2 + a2 * b3, a1 * b2 + a3 * b3,
101
- a0 * b4 + a2 * b5 + a4,
102
- a1 * b4 + a3 * b5 + a5,
103
- ];
104
- }
105
- exports.multiply = multiply;
106
- /**
107
- * Rotates a mat2d by the given angle
108
- */
109
- function rotate(a, rad) {
110
- const [a0, a1, a2, a3, tx, ty] = a;
111
- const s = Math.sin(rad);
112
- const c = Math.cos(rad);
113
- // prettier-ignore
114
- return [
115
- a0 * c + a2 * s, a1 * c + a3 * s,
116
- a0 * -s + a2 * c, a1 * -s + a3 * c,
117
- tx, ty
118
- ];
119
- }
120
- exports.rotate = rotate;
121
- /**
122
- * Scales the mat2d by the dimensions in the given vec2
123
- **/
124
- function scale(a, v) {
125
- const [a0, a1, a2, a3, tx, ty] = a;
126
- const [sx, sy] = v;
127
- // prettier-ignore
128
- return [
129
- a0 * sx, a1 * sx,
130
- a2 * sy, a3 * sy,
131
- tx, ty
132
- ];
133
- }
134
- exports.scale = scale;
135
- /**
136
- * Translates the mat2d by the dimensions in the given vec2
137
- **/
138
- function translate(m, v) {
139
- const [a, b, c, d, tx, ty] = m;
140
- const [x, y] = v;
141
- // prettier-ignore
142
- return [
143
- a, b,
144
- c, d,
145
- a * x + c * y + tx,
146
- b * x + d * y + ty
147
- ];
148
- }
149
- exports.translate = translate;
150
- /**
151
- * Creates a matrix from a given angle
152
- * This is equivalent to (but much faster than):
153
- */
154
- function fromRotation(rad) {
155
- const s = Math.sin(rad);
156
- const c = Math.cos(rad);
157
- // prettier-ignore
158
- return [
159
- c, s,
160
- -s, c,
161
- 0, 0,
162
- ];
163
- }
164
- exports.fromRotation = fromRotation;
165
- /**
166
- * Creates a matrix from a vector scaling
167
- */
168
- function fromScaling(v) {
169
- const [x, y] = v;
170
- // prettier-ignore
171
- return [
172
- x, 0,
173
- 0, y,
174
- 0, 0,
175
- ];
176
- }
177
- exports.fromScaling = fromScaling;
178
- /**
179
- * Creates a matrix from a vector translation
180
- */
181
- function fromTranslation(v) {
182
- const [x, y] = v;
183
- // prettier-ignore
184
- return [
185
- 1, 0,
186
- 0, 1,
187
- x, y,
188
- ];
189
- }
190
- exports.fromTranslation = fromTranslation;
191
- /**
192
- * Returns Frobenius norm of a mat2d
193
- */
194
- function frob(a) {
195
- // prettier-ignore
196
- return Math.sqrt(a[0] ** 2 +
197
- a[1] ** 2 +
198
- a[2] ** 2 +
199
- a[3] ** 2 +
200
- a[4] ** 2 +
201
- a[5] ** 2 + 1);
202
- }
203
- exports.frob = frob;
204
- /**
205
- * Adds two mat2d's
206
- */
207
- function add(a, b) {
208
- return [
209
- a[0] + b[0],
210
- a[1] + b[1],
211
- a[2] + b[2],
212
- a[3] + b[3],
213
- a[4] + b[4],
214
- a[5] + b[5],
215
- ];
216
- }
217
- exports.add = add;
218
- /**
219
- * Subtracts matrix b from matrix a
220
- */
221
- function subtract(a, b) {
222
- return [
223
- a[0] - b[0],
224
- a[1] - b[1],
225
- a[2] - b[2],
226
- a[3] - b[3],
227
- a[4] - b[4],
228
- a[5] - b[5],
229
- ];
230
- }
231
- exports.subtract = subtract;
232
- /**
233
- * Multiply each element of the matrix by a scalar.
234
- */
235
- function multiplyScalar(a, s) {
236
- // prettier-ignore
237
- return [
238
- a[0] * s, a[1] * s,
239
- a[2] * s, a[3] * s,
240
- a[4] * s, a[5] * s,
241
- ];
242
- }
243
- exports.multiplyScalar = multiplyScalar;
244
- /**
245
- * Adds two mat2d's after multiplying each element of the second operand by a scalar value.
246
- */
247
- function multiplyScalarAndAdd(a, b, scale) {
248
- return [
249
- a[0] + b[0] * scale,
250
- a[1] + b[1] * scale,
251
- a[2] + b[2] * scale,
252
- a[3] + b[3] * scale,
253
- a[4] + b[4] * scale,
254
- a[5] + b[5] * scale,
255
- ];
256
- }
257
- exports.multiplyScalarAndAdd = multiplyScalarAndAdd;
258
- /**
259
- * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
260
- */
261
- function exactEquals(a, b) {
262
- return (a[0] === b[0] &&
263
- a[1] === b[1] &&
264
- a[2] === b[2] &&
265
- a[3] === b[3] &&
266
- a[4] === b[4] &&
267
- a[5] === b[5]);
268
- }
269
- exports.exactEquals = exactEquals;
270
- /**
271
- * Returns whether or not the matrices have approximately the same elements in the same position.
272
- */
273
- function equals(a, b) {
274
- const [a0, a1, a2, a3, a4, a5] = a;
275
- const [b0, b1, b2, b3, b4, b5] = b;
276
- return (Math.abs(a0 - b0) <=
277
- Common.EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) &&
278
- Math.abs(a1 - b1) <=
279
- Common.EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) &&
280
- Math.abs(a2 - b2) <=
281
- Common.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2)) &&
282
- Math.abs(a3 - b3) <=
283
- Common.EPSILON * Math.max(1, Math.abs(a3), Math.abs(b3)) &&
284
- Math.abs(a4 - b4) <=
285
- Common.EPSILON * Math.max(1, Math.abs(a4), Math.abs(b4)) &&
286
- Math.abs(a5 - b5) <=
287
- Common.EPSILON * Math.max(1, Math.abs(a5), Math.abs(b5)));
288
- }
289
- exports.equals = equals;
290
- });
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSxpREFBa0M7SUFLbEM7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBRUg7O09BRUc7SUFDSCxrQkFBa0I7SUFDTCxRQUFBLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3JDLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztLQUNKLENBQUMsQ0FBQTtJQUVXLFFBQUEsSUFBSSxHQUFVLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFNUQ7O09BRUc7SUFDSCxTQUFnQixNQUFNLENBQUMsQ0FBUTtRQUM5QixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFcEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBRTdCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQTtTQUNYO1FBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUV0QixrQkFBa0I7UUFDbEIsT0FBTztZQUNKLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTTtZQUMxQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUcsRUFBRSxHQUFHLE1BQU07WUFFMUIsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNO1lBQy9CLENBQUMsRUFB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
@@ -1 +0,0 @@
1
- export {};
package/lib/mat2d.test.js DELETED
@@ -1,123 +0,0 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- var desc = Object.getOwnPropertyDescriptor(m, k);
4
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
- desc = { enumerable: true, get: function() { return m[k]; } };
6
- }
7
- Object.defineProperty(o, k2, desc);
8
- }) : (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- o[k2] = m[k];
11
- }));
12
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
- Object.defineProperty(o, "default", { enumerable: true, value: v });
14
- }) : function(o, v) {
15
- o["default"] = v;
16
- });
17
- var __importStar = (this && this.__importStar) || function (mod) {
18
- if (mod && mod.__esModule) return mod;
19
- var result = {};
20
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
- __setModuleDefault(result, mod);
22
- return result;
23
- };
24
- (function (factory) {
25
- if (typeof module === "object" && typeof module.exports === "object") {
26
- var v = factory(require, exports);
27
- if (v !== undefined) module.exports = v;
28
- }
29
- else if (typeof define === "function" && define.amd) {
30
- define(["require", "exports", "./common", "./mat2d"], factory);
31
- }
32
- })(function (require, exports) {
33
- "use strict";
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const common_1 = require("./common");
36
- const mat2d = __importStar(require("./mat2d"));
37
- function areMat2dEqual(a, b) {
38
- if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {
39
- return undefined;
40
- }
41
- for (let i = 0; i < a.length; i++) {
42
- const nearlyEqual = Math.abs(a[i] - b[i]) <=
43
- common_1.EPSILON * Math.max(1, Math.abs(a[i]), Math.abs(b[i]));
44
- if (!nearlyEqual) {
45
- return undefined;
46
- }
47
- }
48
- return true;
49
- }
50
- ;
51
- expect.addEqualityTesters([areMat2dEqual]);
52
- const matA = [1, 2, 3, 4, 5, 6];
53
- const matB = [7, 8, 9, 10, 11, 12];
54
- describe('invert', () => {
55
- expect(mat2d.invert(matA)).toEqual([-2, 1, 1.5, -0.5, 1, -2]);
56
- expect(mat2d.invert([1, 0, 2, 0, 0, 0])).toEqual(null);
57
- });
58
- describe('determinant', () => {
59
- expect(mat2d.determinant(matA)).toEqual(-2);
60
- });
61
- describe('multiply', () => {
62
- expect(mat2d.multiply(matA, matB)).toEqual([31, 46, 39, 58, 52, 76]);
63
- });
64
- describe('rotate', () => {
65
- expect(mat2d.rotate(matA, Math.PI * 0.5)).toEqual([3, 4, -1, -2, 5, 6]);
66
- });
67
- describe('scale', () => {
68
- expect(mat2d.scale(matA, [2, 3])).toEqual([2, 4, 9, 12, 5, 6]);
69
- });
70
- describe('translate', () => {
71
- expect(mat2d.translate(matA, [2, 3])).toEqual([1, 2, 3, 4, 16, 22]);
72
- });
73
- describe('frob', () => {
74
- expect(mat2d.frob(matA)).toEqual(Math.sqrt(Math.pow(1, 2) +
75
- Math.pow(2, 2) +
76
- Math.pow(3, 2) +
77
- Math.pow(4, 2) +
78
- Math.pow(5, 2) +
79
- Math.pow(6, 2) +
80
- 1));
81
- });
82
- describe('add', () => {
83
- expect(mat2d.add(matA, matB)).toEqual([8, 10, 12, 14, 16, 18]);
84
- });
85
- describe('subtract', () => {
86
- expect(mat2d.subtract(matA, matB)).toEqual([-6, -6, -6, -6, -6, -6]);
87
- });
88
- describe('multiplyScalar', () => {
89
- expect(mat2d.multiplyScalar(matA, 2)).toEqual([2, 4, 6, 8, 10, 12]);
90
- });
91
- describe('multiplyScalarAndAdd', () => {
92
- expect(mat2d.multiplyScalarAndAdd(matA, matB, 0.5)).toEqual([
93
- 4.5, 6, 7.5, 9, 10.5, 12,
94
- ]);
95
- });
96
- describe('exactEquals', () => {
97
- const matA = [0, 1, 2, 3, 4, 5];
98
- const matB = [0, 1, 2, 3, 4, 5];
99
- const matC = [1, 2, 3, 4, 5, 6];
100
- it('should return true for identical matrices', () => {
101
- expect(mat2d.exactEquals(matA, matB)).toBe(true);
102
- });
103
- it('should return false for different matrices', () => {
104
- expect(mat2d.exactEquals(matA, matC)).toBe(false);
105
- });
106
- });
107
- describe('equals', () => {
108
- const matA = [0, 1, 2, 3, 4, 5];
109
- const matB = [0, 1, 2, 3, 4, 5];
110
- const matC = [1, 2, 3, 4, 5, 6];
111
- const matD = [1e-16, 1, 2, 3, 4, 5];
112
- it('should return true for identical matrices', () => {
113
- expect(mat2d.equals(matA, matB)).toBe(true);
114
- });
115
- it('should return false for different matrices', () => {
116
- expect(mat2d.equals(matA, matC)).toBe(false);
117
- });
118
- it('should return true for close but not identical matrices', () => {
119
- expect(mat2d.equals(matA, matD)).toBe(true);
120
- });
121
- });
122
- });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXQyZC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSxxQ0FBZ0M7SUFFaEMsK0NBQWdDO0lBRWhDLFNBQVMsYUFBYSxDQUFDLENBQVUsRUFBRSxDQUFVO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDcEUsT0FBTyxTQUFTLENBQUE7U0FDaEI7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLFdBQVcsR0FDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixnQkFBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLE9BQU8sU0FBUyxDQUFBO2FBQ2hCO1NBQ0Q7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNaLENBQUM7SUFFRCxDQUFDO0lBQUMsTUFBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUVwRCxNQUFNLElBQUksR0FBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEMsTUFBTSxJQUFJLEdBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXpDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZELENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNyRSxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQyxDQUFDLENBQUE7SUFFRixRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FDUixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFB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LENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdEMsTUFBTSxJQUFJLEdBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sSUFBSSxHQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUUxQyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7WUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLHlEQUF5RCxFQUFFLEdBQUcsRUFBRTtZQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQSJ9