@fluid-experimental/property-changeset 2.0.0-internal.6.1.0 → 2.0.0-internal.6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"array.spec.js","sourceRoot":"","sources":["../../src/test/array.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * @fileoverview Tests for the array changeset operations\n */\n\nimport isEmpty from \"lodash/isEmpty\";\nimport isNumber from \"lodash/isNumber\";\nimport { copy as cloneDeep } from \"fastest-json-copy\";\nimport range from \"lodash/range\";\n\nimport { expect, assert } from \"chai\";\nimport { ChangeSet, SerializedChangeSet } from \"../changeset\";\n\ndescribe(\"Array Operations\", function () {\n\tlet guidCounter = 1;\n\n\tconst generateNamedEntities = (count, offsets?, type?) =>\n\t\trange(count).map((i) => {\n\t\t\tconst offsetShift = offsets !== undefined ? offsets.shift() : undefined;\n\t\t\tconst id = offsetShift !== undefined ? guidCounter - offsetShift : guidCounter++;\n\t\t\tif (type === undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tString: {\n\t\t\t\t\t\tguid: `00000000-0000-0000-0000-${`000000000000${id}`.substr(-12)}`,\n\t\t\t\t\t},\n\t\t\t\t\ttypeid: \"test:namedEntry-1.0.0\",\n\t\t\t\t};\n\t\t\t} else if (type === \"number\") {\n\t\t\t\treturn id;\n\t\t\t}\n\t\t});\n\n\tfunction createArrayCS(arrayOperations, baseOperation?, type?): SerializedChangeSet {\n\t\tbaseOperation = baseOperation || \"modify\";\n\t\ttype = type || \"array<test:namedEntry-1.0.0>\";\n\t\treturn {\n\t\t\t[baseOperation]: {\n\t\t\t\t[type]: {\n\t\t\t\t\tarray: arrayOperations,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction getArrayCS(CS): SerializedChangeSet {\n\t\tif (CS instanceof ChangeSet) {\n\t\t\tCS = CS.getSerializedChangeSet();\n\t\t}\n\t\tif (isEmpty(CS)) {\n\t\t\treturn {};\n\t\t}\n\t\tconst first = (x) => Object.values(x)[0];\n\t\treturn first(first(first(CS)));\n\t}\n\n\tit(\"Avoid merging of adjacent remove operations with an insert in between\", () => {\n\t\t// This test creates a condition where there are two adjacent removes, with an insert\n\t\t// in between. Those two removes must not be merged when applying the two changesets\n\t\t// as otherwise overlapping ranges would be created in the result, which are not allowed\n\t\t// by the spec\n\t\tconst op1 = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst op2 = createArrayCS({\n\t\t\tremove: [[0, generateNamedEntities(2)]],\n\t\t});\n\n\t\tconst result = new ChangeSet(op1);\n\t\tresult.applyChangeSet(op2);\n\n\t\t// We expect the two ranges to be non overlapping\n\t\tconst arrayCS =\n\t\t\tresult.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\t\tconst removeStart = arrayCS.remove[0][0];\n\t\tconst removeEnd = arrayCS.remove[0][0] + arrayCS.remove[0][1].length;\n\t\tconst insertStart = arrayCS.insert[0][0];\n\n\t\texpect(insertStart <= removeStart || insertStart >= removeEnd).to.be.true;\n\t});\n\n\tit(\"Rebasing with a base changeset containing adjacent removes and inserts\", () => {\n\t\tconst base = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[0, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst rebaseCS = createArrayCS({\n\t\t\tinsert: [[0, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst conflicts = [];\n\t\tconst CS = new ChangeSet(base);\n\t\tCS._rebaseChangeSet(rebaseCS, conflicts);\n\n\t\t// We expect the rebase to keep the insert at position 0. The base changeSet contains an\n\t\t// insert at position 3. There is also a remove within the same CS, which causes both\n\t\t// inserts to be with respect to the same position in the resulting array, but we have\n\t\t// to keep the order of the inserts, since we can only guarantee the distributivity of\n\t\t// the rebase this way. The CS above could have been generated by a combination of a\n\t\t// I(1,3) followed by a R(0,1). If the rebase CS would have been rebased separately\n\t\t// with respect to those two CS, it would have remained a I(0,3).\n\t\texpect(\n\t\t\t(rebaseCS as SerializedChangeSet).modify[\"array<test:namedEntry-1.0.0>\"].array\n\t\t\t\t.insert[0][0],\n\t\t).to.equal(0);\n\t});\n\n\tfor (const i of [0, 3]) {\n\t\tit(`Rebasing an insert behind a remove insert base changeset with insert position ${i}`, () => {\n\t\t\tconst base = createArrayCS({\n\t\t\t\tinsert: [[i, generateNamedEntities(3)]],\n\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t});\n\t\t\tconst rebaseCS = createArrayCS({\n\t\t\t\tinsert: [[0, generateNamedEntities(1)]],\n\t\t\t});\n\n\t\t\tconst originalRebaseCS = cloneDeep(rebaseCS);\n\t\t\tconst conflicts = [];\n\t\t\tconst applyAfterMetaInformation = new Map();\n\t\t\tconst CS = new ChangeSet(base);\n\t\t\tCS._rebaseChangeSet(rebaseCS, conflicts, { applyAfterMetaInformation });\n\n\t\t\t// Whether the insert in the rebaseCS is moved depends on the insert in the base CS. If the base CS\n\t\t\t// is the result of an I(3, 3) followed by a R(0,3), it would not be moved since the insert in the baseCS\n\t\t\t// is behind the insert in the rebase CS. Otherwise, if it is an I(0, 0) our rebase rules would move it\n\t\t\t// to index 3 behind the other insert\n\t\t\texpect(rebaseCS.modify[\"array<test:namedEntry-1.0.0>\"].array.insert[0][0]).to.equal(\n\t\t\t\ti === 0 ? 3 : 0,\n\t\t\t);\n\n\t\t\tconst combinedCS = new ChangeSet(originalRebaseCS);\n\t\t\tcombinedCS.toInverseChangeSet();\n\t\t\tcombinedCS.applyChangeSet(base);\n\t\t\tcombinedCS.applyChangeSet(rebaseCS, { applyAfterMetaInformation });\n\n\t\t\tconst finalCs = combinedCS.getSerializedChangeSet();\n\t\t\t// The insert above should cancel out. If the original insert was at position 0, we moved the rebased\n\t\t\t// insert behind the original insert. This means the original insert should now be at position 0,\n\t\t\t// before the insert that canceled out. Otherwise, it should be at position 4 (behind the removed\n\t\t\t// range, as it was in the original CS, but now shifted by 1).\n\t\t\texpect(finalCs.modify[\"array<test:namedEntry-1.0.0>\"].array.insert[0][0]).to.equal(\n\t\t\t\ti === 0 ? 0 : 4,\n\t\t\t);\n\t\t});\n\t}\n\n\tit(\"Inserts should happen at the beginning of a remove range\", () => {\n\t\tconst op1 = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t});\n\t\tconst op2 = createArrayCS({\n\t\t\tinsert: [[4, generateNamedEntities(2)]],\n\t\t});\n\n\t\tconst combinedCS = new ChangeSet(op1);\n\t\tcombinedCS.applyChangeSet(op2);\n\n\t\tconst arrayCS =\n\t\t\tcombinedCS.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\t\texpect(arrayCS.insert.length).to.equal(1);\n\t});\n\n\tfunction testRebasedApplies(localBranchChangeSet, baseChangeSet, baseState) {\n\t\tconst conflicts = [];\n\t\tconst rebaseMetaInformation = new Map();\n\t\tconst originalRebaseChangeSet = cloneDeep(localBranchChangeSet);\n\t\tconst deltaChangeSet = new ChangeSet(cloneDeep(localBranchChangeSet));\n\t\tdeltaChangeSet.toInverseChangeSet();\n\n\t\tconst rebaseChangeSet = cloneDeep(localBranchChangeSet);\n\t\tnew ChangeSet(baseChangeSet)._rebaseChangeSet(rebaseChangeSet, conflicts, {\n\t\t\tapplyAfterMetaInformation: rebaseMetaInformation,\n\t\t});\n\n\t\tdeltaChangeSet.applyChangeSet(baseChangeSet);\n\t\tvalidateChangeSet(deltaChangeSet);\n\t\tconst copiedRebaseChangeSet = cloneDeep(rebaseChangeSet);\n\t\tdeltaChangeSet.applyChangeSet(rebaseChangeSet, {\n\t\t\tapplyAfterMetaInformation: rebaseMetaInformation,\n\t\t});\n\t\tvalidateChangeSet(deltaChangeSet);\n\n\t\t// This path first walks onto the local branch (applying the original changeset from the local branch)\n\t\t// and then the delta to the new tip (going back one step, and then forward again)\n\t\tconst deltaPath = new ChangeSet(cloneDeep(baseState));\n\t\tdeltaPath.applyChangeSet(originalRebaseChangeSet);\n\t\tdeltaPath.applyChangeSet(deltaChangeSet);\n\n\t\t// This computes the same state, but not starting from the local branch, but from the base commit itself\n\t\tconst directPath = new ChangeSet(cloneDeep(baseState));\n\t\tdirectPath.applyChangeSet(baseChangeSet);\n\t\tdirectPath.applyChangeSet(rebaseChangeSet);\n\t\texpect(deltaPath.getSerializedChangeSet()).to.deep.equal(\n\t\t\tdirectPath.getSerializedChangeSet(),\n\t\t);\n\n\t\t// Make sure, the rebase changeset was not modified in the apply operation above\n\t\texpect(copiedRebaseChangeSet).to.deep.equal(rebaseChangeSet);\n\n\t\treturn deltaChangeSet;\n\t}\n\n\tfunction runTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\tbaseInsertPositions,\n\t\trebasedInsertPositions,\n\t\tbaseOperation = \"insert\",\n\t\tbaseCount = 1,\n\t) {\n\t\tconst createInserts = (positions, count) =>\n\t\t\tpositions.map((x) => [x, generateNamedEntities(count)]);\n\n\t\tconst baseChangeSet = createArrayCS({\n\t\t\t[baseOperation]: createInserts(baseInsertPositions, baseCount),\n\t\t});\n\n\t\tconst localBranchChangeSet = createArrayCS({\n\t\t\tinsert: createInserts(rebasedInsertPositions, 1),\n\t\t});\n\n\t\t// Test whether the created changeset computes the same result as applying\n\t\t// the base and rebase changeset to the base state\n\t\tconst baseState = createArrayCS({\n\t\t\tinsert: createInserts([0], 20),\n\t\t});\n\t\tconst deltaChangeSet = testRebasedApplies(localBranchChangeSet, baseChangeSet, baseState);\n\n\t\t// Make sure the delta changeset does not contain any other operations than the inserts from the base state\n\t\tconst arrayChangeSet =\n\t\t\tdeltaChangeSet.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\n\t\texpect(arrayChangeSet[baseOperation].length).to.equal(baseInsertPositions.length);\n\t\tfor (let i = 0; i < baseInsertPositions.length; i++) {\n\t\t\texpect(arrayChangeSet[baseOperation][i][1].length).to.equal(baseCount);\n\t\t}\n\t\texpect(arrayChangeSet).to.not.have.property(\n\t\t\tbaseOperation === \"insert\" ? \"remove\" : \"insert\",\n\t\t);\n\t}\n\n\tdescribe(\"Rebase test applying the reverse, base and then rebased changeset\", () => {\n\t\tfor (const basePositions of [[0], [1], [2], [5], [13], [0, 2], [0, 5], [0, 5, 13]]) {\n\t\t\tfor (const rebasePositions of [[0], [1], [5, 9], [5, 9, 12]]) {\n\t\t\t\tit(`with base positions ${basePositions} and rebase positions ${rebasePositions}`, () => {\n\t\t\t\t\trunTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\t\t\t\t\tbasePositions,\n\t\t\t\t\t\trebasePositions,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\tdescribe(\"Rebase test applying the reverse, base and then rebased changeset2\", () => {\n\t\tit(`with removes in the base`, () => {\n\t\t\trunTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\t\t\t[0],\n\t\t\t\t[2],\n\t\t\t\t\"remove\",\n\t\t\t\t2,\n\t\t\t);\n\t\t});\n\t});\n\n\tfunction testRebaseDistributivity(baseChangesets, rebaseChangeSet, base) {\n\t\t// First rebase with each CS independently\n\t\tconst rebasedCS1 = cloneDeep(rebaseChangeSet);\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tconst conflicts = [];\n\t\t\tnew ChangeSet(baseChangeSet)._rebaseChangeSet(rebasedCS1, conflicts);\n\t\t\tvalidateChangeSet(rebasedCS1);\n\t\t}\n\n\t\t// Now rebase with respect to the squashed base ChangeSets\n\t\tconst squashedBaseChangeSets = new ChangeSet();\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tsquashedBaseChangeSets.applyChangeSet(baseChangeSet);\n\t\t}\n\n\t\t// Test whether squashed base changes are consistent\n\t\tconst directApplication = new ChangeSet(cloneDeep(base));\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tdirectApplication.applyChangeSet(baseChangeSet);\n\t\t}\n\t\tconst squashApplication = new ChangeSet(cloneDeep(base));\n\t\tsquashApplication.applyChangeSet(squashedBaseChangeSets);\n\t\texpect(directApplication.getSerializedChangeSet()).to.deep.equal(\n\t\t\tsquashApplication.getSerializedChangeSet(),\n\t\t);\n\n\t\tconst conflicts2 = [];\n\t\tconst rebasedCS2 = cloneDeep(rebaseChangeSet);\n\t\tnew ChangeSet(squashedBaseChangeSets)._rebaseChangeSet(rebasedCS2, conflicts2);\n\t\tvalidateChangeSet(rebasedCS2);\n\n\t\texpect(rebasedCS1).to.deep.equal(rebasedCS2);\n\n\t\treturn testRebasedApplies(cloneDeep(rebaseChangeSet), squashedBaseChangeSets, base);\n\t}\n\n\tdescribe(\"Rebase Distributivity\", () => {\n\t\tdescribe(\"Multiple inserts in a remove range\", () => {\n\t\t\tfor (const insertPosition of [0, 1, 3, 5, 7, 12]) {\n\t\t\t\tit(`Position ${insertPosition}`, () => {\n\t\t\t\t\ttestRebaseDistributivity(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[6, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[9, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t\t\t[2, generateNamedEntities(4)],\n\t\t\t\t\t\t\t\t\t[7, generateNamedEntities(2)],\n\t\t\t\t\t\t\t\t\t[10, generateNamedEntities(2)],\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\tinsert: [[insertPosition, generateNamedEntities(1)]],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tit(\"Rebasing an insert with respect to a remove + insert\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"remove + insert at start of array\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Rebased remove that cancels out\", () => {\n\t\t\tconst deltacS = testRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst arrayCS = getArrayCS(deltacS);\n\t\t\texpect(arrayCS.insert[0][1].length).to.equal(3);\n\t\t\texpect(arrayCS.remove[0][1].length).to.equal(1);\n\t\t});\n\t\tit(\"Insert in between two removes 1\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[1, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Insert in between two removes 2\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[3, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Inserts in between three removes\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[6, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[3, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Adjacent remove with insert at the beginning of the remove range\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[1, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[8, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[8, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[8, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out 2\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[8, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t// [8, generateNamedEntities(1)],\n\t\t\t\t\t\t\t[8, generateNamedEntities(1)],\n\t\t\t\t\t\t\t[17, generateNamedEntities(1)],\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[8, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out in the middle of a range\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[3, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t});\n\n\tfunction validateChangeSet(CS) {\n\t\tconst arrayCS = getArrayCS(CS);\n\n\t\tconst insertPositions = new Set();\n\t\tif (arrayCS.insert) {\n\t\t\tarrayCS.insert.forEach((x) => insertPositions.add(x[0]));\n\t\t}\n\t\tfor (const type of [\"insert\", \"modify\", \"remove\"]) {\n\t\t\tconst changes = arrayCS[type];\n\n\t\t\t// Make sure the entries are sorted\n\t\t\tif (changes !== undefined) {\n\t\t\t\tlet lastIndex = -5;\n\t\t\t\tlet lastLength = 0;\n\t\t\t\tfor (const entry of changes) {\n\t\t\t\t\t// Ranges should not be adjacent. However, they might be interrupted, if there is an insert\n\t\t\t\t\t// inside the range\n\t\t\t\t\tlet indexOffset = 1;\n\t\t\t\t\tif (type === \"remove\" || type === \"modify\") {\n\t\t\t\t\t\tindexOffset = lastLength;\n\t\t\t\t\t\tif (!insertPositions.has(lastIndex + indexOffset)) {\n\t\t\t\t\t\t\tindexOffset += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tassert(\n\t\t\t\t\t\tentry[0] >= lastIndex + indexOffset,\n\t\t\t\t\t\t\"Changeset operations are not sorted or not merged\",\n\t\t\t\t\t);\n\t\t\t\t\tlastIndex = entry[0];\n\t\t\t\t\tlastLength = !isNumber(entry[1]) ? entry[1].length : entry[1];\n\n\t\t\t\t\t// Inserts must not lie within modify or remove ranges\n\t\t\t\t\tif (type === \"remove\" || type === \"modify\") {\n\t\t\t\t\t\tinsertPositions.forEach((i) =>\n\t\t\t\t\t\t\tassert(\n\t\t\t\t\t\t\t\ti <= lastIndex || i >= lastIndex + lastLength,\n\t\t\t\t\t\t\t\t`Insert within ${type} range.`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction testApplyAssociativity(base, operations, customValidator?) {\n\t\tconst combinedCS = new ChangeSet();\n\t\toperations.forEach(combinedCS.applyChangeSet.bind(combinedCS));\n\t\tvalidateChangeSet(combinedCS);\n\n\t\t// Individually apply the operations\n\t\tconst separateApplysResult = new ChangeSet(cloneDeep(base));\n\t\toperations.forEach(separateApplysResult.applyChangeSet.bind(separateApplysResult));\n\t\tvalidateChangeSet(separateApplysResult);\n\n\t\t// And apply the combined CS\n\t\tconst combinedApplyResult = new ChangeSet(cloneDeep(base));\n\t\tcombinedApplyResult.applyChangeSet(combinedCS);\n\n\t\tif (customValidator !== undefined) {\n\t\t\tcustomValidator(combinedCS, separateApplysResult, combinedApplyResult);\n\t\t}\n\n\t\texpect(separateApplysResult.getSerializedChangeSet()).to.deep.equal(\n\t\t\tcombinedApplyResult.getSerializedChangeSet(),\n\t\t);\n\t}\n\n\tdescribe(\"Apply Associativity\", () => {\n\t\tit(\"insert + remove + insert\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[3, generateNamedEntities(2, [1, 3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[2, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t];\n\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tdescribe(\"Inserting into a remove range with deletes on both sides\", () => {\n\t\t\tfor (const additionalInserts of [\n\t\t\t\t\"\",\n\t\t\t\t\" with insert at the beginning\",\n\t\t\t\t\" with insert at the end\",\n\t\t\t]) {\n\t\t\t\tconst offset = additionalInserts === \" with insert at the beginning\" ? 2 : 0;\n\t\t\t\tfor (const i of range(1, 9)) {\n\t\t\t\t\tit(`at position ${i + offset}${additionalInserts}`, () => {\n\t\t\t\t\t\tconst initial = createArrayCS(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"insert\",\n\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet initialInserts = [];\n\t\t\t\t\t\tlet finalInserts = [];\n\t\t\t\t\t\tif (additionalInserts === \" with insert at the beginning\") {\n\t\t\t\t\t\t\tinitialInserts = [[0, generateNamedEntities(2, undefined, \"number\")]];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (additionalInserts === \" with insert at the end\") {\n\t\t\t\t\t\t\tfinalInserts = [[10, generateNamedEntities(2, undefined, \"number\")]];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst ops = [\n\t\t\t\t\t\t\tcreateArrayCS(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t\t\t\t...initialInserts,\n\t\t\t\t\t\t\t\t\t\t[2, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t\t[7, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t\t...finalInserts,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tremove: [[2, generateNamedEntities(5, undefined, \"number\")]],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcreateArrayCS(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t\t\t\t[i + offset, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t];\n\t\t\t\t\t\ttestApplyAssociativity(initial, ops, (combinedCS) => {\n\t\t\t\t\t\t\tconst arrayCS = getArrayCS(combinedCS);\n\t\t\t\t\t\t\texpect(arrayCS.insert.length).to.equal(\n\t\t\t\t\t\t\t\t(i >= 2 && i < 8 ? 2 : 3) + (additionalInserts !== \"\" ? 1 : 0),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst insertOffset =\n\t\t\t\t\t\t\t\tadditionalInserts == \" with insert at the beginning\" ? 1 : 0;\n\t\t\t\t\t\t\tif (i >= 2 && i <= 4) {\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[0 + insertOffset][1].length).to.equal(4);\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[1 + insertOffset][1].length).to.equal(3);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (i > 4 && i < 8) {\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[0 + insertOffset][1].length).to.equal(2);\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[1 + insertOffset][1].length).to.equal(5);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tit(\"remove overlapping insert and remove ranges\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(6, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[2, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Overlapping remove / insert\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(5, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Removing multiple inserts and removes\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(4, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(6, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Removing insert/removes at the end\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(4, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[6, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Insert with overlapping remove\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Failed case\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(7)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[0, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[1, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Failed case\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(5)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[5, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t});\n\n\tdescribe(\"Apply with removes in both changesets\", () => {\n\t\tfor (const startInsertA of [true, false]) {\n\t\t\tfor (const startInsertB of [true, false]) {\n\t\t\t\tfor (const removeInsertA of [true, false]) {\n\t\t\t\t\tfor (const removeInsertB of [true, false]) {\n\t\t\t\t\t\tfor (const removeInsideInsertB of [\"adjacent\", \"separate\", false]) {\n\t\t\t\t\t\t\tconst insertNames = [];\n\t\t\t\t\t\t\tif (startInsertA) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"at start of A\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (startInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"at start of B\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsertA) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"before remove in A\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"before remove in B\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsideInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\n\t\t\t\t\t\t\t\t\t`inside remove range in B (${removeInsideInsertB})`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet title = \"with \";\n\t\t\t\t\t\t\ttitle +=\n\t\t\t\t\t\t\t\tinsertNames.length === 0\n\t\t\t\t\t\t\t\t\t? \"no inserts\"\n\t\t\t\t\t\t\t\t\t: `inserts ${insertNames.join(\", \")}`;\n\t\t\t\t\t\t\tit(title, () => {\n\t\t\t\t\t\t\t\tconst insertsA = [];\n\t\t\t\t\t\t\t\tconst insertsB = [];\n\t\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\t\tif (startInsertA) {\n\t\t\t\t\t\t\t\t\tinsertsA.push([0, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t\toffset += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsertA) {\n\t\t\t\t\t\t\t\t\tinsertsA.push([5, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t\toffset += 1;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet removesB = [[5 + offset, generateNamedEntities(3)]];\n\t\t\t\t\t\t\t\tif (startInsertB) {\n\t\t\t\t\t\t\t\t\tinsertsB.push([0, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsertB) {\n\t\t\t\t\t\t\t\t\tinsertsB.push([5 + offset, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsideInsertB) {\n\t\t\t\t\t\t\t\t\tconst removeOffset = removeInsideInsertB === \"separate\" ? 1 : 0;\n\n\t\t\t\t\t\t\t\t\tinsertsB.push([\n\t\t\t\t\t\t\t\t\t\t6 + offset + removeOffset,\n\t\t\t\t\t\t\t\t\t\tgenerateNamedEntities(1),\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\tremovesB = [\n\t\t\t\t\t\t\t\t\t\t[5 + offset + removeOffset, generateNamedEntities(1)],\n\t\t\t\t\t\t\t\t\t\t[6 + offset + removeOffset, generateNamedEntities(1)],\n\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst CS1 = createArrayCS({\n\t\t\t\t\t\t\t\t\tinsert: insertsA,\n\t\t\t\t\t\t\t\t\tremove: [[5, generateNamedEntities(3)]],\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst CS2 = createArrayCS({\n\t\t\t\t\t\t\t\t\tinsert: insertsB,\n\t\t\t\t\t\t\t\t\tremove: removesB,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tconst CS = new ChangeSet(CS1);\n\t\t\t\t\t\t\t\tCS.applyChangeSet(CS2);\n\t\t\t\t\t\t\t\tvalidateChangeSet(CS.getSerializedChangeSet());\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n});\n"]}
1
+ {"version":3,"file":"array.spec.js","sourceRoot":"","sources":["../../src/test/array.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH;;GAEG;AAEH,6DAAqC;AACrC,+DAAuC;AACvC,yDAAsD;AACtD,yDAAiC;AAEjC,+BAAsC;AACtC,4CAA8D;AAE9D,QAAQ,CAAC,kBAAkB,EAAE;IAC5B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAQ,EAAE,IAAK,EAAE,EAAE,CACxD,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,EAAE,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjF,IAAI,IAAI,KAAK,SAAS,EAAE;YACvB,OAAO;gBACN,MAAM,EAAE;oBACP,IAAI,EAAE,2BAA2B,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;iBAClE;gBACD,MAAM,EAAE,uBAAuB;aAC/B,CAAC;SACF;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAO,EAAE,CAAC;SACV;IACF,CAAC,CAAC,CAAC;IAEJ,SAAS,aAAa,CAAC,eAAe,EAAE,aAAc,EAAE,IAAK;QAC5D,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAC;QAC1C,IAAI,GAAG,IAAI,IAAI,8BAA8B,CAAC;QAC9C,OAAO;YACN,CAAC,aAAa,CAAC,EAAE;gBAChB,CAAC,IAAI,CAAC,EAAE;oBACP,KAAK,EAAE,eAAe;iBACtB;aACD;SACD,CAAC;IACH,CAAC;IAED,SAAS,UAAU,CAAC,EAAE;QACrB,IAAI,EAAE,YAAY,qBAAS,EAAE;YAC5B,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;SACjC;QACD,IAAI,IAAA,iBAAO,EAAC,EAAE,CAAC,EAAE;YAChB,OAAO,EAAE,CAAC;SACV;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAChF,qFAAqF;QACrF,oFAAoF;QACpF,wFAAwF;QACxF,cAAc;QACd,MAAM,GAAG,GAAG,aAAa,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,aAAa,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE3B,iDAAiD;QACjD,MAAM,OAAO,GACZ,MAAM,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAA,aAAM,EAAC,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QACjF,MAAM,IAAI,GAAG,aAAa,CAAC;YAC1B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC9B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEzC,wFAAwF;QACxF,qFAAqF;QACrF,sFAAsF;QACtF,sFAAsF;QACtF,oFAAoF;QACpF,mFAAmF;QACnF,iEAAiE;QACjE,IAAA,aAAM,EACJ,QAAgC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK;aAC5E,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACd,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACvB,EAAE,CAAC,iFAAiF,CAAC,EAAE,EAAE,GAAG,EAAE;YAC7F,MAAM,IAAI,GAAG,aAAa,CAAC;gBAC1B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,aAAa,CAAC;gBAC9B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,IAAA,wBAAS,EAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5C,MAAM,EAAE,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAExE,mGAAmG;YACnG,yGAAyG;YACzG,uGAAuG;YACvG,qCAAqC;YACrC,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAClF,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACf,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,qBAAS,CAAC,gBAAgB,CAAC,CAAC;YACnD,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAChC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAChC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAEnE,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,EAAE,CAAC;YACpD,qGAAqG;YACrG,iGAAiG;YACjG,iGAAiG;YACjG,8DAA8D;YAC9D,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACjF,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACf,CAAC;QACH,CAAC,CAAC,CAAC;KACH;IAED,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACnE,MAAM,GAAG,GAAG,aAAa,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAC;QACtC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,OAAO,GACZ,UAAU,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC;QAClF,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,SAAS,kBAAkB,CAAC,oBAAoB,EAAE,aAAa,EAAE,SAAS;QACzE,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,MAAM,uBAAuB,GAAG,IAAA,wBAAS,EAAC,oBAAoB,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,oBAAoB,CAAC,CAAC,CAAC;QACtE,cAAc,CAAC,kBAAkB,EAAE,CAAC;QAEpC,MAAM,eAAe,GAAG,IAAA,wBAAS,EAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,qBAAS,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE;YACzE,yBAAyB,EAAE,qBAAqB;SAChD,CAAC,CAAC;QAEH,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC7C,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClC,MAAM,qBAAqB,GAAG,IAAA,wBAAS,EAAC,eAAe,CAAC,CAAC;QACzD,cAAc,CAAC,cAAc,CAAC,eAAe,EAAE;YAC9C,yBAAyB,EAAE,qBAAqB;SAChD,CAAC,CAAC;QACH,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAElC,sGAAsG;QACtG,kFAAkF;QAClF,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,SAAS,CAAC,CAAC,CAAC;QACtD,SAAS,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAClD,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAEzC,wGAAwG;QACxG,MAAM,UAAU,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,SAAS,CAAC,CAAC,CAAC;QACvD,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACzC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CACvD,UAAU,CAAC,sBAAsB,EAAE,CACnC,CAAC;QAEF,gFAAgF;QAChF,IAAA,aAAM,EAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE7D,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,SAAS,oEAAoE,CAC5E,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,GAAG,QAAQ,EACxB,SAAS,GAAG,CAAC;QAEb,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC1C,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,aAAa,CAAC;YACnC,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,mBAAmB,EAAE,SAAS,CAAC;SAC9D,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,aAAa,CAAC;YAC1C,MAAM,EAAE,aAAa,CAAC,sBAAsB,EAAE,CAAC,CAAC;SAChD,CAAC,CAAC;QAEH,0EAA0E;QAC1E,kDAAkD;QAClD,MAAM,SAAS,GAAG,aAAa,CAAC;YAC/B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAE1F,2GAA2G;QAC3G,MAAM,cAAc,GACnB,cAAc,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC;QAEtF,IAAA,aAAM,EAAC,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAA,aAAM,EAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACvE;QACD,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAC1C,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAChD,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAClF,KAAK,MAAM,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;YACnF,KAAK,MAAM,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;gBAC7D,EAAE,CAAC,uBAAuB,aAAa,yBAAyB,eAAe,EAAE,EAAE,GAAG,EAAE;oBACvF,oEAAoE,CACnE,aAAa,EACb,eAAe,CACf,CAAC;gBACH,CAAC,CAAC,CAAC;aACH;SACD;IACF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oEAAoE,EAAE,GAAG,EAAE;QACnF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACnC,oEAAoE,CACnE,CAAC,CAAC,CAAC,EACH,CAAC,CAAC,CAAC,EACH,QAAQ,EACR,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,wBAAwB,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI;QACtE,0CAA0C;QAC1C,MAAM,UAAU,GAAG,IAAA,wBAAS,EAAC,eAAe,CAAC,CAAC;QAC9C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC3C,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,qBAAS,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACrE,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC9B;QAED,0DAA0D;QAC1D,MAAM,sBAAsB,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC/C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC3C,sBAAsB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;SACrD;QAED,oDAAoD;QACpD,MAAM,iBAAiB,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC3C,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;SAChD;QACD,MAAM,iBAAiB,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;QACzD,iBAAiB,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACzD,IAAA,aAAM,EAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAC/D,iBAAiB,CAAC,sBAAsB,EAAE,CAC1C,CAAC;QAEF,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAA,wBAAS,EAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,qBAAS,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/E,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE9B,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,OAAO,kBAAkB,CAAC,IAAA,wBAAS,EAAC,eAAe,CAAC,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACtC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;YACnD,KAAK,MAAM,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBACjD,EAAE,CAAC,YAAY,cAAc,EAAE,EAAE,GAAG,EAAE;oBACrC,wBAAwB,CACvB;wBACC,aAAa,CAAC;4BACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvC,CAAC;wBACF,aAAa,CAAC;4BACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvC,CAAC;wBACF,aAAa,CAAC;4BACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvC,CAAC;wBACF,aAAa,CAAC;4BACb,MAAM,EAAE;gCACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;gCAC7B,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;gCAC7B,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;6BAC9B;yBACD,CAAC;qBACF,EACD,aAAa,CAAC;wBACb,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpD,CAAC,EACF,aAAa,CAAC;wBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC,CAAC,CACF,CAAC;gBACH,CAAC,CAAC,CAAC;aACH;QACF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC/D,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;YACF,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,wBAAwB,CACvC;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;YACF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE;wBACP,iCAAiC;wBACjC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;wBAC7B,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;qBAC9B;iBACD,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACrE,wBAAwB,CACvB;gBACC,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,EACD,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,EACF,aAAa,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,iBAAiB,CAAC,EAAE;QAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAE/B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzD;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAE9B,mCAAmC;YACnC,IAAI,OAAO,KAAK,SAAS,EAAE;gBAC1B,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBAC5B,2FAA2F;oBAC3F,mBAAmB;oBACnB,IAAI,WAAW,GAAG,CAAC,CAAC;oBACpB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;wBAC3C,WAAW,GAAG,UAAU,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE;4BAClD,WAAW,IAAI,CAAC,CAAC;yBACjB;qBACD;oBACD,IAAA,aAAM,EACL,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,WAAW,EACnC,mDAAmD,CACnD,CAAC;oBACF,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,UAAU,GAAG,CAAC,IAAA,kBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE9D,sDAAsD;oBACtD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;wBAC3C,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,IAAA,aAAM,EACL,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,UAAU,EAC7C,iBAAiB,IAAI,SAAS,CAC9B,CACD,CAAC;qBACF;iBACD;aACD;SACD;IACF,CAAC;IAED,SAAS,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,eAAgB;QACjE,MAAM,UAAU,GAAG,IAAI,qBAAS,EAAE,CAAC;QACnC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE9B,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnF,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QAExC,4BAA4B;QAC5B,MAAM,mBAAmB,GAAG,IAAI,qBAAS,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,mBAAmB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,eAAe,KAAK,SAAS,EAAE;YAClC,eAAe,CAAC,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;SACvE;QAED,IAAA,aAAM,EAAC,oBAAoB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAClE,mBAAmB,CAAC,sBAAsB,EAAE,CAC5C,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACnC,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC,EACD,QAAQ,CACR,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,CAAC;YAEF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACzE,KAAK,MAAM,iBAAiB,IAAI;gBAC/B,EAAE;gBACF,+BAA+B;gBAC/B,yBAAyB;aACzB,EAAE;gBACF,MAAM,MAAM,GAAG,iBAAiB,KAAK,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7E,KAAK,MAAM,CAAC,IAAI,IAAA,eAAK,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBAC5B,EAAE,CAAC,eAAe,CAAC,GAAG,MAAM,GAAG,iBAAiB,EAAE,EAAE,GAAG,EAAE;wBACxD,MAAM,OAAO,GAAG,aAAa,CAC5B;4BACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;yBAC7D,EACD,QAAQ,EACR,gBAAgB,CAChB,CAAC;wBAEF,IAAI,cAAc,GAAG,EAAE,CAAC;wBACxB,IAAI,YAAY,GAAG,EAAE,CAAC;wBACtB,IAAI,iBAAiB,KAAK,+BAA+B,EAAE;4BAC1D,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACtE;wBACD,IAAI,iBAAiB,KAAK,yBAAyB,EAAE;4BACpD,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACrE;wBACD,MAAM,GAAG,GAAG;4BACX,aAAa,CACZ;gCACC,MAAM,EAAE;oCACP,GAAG,cAAc;oCACjB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAClD,GAAG,YAAY;iCACf;gCACD,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;6BAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;4BACD,aAAa,CACZ;gCACC,MAAM,EAAE;oCACP,CAAC,CAAC,GAAG,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;iCAC3D;6BACD,EACD,SAAS,EACT,gBAAgB,CAChB;yBACD,CAAC;wBACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;4BACnD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;4BACvC,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CACrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;4BAEF,MAAM,YAAY,GACjB,iBAAiB,IAAI,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACrB,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCAC/D,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;6BAC/D;4BACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gCACnB,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCAC/D,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;6BAC/D;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACH;aACD;QACF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7D,EACD,QAAQ,EACR,gBAAgB,CAChB,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CACZ;oBACC,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;oBACD,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;iBACD,EACD,SAAS,EACT,gBAAgB,CAChB;gBACD,aAAa,CACZ;oBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;aACD,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7D,EACD,QAAQ,EACR,gBAAgB,CAChB,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CACZ;oBACC,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;oBACD,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;gBACD,aAAa,CACZ;oBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;aACD,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7D,EACD,QAAQ,EACR,gBAAgB,CAChB,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CACZ;oBACC,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;oBACD,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;iBACD,EACD,SAAS,EACT,gBAAgB,CAChB;gBACD,aAAa,CACZ;oBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;aACD,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC7C,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7D,EACD,QAAQ,EACR,gBAAgB,CAChB,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CACZ;oBACC,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;oBACD,MAAM,EAAE;wBACP,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;qBAClD;iBACD,EACD,SAAS,EACT,gBAAgB,CAChB;gBACD,aAAa,CACZ;oBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC5D,EACD,SAAS,EACT,gBAAgB,CAChB;aACD,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,EACD,QAAQ,CACR,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,EACD,QAAQ,CACR,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,aAAa,CAC5B;gBACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC,EACD,QAAQ,CACR,CAAC;YAEF,MAAM,GAAG,GAAG;gBACX,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;gBACF,aAAa,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC;aACF,CAAC;YACF,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACtD,KAAK,MAAM,YAAY,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;YACzC,KAAK,MAAM,YAAY,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACzC,KAAK,MAAM,aAAa,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;oBAC1C,KAAK,MAAM,aAAa,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;wBAC1C,KAAK,MAAM,mBAAmB,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;4BAClE,MAAM,WAAW,GAAG,EAAE,CAAC;4BACvB,IAAI,YAAY,EAAE;gCACjB,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;6BAClC;4BACD,IAAI,YAAY,EAAE;gCACjB,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;6BAClC;4BACD,IAAI,aAAa,EAAE;gCAClB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;6BACvC;4BACD,IAAI,aAAa,EAAE;gCAClB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;6BACvC;4BACD,IAAI,mBAAmB,EAAE;gCACxB,WAAW,CAAC,IAAI,CACf,6BAA6B,mBAAmB,GAAG,CACnD,CAAC;6BACF;4BACD,IAAI,KAAK,GAAG,OAAO,CAAC;4BACpB,KAAK;gCACJ,WAAW,CAAC,MAAM,KAAK,CAAC;oCACvB,CAAC,CAAC,YAAY;oCACd,CAAC,CAAC,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACxC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gCACd,MAAM,QAAQ,GAAG,EAAE,CAAC;gCACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;gCACpB,IAAI,MAAM,GAAG,CAAC,CAAC;gCACf,IAAI,YAAY,EAAE;oCACjB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC7C,MAAM,IAAI,CAAC,CAAC;iCACZ;gCACD,IAAI,aAAa,EAAE;oCAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC7C,MAAM,IAAI,CAAC,CAAC;iCACZ;gCAED,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxD,IAAI,YAAY,EAAE;oCACjB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iCAC7C;gCACD,IAAI,aAAa,EAAE;oCAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iCACtD;gCACD,IAAI,mBAAmB,EAAE;oCACxB,MAAM,YAAY,GAAG,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCAEhE,QAAQ,CAAC,IAAI,CAAC;wCACb,CAAC,GAAG,MAAM,GAAG,YAAY;wCACzB,qBAAqB,CAAC,CAAC,CAAC;qCACxB,CAAC,CAAC;oCACH,QAAQ,GAAG;wCACV,CAAC,CAAC,GAAG,MAAM,GAAG,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;wCACrD,CAAC,CAAC,GAAG,MAAM,GAAG,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;qCACrD,CAAC;iCACF;gCACD,MAAM,GAAG,GAAG,aAAa,CAAC;oCACzB,MAAM,EAAE,QAAQ;oCAChB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iCACvC,CAAC,CAAC;gCACH,MAAM,GAAG,GAAG,aAAa,CAAC;oCACzB,MAAM,EAAE,QAAQ;oCAChB,MAAM,EAAE,QAAQ;iCAChB,CAAC,CAAC;gCAEH,MAAM,EAAE,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAC;gCAC9B,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gCACvB,iBAAiB,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;4BAChD,CAAC,CAAC,CAAC;yBACH;qBACD;iBACD;aACD;SACD;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * @fileoverview Tests for the array changeset operations\n */\n\nimport isEmpty from \"lodash/isEmpty\";\nimport isNumber from \"lodash/isNumber\";\nimport { copy as cloneDeep } from \"fastest-json-copy\";\nimport range from \"lodash/range\";\n\nimport { expect, assert } from \"chai\";\nimport { ChangeSet, SerializedChangeSet } from \"../changeset\";\n\ndescribe(\"Array Operations\", function () {\n\tlet guidCounter = 1;\n\n\tconst generateNamedEntities = (count, offsets?, type?) =>\n\t\trange(count).map((i) => {\n\t\t\tconst offsetShift = offsets !== undefined ? offsets.shift() : undefined;\n\t\t\tconst id = offsetShift !== undefined ? guidCounter - offsetShift : guidCounter++;\n\t\t\tif (type === undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tString: {\n\t\t\t\t\t\tguid: `00000000-0000-0000-0000-${`000000000000${id}`.substr(-12)}`,\n\t\t\t\t\t},\n\t\t\t\t\ttypeid: \"test:namedEntry-1.0.0\",\n\t\t\t\t};\n\t\t\t} else if (type === \"number\") {\n\t\t\t\treturn id;\n\t\t\t}\n\t\t});\n\n\tfunction createArrayCS(arrayOperations, baseOperation?, type?): SerializedChangeSet {\n\t\tbaseOperation = baseOperation || \"modify\";\n\t\ttype = type || \"array<test:namedEntry-1.0.0>\";\n\t\treturn {\n\t\t\t[baseOperation]: {\n\t\t\t\t[type]: {\n\t\t\t\t\tarray: arrayOperations,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction getArrayCS(CS): SerializedChangeSet {\n\t\tif (CS instanceof ChangeSet) {\n\t\t\tCS = CS.getSerializedChangeSet();\n\t\t}\n\t\tif (isEmpty(CS)) {\n\t\t\treturn {};\n\t\t}\n\t\tconst first = (x) => Object.values(x)[0];\n\t\treturn first(first(first(CS)));\n\t}\n\n\tit(\"Avoid merging of adjacent remove operations with an insert in between\", () => {\n\t\t// This test creates a condition where there are two adjacent removes, with an insert\n\t\t// in between. Those two removes must not be merged when applying the two changesets\n\t\t// as otherwise overlapping ranges would be created in the result, which are not allowed\n\t\t// by the spec\n\t\tconst op1 = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst op2 = createArrayCS({\n\t\t\tremove: [[0, generateNamedEntities(2)]],\n\t\t});\n\n\t\tconst result = new ChangeSet(op1);\n\t\tresult.applyChangeSet(op2);\n\n\t\t// We expect the two ranges to be non overlapping\n\t\tconst arrayCS =\n\t\t\tresult.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\t\tconst removeStart = arrayCS.remove[0][0];\n\t\tconst removeEnd = arrayCS.remove[0][0] + arrayCS.remove[0][1].length;\n\t\tconst insertStart = arrayCS.insert[0][0];\n\n\t\texpect(insertStart <= removeStart || insertStart >= removeEnd).to.be.true;\n\t});\n\n\tit(\"Rebasing with a base changeset containing adjacent removes and inserts\", () => {\n\t\tconst base = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[0, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst rebaseCS = createArrayCS({\n\t\t\tinsert: [[0, generateNamedEntities(1)]],\n\t\t});\n\n\t\tconst conflicts = [];\n\t\tconst CS = new ChangeSet(base);\n\t\tCS._rebaseChangeSet(rebaseCS, conflicts);\n\n\t\t// We expect the rebase to keep the insert at position 0. The base changeSet contains an\n\t\t// insert at position 3. There is also a remove within the same CS, which causes both\n\t\t// inserts to be with respect to the same position in the resulting array, but we have\n\t\t// to keep the order of the inserts, since we can only guarantee the distributivity of\n\t\t// the rebase this way. The CS above could have been generated by a combination of a\n\t\t// I(1,3) followed by a R(0,1). If the rebase CS would have been rebased separately\n\t\t// with respect to those two CS, it would have remained a I(0,3).\n\t\texpect(\n\t\t\t(rebaseCS as SerializedChangeSet).modify[\"array<test:namedEntry-1.0.0>\"].array\n\t\t\t\t.insert[0][0],\n\t\t).to.equal(0);\n\t});\n\n\tfor (const i of [0, 3]) {\n\t\tit(`Rebasing an insert behind a remove insert base changeset with insert position ${i}`, () => {\n\t\t\tconst base = createArrayCS({\n\t\t\t\tinsert: [[i, generateNamedEntities(3)]],\n\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t});\n\t\t\tconst rebaseCS = createArrayCS({\n\t\t\t\tinsert: [[0, generateNamedEntities(1)]],\n\t\t\t});\n\n\t\t\tconst originalRebaseCS = cloneDeep(rebaseCS);\n\t\t\tconst conflicts = [];\n\t\t\tconst applyAfterMetaInformation = new Map();\n\t\t\tconst CS = new ChangeSet(base);\n\t\t\tCS._rebaseChangeSet(rebaseCS, conflicts, { applyAfterMetaInformation });\n\n\t\t\t// Whether the insert in the rebaseCS is moved depends on the insert in the base CS. If the base CS\n\t\t\t// is the result of an I(3, 3) followed by a R(0,3), it would not be moved since the insert in the baseCS\n\t\t\t// is behind the insert in the rebase CS. Otherwise, if it is an I(0, 0) our rebase rules would move it\n\t\t\t// to index 3 behind the other insert\n\t\t\texpect(rebaseCS.modify[\"array<test:namedEntry-1.0.0>\"].array.insert[0][0]).to.equal(\n\t\t\t\ti === 0 ? 3 : 0,\n\t\t\t);\n\n\t\t\tconst combinedCS = new ChangeSet(originalRebaseCS);\n\t\t\tcombinedCS.toInverseChangeSet();\n\t\t\tcombinedCS.applyChangeSet(base);\n\t\t\tcombinedCS.applyChangeSet(rebaseCS, { applyAfterMetaInformation });\n\n\t\t\tconst finalCs = combinedCS.getSerializedChangeSet();\n\t\t\t// The insert above should cancel out. If the original insert was at position 0, we moved the rebased\n\t\t\t// insert behind the original insert. This means the original insert should now be at position 0,\n\t\t\t// before the insert that canceled out. Otherwise, it should be at position 4 (behind the removed\n\t\t\t// range, as it was in the original CS, but now shifted by 1).\n\t\t\texpect(finalCs.modify[\"array<test:namedEntry-1.0.0>\"].array.insert[0][0]).to.equal(\n\t\t\t\ti === 0 ? 0 : 4,\n\t\t\t);\n\t\t});\n\t}\n\n\tit(\"Inserts should happen at the beginning of a remove range\", () => {\n\t\tconst op1 = createArrayCS({\n\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t});\n\t\tconst op2 = createArrayCS({\n\t\t\tinsert: [[4, generateNamedEntities(2)]],\n\t\t});\n\n\t\tconst combinedCS = new ChangeSet(op1);\n\t\tcombinedCS.applyChangeSet(op2);\n\n\t\tconst arrayCS =\n\t\t\tcombinedCS.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\t\texpect(arrayCS.insert.length).to.equal(1);\n\t});\n\n\tfunction testRebasedApplies(localBranchChangeSet, baseChangeSet, baseState) {\n\t\tconst conflicts = [];\n\t\tconst rebaseMetaInformation = new Map();\n\t\tconst originalRebaseChangeSet = cloneDeep(localBranchChangeSet);\n\t\tconst deltaChangeSet = new ChangeSet(cloneDeep(localBranchChangeSet));\n\t\tdeltaChangeSet.toInverseChangeSet();\n\n\t\tconst rebaseChangeSet = cloneDeep(localBranchChangeSet);\n\t\tnew ChangeSet(baseChangeSet)._rebaseChangeSet(rebaseChangeSet, conflicts, {\n\t\t\tapplyAfterMetaInformation: rebaseMetaInformation,\n\t\t});\n\n\t\tdeltaChangeSet.applyChangeSet(baseChangeSet);\n\t\tvalidateChangeSet(deltaChangeSet);\n\t\tconst copiedRebaseChangeSet = cloneDeep(rebaseChangeSet);\n\t\tdeltaChangeSet.applyChangeSet(rebaseChangeSet, {\n\t\t\tapplyAfterMetaInformation: rebaseMetaInformation,\n\t\t});\n\t\tvalidateChangeSet(deltaChangeSet);\n\n\t\t// This path first walks onto the local branch (applying the original changeset from the local branch)\n\t\t// and then the delta to the new tip (going back one step, and then forward again)\n\t\tconst deltaPath = new ChangeSet(cloneDeep(baseState));\n\t\tdeltaPath.applyChangeSet(originalRebaseChangeSet);\n\t\tdeltaPath.applyChangeSet(deltaChangeSet);\n\n\t\t// This computes the same state, but not starting from the local branch, but from the base commit itself\n\t\tconst directPath = new ChangeSet(cloneDeep(baseState));\n\t\tdirectPath.applyChangeSet(baseChangeSet);\n\t\tdirectPath.applyChangeSet(rebaseChangeSet);\n\t\texpect(deltaPath.getSerializedChangeSet()).to.deep.equal(\n\t\t\tdirectPath.getSerializedChangeSet(),\n\t\t);\n\n\t\t// Make sure, the rebase changeset was not modified in the apply operation above\n\t\texpect(copiedRebaseChangeSet).to.deep.equal(rebaseChangeSet);\n\n\t\treturn deltaChangeSet;\n\t}\n\n\tfunction runTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\tbaseInsertPositions,\n\t\trebasedInsertPositions,\n\t\tbaseOperation = \"insert\",\n\t\tbaseCount = 1,\n\t) {\n\t\tconst createInserts = (positions, count) =>\n\t\t\tpositions.map((x) => [x, generateNamedEntities(count)]);\n\n\t\tconst baseChangeSet = createArrayCS({\n\t\t\t[baseOperation]: createInserts(baseInsertPositions, baseCount),\n\t\t});\n\n\t\tconst localBranchChangeSet = createArrayCS({\n\t\t\tinsert: createInserts(rebasedInsertPositions, 1),\n\t\t});\n\n\t\t// Test whether the created changeset computes the same result as applying\n\t\t// the base and rebase changeset to the base state\n\t\tconst baseState = createArrayCS({\n\t\t\tinsert: createInserts([0], 20),\n\t\t});\n\t\tconst deltaChangeSet = testRebasedApplies(localBranchChangeSet, baseChangeSet, baseState);\n\n\t\t// Make sure the delta changeset does not contain any other operations than the inserts from the base state\n\t\tconst arrayChangeSet =\n\t\t\tdeltaChangeSet.getSerializedChangeSet().modify[\"array<test:namedEntry-1.0.0>\"].array;\n\n\t\texpect(arrayChangeSet[baseOperation].length).to.equal(baseInsertPositions.length);\n\t\tfor (let i = 0; i < baseInsertPositions.length; i++) {\n\t\t\texpect(arrayChangeSet[baseOperation][i][1].length).to.equal(baseCount);\n\t\t}\n\t\texpect(arrayChangeSet).to.not.have.property(\n\t\t\tbaseOperation === \"insert\" ? \"remove\" : \"insert\",\n\t\t);\n\t}\n\n\tdescribe(\"Rebase test applying the reverse, base and then rebased changeset\", () => {\n\t\tfor (const basePositions of [[0], [1], [2], [5], [13], [0, 2], [0, 5], [0, 5, 13]]) {\n\t\t\tfor (const rebasePositions of [[0], [1], [5, 9], [5, 9, 12]]) {\n\t\t\t\tit(`with base positions ${basePositions} and rebase positions ${rebasePositions}`, () => {\n\t\t\t\t\trunTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\t\t\t\t\tbasePositions,\n\t\t\t\t\t\trebasePositions,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\tdescribe(\"Rebase test applying the reverse, base and then rebased changeset2\", () => {\n\t\tit(`with removes in the base`, () => {\n\t\t\trunTestApplyingReverseAndRebasedChangesetForIndependentModifications(\n\t\t\t\t[0],\n\t\t\t\t[2],\n\t\t\t\t\"remove\",\n\t\t\t\t2,\n\t\t\t);\n\t\t});\n\t});\n\n\tfunction testRebaseDistributivity(baseChangesets, rebaseChangeSet, base) {\n\t\t// First rebase with each CS independently\n\t\tconst rebasedCS1 = cloneDeep(rebaseChangeSet);\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tconst conflicts = [];\n\t\t\tnew ChangeSet(baseChangeSet)._rebaseChangeSet(rebasedCS1, conflicts);\n\t\t\tvalidateChangeSet(rebasedCS1);\n\t\t}\n\n\t\t// Now rebase with respect to the squashed base ChangeSets\n\t\tconst squashedBaseChangeSets = new ChangeSet();\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tsquashedBaseChangeSets.applyChangeSet(baseChangeSet);\n\t\t}\n\n\t\t// Test whether squashed base changes are consistent\n\t\tconst directApplication = new ChangeSet(cloneDeep(base));\n\t\tfor (const baseChangeSet of baseChangesets) {\n\t\t\tdirectApplication.applyChangeSet(baseChangeSet);\n\t\t}\n\t\tconst squashApplication = new ChangeSet(cloneDeep(base));\n\t\tsquashApplication.applyChangeSet(squashedBaseChangeSets);\n\t\texpect(directApplication.getSerializedChangeSet()).to.deep.equal(\n\t\t\tsquashApplication.getSerializedChangeSet(),\n\t\t);\n\n\t\tconst conflicts2 = [];\n\t\tconst rebasedCS2 = cloneDeep(rebaseChangeSet);\n\t\tnew ChangeSet(squashedBaseChangeSets)._rebaseChangeSet(rebasedCS2, conflicts2);\n\t\tvalidateChangeSet(rebasedCS2);\n\n\t\texpect(rebasedCS1).to.deep.equal(rebasedCS2);\n\n\t\treturn testRebasedApplies(cloneDeep(rebaseChangeSet), squashedBaseChangeSets, base);\n\t}\n\n\tdescribe(\"Rebase Distributivity\", () => {\n\t\tdescribe(\"Multiple inserts in a remove range\", () => {\n\t\t\tfor (const insertPosition of [0, 1, 3, 5, 7, 12]) {\n\t\t\t\tit(`Position ${insertPosition}`, () => {\n\t\t\t\t\ttestRebaseDistributivity(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[6, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tinsert: [[9, generateNamedEntities(1)]],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t\t\t[2, generateNamedEntities(4)],\n\t\t\t\t\t\t\t\t\t[7, generateNamedEntities(2)],\n\t\t\t\t\t\t\t\t\t[10, generateNamedEntities(2)],\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\tinsert: [[insertPosition, generateNamedEntities(1)]],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tit(\"Rebasing an insert with respect to a remove + insert\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"remove + insert at start of array\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Rebased remove that cancels out\", () => {\n\t\t\tconst deltacS = testRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst arrayCS = getArrayCS(deltacS);\n\t\t\texpect(arrayCS.insert[0][1].length).to.equal(3);\n\t\t\texpect(arrayCS.remove[0][1].length).to.equal(1);\n\t\t});\n\t\tit(\"Insert in between two removes 1\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[0, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[1, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Insert in between two removes 2\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[3, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Inserts in between three removes\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[6, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[3, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[3, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Adjacent remove with insert at the beginning of the remove range\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[1, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[8, generateNamedEntities(2)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [[8, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[8, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out 2\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[8, generateNamedEntities(3)]],\n\t\t\t\t\t}),\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t// [8, generateNamedEntities(1)],\n\t\t\t\t\t\t\t[8, generateNamedEntities(1)],\n\t\t\t\t\t\t\t[17, generateNamedEntities(1)],\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[8, generateNamedEntities(1, [3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t\tit(\"Remove operation that cancels out in the middle of a range\", () => {\n\t\t\ttestRebaseDistributivity(\n\t\t\t\t[\n\t\t\t\t\tcreateArrayCS({\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[3, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(14)]],\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t});\n\n\tfunction validateChangeSet(CS) {\n\t\tconst arrayCS = getArrayCS(CS);\n\n\t\tconst insertPositions = new Set<number>();\n\t\tif (arrayCS.insert) {\n\t\t\tarrayCS.insert.forEach((x) => insertPositions.add(x[0]));\n\t\t}\n\t\tfor (const type of [\"insert\", \"modify\", \"remove\"]) {\n\t\t\tconst changes = arrayCS[type];\n\n\t\t\t// Make sure the entries are sorted\n\t\t\tif (changes !== undefined) {\n\t\t\t\tlet lastIndex = -5;\n\t\t\t\tlet lastLength = 0;\n\t\t\t\tfor (const entry of changes) {\n\t\t\t\t\t// Ranges should not be adjacent. However, they might be interrupted, if there is an insert\n\t\t\t\t\t// inside the range\n\t\t\t\t\tlet indexOffset = 1;\n\t\t\t\t\tif (type === \"remove\" || type === \"modify\") {\n\t\t\t\t\t\tindexOffset = lastLength;\n\t\t\t\t\t\tif (!insertPositions.has(lastIndex + indexOffset)) {\n\t\t\t\t\t\t\tindexOffset += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tassert(\n\t\t\t\t\t\tentry[0] >= lastIndex + indexOffset,\n\t\t\t\t\t\t\"Changeset operations are not sorted or not merged\",\n\t\t\t\t\t);\n\t\t\t\t\tlastIndex = entry[0];\n\t\t\t\t\tlastLength = !isNumber(entry[1]) ? entry[1].length : entry[1];\n\n\t\t\t\t\t// Inserts must not lie within modify or remove ranges\n\t\t\t\t\tif (type === \"remove\" || type === \"modify\") {\n\t\t\t\t\t\tinsertPositions.forEach((i) =>\n\t\t\t\t\t\t\tassert(\n\t\t\t\t\t\t\t\ti <= lastIndex || i >= lastIndex + lastLength,\n\t\t\t\t\t\t\t\t`Insert within ${type} range.`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction testApplyAssociativity(base, operations, customValidator?) {\n\t\tconst combinedCS = new ChangeSet();\n\t\toperations.forEach(combinedCS.applyChangeSet.bind(combinedCS));\n\t\tvalidateChangeSet(combinedCS);\n\n\t\t// Individually apply the operations\n\t\tconst separateApplysResult = new ChangeSet(cloneDeep(base));\n\t\toperations.forEach(separateApplysResult.applyChangeSet.bind(separateApplysResult));\n\t\tvalidateChangeSet(separateApplysResult);\n\n\t\t// And apply the combined CS\n\t\tconst combinedApplyResult = new ChangeSet(cloneDeep(base));\n\t\tcombinedApplyResult.applyChangeSet(combinedCS);\n\n\t\tif (customValidator !== undefined) {\n\t\t\tcustomValidator(combinedCS, separateApplysResult, combinedApplyResult);\n\t\t}\n\n\t\texpect(separateApplysResult.getSerializedChangeSet()).to.deep.equal(\n\t\t\tcombinedApplyResult.getSerializedChangeSet(),\n\t\t);\n\t}\n\n\tdescribe(\"Apply Associativity\", () => {\n\t\tit(\"insert + remove + insert\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(3)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[2, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[3, generateNamedEntities(2, [1, 3])]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[2, generateNamedEntities(1)]],\n\t\t\t\t}),\n\t\t\t];\n\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tdescribe(\"Inserting into a remove range with deletes on both sides\", () => {\n\t\t\tfor (const additionalInserts of [\n\t\t\t\t\"\",\n\t\t\t\t\" with insert at the beginning\",\n\t\t\t\t\" with insert at the end\",\n\t\t\t]) {\n\t\t\t\tconst offset = additionalInserts === \" with insert at the beginning\" ? 2 : 0;\n\t\t\t\tfor (const i of range(1, 9)) {\n\t\t\t\t\tit(`at position ${i + offset}${additionalInserts}`, () => {\n\t\t\t\t\t\tconst initial = createArrayCS(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"insert\",\n\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet initialInserts = [];\n\t\t\t\t\t\tlet finalInserts = [];\n\t\t\t\t\t\tif (additionalInserts === \" with insert at the beginning\") {\n\t\t\t\t\t\t\tinitialInserts = [[0, generateNamedEntities(2, undefined, \"number\")]];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (additionalInserts === \" with insert at the end\") {\n\t\t\t\t\t\t\tfinalInserts = [[10, generateNamedEntities(2, undefined, \"number\")]];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst ops = [\n\t\t\t\t\t\t\tcreateArrayCS(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t\t\t\t...initialInserts,\n\t\t\t\t\t\t\t\t\t\t[2, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t\t[7, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t\t...finalInserts,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tremove: [[2, generateNamedEntities(5, undefined, \"number\")]],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcreateArrayCS(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t\t\t\t[i + offset, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t];\n\t\t\t\t\t\ttestApplyAssociativity(initial, ops, (combinedCS) => {\n\t\t\t\t\t\t\tconst arrayCS = getArrayCS(combinedCS);\n\t\t\t\t\t\t\texpect(arrayCS.insert.length).to.equal(\n\t\t\t\t\t\t\t\t(i >= 2 && i < 8 ? 2 : 3) + (additionalInserts !== \"\" ? 1 : 0),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst insertOffset =\n\t\t\t\t\t\t\t\tadditionalInserts == \" with insert at the beginning\" ? 1 : 0;\n\t\t\t\t\t\t\tif (i >= 2 && i <= 4) {\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[0 + insertOffset][1].length).to.equal(4);\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[1 + insertOffset][1].length).to.equal(3);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (i > 4 && i < 8) {\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[0 + insertOffset][1].length).to.equal(2);\n\t\t\t\t\t\t\t\texpect(arrayCS.insert[1 + insertOffset][1].length).to.equal(5);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tit(\"remove overlapping insert and remove ranges\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(6, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[2, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Overlapping remove / insert\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(5, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[4, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Removing multiple inserts and removes\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(4, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[0, generateNamedEntities(6, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Removing insert/removes at the end\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10, undefined, \"number\")]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t\t\"array<Float64>\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tinsert: [\n\t\t\t\t\t\t\t[0, generateNamedEntities(2, undefined, \"number\")],\n\t\t\t\t\t\t\t[1, generateNamedEntities(1, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(4, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t\tremove: [\n\t\t\t\t\t\t\t[1, generateNamedEntities(3, undefined, \"number\")],\n\t\t\t\t\t\t\t[4, generateNamedEntities(5, undefined, \"number\")],\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t\tcreateArrayCS(\n\t\t\t\t\t{\n\t\t\t\t\t\tremove: [[6, generateNamedEntities(2, undefined, \"number\")]],\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"array<Float64>\",\n\t\t\t\t),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t\tit(\"Insert with overlapping remove\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[1, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[1, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Failed case\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(7)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[0, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[1, generateNamedEntities(2)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\n\t\tit(\"Failed case\", () => {\n\t\t\tconst initial = createArrayCS(\n\t\t\t\t{\n\t\t\t\t\tinsert: [[0, generateNamedEntities(10)]],\n\t\t\t\t},\n\t\t\t\t\"insert\",\n\t\t\t);\n\n\t\t\tconst ops = [\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tinsert: [[0, generateNamedEntities(5)]],\n\t\t\t\t}),\n\t\t\t\tcreateArrayCS({\n\t\t\t\t\tremove: [[4, generateNamedEntities(1)]],\n\t\t\t\t\tinsert: [[5, generateNamedEntities(3)]],\n\t\t\t\t}),\n\t\t\t];\n\t\t\ttestApplyAssociativity(initial, ops);\n\t\t});\n\t});\n\n\tdescribe(\"Apply with removes in both changesets\", () => {\n\t\tfor (const startInsertA of [true, false]) {\n\t\t\tfor (const startInsertB of [true, false]) {\n\t\t\t\tfor (const removeInsertA of [true, false]) {\n\t\t\t\t\tfor (const removeInsertB of [true, false]) {\n\t\t\t\t\t\tfor (const removeInsideInsertB of [\"adjacent\", \"separate\", false]) {\n\t\t\t\t\t\t\tconst insertNames = [];\n\t\t\t\t\t\t\tif (startInsertA) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"at start of A\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (startInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"at start of B\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsertA) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"before remove in A\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\"before remove in B\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removeInsideInsertB) {\n\t\t\t\t\t\t\t\tinsertNames.push(\n\t\t\t\t\t\t\t\t\t`inside remove range in B (${removeInsideInsertB})`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet title = \"with \";\n\t\t\t\t\t\t\ttitle +=\n\t\t\t\t\t\t\t\tinsertNames.length === 0\n\t\t\t\t\t\t\t\t\t? \"no inserts\"\n\t\t\t\t\t\t\t\t\t: `inserts ${insertNames.join(\", \")}`;\n\t\t\t\t\t\t\tit(title, () => {\n\t\t\t\t\t\t\t\tconst insertsA = [];\n\t\t\t\t\t\t\t\tconst insertsB = [];\n\t\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\t\tif (startInsertA) {\n\t\t\t\t\t\t\t\t\tinsertsA.push([0, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t\toffset += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsertA) {\n\t\t\t\t\t\t\t\t\tinsertsA.push([5, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t\toffset += 1;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet removesB = [[5 + offset, generateNamedEntities(3)]];\n\t\t\t\t\t\t\t\tif (startInsertB) {\n\t\t\t\t\t\t\t\t\tinsertsB.push([0, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsertB) {\n\t\t\t\t\t\t\t\t\tinsertsB.push([5 + offset, generateNamedEntities(1)]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (removeInsideInsertB) {\n\t\t\t\t\t\t\t\t\tconst removeOffset = removeInsideInsertB === \"separate\" ? 1 : 0;\n\n\t\t\t\t\t\t\t\t\tinsertsB.push([\n\t\t\t\t\t\t\t\t\t\t6 + offset + removeOffset,\n\t\t\t\t\t\t\t\t\t\tgenerateNamedEntities(1),\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\tremovesB = [\n\t\t\t\t\t\t\t\t\t\t[5 + offset + removeOffset, generateNamedEntities(1)],\n\t\t\t\t\t\t\t\t\t\t[6 + offset + removeOffset, generateNamedEntities(1)],\n\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst CS1 = createArrayCS({\n\t\t\t\t\t\t\t\t\tinsert: insertsA,\n\t\t\t\t\t\t\t\t\tremove: [[5, generateNamedEntities(3)]],\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst CS2 = createArrayCS({\n\t\t\t\t\t\t\t\t\tinsert: insertsB,\n\t\t\t\t\t\t\t\t\tremove: removesB,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tconst CS = new ChangeSet(CS1);\n\t\t\t\t\t\t\t\tCS.applyChangeSet(CS2);\n\t\t\t\t\t\t\t\tvalidateChangeSet(CS.getSerializedChangeSet());\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n});\n"]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /*!
4
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ const chai_1 = require("chai");
8
+ const lodash_1 = require("lodash");
9
+ const changeset_1 = require("../changeset");
10
+ describe("Indexed Collection Operations", function () {
11
+ it("modifications should rebase to a NOP for polymorphic collection, when the type of a primitive property changes in the base ChangeSet", () => {
12
+ // Modification to a float property
13
+ const modification = {
14
+ modify: {
15
+ Float64: {
16
+ test: {
17
+ value: 10,
18
+ oldValue: 5,
19
+ },
20
+ },
21
+ },
22
+ };
23
+ // Base Changeset that changes the typeif of the property
24
+ const base = {
25
+ remove: {
26
+ Float64: {
27
+ test: 5,
28
+ },
29
+ },
30
+ insert: {
31
+ String: {
32
+ test: "TestString",
33
+ },
34
+ },
35
+ };
36
+ const conflicts = [];
37
+ new changeset_1.ChangeSet(base)._rebaseChangeSet(modification, conflicts);
38
+ (0, chai_1.expect)(modification).to.be.empty;
39
+ });
40
+ it("modifications should stay unmodified for primitive collections in the case of a insert/remove", () => {
41
+ // Modification to a float property
42
+ const modification = {
43
+ modify: {
44
+ "map<Float64>": {
45
+ test: {
46
+ modify: {
47
+ entry: {
48
+ value: 10,
49
+ oldValue: 5,
50
+ },
51
+ },
52
+ },
53
+ },
54
+ },
55
+ };
56
+ // Base Changeset that changes the typeif of the property
57
+ const base = {
58
+ modify: {
59
+ "map<Float64>": {
60
+ test: {
61
+ remove: {
62
+ entry: 5,
63
+ },
64
+ insert: {
65
+ entry: 9,
66
+ },
67
+ },
68
+ },
69
+ },
70
+ };
71
+ let originalCS = (0, lodash_1.cloneDeep)(modification);
72
+ const conflicts = [];
73
+ new changeset_1.ChangeSet(base)._rebaseChangeSet(modification, conflicts);
74
+ (0, chai_1.expect)(modification).to.deep.equal(originalCS);
75
+ });
76
+ });
77
+ //# sourceMappingURL=indexedCollection.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedCollection.spec.js","sourceRoot":"","sources":["../../src/test/indexedCollection.spec.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,+BAA8B;AAC9B,mCAAmC;AACnC,4CAAyC;AAEzC,QAAQ,CAAC,+BAA+B,EAAE;IACzC,EAAE,CAAC,sIAAsI,EAAE,GAAG,EAAE;QAC/I,mCAAmC;QACnC,MAAM,YAAY,GAAG;YACpB,MAAM,EAAE;gBACP,OAAO,EAAE;oBACR,IAAI,EAAE;wBACL,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,CAAC;qBACX;iBACD;aACD;SACD,CAAC;QAEF,yDAAyD;QACzD,MAAM,IAAI,GAAG;YACZ,MAAM,EAAE;gBACP,OAAO,EAAE;oBACR,IAAI,EAAE,CAAC;iBACP;aACD;YACD,MAAM,EAAE;gBACP,MAAM,EAAE;oBACP,IAAI,EAAE,YAAY;iBAClB;aACD;SACD,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACxG,mCAAmC;QACnC,MAAM,YAAY,GAAG;YACpB,MAAM,EAAE;gBACP,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,MAAM,EAAE;4BACP,KAAK,EAAE;gCACN,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,CAAC;6BACX;yBACD;qBACD;iBACD;aACD;SACD,CAAC;QAEF,yDAAyD;QACzD,MAAM,IAAI,GAAG;YACZ,MAAM,EAAE;gBACP,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,MAAM,EAAE;4BACP,KAAK,EAAE,CAAC;yBACR;wBACD,MAAM,EAAE;4BACP,KAAK,EAAE,CAAC;yBACR;qBACD;iBACD;aACD;SACD,CAAC;QAEF,IAAI,UAAU,GAAG,IAAA,kBAAS,EAAC,YAAY,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { expect } from \"chai\";\nimport { cloneDeep } from \"lodash\";\nimport { ChangeSet } from \"../changeset\";\n\ndescribe(\"Indexed Collection Operations\", function () {\n\tit(\"modifications should rebase to a NOP for polymorphic collection, when the type of a primitive property changes in the base ChangeSet\", () => {\n\t\t// Modification to a float property\n\t\tconst modification = {\n\t\t\tmodify: {\n\t\t\t\tFloat64: {\n\t\t\t\t\ttest: {\n\t\t\t\t\t\tvalue: 10,\n\t\t\t\t\t\toldValue: 5,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\t// Base Changeset that changes the typeif of the property\n\t\tconst base = {\n\t\t\tremove: {\n\t\t\t\tFloat64: {\n\t\t\t\t\ttest: 5,\n\t\t\t\t},\n\t\t\t},\n\t\t\tinsert: {\n\t\t\t\tString: {\n\t\t\t\t\ttest: \"TestString\",\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst conflicts = [];\n\t\tnew ChangeSet(base)._rebaseChangeSet(modification, conflicts);\n\n\t\texpect(modification).to.be.empty;\n\t});\n\n\tit(\"modifications should stay unmodified for primitive collections in the case of a insert/remove\", () => {\n\t\t// Modification to a float property\n\t\tconst modification = {\n\t\t\tmodify: {\n\t\t\t\t\"map<Float64>\": {\n\t\t\t\t\ttest: {\n\t\t\t\t\t\tmodify: {\n\t\t\t\t\t\t\tentry: {\n\t\t\t\t\t\t\t\tvalue: 10,\n\t\t\t\t\t\t\t\toldValue: 5,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\t// Base Changeset that changes the typeif of the property\n\t\tconst base = {\n\t\t\tmodify: {\n\t\t\t\t\"map<Float64>\": {\n\t\t\t\t\ttest: {\n\t\t\t\t\t\tremove: {\n\t\t\t\t\t\t\tentry: 5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tentry: 9,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tlet originalCS = cloneDeep(modification);\n\t\tconst conflicts = [];\n\t\tnew ChangeSet(base)._rebaseChangeSet(modification, conflicts);\n\n\t\texpect(modification).to.deep.equal(originalCS);\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/common.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/array.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/collection.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/date.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/function.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/lang.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/math.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/number.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/object.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/seq.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/string.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/util.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/index.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/isEmpty.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/isNumber.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/range.d.ts","../changeset_operations/operationTypes.d.ts","../changeset_operations/arrayChangesetIterator.d.ts","../changeset_operations/array.d.ts","../changeset_operations/changesetConflictTypes.d.ts","../changeset_operations/indexedCollection.d.ts","../changeset.d.ts","../../src/test/array.spec.ts","../changeset_operations/isEmptyChangeset.d.ts","../../src/test/map.spec.ts","../pathHelper.d.ts","../../src/test/pathHelper.spec.ts","../../src/test/reversibleCs.spec.ts","../validationResultBuilder.d.ts","../templateValidator.d.ts","../helpers/typeidHelper.d.ts","../../src/test/schemaValidator.ts","../../src/test/schemas/badBothPropertiesAndTypeid.ts","../../src/test/schemas/badInvalidSemverInTypeid.ts","../../src/test/schemas/badMissingSemverInTypeid.ts","../../src/test/schemas/badNestedProperties.ts","../../src/test/schemas/badPrimitiveTypeid.ts","../../src/test/schemas/badVersionedTypeid.ts","../../src/test/schemas/goodColorPalette.ts","../../src/test/schemas/goodDraftAsVersion.ts","../../src/test/schemas/goodPointId.ts","../../src/test/schemas/goodReferenceAndRegular.ts","../../src/test/schemas/goodReservedTypes.ts","../../src/test/schemas/goodUIBorder.ts","../../src/test/validator/templateSyntax.spec.ts","../../src/test/validator/templateValidator.spec.ts","../../src/test/validator/typeidHelper.spec.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/buffer.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/child_process.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/cluster.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/console.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/constants.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/crypto.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dgram.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/domain.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/events.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http2.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/https.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/inspector.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/module.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/net.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/os.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/path.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/process.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/punycode.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/querystring.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/readline.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/repl.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/web.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/test.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tls.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/trace_events.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tty.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/url.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/util.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/v8.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/vm.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/wasi.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/zlib.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.global.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/index.d.ts","../../../../../../node_modules/.pnpm/@types+mocha@9.1.1/node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"8dcd8273655aef81be9c273e532a55f56032c7907b20f8ed4d069f7eec44ace8","e3602c7ef8cfedd027c02a023075b2c7ba2705d26ec521a8e95f2084f4a138ba","9b58c2cbd15e7c2c5ccd13f983fa2ef06c8c32724787b1f5bf1642129a0ac3c2","eae9ad23597af5ac54f91efac6486eacf994957236dcbf230ac67dab40023e5b","521e70241ef4038881395d05db810a4f0dd00b2071cb1955a0e7b284616170c6","8d3b1fdcee39e70bcbc6976ba80bdc15225d5ec04a098544a32797abfb5c2d7e","adfadc223af3b2425a1575f2196499bd2dd9375bb517f90bbc7b3a960c8905a2","8d26f5b4902f2667abf2a87ecd8fa6515df66e9ce046598f1a2219d0b96f6738","8693d88f245daff57686cce74892ca08d3e0b6bc2fa2807a753206f2ab0bcd9c","39bdc062a85185cf200ef55ee246ba187adc9f2c6dc01e1f5037abee034bbf15","0227637b85ed3c9c62556924514ba11ccd70089c928fa55f1d7298fd0a0004b5","966e998cfbbbd3432d4c85d3a408c31d2806fd0e000265b0e02fc6d179bd672e","611749d885e410001cab7d625413d2f611b0af8a80b6bd8515bc6171588a8766","4d2ab92c7e6177d9957db25e730ab8ad654cc44fb5b4b6e6a4dc4ef0a7081145","8bb18373931214e34b22f150339ad0adc489c1d2c4614f651742f0b1f80b764d","d4d96bd3048618f17f8de6a9e93028e003bf7504ede4d7dccd14a2716fab2324","f40b2bb8fa900085595ff9568f48c40d244bc8f282712edd7a3821f16ee68d29","1b12d595dd1e97a680b058631f653f4cb340b04f70c6785d1d62433c16bc041e","79805efd67a851e41ed4b8eecc35b8af82ab51faa64d2810b4c06ea9f7f86c09",{"version":"f24e5fbf285f61ee4408e487552fe42302845ebb0c56502392753549605adf3c","affectsGlobalScope":true},{"version":"e3163cdc463800856499463903d39909fa61ddeae8ce9ebd494e3e597e90fb11","affectsGlobalScope":true},{"version":"1e3eb5ae0254be73a073028eb82b498a295a8673db67126e9a22ad3a91bbdb97","affectsGlobalScope":true},{"version":"e50f3fe53016d8b2e19de18e7e4302c11645148554e267f575fea091090433fb","affectsGlobalScope":true},{"version":"1c5df11308d9ca2a1885794460e15c1ee1e4e742d37a03a31746b6ac98b019d6","affectsGlobalScope":true},{"version":"8ca5261c2267d675310520f3b80a27751fcbf6af6b290573cda8fd994e529b8d","affectsGlobalScope":true},{"version":"f3b8104a3638c305e8417622ce05ec39938638cd5271ae4d763b678fd9a474a5","affectsGlobalScope":true},{"version":"431087b067ee7de63f314ac7c3d160bf201e3c72b8c0f645449ea9c42a4b4b72","affectsGlobalScope":true},{"version":"23a8d3930d7756c8ebd9317f769f2dbc1bfcf2209eabf03e3ad3a7084c93b768","affectsGlobalScope":true},{"version":"ac3931cbbdf957519a182fcb974156ac34ba650f87ce6c18e75c8d1d695e8b53","affectsGlobalScope":true},{"version":"6a5da0d0f91bd39a7fba09e287a609dedcce46cbfd7fd1f9e56cde97a4bc23d9","affectsGlobalScope":true},{"version":"fa89162c6398e0c1034df9aad15289b366708f32695a60bf6819a60e042759f9","affectsGlobalScope":true},"520f54d6f2a53add71cacc92135eedf82904f08ceeda3b6742808b23b6fcea74","287306ef636603597524d3035b26770d6e2daf78b56f3976bb6978657ef44753","b406a03731b63302d815ef70651eed838c3e580f2949758d94f1c37cd0fdae45","d655233b800bf949a46bdf90c9830d1aa4e3017864e2f18ec25ad4c3511e891e","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"a558bcef01ec7b06465c6c754d0c2b47ecc8d3e877051eac3014afa11ed51248","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"ad0d1ec49330f9155698108dcd923031626500d80006e94cc07102c7be907ec8","affectsGlobalScope":true},"fa9257e0d44930c1c6765fec51133a65721a8cdfc385d92926b64f78c662b7bb","6816b69b0921d55c3fe01e614a11af57e87209b8ef96b73c09bcce827a71d7d7",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","6bf5e8ef80f3a5acb7350a8bfaf537da6102e823b43b5d324e2fbe98bcda76f0","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","1fe890b27eb2539f40c281729b863111453b8dd848188d0f6aa8676c2c03286c","18f177e442b4cdbc5efb82e7c344201a11e4a4342ff1f19f8765b849e254e2ec","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"463efd627d153a27705e807a001106f9b8b3eb7f8ee17618b67ee35dfc226f5e","58e6ce808ad556f72c4b882546b7cd023c7f5804c854edf77b6a8a6b59b68644","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","0034f55fd438f31ba1f0b340dceef3b77d9a89f5218e5875a990b4eff2a5714d","288dd0c774a5c6e3964084c7a2bc8cc6b746d70f44a9892d028d04f915cf7ebc","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"f7011a8d17a06e60dc591fd89b7bf40507d36a5a4d5913fa0eff4e18da001759","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","1269471ffb1fe65ca0430877d1fd1200d8432505df65027dac78ec1a7e847a08","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"77c64e668dc7e3db451a6c966e475bc9594678a3675489dc8fc2c1240b83c524","affectsGlobalScope":true},"fdf6f22ef3df566a42e056cd430623b691eccca7c83b1c3ba946c0cfb2595e32","196aeae43911b66bac5d87d7eba460c4d27561257737931f5a1e6e1babcf55a6","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true}],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"inlineSources":true,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":false,"target":7},"fileIdsList":[[59,60,61,132],[58,62,132],[57,62,132],[132],[62,132],[69,132],[54,55,56,62,132],[62,64,132],[66,132],[70,71,132],[72,132],[70,72,132],[71,132],[41,43,44,45,46,47,48,49,50,51,52,53,132],[41,42,44,45,46,47,48,49,50,51,52,53,132],[42,43,44,45,46,47,48,49,50,51,52,53,132],[41,42,43,45,46,47,48,49,50,51,52,53,132],[41,42,43,44,46,47,48,49,50,51,52,53,132],[41,42,43,44,45,47,48,49,50,51,52,53,132],[41,42,43,44,45,46,48,49,50,51,52,53,132],[41,42,43,44,45,46,47,49,50,51,52,53,132],[41,42,43,44,45,46,47,48,50,51,52,53,132],[41,42,43,44,45,46,47,48,49,51,52,53,132],[41,42,43,44,45,46,47,48,49,50,52,53,132],[41,42,43,44,45,46,47,48,49,50,51,53,132],[41,42,43,44,45,46,47,48,49,50,51,52,132],[53,132],[88,132],[91,132],[92,97,123,132],[93,103,104,111,120,131,132],[93,94,103,111,132],[95,132],[96,97,104,112,132],[97,120,128,132],[98,100,103,111,132],[99,132],[100,101,132],[102,103,132],[103,132],[103,104,105,120,131,132],[103,104,105,120,132],[106,111,120,131,132],[103,104,106,107,111,120,128,131,132],[106,108,120,128,131,132],[88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[103,109,132],[110,131,132],[100,103,111,120,132],[112,132],[113,132],[91,114,132],[115,130,132,136],[116,132],[117,132],[103,118,132],[118,119,132,134],[92,103,120,121,122,132],[92,120,122,132],[120,121,132],[123,132],[124,132],[103,126,127,132],[126,127,132],[97,111,128,132],[129,132],[111,130,132],[92,106,117,131,132],[97,132],[120,132,133],[132,134],[132,135],[92,97,103,105,114,120,131,132,134,136],[120,132,137]],"referencedMap":[[62,1],[59,2],[58,3],[60,4],[61,5],[64,5],[57,4],[71,4],[66,4],[70,6],[69,4],[63,7],[65,8],[67,9],[68,5],[72,10],[73,4],[74,4],[75,4],[76,4],[77,4],[78,4],[79,4],[80,4],[81,4],[82,4],[83,4],[84,4],[85,11],[86,12],[87,13],[42,14],[43,15],[41,16],[44,17],[45,18],[46,19],[47,20],[48,21],[49,22],[50,23],[51,24],[52,25],[53,26],[54,27],[55,27],[56,27],[140,4],[88,28],[89,28],[91,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,38],[102,39],[103,40],[104,41],[105,42],[90,4],[138,4],[106,43],[107,44],[108,45],[139,46],[109,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[122,59],[121,60],[123,61],[124,62],[125,4],[126,63],[127,64],[128,65],[129,66],[130,67],[131,68],[132,69],[133,70],[134,71],[135,72],[136,73],[137,74],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[4,4],[23,4],[20,4],[21,4],[22,4],[24,4],[25,4],[26,4],[5,4],[27,4],[28,4],[29,4],[30,4],[6,4],[31,4],[32,4],[33,4],[34,4],[7,4],[39,4],[35,4],[36,4],[37,4],[38,4],[1,4],[40,4]],"exportedModulesMap":[[62,1],[59,2],[58,3],[60,4],[61,5],[64,5],[57,4],[71,4],[66,4],[70,6],[69,4],[63,7],[65,8],[67,9],[68,5],[72,10],[73,4],[74,4],[75,4],[76,4],[77,4],[78,4],[79,4],[80,4],[81,4],[82,4],[83,4],[84,4],[85,11],[86,12],[87,13],[42,14],[43,15],[41,16],[44,17],[45,18],[46,19],[47,20],[48,21],[49,22],[50,23],[51,24],[52,25],[53,26],[54,27],[55,27],[56,27],[140,4],[88,28],[89,28],[91,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,38],[102,39],[103,40],[104,41],[105,42],[90,4],[138,4],[106,43],[107,44],[108,45],[139,46],[109,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[122,59],[121,60],[123,61],[124,62],[125,4],[126,63],[127,64],[128,65],[129,66],[130,67],[131,68],[132,69],[133,70],[134,71],[135,72],[136,73],[137,74],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[4,4],[23,4],[20,4],[21,4],[22,4],[24,4],[25,4],[26,4],[5,4],[27,4],[28,4],[29,4],[30,4],[6,4],[31,4],[32,4],[33,4],[34,4],[7,4],[39,4],[35,4],[36,4],[37,4],[38,4],[1,4],[40,4]],"semanticDiagnosticsPerFile":[62,59,58,60,61,64,57,71,66,70,69,63,65,67,68,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,42,43,41,44,45,46,47,48,49,50,51,52,53,54,55,56,140,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,90,138,106,107,108,139,109,110,111,112,113,114,115,116,117,118,119,120,122,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,39,35,36,37,38,1,40]},"version":"4.5.5"}
1
+ {"program":{"fileNames":["../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/common.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/array.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/collection.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/date.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/function.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/lang.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/math.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/number.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/object.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/seq.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/string.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/common/util.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/index.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/isEmpty.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/isNumber.d.ts","../../../../../../node_modules/.pnpm/@types+lodash@4.14.194/node_modules/@types/lodash/range.d.ts","../changeset_operations/operationTypes.d.ts","../changeset_operations/arrayChangesetIterator.d.ts","../changeset_operations/array.d.ts","../changeset_operations/changesetConflictTypes.d.ts","../changeset_operations/indexedCollection.d.ts","../changeset.d.ts","../../src/test/array.spec.ts","../../src/test/indexedCollection.spec.ts","../changeset_operations/isEmptyChangeset.d.ts","../../src/test/map.spec.ts","../pathHelper.d.ts","../../src/test/pathHelper.spec.ts","../../src/test/reversibleCs.spec.ts","../validationResultBuilder.d.ts","../templateValidator.d.ts","../helpers/typeidHelper.d.ts","../../src/test/schemaValidator.ts","../../src/test/schemas/badBothPropertiesAndTypeid.ts","../../src/test/schemas/badInvalidSemverInTypeid.ts","../../src/test/schemas/badMissingSemverInTypeid.ts","../../src/test/schemas/badNestedProperties.ts","../../src/test/schemas/badPrimitiveTypeid.ts","../../src/test/schemas/badVersionedTypeid.ts","../../src/test/schemas/goodColorPalette.ts","../../src/test/schemas/goodDraftAsVersion.ts","../../src/test/schemas/goodPointId.ts","../../src/test/schemas/goodReferenceAndRegular.ts","../../src/test/schemas/goodReservedTypes.ts","../../src/test/schemas/goodUIBorder.ts","../../src/test/validator/templateSyntax.spec.ts","../../src/test/validator/templateValidator.spec.ts","../../src/test/validator/typeidHelper.spec.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/buffer.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/child_process.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/cluster.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/console.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/constants.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/crypto.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dgram.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/domain.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/events.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http2.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/https.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/inspector.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/module.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/net.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/os.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/path.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/process.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/punycode.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/querystring.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/readline.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/repl.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/web.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/test.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tls.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/trace_events.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tty.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/url.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/util.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/v8.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/vm.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/wasi.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/zlib.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.global.d.ts","../../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/index.d.ts","../../../../../../node_modules/.pnpm/@types+mocha@9.1.1/node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"8dcd8273655aef81be9c273e532a55f56032c7907b20f8ed4d069f7eec44ace8","e3602c7ef8cfedd027c02a023075b2c7ba2705d26ec521a8e95f2084f4a138ba","9b58c2cbd15e7c2c5ccd13f983fa2ef06c8c32724787b1f5bf1642129a0ac3c2","eae9ad23597af5ac54f91efac6486eacf994957236dcbf230ac67dab40023e5b","521e70241ef4038881395d05db810a4f0dd00b2071cb1955a0e7b284616170c6","8d3b1fdcee39e70bcbc6976ba80bdc15225d5ec04a098544a32797abfb5c2d7e","adfadc223af3b2425a1575f2196499bd2dd9375bb517f90bbc7b3a960c8905a2","8d26f5b4902f2667abf2a87ecd8fa6515df66e9ce046598f1a2219d0b96f6738","8693d88f245daff57686cce74892ca08d3e0b6bc2fa2807a753206f2ab0bcd9c","7ad775ed8b252e7c314d357cc188f70827b700f493879980cbba9112aa3f4db5","a83fb6460502d9f4aadbe03fc4ed79ef1cf5c58810388a8caf41f64e208ee5ec","0227637b85ed3c9c62556924514ba11ccd70089c928fa55f1d7298fd0a0004b5","966e998cfbbbd3432d4c85d3a408c31d2806fd0e000265b0e02fc6d179bd672e","611749d885e410001cab7d625413d2f611b0af8a80b6bd8515bc6171588a8766","4d2ab92c7e6177d9957db25e730ab8ad654cc44fb5b4b6e6a4dc4ef0a7081145","8bb18373931214e34b22f150339ad0adc489c1d2c4614f651742f0b1f80b764d","d4d96bd3048618f17f8de6a9e93028e003bf7504ede4d7dccd14a2716fab2324","f40b2bb8fa900085595ff9568f48c40d244bc8f282712edd7a3821f16ee68d29","1b12d595dd1e97a680b058631f653f4cb340b04f70c6785d1d62433c16bc041e","79805efd67a851e41ed4b8eecc35b8af82ab51faa64d2810b4c06ea9f7f86c09",{"version":"f24e5fbf285f61ee4408e487552fe42302845ebb0c56502392753549605adf3c","affectsGlobalScope":true},{"version":"e3163cdc463800856499463903d39909fa61ddeae8ce9ebd494e3e597e90fb11","affectsGlobalScope":true},{"version":"1e3eb5ae0254be73a073028eb82b498a295a8673db67126e9a22ad3a91bbdb97","affectsGlobalScope":true},{"version":"e50f3fe53016d8b2e19de18e7e4302c11645148554e267f575fea091090433fb","affectsGlobalScope":true},{"version":"1c5df11308d9ca2a1885794460e15c1ee1e4e742d37a03a31746b6ac98b019d6","affectsGlobalScope":true},{"version":"8ca5261c2267d675310520f3b80a27751fcbf6af6b290573cda8fd994e529b8d","affectsGlobalScope":true},{"version":"f3b8104a3638c305e8417622ce05ec39938638cd5271ae4d763b678fd9a474a5","affectsGlobalScope":true},{"version":"431087b067ee7de63f314ac7c3d160bf201e3c72b8c0f645449ea9c42a4b4b72","affectsGlobalScope":true},{"version":"23a8d3930d7756c8ebd9317f769f2dbc1bfcf2209eabf03e3ad3a7084c93b768","affectsGlobalScope":true},{"version":"ac3931cbbdf957519a182fcb974156ac34ba650f87ce6c18e75c8d1d695e8b53","affectsGlobalScope":true},{"version":"6a5da0d0f91bd39a7fba09e287a609dedcce46cbfd7fd1f9e56cde97a4bc23d9","affectsGlobalScope":true},{"version":"fa89162c6398e0c1034df9aad15289b366708f32695a60bf6819a60e042759f9","affectsGlobalScope":true},"520f54d6f2a53add71cacc92135eedf82904f08ceeda3b6742808b23b6fcea74","287306ef636603597524d3035b26770d6e2daf78b56f3976bb6978657ef44753","b406a03731b63302d815ef70651eed838c3e580f2949758d94f1c37cd0fdae45","d655233b800bf949a46bdf90c9830d1aa4e3017864e2f18ec25ad4c3511e891e","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"a558bcef01ec7b06465c6c754d0c2b47ecc8d3e877051eac3014afa11ed51248","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"ad0d1ec49330f9155698108dcd923031626500d80006e94cc07102c7be907ec8","affectsGlobalScope":true},"fa9257e0d44930c1c6765fec51133a65721a8cdfc385d92926b64f78c662b7bb","6816b69b0921d55c3fe01e614a11af57e87209b8ef96b73c09bcce827a71d7d7",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","6bf5e8ef80f3a5acb7350a8bfaf537da6102e823b43b5d324e2fbe98bcda76f0","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","1fe890b27eb2539f40c281729b863111453b8dd848188d0f6aa8676c2c03286c","18f177e442b4cdbc5efb82e7c344201a11e4a4342ff1f19f8765b849e254e2ec","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"463efd627d153a27705e807a001106f9b8b3eb7f8ee17618b67ee35dfc226f5e","58e6ce808ad556f72c4b882546b7cd023c7f5804c854edf77b6a8a6b59b68644","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","0034f55fd438f31ba1f0b340dceef3b77d9a89f5218e5875a990b4eff2a5714d","288dd0c774a5c6e3964084c7a2bc8cc6b746d70f44a9892d028d04f915cf7ebc","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"f7011a8d17a06e60dc591fd89b7bf40507d36a5a4d5913fa0eff4e18da001759","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","1269471ffb1fe65ca0430877d1fd1200d8432505df65027dac78ec1a7e847a08","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"77c64e668dc7e3db451a6c966e475bc9594678a3675489dc8fc2c1240b83c524","affectsGlobalScope":true},"fdf6f22ef3df566a42e056cd430623b691eccca7c83b1c3ba946c0cfb2595e32","196aeae43911b66bac5d87d7eba460c4d27561257737931f5a1e6e1babcf55a6","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true}],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"inlineSources":true,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":false,"target":7},"fileIdsList":[[59,60,61,133],[58,62,133],[57,62,133],[133],[62,133],[70,133],[54,55,56,62,133],[53,62,133],[62,65,133],[67,133],[71,72,133],[73,133],[71,73,133],[72,133],[41,43,44,45,46,47,48,49,50,51,52,53,133],[41,42,44,45,46,47,48,49,50,51,52,53,133],[42,43,44,45,46,47,48,49,50,51,52,53,133],[41,42,43,45,46,47,48,49,50,51,52,53,133],[41,42,43,44,46,47,48,49,50,51,52,53,133],[41,42,43,44,45,47,48,49,50,51,52,53,133],[41,42,43,44,45,46,48,49,50,51,52,53,133],[41,42,43,44,45,46,47,49,50,51,52,53,133],[41,42,43,44,45,46,47,48,50,51,52,53,133],[41,42,43,44,45,46,47,48,49,51,52,53,133],[41,42,43,44,45,46,47,48,49,50,52,53,133],[41,42,43,44,45,46,47,48,49,50,51,53,133],[41,42,43,44,45,46,47,48,49,50,51,52,133],[53,133],[89,133],[92,133],[93,98,124,133],[94,104,105,112,121,132,133],[94,95,104,112,133],[96,133],[97,98,105,113,133],[98,121,129,133],[99,101,104,112,133],[100,133],[101,102,133],[103,104,133],[104,133],[104,105,106,121,132,133],[104,105,106,121,133],[107,112,121,132,133],[104,105,107,108,112,121,129,132,133],[107,109,121,129,132,133],[89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[104,110,133],[111,132,133],[101,104,112,121,133],[113,133],[114,133],[92,115,133],[116,131,133,137],[117,133],[118,133],[104,119,133],[119,120,133,135],[93,104,121,122,123,133],[93,121,123,133],[121,122,133],[124,133],[125,133],[104,127,128,133],[127,128,133],[98,112,129,133],[130,133],[112,131,133],[93,107,118,132,133],[98,133],[121,133,134],[133,135],[133,136],[93,98,104,106,115,121,132,133,135,137],[121,133,138]],"referencedMap":[[62,1],[59,2],[58,3],[60,4],[61,5],[65,5],[57,4],[72,4],[67,4],[71,6],[70,4],[63,7],[64,8],[66,9],[68,10],[69,5],[73,11],[74,4],[75,4],[76,4],[77,4],[78,4],[79,4],[80,4],[81,4],[82,4],[83,4],[84,4],[85,4],[86,12],[87,13],[88,14],[42,15],[43,16],[41,17],[44,18],[45,19],[46,20],[47,21],[48,22],[49,23],[50,24],[51,25],[52,26],[53,27],[54,28],[55,28],[56,28],[141,4],[89,29],[90,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,39],[102,39],[103,40],[104,41],[105,42],[106,43],[91,4],[139,4],[107,44],[108,45],[109,46],[140,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[123,60],[122,61],[124,62],[125,63],[126,4],[127,64],[128,65],[129,66],[130,67],[131,68],[132,69],[133,70],[134,71],[135,72],[136,73],[137,74],[138,75],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[4,4],[23,4],[20,4],[21,4],[22,4],[24,4],[25,4],[26,4],[5,4],[27,4],[28,4],[29,4],[30,4],[6,4],[31,4],[32,4],[33,4],[34,4],[7,4],[39,4],[35,4],[36,4],[37,4],[38,4],[1,4],[40,4]],"exportedModulesMap":[[62,1],[59,2],[58,3],[60,4],[61,5],[65,5],[57,4],[72,4],[67,4],[71,6],[70,4],[63,7],[64,8],[66,9],[68,10],[69,5],[73,11],[74,4],[75,4],[76,4],[77,4],[78,4],[79,4],[80,4],[81,4],[82,4],[83,4],[84,4],[85,4],[86,12],[87,13],[88,14],[42,15],[43,16],[41,17],[44,18],[45,19],[46,20],[47,21],[48,22],[49,23],[50,24],[51,25],[52,26],[53,27],[54,28],[55,28],[56,28],[141,4],[89,29],[90,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,39],[102,39],[103,40],[104,41],[105,42],[106,43],[91,4],[139,4],[107,44],[108,45],[109,46],[140,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[123,60],[122,61],[124,62],[125,63],[126,4],[127,64],[128,65],[129,66],[130,67],[131,68],[132,69],[133,70],[134,71],[135,72],[136,73],[137,74],[138,75],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[4,4],[23,4],[20,4],[21,4],[22,4],[24,4],[25,4],[26,4],[5,4],[27,4],[28,4],[29,4],[30,4],[6,4],[31,4],[32,4],[33,4],[34,4],[7,4],[39,4],[35,4],[36,4],[37,4],[38,4],[1,4],[40,4]],"semanticDiagnosticsPerFile":[62,59,58,60,61,65,57,72,67,71,70,63,64,66,68,69,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,42,43,41,44,45,46,47,48,49,50,51,52,53,54,55,56,141,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,91,139,107,108,109,140,110,111,112,113,114,115,116,117,118,119,120,121,123,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,39,35,36,37,38,1,40]},"version":"4.5.5"}