@elaraai/east 1.0.101 → 1.0.102

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.
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/patch/diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAMzD,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,YAAY,CAAC;AAE1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAClG,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/patch/diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAMzD,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,YAAY,CAAC;AAE3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAClG,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC"}
@@ -12,7 +12,7 @@ import { isVariant, variant } from "../containers/variant.js";
12
12
  import { equalFor, isFor, compareFor } from "../comparison.js";
13
13
  import { SortedMap } from "../containers/sortedmap.js";
14
14
  import { SortedSet } from "../containers/sortedset.js";
15
- import { computeLCS } from "./types.js";
15
+ import { alignArrays } from "./types.js";
16
16
  export function diffFor(type, ctx = { diff: [], types: [], equal: new Map() }) {
17
17
  // Convert to EastTypeValue and use a properly typed variable
18
18
  const t = isVariant(type) ? type : toEastTypeValue(type);
@@ -41,31 +41,40 @@ export function diffFor(type, ctx = { diff: [], types: [], equal: new Map() }) {
41
41
  else if (t.type === "Array") {
42
42
  let elementEqual;
43
43
  let elementDiff;
44
- let is;
45
44
  const ret = (before, after) => {
46
- if (is(before, after)) {
45
+ // The very same array is unchanged. Any other two are aligned, and the
46
+ // alignment's trim finds two equal arrays unchanged in one pass.
47
+ if (Object.is(before, after)) {
47
48
  return variant("unchanged", null);
48
49
  }
49
- const { beforeIndices, afterIndices } = computeLCS(before, after, elementEqual);
50
+ // The common start and end, kept whole, and the middle's matches: a
51
+ // shortest edit script's, or the middle paired by position past the
52
+ // search's bound (#1425).
53
+ const { start, end, beforeIndices, afterIndices } = alignArrays(before, after, elementEqual);
54
+ const beforeEnd = before.length - end;
55
+ const afterEnd = after.length - end;
56
+ // The walk covers the middle alone. The common start emits nothing and
57
+ // counts no delete or insert, so starting at `start` with none counted is
58
+ // where a walk over it would be, and every key is the whole array's.
50
59
  const operations = [];
51
- let beforePtr = 0;
52
- let afterPtr = 0;
53
- let lcsPtr = 0;
60
+ let beforePtr = start;
61
+ let afterPtr = start;
62
+ let matchPtr = 0;
54
63
  let deleteCount = 0; // emitted (unpaired) deletes only
55
64
  let insertCount = 0; // emitted (unpaired) inserts only — pairs preserve length
56
- while (beforePtr < before.length || afterPtr < after.length) {
57
- const nextBeforeLCS = lcsPtr < beforeIndices.length ? beforeIndices[lcsPtr] : before.length;
58
- const nextAfterLCS = lcsPtr < afterIndices.length ? afterIndices[lcsPtr] : after.length;
65
+ while (beforePtr < beforeEnd || afterPtr < afterEnd) {
66
+ const nextBeforeMatch = matchPtr < beforeIndices.length ? beforeIndices[matchPtr] : beforeEnd;
67
+ const nextAfterMatch = matchPtr < afterIndices.length ? afterIndices[matchPtr] : afterEnd;
59
68
  // Collect this chunk's would-be deletes and inserts. We don't decide
60
69
  // until both lists are gathered whether each is part of a pair (→
61
70
  // emitted as a single `update`) or stands alone.
62
71
  const chunkDeletes = [];
63
- while (beforePtr < nextBeforeLCS) {
72
+ while (beforePtr < nextBeforeMatch) {
64
73
  chunkDeletes.push({ beforePtr, value: before[beforePtr] });
65
74
  beforePtr++;
66
75
  }
67
76
  const chunkInserts = [];
68
- while (afterPtr < nextAfterLCS) {
77
+ while (afterPtr < nextAfterMatch) {
69
78
  chunkInserts.push({ afterPtr, value: after[afterPtr] });
70
79
  afterPtr++;
71
80
  }
@@ -108,10 +117,10 @@ export function diffFor(type, ctx = { diff: [], types: [], equal: new Map() }) {
108
117
  });
109
118
  insertCount++;
110
119
  }
111
- if (lcsPtr < beforeIndices.length) {
120
+ if (matchPtr < beforeIndices.length) {
112
121
  beforePtr++;
113
122
  afterPtr++;
114
- lcsPtr++;
123
+ matchPtr++;
115
124
  }
116
125
  }
117
126
  if (operations.length === 0) {
@@ -121,7 +130,6 @@ export function diffFor(type, ctx = { diff: [], types: [], equal: new Map() }) {
121
130
  };
122
131
  ctx.diff.push(ret);
123
132
  ctx.types.push(t);
124
- is = isFor(t, undefined, ctx.equal);
125
133
  elementEqual = equalFor(t.value, ctx.equal);
126
134
  elementDiff = diffFor(t.value, ctx);
127
135
  ctx.diff.pop();
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/patch/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/patch/diff.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { applyFor } from './apply.js';
12
12
  import { composeFor } from './compose.js';
13
13
  import { invertFor } from './invert.js';
14
14
  import { PatchType } from './index.js';
15
+ import { alignArrays } from './types.js';
15
16
  import { ArrayType, BooleanType, DictType, FloatType, IntegerType, NullType, SetType, StringType, StructType, VariantType, isTypeEqual } from '../types.js';
16
17
  import { compareFor, equalFor } from '../comparison.js';
17
18
  import { generateFuzzTestCases } from './fuzz.js';
@@ -182,6 +183,138 @@ describe('Patch system for EAST values', () => {
182
183
  assert.deepEqual(result, before);
183
184
  });
184
185
  });
186
+ describe('Array alignment', () => {
187
+ // An Array's diff, counted and never timed (#1425): each case is held to
188
+ // the bound the issue gives it — the trim's p + s + 2, Myers'
189
+ // (2D + 1)·min(m′, n′), and min(m′, n′) more when the middle is paired
190
+ // by position — by an element equality that counts its calls and throws
191
+ // once past it, so a regression to a table over the whole of both
192
+ // arrays fails at once rather than running. The table the diff used to
193
+ // fill made about 10^10 comparisons for each 100,000-element case.
194
+ //
195
+ // The assertions compare counts and a few positions, never a whole
196
+ // array of 100,000 positions: assert's message for two such arrays
197
+ // that differ diffs them line by line, and that diff outgrows the
198
+ // memory of the machine before it reports. A regression fails here
199
+ // with a short message instead.
200
+ const intEqual = equalFor(IntegerType);
201
+ const N = 100_000;
202
+ const range = (from, to) => Array.from({ length: to - from }, (_, i) => BigInt(from + i));
203
+ // [0, …, 99,999] with every x where x mod `period` is `phase` made -x.
204
+ const negated = (period, phase) => Array.from({ length: N }, (_, x) => BigInt(x % period === phase ? -x : x));
205
+ function align(before, after, equal, bound) {
206
+ let compares = 0;
207
+ const alignment = alignArrays(before, after, (a, b) => {
208
+ compares++;
209
+ if (compares > bound)
210
+ throw new Error(`past the bound of ${bound} comparisons`);
211
+ return equal(a, b);
212
+ });
213
+ return { ...alignment, compares };
214
+ }
215
+ // Whether each match keeps a position of `before` as the same position
216
+ // of `after`: the middle paired by position.
217
+ const pairedByPosition = (a) => a.beforeIndices.length === a.afterIndices.length && a.beforeIndices.every((x, k) => x === a.afterIndices[k]);
218
+ test('one change in 100,000 elements: the trim leaves one pair, which does not match', () => {
219
+ const after = range(0, N);
220
+ after[50000] = -1n;
221
+ const a = align(range(0, N), after, intEqual, 100_006);
222
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length, a.afterIndices.length], [50000, 49999, 0, 0]);
223
+ });
224
+ test('one removed, one inserted, appended and prepended: the trim alone', () => {
225
+ const removed = [...range(0, 50000), ...range(50001, N)];
226
+ const inserted = [...range(0, 50000), -1n, ...range(50000, N)];
227
+ const removal = align(range(0, N), removed, intEqual, 100_001);
228
+ assert.deepEqual([removal.start, removal.end, removal.beforeIndices.length], [50000, 49999, 0]);
229
+ const insertion = align(range(0, N), inserted, intEqual, 100_002);
230
+ assert.deepEqual([insertion.start, insertion.end, insertion.beforeIndices.length], [50000, 50000, 0]);
231
+ const appended = align(range(0, N), range(0, N + 1), intEqual, 100_002);
232
+ assert.deepEqual([appended.start, appended.end], [N, 0]);
233
+ const prepended = align(range(0, N), [-1n, ...range(0, N)], intEqual, 100_002);
234
+ assert.deepEqual([prepended.start, prepended.end], [0, N]);
235
+ });
236
+ test('two changes far apart: a script of 4 edits over a 99,980-element middle', () => {
237
+ const after = range(0, N);
238
+ after[10] = -1n;
239
+ after[99989] = -2n;
240
+ const a = align(range(0, N), after, intEqual, 899_842);
241
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length], [10, 10, 99_978]);
242
+ assert.deepEqual([a.beforeIndices[0], a.afterIndices[0], a.beforeIndices.at(-1), a.afterIndices.at(-1)], [11, 11, 99_988, 99_988]);
243
+ });
244
+ test('a moved element: a script of 2 edits keeps the 99,980 elements it was moved over', () => {
245
+ const after = [...range(0, 10), ...range(11, 99991), 10n, ...range(99991, N)];
246
+ const a = align(range(0, N), after, intEqual, 499_926);
247
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length], [10, 9, 99_980]);
248
+ assert.deepEqual([a.beforeIndices[0], a.afterIndices[0], a.beforeIndices.at(-1), a.afterIndices.at(-1)], [11, 10, 99_990, 99_989]);
249
+ });
250
+ test('a nested struct field: the rows compare whole, as many times as integers would', () => {
251
+ const Row = StructType({ id: IntegerType, name: StringType });
252
+ const rows = Array.from({ length: N }, (_, i) => ({ id: BigInt(i), name: `row ${i}` }));
253
+ const after = rows.slice();
254
+ after[50000] = { id: 50000n, name: "renamed" };
255
+ const a = align(rows, after, equalFor(Row), 100_006);
256
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length], [50000, 49999, 0]);
257
+ });
258
+ test('a shift: a script of 3 edits keeps 4,094 of 4,096', () => {
259
+ const a = align(range(0, 4096), [-1n, ...range(0, 4094)], intEqual, 28_667);
260
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length], [0, 0, 4094]);
261
+ assert.deepEqual([a.beforeIndices[0], a.afterIndices[0], a.beforeIndices.at(-1), a.afterIndices.at(-1)], [0, 1, 4093, 4094]);
262
+ });
263
+ test('at the bound the search finds a shortest script, and past it pairs by position', () => {
264
+ // At the bound: 41 negated and element 50,000 moved to 50,010. The
265
+ // middle is 99,601 a side, bound ⌊2^24 / 199,202⌋ = 84, script 84.
266
+ const changed = negated(2490, 100);
267
+ const at = [...changed.slice(0, 50000), ...changed.slice(50001, 50011), changed[50000], ...changed.slice(50011)];
268
+ const myers = align(range(0, N), at, intEqual, 16_832_970);
269
+ assert.deepEqual([myers.start, myers.end, myers.beforeIndices.length], [100, 299, (99_601 * 2 - 84) / 2]);
270
+ // Past it: element 99,800 removed too. The middle is 99,701 by
271
+ // 99,700, bound still 84, script 85: paired by position, every
272
+ // position equal but the 41 negated and the 11 the move shifted.
273
+ const past = [...at.slice(0, 99800), ...at.slice(99801)];
274
+ const byPosition = align(range(0, N), past, intEqual, 16_949_301);
275
+ assert.deepEqual([byPosition.start, byPosition.end, byPosition.beforeIndices.length], [100, 199, 99_700 - 41 - 11]);
276
+ assert.ok(pairedByPosition(byPosition), 'the middle is paired by position');
277
+ });
278
+ test('many scattered changes pair by position past the bound', () => {
279
+ // 1,000 negated: the middle is 99,901 a side, bound 83, script 2,000.
280
+ const a = align(range(0, N), negated(100, 50), intEqual, 16_783_469);
281
+ assert.deepEqual([a.start, a.end, a.beforeIndices.length], [50, 49, 99_901 - 1000]);
282
+ assert.ok(pairedByPosition(a), 'the middle is paired by position');
283
+ });
284
+ test('a tie, an unchanged copy', () => {
285
+ const tie = align([1n, 1n], [1n], intEqual, 3);
286
+ assert.deepEqual([tie.start, tie.end, tie.beforeIndices.length], [1, 0, 0]);
287
+ const copy = align(range(0, N), range(0, N), intEqual, 100_002);
288
+ assert.deepEqual([copy.start, copy.end, copy.beforeIndices.length], [N, 0, 0]);
289
+ });
290
+ test('within the bound the alignment keeps as many pairs as a longest common subsequence', () => {
291
+ // A seeded stream of small arrays over small alphabets — the inputs
292
+ // where pairs can be matched more than one way.
293
+ let seed = 0x1425;
294
+ const next = (n) => { seed = (seed * 1103515245 + 12345) % 2147483648; return seed % n; };
295
+ for (let trial = 0; trial < 2000; trial++) {
296
+ const alphabet = 1 + next(4);
297
+ const before = Array.from({ length: next(12) }, () => BigInt(next(alphabet)));
298
+ const after = Array.from({ length: next(12) }, () => BigInt(next(alphabet)));
299
+ const { start, end, beforeIndices, afterIndices } = alignArrays(before, after, intEqual);
300
+ // The longest common subsequence's length, by the table.
301
+ const table = Array.from({ length: before.length + 1 }, () => new Array(after.length + 1).fill(0));
302
+ for (let i = 1; i <= before.length; i++) {
303
+ for (let j = 1; j <= after.length; j++) {
304
+ table[i][j] = intEqual(before[i - 1], after[j - 1])
305
+ ? table[i - 1][j - 1] + 1
306
+ : Math.max(table[i - 1][j], table[i][j - 1]);
307
+ }
308
+ }
309
+ assert.equal(start + end + beforeIndices.length, table[before.length][after.length]);
310
+ for (let k = 0; k < beforeIndices.length; k++) {
311
+ assert.ok(intEqual(before[beforeIndices[k]], after[afterIndices[k]]));
312
+ if (k > 0)
313
+ assert.ok(beforeIndices[k] > beforeIndices[k - 1] && afterIndices[k] > afterIndices[k - 1]);
314
+ }
315
+ }
316
+ });
317
+ });
185
318
  describe('Sets', () => {
186
319
  const type = SetType(IntegerType);
187
320
  const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"patch.spec.js","sourceRoot":"","sources":["../../../src/patch/patch.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.spec.js","sourceRoot":"","sources":["../../../src/patch/patch.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5J,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAEpC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,6BAA6B;YAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,yEAAyE;QACzE,8DAA8D;QAC9D,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,uEAAuE;QACvE,mEAAmE;QACnE,EAAE;QACF,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,gCAAgC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,OAAO,CAAC;QAClB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAU,EAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACpH,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,KAAa,EAAY,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,SAAS,KAAK,CAAI,MAAoB,EAAE,KAAmB,EAAE,KAA8B,EAAE,KAAa;YACtG,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;gBACxD,QAAQ,EAAE,CAAC;gBACX,IAAI,QAAQ,GAAG,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,cAAc,CAAC,CAAC;gBAChF,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtC,CAAC;QAED,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,CAAC,CAAsD,EAAW,EAAE,CACzF,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjH,IAAI,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACxF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAChG,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACtG,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvI,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kFAAkF,EAAE,GAAG,EAAE;YAC1F,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5E,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvI,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACxF,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACjI,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACxF,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAClH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1G,+DAA+D;YAC/D,+DAA+D;YAC/D,iEAAiE;YACjE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAClE,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACpH,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,sEAAsE;YACtE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;YAC5F,oEAAoE;YACpE,gDAAgD;YAChD,IAAI,IAAI,GAAG,MAAM,CAAC;YAClB,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACzF,yDAAyD;gBACzD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;4BAClD,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC;4BAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;oBACzD,CAAC;gBACL,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,CAAC;gBACvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAE,CAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC;oBAC1E,IAAI,CAAC,GAAG,CAAC;wBAAE,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAE,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAE,IAAI,YAAY,CAAC,CAAC,CAAE,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CACf,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAC1C,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CACf,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAC/B,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CACf,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAC1C,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAC9C,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAI,IAAI,SAAS,CAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,MAAM,EAAE,GAAG,IAAI,SAAS,CAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD,qDAAqD;YACrD,oDAAoD;YACpD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,6BAA6B;YAC7B,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,2CAA2C;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC;gBACjC,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,WAAW,CAAC;gBAC9B,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,gBAAgB;aAC3B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC;gBACzB,GAAG,EAAE,WAAW;gBAChB,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,aAAa;aAC3B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtF,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;aAC9B,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,aAAa,GAAG,WAAW,CAAC;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClF,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;aAC9C,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,cAAc,GAAG,WAAW,CAAC;gBAC/B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,WAAW,CAAC;gBAC9B,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,cAAc;aACzB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC5G,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;aAC7C,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,WAAW,CAAC;gBAC3B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,WAAW,CAAC;gBAC3B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC;oBAChB,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;oBACrD,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;iBACvD,CAAC;gBACF,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;aACtD,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,YAAY,GAAG,WAAW,CAAC;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,WAAW,CAAC;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC;gBACzB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,UAAU,CAAC;oBAChB,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;oBAC1D,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;iBAC5D,CAAC;gBACF,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;aAC/D,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,8DAA8D;QAC9D,MAAM,aAAa,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC7B,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEhD,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC1C,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;wBACvC,8CAA8C;wBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBACvC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,8CAA8C,CAAC,CAAC;wBAEhG,+CAA+C;wBAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,iDAAiD,CAAC,CAAC;wBAEzF,4BAA4B;wBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACpC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAC;oBAC9E,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/C,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;wBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACpC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAC;wBAE1E,2CAA2C;wBAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;wBAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,4CAA4C,CAAC,CAAC;oBACrF,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC1C,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;wBACvC,+BAA+B;wBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAE7B,eAAe;wBACf,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAE1C,yEAAyE;wBACzE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;wBACxD,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBAE1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,2DAA2D,CAAC,CAAC;wBAC5G,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;oBACnF,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC1C,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;wBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAElC,2CAA2C;wBAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,6CAA6C,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -210,11 +210,55 @@ export declare class ConflictError extends Error {
210
210
  constructor(message: string, conflicts?: ReadonlyArray<Conflict>);
211
211
  }
212
212
  /**
213
- * Compute the Longest Common Subsequence of two arrays.
213
+ * The comparisons an Array diff's search of its middle may spend: the search
214
+ * stops at ⌊ARRAY_DIFF_BUDGET / (m′ + n′)⌋ edits.
215
+ *
216
+ * @remarks
217
+ * east-c's `ARRAY_DIFF_BUDGET` (`builtins/patch.c`) is the same number, so the
218
+ * two runtimes stop at the same bound and keep the same pairs.
219
+ * @internal
220
+ */
221
+ export declare const ARRAY_DIFF_BUDGET: number;
222
+ /**
223
+ * The pairs of positions an Array diff keeps from `before` and `after`.
224
+ *
225
+ * @remarks
226
+ * The common start and end are kept whole. The matches are the middle's, in
227
+ * ascending order: `before[beforeIndices[i]]` is kept as
228
+ * `after[afterIndices[i]]`.
214
229
  * @internal
215
230
  */
216
- export declare function computeLCS<T>(before: T[], after: T[], equal: (a: T, b: T) => boolean): {
231
+ export interface ArrayAlignment {
232
+ /** The leading positions equal in both arrays, kept as they are. */
233
+ start: number;
234
+ /** The trailing positions equal in both, after `start`, kept as they are. */
235
+ end: number;
236
+ /** The middle's matched positions in `before`, ascending. */
217
237
  beforeIndices: number[];
238
+ /** The middle's matched positions in `after`, ascending, pairwise with `beforeIndices`. */
218
239
  afterIndices: number[];
219
- };
240
+ }
241
+ /**
242
+ * Aligns two arrays: finds the pairs of positions their diff keeps.
243
+ *
244
+ * @remarks
245
+ * Trims the longest common start, then the longest common end of what it
246
+ * leaves, so the two never overlap. Over the middle between them, of m′ and
247
+ * n′ elements, finds a shortest edit script by Myers' greedy forward
248
+ * algorithm, to at most min(m′ + n′, ⌊{@link ARRAY_DIFF_BUDGET} / (m′ + n′)⌋)
249
+ * edits; when no script within that bound exists, pairs the middle by
250
+ * position, a pair whose two elements are equal being a match. The search
251
+ * compares each cell of the middle at most once, so the whole alignment makes
252
+ * at most 2^24 + m + n + 2 comparisons, and its trace holds at most 8,394,753
253
+ * entries. east-c's `align_arrays` takes the same steps, so the two runtimes
254
+ * keep the same pairs and give the same patch (#1425).
255
+ *
256
+ * @typeParam T - The arrays' element values
257
+ * @param before - The array the diff starts from
258
+ * @param after - The array it ends at
259
+ * @param equal - The element equality the diff uses
260
+ * @returns The common start and end, and the middle's matches
261
+ * @internal
262
+ */
263
+ export declare function alignArrays<T>(before: readonly T[], after: readonly T[], equal: (a: T, b: T) => boolean): ArrayAlignment;
220
264
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patch/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patch/types.ts"],"names":[],"mappings":"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"}
@@ -19,43 +19,178 @@ export class ConflictError extends Error {
19
19
  }
20
20
  }
21
21
  // ============================================================================
22
- // Helper functions
22
+ // Array alignment
23
23
  // ============================================================================
24
24
  /**
25
- * Compute the Longest Common Subsequence of two arrays.
25
+ * The comparisons an Array diff's search of its middle may spend: the search
26
+ * stops at ⌊ARRAY_DIFF_BUDGET / (m′ + n′)⌋ edits.
27
+ *
28
+ * @remarks
29
+ * east-c's `ARRAY_DIFF_BUDGET` (`builtins/patch.c`) is the same number, so the
30
+ * two runtimes stop at the same bound and keep the same pairs.
26
31
  * @internal
27
32
  */
28
- export function computeLCS(before, after, equal) {
33
+ export const ARRAY_DIFF_BUDGET = 2 ** 24;
34
+ /**
35
+ * Aligns two arrays: finds the pairs of positions their diff keeps.
36
+ *
37
+ * @remarks
38
+ * Trims the longest common start, then the longest common end of what it
39
+ * leaves, so the two never overlap. Over the middle between them, of m′ and
40
+ * n′ elements, finds a shortest edit script by Myers' greedy forward
41
+ * algorithm, to at most min(m′ + n′, ⌊{@link ARRAY_DIFF_BUDGET} / (m′ + n′)⌋)
42
+ * edits; when no script within that bound exists, pairs the middle by
43
+ * position, a pair whose two elements are equal being a match. The search
44
+ * compares each cell of the middle at most once, so the whole alignment makes
45
+ * at most 2^24 + m + n + 2 comparisons, and its trace holds at most 8,394,753
46
+ * entries. east-c's `align_arrays` takes the same steps, so the two runtimes
47
+ * keep the same pairs and give the same patch (#1425).
48
+ *
49
+ * @typeParam T - The arrays' element values
50
+ * @param before - The array the diff starts from
51
+ * @param after - The array it ends at
52
+ * @param equal - The element equality the diff uses
53
+ * @returns The common start and end, and the middle's matches
54
+ * @internal
55
+ */
56
+ export function alignArrays(before, after, equal) {
29
57
  const m = before.length;
30
58
  const n = after.length;
31
- const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
32
- for (let i = 1; i <= m; i++) {
33
- for (let j = 1; j <= n; j++) {
34
- if (equal(before[i - 1], after[j - 1])) {
35
- dp[i][j] = dp[i - 1][j - 1] + 1;
36
- }
37
- else {
38
- dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
39
- }
40
- }
59
+ let start = 0;
60
+ while (start < m && start < n && equal(before[start], after[start])) {
61
+ start++;
41
62
  }
63
+ let end = 0;
64
+ while (end < m - start && end < n - start && equal(before[m - 1 - end], after[n - 1 - end])) {
65
+ end++;
66
+ }
67
+ const width = m - start - end;
68
+ const height = n - start - end;
69
+ if (width === 0 || height === 0) {
70
+ // Nothing in the middle matches: the other side is deleted or inserted whole.
71
+ return { start, end, beforeIndices: [], afterIndices: [] };
72
+ }
73
+ const total = width + height;
74
+ const bound = Math.min(total, Math.floor(ARRAY_DIFF_BUDGET / total));
75
+ const script = shortestScript(before, after, start, width, height, bound, equal);
76
+ if (script !== null) {
77
+ return { start, end, beforeIndices: script.beforeIndices, afterIndices: script.afterIndices };
78
+ }
79
+ // Past the bound: the middle's k-th element of `before` with its k-th of `after`.
42
80
  const beforeIndices = [];
43
81
  const afterIndices = [];
44
- let i = m;
45
- let j = n;
46
- while (i > 0 && j > 0) {
47
- if (equal(before[i - 1], after[j - 1])) {
48
- beforeIndices.unshift(i - 1);
49
- afterIndices.unshift(j - 1);
50
- i--;
51
- j--;
82
+ const shorter = Math.min(width, height);
83
+ for (let k = 0; k < shorter; k++) {
84
+ if (equal(before[start + k], after[start + k])) {
85
+ beforeIndices.push(start + k);
86
+ afterIndices.push(start + k);
52
87
  }
53
- else if (dp[i - 1][j] > dp[i][j - 1]) {
54
- i--;
88
+ }
89
+ return { start, end, beforeIndices, afterIndices };
90
+ }
91
+ /** The entries a search's trace holds up to step `d`: d+1 at each step. */
92
+ function traceEntries(d) {
93
+ return ((d + 1) * (d + 2)) / 2;
94
+ }
95
+ /**
96
+ * Finds a shortest edit script over the middle of two arrays, by Myers' greedy
97
+ * forward algorithm, to at most `bound` edits.
98
+ *
99
+ * @remarks
100
+ * The middle is `before[offset … offset+width)` and `after[offset … offset+height)`.
101
+ * A point (x, y) has passed over the first x elements of the one and the
102
+ * first y of the other, on diagonal k = x − y; a move right deletes an
103
+ * element of `before`, a move down inserts one of `after`, and a run along the
104
+ * diagonal keeps each pair of equal elements. `v[k]` is the furthest x reached
105
+ * on diagonal k. At each step d, diagonal k is reached down from k+1 when
106
+ * k = −d, or when k ≠ d and v[k−1] < v[k+1], and right from k−1 otherwise — the
107
+ * move that reaches further, and the insert where both reach as far — then
108
+ * runs on while its elements are equal. `v` keeps x as computed, even past the
109
+ * middle's edge; only cells inside it are compared. Each step's d+1 values are
110
+ * kept in the trace, which the walk back reads.
111
+ *
112
+ * Every value fits 32 bits: a bound of 1 or more means a middle of at most
113
+ * 2^24 elements, and with a bound of 0 the one step compares the middle's
114
+ * first two elements, which the trim left unequal.
115
+ *
116
+ * @returns The matches, as positions in `before` and `after`, or `null` when no
117
+ * script of `bound` edits or fewer exists
118
+ */
119
+ function shortestScript(before, after, offset, width, height, bound, equal) {
120
+ const center = bound + 1;
121
+ // v[center + 1], diagonal 1, starts at 0: the first step's move down from it
122
+ // starts the search at (0, 0).
123
+ const v = new Int32Array(2 * bound + 3);
124
+ const capacity = traceEntries(bound);
125
+ let trace = new Int32Array(Math.min(capacity, 1024));
126
+ for (let d = 0; d <= bound; d++) {
127
+ const row = traceEntries(d - 1);
128
+ if (row + d + 1 > trace.length) {
129
+ const grown = new Int32Array(Math.min(capacity, Math.max(2 * trace.length, row + d + 1)));
130
+ grown.set(trace);
131
+ trace = grown;
132
+ }
133
+ for (let k = -d; k <= d; k += 2) {
134
+ let x = k === -d || (k !== d && v[center + k - 1] < v[center + k + 1])
135
+ ? v[center + k + 1]
136
+ : v[center + k - 1] + 1;
137
+ let y = x - k;
138
+ while (x < width && y < height && equal(before[offset + x], after[offset + y])) {
139
+ x++;
140
+ y++;
141
+ }
142
+ v[center + k] = x;
143
+ trace[row + ((k + d) >> 1)] = x;
144
+ if (x >= width && y >= height) {
145
+ return walkBack(trace, d, width, height, offset);
146
+ }
55
147
  }
56
- else {
57
- j--;
148
+ }
149
+ return null;
150
+ }
151
+ /**
152
+ * Reads a shortest script's matches off a search's trace, walking back from the
153
+ * end of the middle.
154
+ *
155
+ * @remarks
156
+ * At step d the move is recomputed from step d−1's values by the search's own
157
+ * rule; the run between where the move landed and the current point is
158
+ * matches, and the walk goes on from the move's start. The run from (0, 0) is
159
+ * the last. The (width + height − steps) / 2 matches are written from the end.
160
+ *
161
+ * @returns The matches, as positions in `before` and `after`, ascending
162
+ */
163
+ function walkBack(trace, steps, width, height, offset) {
164
+ const count = (width + height - steps) / 2;
165
+ const beforeIndices = new Array(count);
166
+ const afterIndices = new Array(count);
167
+ let i = count;
168
+ let x = width;
169
+ let y = height;
170
+ for (let d = steps; d > 0; d--) {
171
+ const k = x - y;
172
+ const row = traceEntries(d - 2);
173
+ const reached = (diagonal) => trace[row + ((diagonal + d - 1) >> 1)];
174
+ const down = k === -d || (k !== d && reached(k - 1) < reached(k + 1));
175
+ const from = down ? k + 1 : k - 1;
176
+ const fromX = reached(from);
177
+ const landedX = down ? fromX : fromX + 1;
178
+ while (x > landedX) {
179
+ x--;
180
+ y--;
181
+ i--;
182
+ beforeIndices[i] = offset + x;
183
+ afterIndices[i] = offset + y;
58
184
  }
185
+ x = fromX;
186
+ y = fromX - from;
187
+ }
188
+ while (x > 0) {
189
+ x--;
190
+ y--;
191
+ i--;
192
+ beforeIndices[i] = offset + x;
193
+ afterIndices[i] = offset + y;
59
194
  }
60
195
  return { beforeIndices, afterIndices };
61
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patch/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwMH;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,iFAAiF;IACxE,SAAS,CAA0B;IAE5C,YAAY,OAAe,EAAE,YAAqC,EAAE;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAG/E;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAW,EACX,KAAU,EACV,KAA8B;IAE9B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvB,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;gBACzC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC;YAC3C,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patch/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/east",
3
- "version": "1.0.101",
3
+ "version": "1.0.102",
4
4
  "description": "East is a simple and fast language used by Elara AI Pty Ltd.",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",