diff --git a/yarn-project/acir-simulator/src/acvm/acvm.ts b/yarn-project/acir-simulator/src/acvm/acvm.ts index 2019f32b101..5b07aca3abb 100644 --- a/yarn-project/acir-simulator/src/acvm/acvm.ts +++ b/yarn-project/acir-simulator/src/acvm/acvm.ts @@ -40,9 +40,6 @@ type ORACLE_NAMES = | 'enqueuePublicFunctionCall' | 'storageRead' | 'storageWrite' - | 'createCommitment' - | 'createL2ToL1Message' - | 'createNullifier' | 'getCommitment' | 'getL1ToL2Message' | 'getPortalContractAddress' diff --git a/yarn-project/acir-simulator/src/public/executor.ts b/yarn-project/acir-simulator/src/public/executor.ts index b9cf8f9f546..86eb9c35bfd 100644 --- a/yarn-project/acir-simulator/src/public/executor.ts +++ b/yarn-project/acir-simulator/src/public/executor.ts @@ -63,9 +63,6 @@ export class PublicExecutor { const initialWitness = getInitialWitness(execution.args, execution.callContext, this.blockData, globalVariables); const storageActions = new ContractStorageActionsCollector(this.stateDb, execution.contractAddress); - const newCommitments: Fr[] = []; - const newL2ToL1Messages: Fr[] = []; - const newNullifiers: Fr[] = []; const nestedExecutions: PublicExecutionResult[] = []; const unencryptedLogs = new FunctionL2Logs([]); // Functions can request to pack arguments before calling other functions. @@ -116,21 +113,6 @@ export class PublicExecutor { } return newValues.map(v => toACVMField(v)); }, - createCommitment: async ([commitment]) => { - this.log('Creating commitment: ' + commitment.toString()); - newCommitments.push(fromACVMField(commitment)); - return await Promise.resolve(ZERO_ACVM_FIELD); - }, - createL2ToL1Message: async ([message]) => { - this.log('Creating L2 to L1 message: ' + message.toString()); - newL2ToL1Messages.push(fromACVMField(message)); - return await Promise.resolve(ZERO_ACVM_FIELD); - }, - createNullifier: async ([nullifier]) => { - this.log('Creating nullifier: ' + nullifier.toString()); - newNullifiers.push(fromACVMField(nullifier)); - return await Promise.resolve(ZERO_ACVM_FIELD); - }, callPublicFunction: async ([address], [functionSelector], [argsHash]) => { const args = packedArgs.unpack(fromACVMField(argsHash)); this.log(`Public function call: addr=${address} selector=${functionSelector} args=${args.join(',')}`); @@ -161,7 +143,16 @@ export class PublicExecutor { }, }); - const { returnValues } = extractPublicCircuitPublicInputs(partialWitness, acir); + const { + returnValues, + newL2ToL1Msgs, + newCommitments: newCommitmentsPadded, + newNullifiers: newNullifiersPadded, + } = extractPublicCircuitPublicInputs(partialWitness, acir); + + const newL2ToL1Messages = newL2ToL1Msgs.filter(v => !v.isZero()); + const newCommitments = newCommitmentsPadded.filter(v => !v.isZero()); + const newNullifiers = newNullifiersPadded.filter(v => !v.isZero()); const [contractStorageReads, contractStorageUpdateRequests] = storageActions.collect(); this.log( diff --git a/yarn-project/aztec.js/src/abis/ecdsa_account_contract.json b/yarn-project/aztec.js/src/abis/ecdsa_account_contract.json index 91f3bd6e1d4..cc6ca54c468 100644 --- a/yarn-project/aztec.js/src/abis/ecdsa_account_contract.json +++ b/yarn-project/aztec.js/src/abis/ecdsa_account_contract.json @@ -398,17 +398,17 @@ }, { "span": { - "start": 955, - "end": 993 + "start": 996, + "end": 1034 }, - "file": 47 + "file": 48 }, { "span": { - "start": 1220, - "end": 1306 + "start": 1261, + "end": 1347 }, - "file": 47 + "file": 48 } ], "88": [ @@ -421,15 +421,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -438,14 +438,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -465,15 +465,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -482,14 +482,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -509,15 +509,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -526,14 +526,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -553,15 +553,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -570,14 +570,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -597,15 +597,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -614,14 +614,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -641,15 +641,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -658,14 +658,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -685,15 +685,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -702,14 +702,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -729,15 +729,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -746,14 +746,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -773,15 +773,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -790,14 +790,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -817,15 +817,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -834,14 +834,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -861,15 +861,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -878,14 +878,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -905,15 +905,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -922,14 +922,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -949,15 +949,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -966,14 +966,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -993,15 +993,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1010,14 +1010,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1037,15 +1037,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1054,14 +1054,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1081,15 +1081,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1098,14 +1098,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1125,15 +1125,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1142,14 +1142,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1169,15 +1169,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1186,14 +1186,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1213,15 +1213,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1230,14 +1230,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1257,15 +1257,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1274,14 +1274,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1301,15 +1301,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1318,14 +1318,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1345,15 +1345,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1362,14 +1362,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1389,15 +1389,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1406,14 +1406,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1433,15 +1433,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1450,14 +1450,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1477,15 +1477,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1494,14 +1494,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1521,15 +1521,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1538,14 +1538,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1565,15 +1565,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1582,14 +1582,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1609,15 +1609,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1626,14 +1626,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1653,15 +1653,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1670,14 +1670,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1697,15 +1697,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1714,14 +1714,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1741,15 +1741,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1758,14 +1758,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1785,15 +1785,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1802,14 +1802,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1829,15 +1829,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1846,14 +1846,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1873,15 +1873,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1890,14 +1890,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1917,15 +1917,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1934,14 +1934,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -1961,15 +1961,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -1978,14 +1978,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2005,15 +2005,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2022,14 +2022,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2049,15 +2049,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2066,14 +2066,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2093,15 +2093,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2110,14 +2110,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2137,15 +2137,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2154,14 +2154,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2181,15 +2181,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2198,14 +2198,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2225,15 +2225,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2242,14 +2242,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2269,15 +2269,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2286,14 +2286,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2313,15 +2313,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2330,14 +2330,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2357,15 +2357,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2374,14 +2374,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2401,15 +2401,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2418,14 +2418,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2445,15 +2445,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2462,14 +2462,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2489,15 +2489,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2506,14 +2506,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2533,15 +2533,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2550,14 +2550,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2577,15 +2577,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2594,14 +2594,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2621,15 +2621,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2638,14 +2638,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2665,15 +2665,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2682,14 +2682,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2709,15 +2709,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2726,14 +2726,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2753,15 +2753,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2770,14 +2770,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2797,15 +2797,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2814,14 +2814,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2841,15 +2841,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2858,14 +2858,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2885,15 +2885,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2902,14 +2902,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2929,15 +2929,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2946,14 +2946,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -2973,15 +2973,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -2990,14 +2990,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -3017,15 +3017,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -3034,14 +3034,14 @@ "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -3061,15 +3061,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -3078,7 +3078,7 @@ "start": 506, "end": 555 }, - "file": 45 + "file": 46 }, { "span": { @@ -3105,15 +3105,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1025 + "start": 909, + "end": 968 }, "file": 39 } @@ -3128,15 +3128,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -3151,15 +3151,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -3174,15 +3174,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -3197,15 +3197,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -3223,7 +3223,7 @@ "start": 367, "end": 398 }, - "file": 72 + "file": 70 } ], "158": [ @@ -3239,7 +3239,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "159": [ @@ -3255,7 +3255,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "160": [ @@ -3271,7 +3271,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "161": [ @@ -3287,7 +3287,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "162": [ @@ -3303,7 +3303,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "163": [ @@ -3848,15 +3848,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4012, - "end": 4058 + "start": 4107, + "end": 4153 }, "file": 40 } @@ -3871,22 +3871,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -3901,22 +3901,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -3931,22 +3931,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -3961,22 +3961,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -3991,22 +3991,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -4021,22 +4021,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -4051,22 +4051,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -4081,22 +4081,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -4111,22 +4111,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -4141,22 +4141,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -4171,15 +4171,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4188,7 +4188,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "119": [ @@ -4201,15 +4201,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4218,7 +4218,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "120": [ @@ -4231,15 +4231,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4248,7 +4248,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "121": [ @@ -4261,15 +4261,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4278,21 +4278,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4312,15 +4312,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4329,21 +4329,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4363,15 +4363,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4380,21 +4380,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4414,15 +4414,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4431,21 +4431,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4465,15 +4465,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4482,21 +4482,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4516,15 +4516,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4533,21 +4533,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4567,15 +4567,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4584,21 +4584,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4618,15 +4618,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4635,21 +4635,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4669,15 +4669,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4686,21 +4686,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4720,15 +4720,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4737,21 +4737,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4771,15 +4771,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4788,21 +4788,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4822,15 +4822,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4839,21 +4839,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4873,15 +4873,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4890,21 +4890,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4924,15 +4924,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4941,21 +4941,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -4975,15 +4975,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -4992,21 +4992,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5026,15 +5026,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5043,21 +5043,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5077,15 +5077,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5094,21 +5094,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5128,15 +5128,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5145,21 +5145,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5179,15 +5179,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5196,21 +5196,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5230,15 +5230,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5247,21 +5247,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5281,15 +5281,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5298,21 +5298,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5332,15 +5332,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5349,21 +5349,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5383,15 +5383,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5400,21 +5400,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5434,15 +5434,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5451,21 +5451,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5485,15 +5485,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5502,21 +5502,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5536,15 +5536,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5553,21 +5553,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5587,15 +5587,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5604,21 +5604,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5638,15 +5638,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5655,21 +5655,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5689,15 +5689,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5706,21 +5706,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5740,15 +5740,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5757,21 +5757,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5791,15 +5791,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5808,21 +5808,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5842,15 +5842,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5859,21 +5859,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5893,15 +5893,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5910,21 +5910,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5944,15 +5944,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -5961,21 +5961,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -5995,15 +5995,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6012,21 +6012,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6046,15 +6046,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6063,21 +6063,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6097,15 +6097,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6114,21 +6114,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6148,15 +6148,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6165,21 +6165,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6199,15 +6199,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6216,21 +6216,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6250,15 +6250,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6267,21 +6267,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6301,15 +6301,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6318,21 +6318,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6352,15 +6352,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6369,21 +6369,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6403,15 +6403,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6420,21 +6420,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6454,15 +6454,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6471,21 +6471,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6505,15 +6505,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6522,21 +6522,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6556,15 +6556,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6573,21 +6573,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6607,15 +6607,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6624,21 +6624,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6658,15 +6658,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6675,21 +6675,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6709,15 +6709,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6726,21 +6726,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6760,15 +6760,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6777,21 +6777,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6811,15 +6811,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6828,21 +6828,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6862,15 +6862,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6879,21 +6879,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6913,15 +6913,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6930,21 +6930,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -6964,15 +6964,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -6981,21 +6981,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7015,15 +7015,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7032,21 +7032,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7066,15 +7066,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7083,21 +7083,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7117,15 +7117,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7134,21 +7134,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7168,15 +7168,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7185,21 +7185,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7219,15 +7219,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7236,21 +7236,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7270,15 +7270,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7287,21 +7287,21 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7321,15 +7321,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7338,35 +7338,35 @@ "start": 2237, "end": 2301 }, - "file": 45 + "file": 46 }, { "span": { "start": 1187, "end": 1244 }, - "file": 45 + "file": 46 }, { "span": { "start": 805, "end": 861 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7386,15 +7386,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7403,35 +7403,35 @@ "start": 2237, "end": 2301 }, - "file": 45 + "file": 46 }, { "span": { "start": 1187, "end": 1244 }, - "file": 45 + "file": 46 }, { "span": { "start": 805, "end": 861 }, - "file": 45 + "file": 46 }, { "span": { "start": 476, "end": 498 }, - "file": 45 + "file": 46 }, { "span": { "start": 2895, "end": 2936 }, - "file": 83 + "file": 81 }, { "span": { @@ -7451,15 +7451,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -7468,14 +7468,14 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 506, "end": 555 }, - "file": 45 + "file": 46 }, { "span": { @@ -8531,7 +8531,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "259": [ @@ -8547,7 +8547,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "260": [ @@ -8563,7 +8563,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "261": [ @@ -8579,7 +8579,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8602,7 +8602,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8625,7 +8625,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8648,7 +8648,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8671,7 +8671,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8694,7 +8694,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8717,7 +8717,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8740,7 +8740,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8763,7 +8763,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8786,7 +8786,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8809,7 +8809,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8832,7 +8832,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8855,7 +8855,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8878,7 +8878,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8901,7 +8901,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8924,7 +8924,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8947,7 +8947,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8970,7 +8970,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8993,7 +8993,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9016,7 +9016,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9039,7 +9039,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9062,7 +9062,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9085,7 +9085,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9108,7 +9108,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9131,7 +9131,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9154,7 +9154,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9177,7 +9177,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9200,7 +9200,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9223,7 +9223,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9246,7 +9246,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9269,7 +9269,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9292,7 +9292,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9315,7 +9315,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9338,7 +9338,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9361,7 +9361,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9384,7 +9384,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9407,7 +9407,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9430,7 +9430,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9453,7 +9453,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9476,7 +9476,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9499,7 +9499,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9522,7 +9522,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9545,7 +9545,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9568,7 +9568,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9591,7 +9591,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9614,7 +9614,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9637,7 +9637,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9660,7 +9660,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9683,7 +9683,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9706,7 +9706,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9729,7 +9729,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9752,7 +9752,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9775,7 +9775,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9798,7 +9798,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9821,7 +9821,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9844,7 +9844,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9867,7 +9867,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9890,7 +9890,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9913,7 +9913,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9936,7 +9936,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9959,7 +9959,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9982,7 +9982,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10005,7 +10005,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10028,7 +10028,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10051,7 +10051,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10074,7 +10074,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10097,7 +10097,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10120,7 +10120,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10143,7 +10143,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10166,7 +10166,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10189,7 +10189,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10212,7 +10212,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10235,7 +10235,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10258,7 +10258,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10281,7 +10281,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10304,7 +10304,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10327,7 +10327,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10350,7 +10350,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10373,7 +10373,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10396,7 +10396,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10419,7 +10419,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10442,7 +10442,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10465,7 +10465,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10488,7 +10488,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10511,7 +10511,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10534,7 +10534,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10557,7 +10557,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10580,7 +10580,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10603,7 +10603,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10626,7 +10626,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10649,7 +10649,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10672,7 +10672,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10695,7 +10695,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10718,7 +10718,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10741,7 +10741,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10764,7 +10764,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10787,7 +10787,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10810,7 +10810,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10833,7 +10833,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10856,7 +10856,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10879,7 +10879,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10902,7 +10902,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10925,7 +10925,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10948,7 +10948,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10971,7 +10971,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -10994,7 +10994,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11017,7 +11017,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11040,7 +11040,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11063,7 +11063,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11086,7 +11086,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11109,7 +11109,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11132,7 +11132,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11155,7 +11155,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11178,7 +11178,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11201,7 +11201,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11224,7 +11224,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11247,7 +11247,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "384": [ @@ -11263,7 +11263,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "385": [ @@ -11279,7 +11279,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "386": [ @@ -11295,7 +11295,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11318,7 +11318,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11341,7 +11341,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11364,7 +11364,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11387,7 +11387,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11410,7 +11410,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11433,7 +11433,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11456,7 +11456,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11479,7 +11479,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11502,7 +11502,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11525,7 +11525,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11548,7 +11548,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11571,7 +11571,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11594,7 +11594,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11617,7 +11617,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11640,7 +11640,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11663,7 +11663,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11686,7 +11686,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11709,7 +11709,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11732,7 +11732,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11755,7 +11755,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11778,7 +11778,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11801,7 +11801,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11824,7 +11824,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11847,7 +11847,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11870,7 +11870,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11893,7 +11893,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11916,7 +11916,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11939,7 +11939,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11962,7 +11962,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -11985,7 +11985,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12008,7 +12008,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12031,7 +12031,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12054,7 +12054,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12077,7 +12077,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12100,7 +12100,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12123,7 +12123,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12146,7 +12146,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12169,7 +12169,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12192,7 +12192,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12215,7 +12215,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12238,7 +12238,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12261,7 +12261,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12284,7 +12284,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12307,7 +12307,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12330,7 +12330,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12353,7 +12353,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12376,7 +12376,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12399,7 +12399,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12422,7 +12422,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12445,7 +12445,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12468,7 +12468,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12491,7 +12491,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12514,7 +12514,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12537,7 +12537,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12560,7 +12560,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12583,7 +12583,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12606,7 +12606,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12629,7 +12629,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12652,7 +12652,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12675,7 +12675,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12698,7 +12698,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12721,7 +12721,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12744,7 +12744,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12767,7 +12767,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12790,7 +12790,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12813,7 +12813,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12836,7 +12836,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12859,7 +12859,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12882,7 +12882,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12905,7 +12905,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12928,7 +12928,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12951,7 +12951,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12974,7 +12974,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -12997,7 +12997,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13020,7 +13020,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13043,7 +13043,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13066,7 +13066,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13089,7 +13089,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13112,7 +13112,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13135,7 +13135,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13158,7 +13158,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13181,7 +13181,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13204,7 +13204,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13227,7 +13227,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13250,7 +13250,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13273,7 +13273,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13296,7 +13296,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13319,7 +13319,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13342,7 +13342,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13365,7 +13365,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13388,7 +13388,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13411,7 +13411,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13434,7 +13434,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13457,7 +13457,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13480,7 +13480,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13503,7 +13503,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13526,7 +13526,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13549,7 +13549,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13572,7 +13572,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13595,7 +13595,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13618,7 +13618,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13641,7 +13641,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13664,7 +13664,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13687,7 +13687,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13710,7 +13710,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13733,7 +13733,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13756,7 +13756,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13779,7 +13779,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13802,7 +13802,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13825,7 +13825,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13848,7 +13848,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13871,7 +13871,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13894,7 +13894,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13917,7 +13917,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13940,7 +13940,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13963,7 +13963,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -13977,7 +13977,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "508": [ @@ -13993,7 +13993,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14007,7 +14007,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "509": [ @@ -14023,7 +14023,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14037,7 +14037,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "510": [ @@ -14053,7 +14053,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14067,7 +14067,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "511": [ @@ -14083,7 +14083,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14097,7 +14097,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "512": [ @@ -14113,7 +14113,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14127,7 +14127,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "513": [ @@ -14143,7 +14143,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14157,7 +14157,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "514": [ @@ -14173,7 +14173,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14187,7 +14187,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "515": [ @@ -14203,7 +14203,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14217,7 +14217,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "516": [ @@ -14233,7 +14233,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14247,7 +14247,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "517": [ @@ -14263,7 +14263,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14277,7 +14277,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "518": [ @@ -14293,7 +14293,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14307,7 +14307,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "519": [ @@ -14323,7 +14323,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14337,7 +14337,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "520": [ @@ -14353,7 +14353,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14367,7 +14367,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "521": [ @@ -14383,7 +14383,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14397,7 +14397,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "522": [ @@ -14413,7 +14413,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14427,7 +14427,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "523": [ @@ -14443,7 +14443,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14457,7 +14457,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "524": [ @@ -14473,7 +14473,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14487,7 +14487,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "525": [ @@ -14503,7 +14503,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14517,7 +14517,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "526": [ @@ -14533,7 +14533,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14547,7 +14547,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "527": [ @@ -14563,7 +14563,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14577,7 +14577,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "528": [ @@ -14593,7 +14593,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14607,7 +14607,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "529": [ @@ -14623,7 +14623,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14637,7 +14637,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "530": [ @@ -14653,7 +14653,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14667,7 +14667,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "531": [ @@ -14683,7 +14683,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14697,7 +14697,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "532": [ @@ -14713,7 +14713,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14727,7 +14727,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "533": [ @@ -14743,7 +14743,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14757,7 +14757,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "535": [ @@ -14773,7 +14773,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -14787,7 +14787,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "550": [ @@ -14803,7 +14803,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "551": [ @@ -14819,7 +14819,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "552": [ @@ -14835,7 +14835,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "553": [ @@ -14851,7 +14851,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14874,7 +14874,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14897,7 +14897,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14920,7 +14920,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14943,7 +14943,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14966,7 +14966,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14989,7 +14989,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15012,7 +15012,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15035,7 +15035,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15058,7 +15058,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15081,7 +15081,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15104,7 +15104,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15127,7 +15127,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15150,7 +15150,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15173,7 +15173,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15196,7 +15196,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15219,7 +15219,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15242,7 +15242,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15265,7 +15265,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15288,7 +15288,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15311,7 +15311,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15334,7 +15334,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15357,7 +15357,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15380,7 +15380,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15403,7 +15403,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15426,7 +15426,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15449,7 +15449,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15472,7 +15472,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15495,7 +15495,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15518,7 +15518,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15541,7 +15541,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15564,7 +15564,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15587,7 +15587,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15610,7 +15610,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15633,7 +15633,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15656,7 +15656,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15679,7 +15679,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15702,7 +15702,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15725,7 +15725,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15748,7 +15748,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15771,7 +15771,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15794,7 +15794,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15817,7 +15817,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15840,7 +15840,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15863,7 +15863,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15886,7 +15886,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15909,7 +15909,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15932,7 +15932,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15955,7 +15955,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15978,7 +15978,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16001,7 +16001,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16024,7 +16024,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16047,7 +16047,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16070,7 +16070,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16093,7 +16093,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16116,7 +16116,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16139,7 +16139,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16162,7 +16162,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16185,7 +16185,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16208,7 +16208,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16231,7 +16231,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16254,7 +16254,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16277,7 +16277,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16300,7 +16300,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16323,7 +16323,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16346,7 +16346,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16369,7 +16369,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16392,7 +16392,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16415,7 +16415,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16438,7 +16438,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16461,7 +16461,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16484,7 +16484,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16507,7 +16507,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16530,7 +16530,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16553,7 +16553,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16576,7 +16576,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16599,7 +16599,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16622,7 +16622,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16645,7 +16645,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16668,7 +16668,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16691,7 +16691,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16714,7 +16714,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16737,7 +16737,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16760,7 +16760,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16783,7 +16783,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16806,7 +16806,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16829,7 +16829,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16852,7 +16852,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16875,7 +16875,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16898,7 +16898,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16921,7 +16921,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16944,7 +16944,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16967,7 +16967,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16990,7 +16990,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17013,7 +17013,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17036,7 +17036,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17059,7 +17059,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17082,7 +17082,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17105,7 +17105,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17128,7 +17128,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17151,7 +17151,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17174,7 +17174,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17197,7 +17197,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17220,7 +17220,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17243,7 +17243,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17257,7 +17257,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17287,7 +17287,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17301,7 +17301,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17331,7 +17331,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17345,7 +17345,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17375,7 +17375,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17389,7 +17389,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17419,7 +17419,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17433,7 +17433,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17463,7 +17463,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17477,7 +17477,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17507,7 +17507,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17521,7 +17521,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17551,7 +17551,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17565,7 +17565,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17595,7 +17595,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17609,7 +17609,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17639,7 +17639,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17653,7 +17653,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17683,7 +17683,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17697,7 +17697,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17727,7 +17727,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17741,7 +17741,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17771,7 +17771,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17785,7 +17785,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17815,7 +17815,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17829,7 +17829,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17859,7 +17859,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17873,7 +17873,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17903,7 +17903,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17917,7 +17917,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17947,7 +17947,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17961,7 +17961,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17991,7 +17991,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18005,7 +18005,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18035,7 +18035,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18049,7 +18049,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18079,7 +18079,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18093,7 +18093,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18123,7 +18123,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18137,7 +18137,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18167,7 +18167,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18181,7 +18181,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18211,7 +18211,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18225,7 +18225,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18255,7 +18255,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18269,7 +18269,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18299,7 +18299,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18313,7 +18313,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18343,7 +18343,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18357,7 +18357,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18387,7 +18387,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18401,7 +18401,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18431,7 +18431,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18445,7 +18445,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18475,7 +18475,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18489,7 +18489,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18519,7 +18519,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18533,7 +18533,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18563,7 +18563,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18577,7 +18577,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18607,7 +18607,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18621,7 +18621,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18651,7 +18651,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18665,7 +18665,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18695,7 +18695,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18709,7 +18709,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18739,7 +18739,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18753,7 +18753,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18783,7 +18783,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18797,7 +18797,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18827,7 +18827,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18841,7 +18841,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18871,7 +18871,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18885,7 +18885,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18915,7 +18915,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18929,7 +18929,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18959,7 +18959,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18973,7 +18973,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19003,7 +19003,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19017,7 +19017,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19040,7 +19040,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19054,7 +19054,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19077,7 +19077,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19091,7 +19091,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19114,7 +19114,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19128,7 +19128,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19151,7 +19151,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19165,7 +19165,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19188,7 +19188,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19202,7 +19202,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19225,7 +19225,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19239,7 +19239,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19262,7 +19262,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19276,7 +19276,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19299,7 +19299,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19313,7 +19313,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19336,7 +19336,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19350,7 +19350,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19373,7 +19373,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19387,7 +19387,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19410,7 +19410,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19424,7 +19424,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19447,7 +19447,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19461,7 +19461,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19484,7 +19484,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19498,7 +19498,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19521,7 +19521,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19535,7 +19535,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19558,7 +19558,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19572,7 +19572,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19595,7 +19595,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19609,7 +19609,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19632,7 +19632,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19646,7 +19646,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19669,7 +19669,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19683,7 +19683,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19706,7 +19706,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19720,7 +19720,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19743,7 +19743,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19757,7 +19757,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19780,7 +19780,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19794,7 +19794,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19817,7 +19817,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19831,7 +19831,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19854,7 +19854,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19868,7 +19868,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19891,7 +19891,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19905,7 +19905,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19928,7 +19928,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19942,7 +19942,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19965,7 +19965,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19979,7 +19979,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -20002,7 +20002,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20016,7 +20016,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -20039,7 +20039,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20053,7 +20053,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -20076,7 +20076,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "748": [ @@ -20092,7 +20092,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "749": [ @@ -20108,7 +20108,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "750": [ @@ -20124,7 +20124,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20147,7 +20147,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20170,7 +20170,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20193,7 +20193,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20216,7 +20216,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20239,7 +20239,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20262,7 +20262,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20285,7 +20285,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20308,7 +20308,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20331,7 +20331,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20354,7 +20354,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20377,7 +20377,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20400,7 +20400,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20423,7 +20423,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20446,7 +20446,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20469,7 +20469,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20492,7 +20492,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20515,7 +20515,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20538,7 +20538,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20561,7 +20561,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20584,7 +20584,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20607,7 +20607,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20630,7 +20630,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20653,7 +20653,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20676,7 +20676,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20699,7 +20699,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20722,7 +20722,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20745,7 +20745,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20768,7 +20768,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20791,7 +20791,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20814,7 +20814,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20837,7 +20837,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20860,7 +20860,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20883,7 +20883,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20906,7 +20906,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20929,7 +20929,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20952,7 +20952,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20975,7 +20975,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20998,7 +20998,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21021,7 +21021,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21044,7 +21044,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21067,7 +21067,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21090,7 +21090,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21113,7 +21113,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21136,7 +21136,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21159,7 +21159,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21182,7 +21182,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21205,7 +21205,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21228,7 +21228,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21251,7 +21251,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21274,7 +21274,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21297,7 +21297,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21320,7 +21320,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21343,7 +21343,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21366,7 +21366,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21389,7 +21389,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21412,7 +21412,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21435,7 +21435,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21458,7 +21458,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21481,7 +21481,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21504,7 +21504,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21527,7 +21527,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21550,7 +21550,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21573,7 +21573,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21596,7 +21596,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21619,7 +21619,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21642,7 +21642,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21665,7 +21665,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21688,7 +21688,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21711,7 +21711,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21734,7 +21734,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21757,7 +21757,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21780,7 +21780,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21803,7 +21803,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21826,7 +21826,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21849,7 +21849,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21872,7 +21872,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21895,7 +21895,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21918,7 +21918,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21941,7 +21941,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21964,7 +21964,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -21987,7 +21987,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22010,7 +22010,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22033,7 +22033,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22056,7 +22056,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22079,7 +22079,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22102,7 +22102,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22125,7 +22125,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22148,7 +22148,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22171,7 +22171,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22194,7 +22194,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22217,7 +22217,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22240,7 +22240,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22263,7 +22263,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22286,7 +22286,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22309,7 +22309,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22332,7 +22332,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22355,7 +22355,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22378,7 +22378,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22401,7 +22401,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22424,7 +22424,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22447,7 +22447,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22470,7 +22470,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22493,7 +22493,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22516,7 +22516,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22530,7 +22530,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22560,7 +22560,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22574,7 +22574,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22604,7 +22604,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22618,7 +22618,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22648,7 +22648,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22662,7 +22662,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22692,7 +22692,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22706,7 +22706,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22736,7 +22736,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22750,7 +22750,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22780,7 +22780,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22794,7 +22794,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22824,7 +22824,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22838,7 +22838,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22868,7 +22868,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22882,7 +22882,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22912,7 +22912,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22926,7 +22926,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -22956,7 +22956,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -22970,7 +22970,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23000,7 +23000,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23014,7 +23014,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23044,7 +23044,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23058,7 +23058,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23088,7 +23088,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23102,7 +23102,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23132,7 +23132,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23146,7 +23146,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23176,7 +23176,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23190,7 +23190,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23220,7 +23220,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23234,7 +23234,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23264,7 +23264,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23278,7 +23278,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23308,7 +23308,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23322,7 +23322,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23352,7 +23352,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23366,7 +23366,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23396,7 +23396,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23410,7 +23410,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23440,7 +23440,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23454,7 +23454,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23484,7 +23484,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23498,7 +23498,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23528,7 +23528,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23542,7 +23542,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23572,7 +23572,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23586,7 +23586,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23616,7 +23616,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23630,7 +23630,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23660,7 +23660,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23674,7 +23674,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23704,7 +23704,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23718,7 +23718,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23748,7 +23748,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23762,7 +23762,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23792,7 +23792,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23806,7 +23806,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23836,7 +23836,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23850,7 +23850,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23880,7 +23880,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23894,7 +23894,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23924,7 +23924,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23938,7 +23938,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -23968,7 +23968,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -23982,7 +23982,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24012,7 +24012,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24026,7 +24026,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24056,7 +24056,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24070,7 +24070,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24100,7 +24100,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24114,7 +24114,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24144,7 +24144,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24158,7 +24158,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24188,7 +24188,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24202,7 +24202,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24232,7 +24232,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24246,7 +24246,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24276,7 +24276,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24290,7 +24290,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24313,7 +24313,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24327,7 +24327,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24350,7 +24350,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24364,7 +24364,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24387,7 +24387,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24401,7 +24401,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24424,7 +24424,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24438,7 +24438,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24461,7 +24461,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24475,7 +24475,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24498,7 +24498,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24512,7 +24512,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24535,7 +24535,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24549,7 +24549,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24572,7 +24572,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24586,7 +24586,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24609,7 +24609,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24623,7 +24623,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24646,7 +24646,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24660,7 +24660,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24683,7 +24683,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24697,7 +24697,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24720,7 +24720,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24734,7 +24734,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24757,7 +24757,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24771,7 +24771,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24794,7 +24794,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24808,7 +24808,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24831,7 +24831,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24845,7 +24845,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24868,7 +24868,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24882,7 +24882,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24905,7 +24905,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24919,7 +24919,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24942,7 +24942,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24956,7 +24956,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -24979,7 +24979,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -24993,7 +24993,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25016,7 +25016,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25030,7 +25030,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25053,7 +25053,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25067,7 +25067,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25090,7 +25090,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25104,7 +25104,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25127,7 +25127,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25141,7 +25141,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25164,7 +25164,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25178,7 +25178,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25201,7 +25201,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25215,7 +25215,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25238,7 +25238,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25252,7 +25252,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25275,7 +25275,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25289,7 +25289,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25312,7 +25312,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25326,7 +25326,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -25349,7 +25349,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25363,7 +25363,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "944": [ @@ -25379,7 +25379,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25393,7 +25393,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "945": [ @@ -25409,7 +25409,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25423,7 +25423,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "946": [ @@ -25439,7 +25439,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25453,7 +25453,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "947": [ @@ -25469,7 +25469,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25483,7 +25483,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "948": [ @@ -25499,7 +25499,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25513,7 +25513,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "949": [ @@ -25529,7 +25529,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25543,7 +25543,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "950": [ @@ -25559,7 +25559,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25573,7 +25573,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "951": [ @@ -25589,7 +25589,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25603,7 +25603,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "952": [ @@ -25619,7 +25619,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25633,7 +25633,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "953": [ @@ -25649,7 +25649,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25663,7 +25663,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "954": [ @@ -25679,7 +25679,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25693,7 +25693,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "955": [ @@ -25709,7 +25709,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25723,7 +25723,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "956": [ @@ -25739,7 +25739,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25753,7 +25753,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "957": [ @@ -25769,7 +25769,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25783,7 +25783,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "958": [ @@ -25799,7 +25799,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25813,7 +25813,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "959": [ @@ -25829,7 +25829,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25843,7 +25843,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "960": [ @@ -25859,7 +25859,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25873,7 +25873,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "961": [ @@ -25889,7 +25889,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25903,7 +25903,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "962": [ @@ -25919,7 +25919,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25933,7 +25933,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "963": [ @@ -25949,7 +25949,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25963,7 +25963,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "964": [ @@ -25979,7 +25979,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -25993,7 +25993,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "965": [ @@ -26009,7 +26009,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26023,7 +26023,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "966": [ @@ -26039,7 +26039,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26053,7 +26053,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "967": [ @@ -26069,7 +26069,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26083,7 +26083,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "968": [ @@ -26099,7 +26099,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26113,7 +26113,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "969": [ @@ -26129,7 +26129,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26143,7 +26143,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "971": [ @@ -26159,7 +26159,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -26173,7 +26173,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ] } @@ -26182,7 +26182,7 @@ "fileMap": { "0": { "source": "mod storage;\nmod ecdsa_public_key_note;\n\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaAccount {\n use dep::std;\n use dep::aztec::entrypoint;\n use dep::aztec::entrypoint::EntrypointPayload;\n use dep::aztec::abi;\n use dep::aztec::abi::PrivateContextInputs;\n use dep::aztec::abi::CallContext;\n use dep::aztec::context::PrivateContext;\n use dep::aztec::log::emit_encrypted_log;\n use dep::aztec::oracle::get_public_key::get_public_key;\n use dep::aztec::types::vec::BoundedVec;\n use dep::aztec::types::point::Point;\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\n\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\n use dep::aztec::note::{\n note_header::{NoteHeader},\n utils as note_utils,\n };\n\n use crate::storage::Storage;\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNote;\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNoteInterface;\n use crate::ecdsa_public_key_note::ECDSA_PUBLIC_KEY_NOTE_LEN;\n\n // All calls made by this account will be routed through this entrypoint\n fn entrypoint( \n inputs: pub PrivateContextInputs,\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\n signature: pub [u8;64],\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n \n // Initialise context\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\n let mut args: BoundedVec = BoundedVec::new(0);\n args.push_array(payload.serialize());\n for byte in signature { args.push(byte as Field); }\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\n\n // Load public key from storage\n let storage = Storage::init();\n let public_key = storage.public_key.get_note(&mut context);\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\n let message_bytes = message_field.to_be_bytes(32);\n let hashed_message: [u8; 32] = std::hash::sha256(message_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n payload.execute_calls(&mut context);\n\n context.finish()\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n fn constructor(\n inputs: pub PrivateContextInputs,\n signing_pub_key_x: pub [u8;32],\n signing_pub_key_y: pub [u8;32],\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n let storage = Storage::init();\n \n let mut args: BoundedVec = BoundedVec::new(0);\n for byte in signing_pub_key_x { args.push(byte as Field); }\n for byte in signing_pub_key_y { args.push(byte as Field); }\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\n \n let this = context.this_address();\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.public_key.initialise(&mut context, &mut pub_key_note);\n \n emit_encrypted_log(\n &mut context,\n this,\n storage.public_key.storage_slot,\n get_public_key(this),\n pub_key_note.serialise(),\n );\n\n context.finish()\n }\n\n // Computes note hash and nullifier.\n // Note 1: Needs to be defined by every contract producing logs.\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\n assert(storage_slot == 1);\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\n note_utils::compute_note_hash_and_nullifier(EcdsaPublicKeyNoteInterface, note_header, preimage)\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/ecdsa_account_contract/src/main" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-contracts/src/contracts/ecdsa_account_contract/src/main" }, "3": { "source": "mod poseidon;\n\n#[foreign(sha256)]\nfn sha256(_input : [u8; N]) -> [u8; 32] {}\n\n#[foreign(blake2s)]\nfn blake2s(_input : [u8; N]) -> [u8; 32] {}\n\nfn pedersen(input : [Field; N]) -> [Field; 2] {\n pedersen_with_separator(input, 0)\n}\n\n#[foreign(pedersen)]\nfn pedersen_with_separator(_input : [Field; N], _separator : u32) -> [Field; 2] {}\n\n#[foreign(hash_to_field_128_security)]\nfn hash_to_field(_input : [Field; N]) -> Field {}\n\n#[foreign(keccak256)]\nfn keccak256(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\n\n// mimc-p/p implementation\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\n// You must use constants generated for the native field\n// Rounds number should be ~ log(p)/log(exp)\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\nfn mimc(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\n //round 0\n let mut t = x + k;\n let mut h = t.pow_32(exp);\n //next rounds\n for i in 1 .. constants.len() {\n t = h + k + constants[i];\n h = t.pow_32(exp);\n };\n h + k\n}\n\nglobal MIMC_BN254_ROUNDS = 91;\n\n//mimc implementation with hardcoded parameters for BN254 curve.\nfn mimc_bn254(array: [Field; N]) -> Field {\n //mimc parameters\n let exponent = 7;\n //generated from seed \"mimc\" using keccak256 \n let constants: [Field; MIMC_BN254_ROUNDS] = [\n 0, \n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\n ];\n\n let mut r = 0;\n for elem in array {\n let h = mimc(elem, r, constants, exponent);\n r = r + elem + h;\n }\n r\n}\n", @@ -26194,47 +26194,47 @@ }, "31": { "source": "use crate::constants_gen::{\n RETURN_VALUES_LENGTH,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n GENERATOR_INDEX__FUNCTION_ARGS,\n HISTORIC_BLOCK_DATA_LENGTH,\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n CALL_CONTEXT_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\n CONTRACT_STORAGE_READ_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__FUNCTION_DATA,\n GENERATOR_INDEX__PUBLIC_DATA_READ,\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\n GENERATOR_INDEX__CALL_CONTEXT,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n};\n\nuse crate::oracle::debug_log;\nuse crate::types::vec::BoundedVec;\nuse crate::types::point::Point;\n\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n\nimpl PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\nstruct ContractDeploymentData {\n deployer_public_key: Point,\n constructor_vk_hash : Field,\n function_tree_root : Field,\n contract_address_salt : Field,\n portal_contract_address : Field,\n}\n\nimpl ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.deployer_public_key.x,\n self.deployer_public_key.y,\n self.constructor_vk_hash,\n self.function_tree_root,\n self.contract_address_salt,\n self.portal_contract_address,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\nstruct PrivateContextInputs {\n call_context : CallContext,\n block_data: HistoricBlockData,\n\n contract_deployment_data: ContractDeploymentData,\n\n private_global_variables: PrivateGlobalVariables,\n}\n\n// PublicContextInputs are expected to be provided to each public function\nstruct PublicContextInputs {\n call_context: CallContext,\n block_data: HistoricBlockData,\n\n public_global_variables: PublicGlobalVariables,\n}\n\nstruct CallContext {\n msg_sender : Field,\n storage_contract_address : Field,\n portal_contract_address : Field,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment: bool,\n}\n\nimpl CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender,\n self.storage_contract_address,\n self.portal_contract_address,\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\n }\n}\n\nstruct HistoricBlockData {\n private_data_tree_root : Field,\n nullifier_tree_root : Field,\n contract_tree_root : Field,\n l1_to_l2_messages_tree_root : Field,\n blocks_tree_root: Field,\n public_data_tree_root: Field,\n global_variables_hash: Field,\n}\n\nimpl HistoricBlockData {\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\n [\n self.private_data_tree_root,\n self.nullifier_tree_root,\n self.contract_tree_root,\n self.l1_to_l2_messages_tree_root,\n self.blocks_tree_root,\n self.public_data_tree_root,\n self.global_variables_hash,\n ]\n }\n\n fn empty() -> Self {\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\n }\n}\n\nstruct FunctionData {\n function_selector: Field,\n is_internal: bool,\n is_private: bool,\n is_constructor: bool,\n}\n\nimpl FunctionData {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator([\n self.function_selector,\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n // Explore introducing a new type like uint256 (similar to Point), so it's more explicit that\n // we're talking about a single number backed by two field elements.\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n contract_deployment_data: ContractDeploymentData,\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push(self.call_context.hash());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.nullified_commitments);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.contract_deployment_data.hash());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.storage\n }\n}\n\nstruct ContractStorageRead {\n storage_slot: Field,\n value: Field,\n}\n\nimpl ContractStorageRead {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, value: 0 }\n }\n}\n\nstruct ContractStorageUpdateRequest {\n storage_slot: Field,\n old_value: Field,\n new_value: Field,\n}\n\nimpl ContractStorageUpdateRequest {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.old_value, self.new_value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\n }\n}\n\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n prover_address: Field,\n\n // TODO: include globals in here and check them elsewhere\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\n}\n\nimpl PublicCircuitPublicInputs {\n \n fn hash(self) -> Field {\n let mut inputs: BoundedVec = BoundedVec::new(0);\n inputs.push(self.call_context.hash());\n inputs.push(self.args_hash);\n inputs.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n inputs.push(self.contract_storage_update_requests[i].hash());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n inputs.push(self.contract_storage_read[i].hash());\n }\n inputs.push_array(self.public_call_stack);\n inputs.push_array(self.new_commitments);\n inputs.push_array(self.new_nullifiers);\n inputs.push_array(self.new_l2_to_l1_msgs);\n\n // We do not include block_data since it's not in the cpp hash\n\n inputs.push_array(self.unencrypted_logs_hash);\n inputs.push(self.unencrypted_log_preimages_length);\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\n inputs.push(self.prover_address);\n\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.push_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.push_array(self.contract_storage_read[i].serialize());\n }\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.prover_address);\n fields.storage\n }\n}\n\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\n\nfn hash_args(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\n }\n chunks_hashes[i] = chunk_hash;\n }\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/abi" }, "32": { - "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, msg: Field) {\n self.new_l2_to_l1_msgs.push(msg);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context" + "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/context" }, "33": { "source": "use crate::context::PrivateContext;\nuse crate::oracle;\nuse crate::types::point::Point;\n\nfn emit_encrypted_log(\n context: &mut PrivateContext,\n contract_address: Field,\n storage_slot: Field,\n encryption_pub_key: Point,\n log: [Field; N],\n) {\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\n context.accumulate_encrypted_logs(log);\n}\n\nfn emit_unencrypted_log(\n context: &mut PrivateContext,\n log: T,\n) {\n let _ = oracle::logs::emit_unencrypted_log(log);\n context.accumulate_unencrypted_logs(log);\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/log" }, "39": { - "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_inner_note_hash,\n};\nuse crate::oracle::create_commitment::create_commitment;\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\n\nfn create_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(*note);\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn create_note_hash_from_public(\n context: PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = context.this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n create_commitment(inner_note_hash);\n}\n\nfn destroy_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: Note,\n note_interface: NoteInterface,\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(note);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // 0 nonce implies \"transient\" nullifier (must nullify a commitment in this TX).\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullier to its output.\n if (header.nonce == 0) {\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle" + "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_inner_note_hash,\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\n\nfn create_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(*note);\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn create_note_hash_from_public(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn destroy_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: Note,\n note_interface: NoteInterface,\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(note);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // 0 nonce implies \"transient\" nullifier (must nullify a commitment in this TX).\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullier to its output.\n if (header.nonce == 0) {\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle" }, "40": { - "source": "use dep::std::option::Option;\nuse crate::constants_gen::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::NoteGetterOptions,\n note_interface::NoteInterface,\n note_header::NoteHeader,\n utils::compute_note_hash_for_read_or_nullify,\n utils::compute_unique_siloed_note_hash,\n utils::compute_inner_note_hash,\n utils::compute_siloed_note_hash,\n};\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\nuse crate::oracle;\n\nfn check_note_header(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: Note,\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address == contract_address);\n assert(header.storage_slot == storage_slot);\n}\n\nfn ensure_note_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n let saved_note = get_note_internal(storage_slot, note_interface);\n\n // Only copy over the header to the original note to make sure the preimage is the same.\n let get_header = note_interface.get_header;\n let set_header = note_interface.set_header;\n let note_header = get_header(saved_note);\n set_header(note, note_header);\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\n context.push_read_request(note_hash_for_read_request);\n}\n\n// Ensure a note's hash exists in the tree without retrieving the entire\n// notes via the oracle.\n// Modifies the note by populating it with header info.\nfn ensure_note_hash_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\n // - storage slot (used in inner note hash)\n // - the contract address (used in siloed note hash)\n // - and the nonce (used in the unique siloed note hash)\n let set_header = note_interface.set_header;\n let note_header = NoteHeader {\n contract_address: (*context).this_address(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // real nonce (once public kernel applies nonces).\n nonce: 0,\n storage_slot\n };\n set_header(note, note_header);\n\n // Get a note from oracle and early out if it doesn't exist.\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // unique_siloed_note_hash once public kernel applies nonces\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\n\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\n\n context.push_read_request(computed_siloed_note_hash);\n}\n\nfn get_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\nfn get_notes(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; S] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n let mut note_hash_for_read_request = 0;\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n check_note_header(*context, storage_slot, note_interface, note);\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n };\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n };\n\n // TODO(#1660)\n // Move it back to get_notes_internal and only make read request for selected notes.\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained fn get_note_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields,\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let sort_by = options.sort_by;\n let mut sort_by_indices = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sort_by.len() {\n sort_by_indices[i] = sort_by[i].field_index;\n sort_order[i] = sort_by[i].order;\n };\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n sort_by_indices,\n sort_order,\n MAX_READ_REQUESTS_PER_CALL as u32,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn view_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n limit: u32,\n offset: u32,\n) -> [Option; MAX_NOTES_PER_PAGE] {\n let sort_by = [0; N];\n let sort_order = [0; N];\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(storage_slot, note_interface, sort_by, sort_order, limit, offset, placeholder_opt_notes, placeholder_fields)\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter" + "source": "use dep::std::option::Option;\nuse crate::constants_gen::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::{NoteGetterOptions, Select, Sort},\n note_interface::NoteInterface,\n note_header::NoteHeader,\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_or_nullify,\n utils::compute_unique_siloed_note_hash,\n utils::compute_inner_note_hash,\n utils::compute_siloed_note_hash,\n};\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\nuse crate::oracle;\nuse crate::types::vec::BoundedVec;\n\nfn check_note_header(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: Note,\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address == contract_address);\n assert(header.storage_slot == storage_slot);\n}\n\nfn ensure_note_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n let saved_note = get_note_internal(storage_slot, note_interface);\n\n // Only copy over the header to the original note to make sure the preimage is the same.\n let get_header = note_interface.get_header;\n let set_header = note_interface.set_header;\n let note_header = get_header(saved_note);\n set_header(note, note_header);\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\n context.push_read_request(note_hash_for_read_request);\n}\n\n// Ensure a note's hash exists in the tree without retrieving the entire\n// notes via the oracle.\n// Modifies the note by populating it with header info.\nfn ensure_note_hash_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\n // - storage slot (used in inner note hash)\n // - the contract address (used in siloed note hash)\n // - and the nonce (used in the unique siloed note hash)\n let set_header = note_interface.set_header;\n let note_header = NoteHeader {\n contract_address: (*context).this_address(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // real nonce (once public kernel applies nonces).\n nonce: 0,\n storage_slot\n };\n set_header(note, note_header);\n\n // Get a note from oracle and early out if it doesn't exist.\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // unique_siloed_note_hash once public kernel applies nonces\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\n\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\n\n context.push_read_request(computed_siloed_note_hash);\n}\n\nfn get_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\nfn get_notes(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n let mut note_hash_for_read_request = 0;\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n check_note_header(*context, storage_slot, note_interface, note);\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n };\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n };\n\n // TODO(#1660)\n // Move it back to get_notes_internal and only make read request for selected notes.\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained fn get_note_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n 0,\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields,\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn view_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteViewerOptions,\n) -> [Option; MAX_NOTES_PER_PAGE] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn flatten_options(\n selects: BoundedVec, N>,\n sorts: BoundedVec, N>,\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\n let mut num_selects = 0;\n let mut select_by = [0; N];\n let mut select_values = [0; N];\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by[num_selects] = select.unwrap_unchecked().field_index;\n select_values[num_selects] = select.unwrap_unchecked().value;\n num_selects += 1;\n };\n };\n\n let mut sort_by = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by[i] = sort.unwrap_unchecked().field_index;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n };\n\n (num_selects, select_by, select_values, sort_by, sort_order)\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter" }, "42": { "source": "use dep::std::hash::{pedersen, pedersen_with_separator};\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\n\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\n // TODO(#1205) Do we need a generator index here?\n pedersen([storage_slot, note_hash])[0]\n}\n\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\n let inputs = [contract_address, inner_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\n}\n\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash" }, - "45": { + "46": { "source": "use crate::note::{\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\nfn compute_inner_note_hash(\n note_interface: NoteInterface,\n note: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n\n compute_inner_hash(header.storage_slot, note_hash)\n}\n\nfn compute_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\n\n compute_siloed_hash(header.contract_address, inner_note_hash)\n}\n\nfn compute_unique_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\n\n compute_unique_hash(header.nonce, siloed_note_hash)\n}\n\nfn compute_note_hash_for_read_or_nullify(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n if (header.nonce == 0) {\n // when nonce is zero, that means we are reading a pending note (doesn't have a nonce yet),\n // so we just read the inner_note_hash (kernel will silo by contract address)\n compute_inner_note_hash(note_interface, note_with_header)\n } else {\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\n // contract address and then nonce. This hash will match the existing leaf in the private\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\n compute_unique_siloed_note_hash(note_interface, note_with_header)\n }\n\n}\n\nfn compute_note_hash_and_nullifier(\n note_interface: NoteInterface,\n note_header: NoteHeader,\n preimage: [Field; S],\n) -> [Field; 4] {\n let deserialise = note_interface.deserialise;\n let set_header = note_interface.set_header;\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\n set_header(&mut note, note_header);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\n\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\n\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\n\n let compute_nullifier = note_interface.compute_nullifier;\n let inner_nullifier = compute_nullifier(note);\n\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/utils" }, - "47": { - "source": "use dep::std::hash::pedersen_with_separator;\nuse crate::context::PrivateContext;\nuse crate::note::lifecycle::create_note;\nuse crate::note::note_getter::get_note;\nuse crate::note::note_interface::NoteInterface;\nuse crate::oracle;\nuse crate::constants_gen::{\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\n EMPTY_NULLIFIED_COMMITMENT,\n};\n\nstruct ImmutableSingleton {\n storage_slot: Field,\n note_interface: NoteInterface,\n}\n\nimpl ImmutableSingleton {\n fn new(storage_slot: Field, note_interface: NoteInterface) -> Self {\n ImmutableSingleton { storage_slot, note_interface }\n }\n\n unconstrained fn is_initialised(self) -> bool {\n let nullifier = self.compute_initialisation_nullifier();\n oracle::notes::is_nullifier_emitted(nullifier)\n }\n\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\n // Nullify the storage slot.\n let nullifier = self.compute_initialisation_nullifier();\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\n\n create_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn compute_initialisation_nullifier(self) -> Field {\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\n }\n \n fn get_note(self, context: &mut PrivateContext) -> Note {\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot, self.note_interface)\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton" + "48": { + "source": "use dep::std::hash::pedersen_with_separator;\nuse crate::context::PrivateContext;\nuse crate::note::{\n lifecycle::create_note,\n note_getter::{get_note, view_notes},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle;\nuse crate::constants_gen::{\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\n EMPTY_NULLIFIED_COMMITMENT,\n};\n\nstruct ImmutableSingleton {\n storage_slot: Field,\n note_interface: NoteInterface,\n}\n\nimpl ImmutableSingleton {\n fn new(storage_slot: Field, note_interface: NoteInterface) -> Self {\n ImmutableSingleton { storage_slot, note_interface }\n }\n\n unconstrained fn is_initialised(self) -> bool {\n let nullifier = self.compute_initialisation_nullifier();\n oracle::notes::is_nullifier_emitted(nullifier)\n }\n\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\n // Nullify the storage slot.\n let nullifier = self.compute_initialisation_nullifier();\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\n\n create_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn compute_initialisation_nullifier(self) -> Field {\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\n }\n \n fn get_note(self, context: &mut PrivateContext) -> Note {\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot, self.note_interface)\n }\n\n unconstrained fn view_note(self) -> Note {\n let options = NoteViewerOptions::new().set_limit(1);\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\n }\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton" }, - "54": { + "55": { "source": "\nstruct BoundedVec {\n storage: [T; MaxLen],\n len: Field,\n}\n\nimpl BoundedVec {\n fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\n }\n\n fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64);\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n fn push_array(&mut self, array: [T; Len]) {\n let newLen = self.len + array.len();\n assert(newLen as u64 <= MaxLen as u64);\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = newLen;\n }\n\n fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n\n let elem = self.storage[self.len - 1];\n self.len -= 1;\n elem\n }\n}\n\n// #[test]\n// fn test_vec() {\n// let vec: BoundedVec = BoundedVec::new(0);\n// assert(vec.len == 0);\n// let vec1 = vec.push(1);\n// assert(vec1.len == 1);\n// let vec2 = vec1.push(1);\n// assert(vec2.len == 2);\n// let vec3 = vec2.push(1);\n// assert(vec3.len == 3);\n// let x = vec3.pop();\n// assert(x == 1);\n// }", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" }, - "72": { + "70": { "source": "use crate::types::point::Point;\nuse dep::std::hash;\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\n\n#[oracle(getPublicKey)]\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\n\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\n get_public_key_oracle(address)\n}\n\nfn get_public_key(address: Field) -> Point {\n let result = get_public_key_internal(address);\n let pub_key_x = result[0];\n let pub_key_y = result[1];\n let partial_address = result[2];\n \n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\n assert(calculated_address == address);\n \n Point::new(pub_key_x, pub_key_y)\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key" }, - "80": { + "78": { "source": "use crate::abi;\nuse crate::types::vec::BoundedVec;\nuse crate::context::PrivateContext;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem; \n\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\nglobal ACCOUNT_MAX_CALLS: Field = 4;\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\nglobal FUNCTION_CALL_SIZE: Field = 3;\n\nstruct FunctionCall {\n args_hash: Field,\n function_selector: Field,\n target_address: Field,\n}\n\nimpl FunctionCall {\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\n [self.args_hash, self.function_selector, self.target_address]\n }\n}\n\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\n\nstruct EntrypointPayload {\n // Noir doesnt support nested arrays or structs yet so we flatten everything\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n\nimpl EntrypointPayload {\n // TODO(#1207) Do we need a generator index?\n fn hash(self) -> Field {\n dep::std::hash::pedersen(self.serialize())[0]\n }\n\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.flattened_args_hashes);\n fields.push_array(self.flattened_selectors);\n fields.push_array(self.flattened_targets);\n fields.push(self.nonce);\n fields.storage\n }\n\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\n\n let args_len = self.flattened_args_hashes.len();\n let selectors_len = self.flattened_selectors.len();\n let targets_len = self.flattened_targets.len();\n\n for i in 0..args_len {\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..selectors_len {\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..targets_len {\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n \n let item_bytes = self.nonce.to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\n }\n\n bytes\n }\n\n // Executes all private and public calls \n fn execute_calls(self, context: &mut PrivateContext) {\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" } } } diff --git a/yarn-project/aztec.js/src/abis/schnorr_account_contract.json b/yarn-project/aztec.js/src/abis/schnorr_account_contract.json index c8b7985f8af..f1f476d8e87 100644 --- a/yarn-project/aztec.js/src/abis/schnorr_account_contract.json +++ b/yarn-project/aztec.js/src/abis/schnorr_account_contract.json @@ -882,17 +882,17 @@ }, { "span": { - "start": 955, - "end": 993 + "start": 996, + "end": 1034 }, - "file": 47 + "file": 48 }, { "span": { - "start": 1220, - "end": 1306 + "start": 1261, + "end": 1347 }, - "file": 47 + "file": 48 } ], "53": [ @@ -905,15 +905,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 823, - "end": 868 + "start": 766, + "end": 811 }, "file": 39 }, @@ -922,7 +922,7 @@ "start": 506, "end": 555 }, - "file": 45 + "file": 46 }, { "span": { @@ -949,15 +949,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1025 + "start": 909, + "end": 968 }, "file": 39 } @@ -972,15 +972,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -995,15 +995,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -1018,15 +1018,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -1041,15 +1041,15 @@ }, { "span": { - "start": 1080, - "end": 1145 + "start": 1121, + "end": 1186 }, - "file": 47 + "file": 48 }, { "span": { - "start": 966, - "end": 1030 + "start": 909, + "end": 973 }, "file": 39 } @@ -1067,7 +1067,7 @@ "start": 367, "end": 398 }, - "file": 72 + "file": 70 } ], "62": [ @@ -1083,7 +1083,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "63": [ @@ -1099,7 +1099,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "64": [ @@ -1115,7 +1115,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "65": [ @@ -1131,7 +1131,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "66": [ @@ -1147,7 +1147,7 @@ "start": 643, "end": 671 }, - "file": 72 + "file": 70 } ], "67": [ @@ -1692,15 +1692,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4012, - "end": 4058 + "start": 4107, + "end": 4153 }, "file": 40 } @@ -1715,22 +1715,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -1745,22 +1745,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -1775,22 +1775,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -1805,22 +1805,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -1835,22 +1835,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 950, - "end": 992 + "start": 1045, + "end": 1087 }, "file": 40 } @@ -1865,22 +1865,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -1895,22 +1895,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -1925,22 +1925,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -1955,22 +1955,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -1985,22 +1985,22 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4066, - "end": 4128 + "start": 4161, + "end": 4223 }, "file": 40 }, { "span": { - "start": 1007, - "end": 1041 + "start": 1102, + "end": 1136 }, "file": 40 } @@ -2015,15 +2015,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -2032,7 +2032,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "119": [ @@ -2045,15 +2045,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -2062,7 +2062,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "120": [ @@ -2075,15 +2075,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -2092,7 +2092,7 @@ "start": 1547, "end": 1563 }, - "file": 45 + "file": 46 } ], "127": [ @@ -2105,15 +2105,15 @@ }, { "span": { - "start": 1438, - "end": 1489 + "start": 1479, + "end": 1530 }, - "file": 47 + "file": 48 }, { "span": { - "start": 4169, - "end": 4227 + "start": 4264, + "end": 4322 }, "file": 40 }, @@ -2122,14 +2122,14 @@ "start": 1762, "end": 1818 }, - "file": 45 + "file": 46 }, { "span": { "start": 506, "end": 555 }, - "file": 45 + "file": 46 }, { "span": { @@ -3185,7 +3185,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "196": [ @@ -3201,7 +3201,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "197": [ @@ -3217,7 +3217,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "198": [ @@ -3233,7 +3233,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3256,7 +3256,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3279,7 +3279,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3302,7 +3302,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3325,7 +3325,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3348,7 +3348,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3371,7 +3371,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3394,7 +3394,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3417,7 +3417,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3440,7 +3440,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3463,7 +3463,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3486,7 +3486,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3509,7 +3509,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3532,7 +3532,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3555,7 +3555,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3578,7 +3578,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3601,7 +3601,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3624,7 +3624,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3647,7 +3647,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3670,7 +3670,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3693,7 +3693,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3716,7 +3716,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3739,7 +3739,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3762,7 +3762,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3785,7 +3785,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3808,7 +3808,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3831,7 +3831,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3854,7 +3854,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3877,7 +3877,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3900,7 +3900,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3923,7 +3923,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3946,7 +3946,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3969,7 +3969,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3992,7 +3992,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4015,7 +4015,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4038,7 +4038,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4061,7 +4061,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4084,7 +4084,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4107,7 +4107,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4130,7 +4130,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4153,7 +4153,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4176,7 +4176,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4199,7 +4199,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4222,7 +4222,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4245,7 +4245,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4268,7 +4268,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4291,7 +4291,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4314,7 +4314,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4337,7 +4337,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4360,7 +4360,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4383,7 +4383,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4406,7 +4406,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4429,7 +4429,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4452,7 +4452,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4475,7 +4475,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4498,7 +4498,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4521,7 +4521,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4544,7 +4544,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4567,7 +4567,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4590,7 +4590,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4613,7 +4613,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4636,7 +4636,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4659,7 +4659,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4682,7 +4682,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4705,7 +4705,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4728,7 +4728,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4751,7 +4751,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4774,7 +4774,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4797,7 +4797,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4820,7 +4820,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4843,7 +4843,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4866,7 +4866,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4889,7 +4889,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4912,7 +4912,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4935,7 +4935,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4958,7 +4958,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4981,7 +4981,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5004,7 +5004,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5027,7 +5027,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5050,7 +5050,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5073,7 +5073,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5096,7 +5096,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5119,7 +5119,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5142,7 +5142,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5165,7 +5165,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5188,7 +5188,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5211,7 +5211,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5234,7 +5234,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5257,7 +5257,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5280,7 +5280,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5303,7 +5303,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5326,7 +5326,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5349,7 +5349,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5372,7 +5372,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5395,7 +5395,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5418,7 +5418,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5441,7 +5441,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5464,7 +5464,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5487,7 +5487,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5510,7 +5510,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5533,7 +5533,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5556,7 +5556,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5579,7 +5579,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5602,7 +5602,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5625,7 +5625,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5648,7 +5648,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5671,7 +5671,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5694,7 +5694,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5717,7 +5717,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5740,7 +5740,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5763,7 +5763,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5786,7 +5786,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5809,7 +5809,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5832,7 +5832,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5855,7 +5855,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5878,7 +5878,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5901,7 +5901,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "321": [ @@ -5917,7 +5917,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "322": [ @@ -5933,7 +5933,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "323": [ @@ -5949,7 +5949,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5972,7 +5972,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5995,7 +5995,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6018,7 +6018,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6041,7 +6041,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6064,7 +6064,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6087,7 +6087,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6110,7 +6110,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6133,7 +6133,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6156,7 +6156,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6179,7 +6179,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6202,7 +6202,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6225,7 +6225,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6248,7 +6248,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6271,7 +6271,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6294,7 +6294,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6317,7 +6317,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6340,7 +6340,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6363,7 +6363,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6386,7 +6386,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6409,7 +6409,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6432,7 +6432,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6455,7 +6455,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6478,7 +6478,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6501,7 +6501,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6524,7 +6524,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6547,7 +6547,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6570,7 +6570,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6593,7 +6593,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6616,7 +6616,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6639,7 +6639,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6662,7 +6662,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6685,7 +6685,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6708,7 +6708,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6731,7 +6731,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6754,7 +6754,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6777,7 +6777,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6800,7 +6800,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6823,7 +6823,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6846,7 +6846,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6869,7 +6869,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6892,7 +6892,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6915,7 +6915,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6938,7 +6938,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6961,7 +6961,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6984,7 +6984,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7007,7 +7007,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7030,7 +7030,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7053,7 +7053,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7076,7 +7076,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7099,7 +7099,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7122,7 +7122,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7145,7 +7145,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7168,7 +7168,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7191,7 +7191,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7214,7 +7214,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7237,7 +7237,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7260,7 +7260,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7283,7 +7283,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7306,7 +7306,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7329,7 +7329,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7352,7 +7352,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7375,7 +7375,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7398,7 +7398,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7421,7 +7421,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7444,7 +7444,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7467,7 +7467,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7490,7 +7490,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7513,7 +7513,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7536,7 +7536,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7559,7 +7559,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7582,7 +7582,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7605,7 +7605,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7628,7 +7628,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7651,7 +7651,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7674,7 +7674,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7697,7 +7697,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7720,7 +7720,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7743,7 +7743,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7766,7 +7766,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7789,7 +7789,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7812,7 +7812,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7835,7 +7835,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7858,7 +7858,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7881,7 +7881,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7904,7 +7904,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7927,7 +7927,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7950,7 +7950,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7973,7 +7973,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7996,7 +7996,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8019,7 +8019,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8042,7 +8042,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8065,7 +8065,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8088,7 +8088,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8111,7 +8111,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8134,7 +8134,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8157,7 +8157,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8180,7 +8180,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8203,7 +8203,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8226,7 +8226,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8249,7 +8249,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8272,7 +8272,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8295,7 +8295,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8318,7 +8318,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8341,7 +8341,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8364,7 +8364,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8387,7 +8387,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8410,7 +8410,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8433,7 +8433,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8456,7 +8456,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8479,7 +8479,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8502,7 +8502,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8525,7 +8525,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8548,7 +8548,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8571,7 +8571,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8594,7 +8594,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8617,7 +8617,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8631,7 +8631,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "445": [ @@ -8647,7 +8647,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8661,7 +8661,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "446": [ @@ -8677,7 +8677,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8691,7 +8691,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "447": [ @@ -8707,7 +8707,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8721,7 +8721,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "448": [ @@ -8737,7 +8737,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8751,7 +8751,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "449": [ @@ -8767,7 +8767,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8781,7 +8781,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "450": [ @@ -8797,7 +8797,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8811,7 +8811,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "451": [ @@ -8827,7 +8827,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8841,7 +8841,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "452": [ @@ -8857,7 +8857,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8871,7 +8871,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "453": [ @@ -8887,7 +8887,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8901,7 +8901,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "454": [ @@ -8917,7 +8917,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8931,7 +8931,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "455": [ @@ -8947,7 +8947,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8961,7 +8961,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "456": [ @@ -8977,7 +8977,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8991,7 +8991,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "457": [ @@ -9007,7 +9007,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9021,7 +9021,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "458": [ @@ -9037,7 +9037,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9051,7 +9051,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "459": [ @@ -9067,7 +9067,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9081,7 +9081,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "460": [ @@ -9097,7 +9097,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9111,7 +9111,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "461": [ @@ -9127,7 +9127,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9141,7 +9141,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "462": [ @@ -9157,7 +9157,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9171,7 +9171,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "463": [ @@ -9187,7 +9187,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9201,7 +9201,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "464": [ @@ -9217,7 +9217,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9231,7 +9231,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "465": [ @@ -9247,7 +9247,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9261,7 +9261,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "466": [ @@ -9277,7 +9277,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9291,7 +9291,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "467": [ @@ -9307,7 +9307,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9321,7 +9321,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "468": [ @@ -9337,7 +9337,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9351,7 +9351,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "469": [ @@ -9367,7 +9367,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9381,7 +9381,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "470": [ @@ -9397,7 +9397,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9411,7 +9411,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "472": [ @@ -9427,7 +9427,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -9441,7 +9441,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "487": [ @@ -9457,7 +9457,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "488": [ @@ -9473,7 +9473,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "489": [ @@ -9489,7 +9489,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "490": [ @@ -9505,7 +9505,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9528,7 +9528,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9551,7 +9551,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9574,7 +9574,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9597,7 +9597,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9620,7 +9620,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9643,7 +9643,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9666,7 +9666,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9689,7 +9689,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9712,7 +9712,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9735,7 +9735,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9758,7 +9758,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9781,7 +9781,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9804,7 +9804,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9827,7 +9827,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9850,7 +9850,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9873,7 +9873,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9896,7 +9896,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9919,7 +9919,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9942,7 +9942,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9965,7 +9965,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9988,7 +9988,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10011,7 +10011,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10034,7 +10034,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10057,7 +10057,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10080,7 +10080,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10103,7 +10103,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10126,7 +10126,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10149,7 +10149,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10172,7 +10172,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10195,7 +10195,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10218,7 +10218,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10241,7 +10241,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10264,7 +10264,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10287,7 +10287,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10310,7 +10310,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10333,7 +10333,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10356,7 +10356,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10379,7 +10379,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10402,7 +10402,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10425,7 +10425,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10448,7 +10448,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10471,7 +10471,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10494,7 +10494,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10517,7 +10517,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10540,7 +10540,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10563,7 +10563,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10586,7 +10586,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10609,7 +10609,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10632,7 +10632,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10655,7 +10655,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10678,7 +10678,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10701,7 +10701,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10724,7 +10724,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10747,7 +10747,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10770,7 +10770,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10793,7 +10793,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10816,7 +10816,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10839,7 +10839,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10862,7 +10862,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10885,7 +10885,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10908,7 +10908,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10931,7 +10931,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10954,7 +10954,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10977,7 +10977,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11000,7 +11000,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11023,7 +11023,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11046,7 +11046,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11069,7 +11069,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11092,7 +11092,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11115,7 +11115,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11138,7 +11138,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11161,7 +11161,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11184,7 +11184,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11207,7 +11207,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11230,7 +11230,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11253,7 +11253,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11276,7 +11276,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11299,7 +11299,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11322,7 +11322,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11345,7 +11345,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11368,7 +11368,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11391,7 +11391,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11414,7 +11414,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11437,7 +11437,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11460,7 +11460,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11483,7 +11483,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11506,7 +11506,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11529,7 +11529,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11552,7 +11552,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11575,7 +11575,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11598,7 +11598,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11621,7 +11621,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11644,7 +11644,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11667,7 +11667,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11690,7 +11690,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11713,7 +11713,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11736,7 +11736,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11759,7 +11759,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11782,7 +11782,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11805,7 +11805,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11828,7 +11828,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11851,7 +11851,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11874,7 +11874,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11897,7 +11897,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11911,7 +11911,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11941,7 +11941,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11955,7 +11955,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11985,7 +11985,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11999,7 +11999,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12029,7 +12029,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12043,7 +12043,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12073,7 +12073,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12087,7 +12087,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12117,7 +12117,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12131,7 +12131,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12161,7 +12161,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12175,7 +12175,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12205,7 +12205,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12219,7 +12219,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12249,7 +12249,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12263,7 +12263,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12293,7 +12293,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12307,7 +12307,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12337,7 +12337,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12351,7 +12351,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12381,7 +12381,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12395,7 +12395,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12425,7 +12425,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12439,7 +12439,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12469,7 +12469,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12483,7 +12483,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12513,7 +12513,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12527,7 +12527,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12557,7 +12557,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12571,7 +12571,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12601,7 +12601,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12615,7 +12615,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12645,7 +12645,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12659,7 +12659,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12689,7 +12689,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12703,7 +12703,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12733,7 +12733,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12747,7 +12747,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12777,7 +12777,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12791,7 +12791,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12821,7 +12821,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12835,7 +12835,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12865,7 +12865,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12879,7 +12879,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12909,7 +12909,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12923,7 +12923,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12953,7 +12953,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12967,7 +12967,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12997,7 +12997,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13011,7 +13011,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13041,7 +13041,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13055,7 +13055,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13085,7 +13085,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13099,7 +13099,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13129,7 +13129,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13143,7 +13143,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13173,7 +13173,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13187,7 +13187,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13217,7 +13217,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13231,7 +13231,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13261,7 +13261,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13275,7 +13275,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13305,7 +13305,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13319,7 +13319,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13349,7 +13349,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13363,7 +13363,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13393,7 +13393,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13407,7 +13407,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13437,7 +13437,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13451,7 +13451,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13481,7 +13481,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13495,7 +13495,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13525,7 +13525,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13539,7 +13539,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13569,7 +13569,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13583,7 +13583,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13613,7 +13613,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13627,7 +13627,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13657,7 +13657,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13671,7 +13671,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13694,7 +13694,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13708,7 +13708,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13731,7 +13731,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13745,7 +13745,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13768,7 +13768,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13782,7 +13782,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13805,7 +13805,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13819,7 +13819,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13842,7 +13842,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13856,7 +13856,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13879,7 +13879,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13893,7 +13893,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13916,7 +13916,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13930,7 +13930,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13953,7 +13953,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13967,7 +13967,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13990,7 +13990,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14004,7 +14004,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14027,7 +14027,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14041,7 +14041,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14064,7 +14064,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14078,7 +14078,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14101,7 +14101,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14115,7 +14115,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14138,7 +14138,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14152,7 +14152,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14175,7 +14175,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14189,7 +14189,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14212,7 +14212,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14226,7 +14226,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14249,7 +14249,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14263,7 +14263,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14286,7 +14286,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14300,7 +14300,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14323,7 +14323,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14337,7 +14337,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14360,7 +14360,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14374,7 +14374,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14397,7 +14397,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14411,7 +14411,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14434,7 +14434,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14448,7 +14448,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14471,7 +14471,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14485,7 +14485,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14508,7 +14508,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14522,7 +14522,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14545,7 +14545,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14559,7 +14559,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14582,7 +14582,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14596,7 +14596,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14619,7 +14619,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14633,7 +14633,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14656,7 +14656,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14670,7 +14670,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14693,7 +14693,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14707,7 +14707,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -14730,7 +14730,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "685": [ @@ -14746,7 +14746,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "686": [ @@ -14762,7 +14762,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "687": [ @@ -14778,7 +14778,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14801,7 +14801,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14824,7 +14824,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14847,7 +14847,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14870,7 +14870,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14893,7 +14893,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14916,7 +14916,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14939,7 +14939,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14962,7 +14962,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14985,7 +14985,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15008,7 +15008,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15031,7 +15031,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15054,7 +15054,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15077,7 +15077,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15100,7 +15100,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15123,7 +15123,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15146,7 +15146,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15169,7 +15169,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15192,7 +15192,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15215,7 +15215,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15238,7 +15238,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15261,7 +15261,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15284,7 +15284,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15307,7 +15307,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15330,7 +15330,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15353,7 +15353,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15376,7 +15376,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15399,7 +15399,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15422,7 +15422,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15445,7 +15445,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15468,7 +15468,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15491,7 +15491,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15514,7 +15514,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15537,7 +15537,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15560,7 +15560,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15583,7 +15583,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15606,7 +15606,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15629,7 +15629,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15652,7 +15652,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15675,7 +15675,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15698,7 +15698,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15721,7 +15721,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15744,7 +15744,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15767,7 +15767,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15790,7 +15790,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15813,7 +15813,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15836,7 +15836,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15859,7 +15859,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15882,7 +15882,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15905,7 +15905,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15928,7 +15928,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15951,7 +15951,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15974,7 +15974,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15997,7 +15997,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16020,7 +16020,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16043,7 +16043,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16066,7 +16066,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16089,7 +16089,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16112,7 +16112,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16135,7 +16135,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16158,7 +16158,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16181,7 +16181,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16204,7 +16204,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16227,7 +16227,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16250,7 +16250,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16273,7 +16273,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16296,7 +16296,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16319,7 +16319,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16342,7 +16342,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16365,7 +16365,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16388,7 +16388,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16411,7 +16411,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16434,7 +16434,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16457,7 +16457,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16480,7 +16480,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16503,7 +16503,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16526,7 +16526,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16549,7 +16549,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16572,7 +16572,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16595,7 +16595,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16618,7 +16618,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16641,7 +16641,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16664,7 +16664,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16687,7 +16687,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16710,7 +16710,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16733,7 +16733,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16756,7 +16756,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16779,7 +16779,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16802,7 +16802,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16825,7 +16825,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16848,7 +16848,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16871,7 +16871,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16894,7 +16894,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16917,7 +16917,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16940,7 +16940,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16963,7 +16963,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16986,7 +16986,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17009,7 +17009,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17032,7 +17032,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17055,7 +17055,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17078,7 +17078,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17101,7 +17101,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17124,7 +17124,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17147,7 +17147,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17170,7 +17170,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17184,7 +17184,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17214,7 +17214,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17228,7 +17228,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17258,7 +17258,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17272,7 +17272,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17302,7 +17302,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17316,7 +17316,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17346,7 +17346,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17360,7 +17360,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17390,7 +17390,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17404,7 +17404,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17434,7 +17434,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17448,7 +17448,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17478,7 +17478,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17492,7 +17492,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17522,7 +17522,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17536,7 +17536,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17566,7 +17566,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17580,7 +17580,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17610,7 +17610,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17624,7 +17624,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17654,7 +17654,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17668,7 +17668,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17698,7 +17698,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17712,7 +17712,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17742,7 +17742,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17756,7 +17756,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17786,7 +17786,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17800,7 +17800,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17830,7 +17830,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17844,7 +17844,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17874,7 +17874,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17888,7 +17888,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17918,7 +17918,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17932,7 +17932,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17962,7 +17962,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17976,7 +17976,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18006,7 +18006,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18020,7 +18020,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18050,7 +18050,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18064,7 +18064,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18094,7 +18094,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18108,7 +18108,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18138,7 +18138,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18152,7 +18152,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18182,7 +18182,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18196,7 +18196,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18226,7 +18226,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18240,7 +18240,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18270,7 +18270,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18284,7 +18284,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18314,7 +18314,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18328,7 +18328,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18358,7 +18358,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18372,7 +18372,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18402,7 +18402,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18416,7 +18416,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18446,7 +18446,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18460,7 +18460,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18490,7 +18490,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18504,7 +18504,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18534,7 +18534,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18548,7 +18548,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18578,7 +18578,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18592,7 +18592,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18622,7 +18622,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18636,7 +18636,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18666,7 +18666,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18680,7 +18680,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18710,7 +18710,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18724,7 +18724,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18754,7 +18754,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18768,7 +18768,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18798,7 +18798,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18812,7 +18812,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18842,7 +18842,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18856,7 +18856,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18886,7 +18886,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18900,7 +18900,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18930,7 +18930,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18944,7 +18944,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18967,7 +18967,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18981,7 +18981,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19004,7 +19004,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19018,7 +19018,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19041,7 +19041,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19055,7 +19055,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19078,7 +19078,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19092,7 +19092,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19115,7 +19115,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19129,7 +19129,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19152,7 +19152,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19166,7 +19166,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19189,7 +19189,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19203,7 +19203,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19226,7 +19226,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19240,7 +19240,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19263,7 +19263,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19277,7 +19277,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19300,7 +19300,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19314,7 +19314,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19337,7 +19337,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19351,7 +19351,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19374,7 +19374,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19388,7 +19388,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19411,7 +19411,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19425,7 +19425,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19448,7 +19448,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19462,7 +19462,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19485,7 +19485,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19499,7 +19499,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19522,7 +19522,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19536,7 +19536,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19559,7 +19559,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19573,7 +19573,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19596,7 +19596,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19610,7 +19610,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19633,7 +19633,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19647,7 +19647,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19670,7 +19670,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19684,7 +19684,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19707,7 +19707,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19721,7 +19721,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19744,7 +19744,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19758,7 +19758,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19781,7 +19781,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19795,7 +19795,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19818,7 +19818,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19832,7 +19832,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19855,7 +19855,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19869,7 +19869,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19892,7 +19892,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19906,7 +19906,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19929,7 +19929,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19943,7 +19943,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19966,7 +19966,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19980,7 +19980,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -20003,7 +20003,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20017,7 +20017,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "881": [ @@ -20033,7 +20033,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20047,7 +20047,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "882": [ @@ -20063,7 +20063,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20077,7 +20077,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "883": [ @@ -20093,7 +20093,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20107,7 +20107,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "884": [ @@ -20123,7 +20123,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20137,7 +20137,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "885": [ @@ -20153,7 +20153,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20167,7 +20167,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "886": [ @@ -20183,7 +20183,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20197,7 +20197,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "887": [ @@ -20213,7 +20213,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20227,7 +20227,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "888": [ @@ -20243,7 +20243,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20257,7 +20257,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "889": [ @@ -20273,7 +20273,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20287,7 +20287,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "890": [ @@ -20303,7 +20303,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20317,7 +20317,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "891": [ @@ -20333,7 +20333,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20347,7 +20347,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "892": [ @@ -20363,7 +20363,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20377,7 +20377,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "893": [ @@ -20393,7 +20393,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20407,7 +20407,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "894": [ @@ -20423,7 +20423,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20437,7 +20437,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "895": [ @@ -20453,7 +20453,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20467,7 +20467,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "896": [ @@ -20483,7 +20483,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20497,7 +20497,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "897": [ @@ -20513,7 +20513,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20527,7 +20527,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "898": [ @@ -20543,7 +20543,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20557,7 +20557,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "899": [ @@ -20573,7 +20573,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20587,7 +20587,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "900": [ @@ -20603,7 +20603,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20617,7 +20617,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "901": [ @@ -20633,7 +20633,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20647,7 +20647,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "902": [ @@ -20663,7 +20663,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20677,7 +20677,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "903": [ @@ -20693,7 +20693,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20707,7 +20707,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "904": [ @@ -20723,7 +20723,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20737,7 +20737,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "905": [ @@ -20753,7 +20753,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20767,7 +20767,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "906": [ @@ -20783,7 +20783,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20797,7 +20797,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "908": [ @@ -20813,7 +20813,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -20827,7 +20827,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ] } @@ -20836,7 +20836,7 @@ "fileMap": { "0": { "source": "mod storage;\nmod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n use dep::aztec::entrypoint;\n use dep::aztec::entrypoint::EntrypointPayload;\n use dep::aztec::abi;\n use dep::aztec::abi::PrivateContextInputs;\n use dep::aztec::abi::CallContext;\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\n use dep::aztec::context::PrivateContext;\n use dep::aztec::log::emit_encrypted_log;\n use dep::aztec::oracle::get_public_key::get_public_key;\n use dep::aztec::types::vec::BoundedVec;\n use dep::aztec::types::point::Point;\n use dep::aztec::note::utils as note_utils;\n use dep::aztec::note::note_header::NoteHeader;\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\n\n use crate::storage::Storage;\n use crate::public_key_note::PublicKeyNote;\n use crate::public_key_note::PublicKeyNoteMethods;\n use crate::public_key_note::PUBLIC_KEY_NOTE_LEN;\n\n fn entrypoint(\n inputs: pub PrivateContextInputs,\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\n signature: pub [u8;64], // schnorr signature of the payload hash\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n // Initialize context\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\n let mut args: BoundedVec = BoundedVec::new(0);\n args.push_array(payload.serialize());\n for byte in signature { args.push(byte as Field); }\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\n\n // Load public key from storage\n let storage = Storage::init();\n let public_key = storage.signing_public_key.get_note(&mut context);\n\n // Verify payload signature\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\n let message_bytes = message_field.to_be_bytes(32);\n\n // Verify signature of the payload bytes\n let verification = std::schnorr::verify_signature(public_key.x, public_key.y, signature, message_bytes);\n assert(verification == true);\n\n // Execute calls\n payload.execute_calls(&mut context);\n\n context.finish()\n }\n\n // Constructs the contract\n fn constructor(\n inputs: pub PrivateContextInputs,\n signing_pub_key_x: pub Field,\n signing_pub_key_y: pub Field,\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n let storage = Storage::init();\n \n let mut context = PrivateContext::new(inputs, abi::hash_args([signing_pub_key_x, signing_pub_key_y]));\n \n let this = context.this_address();\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.signing_public_key.initialise(&mut context, &mut pub_key_note);\n \n emit_encrypted_log(\n &mut context,\n this,\n storage.signing_public_key.storage_slot,\n get_public_key(this),\n pub_key_note.serialise(),\n );\n\n context.finish()\n }\n\n // Computes notes hash and nullifier.\n // Note 1: Needs to be defined by every contract producing logs.\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\n assert(storage_slot == 1);\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\n note_utils::compute_note_hash_and_nullifier(PublicKeyNoteMethods, note_header, preimage)\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_account_contract/src/main" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-contracts/src/contracts/schnorr_account_contract/src/main" }, "3": { "source": "mod poseidon;\n\n#[foreign(sha256)]\nfn sha256(_input : [u8; N]) -> [u8; 32] {}\n\n#[foreign(blake2s)]\nfn blake2s(_input : [u8; N]) -> [u8; 32] {}\n\nfn pedersen(input : [Field; N]) -> [Field; 2] {\n pedersen_with_separator(input, 0)\n}\n\n#[foreign(pedersen)]\nfn pedersen_with_separator(_input : [Field; N], _separator : u32) -> [Field; 2] {}\n\n#[foreign(hash_to_field_128_security)]\nfn hash_to_field(_input : [Field; N]) -> Field {}\n\n#[foreign(keccak256)]\nfn keccak256(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\n\n// mimc-p/p implementation\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\n// You must use constants generated for the native field\n// Rounds number should be ~ log(p)/log(exp)\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\nfn mimc(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\n //round 0\n let mut t = x + k;\n let mut h = t.pow_32(exp);\n //next rounds\n for i in 1 .. constants.len() {\n t = h + k + constants[i];\n h = t.pow_32(exp);\n };\n h + k\n}\n\nglobal MIMC_BN254_ROUNDS = 91;\n\n//mimc implementation with hardcoded parameters for BN254 curve.\nfn mimc_bn254(array: [Field; N]) -> Field {\n //mimc parameters\n let exponent = 7;\n //generated from seed \"mimc\" using keccak256 \n let constants: [Field; MIMC_BN254_ROUNDS] = [\n 0, \n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\n ];\n\n let mut r = 0;\n for elem in array {\n let h = mimc(elem, r, constants, exponent);\n r = r + elem + h;\n }\n r\n}\n", @@ -20848,47 +20848,47 @@ }, "31": { "source": "use crate::constants_gen::{\n RETURN_VALUES_LENGTH,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n GENERATOR_INDEX__FUNCTION_ARGS,\n HISTORIC_BLOCK_DATA_LENGTH,\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n CALL_CONTEXT_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\n CONTRACT_STORAGE_READ_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__FUNCTION_DATA,\n GENERATOR_INDEX__PUBLIC_DATA_READ,\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\n GENERATOR_INDEX__CALL_CONTEXT,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n};\n\nuse crate::oracle::debug_log;\nuse crate::types::vec::BoundedVec;\nuse crate::types::point::Point;\n\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n\nimpl PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\nstruct ContractDeploymentData {\n deployer_public_key: Point,\n constructor_vk_hash : Field,\n function_tree_root : Field,\n contract_address_salt : Field,\n portal_contract_address : Field,\n}\n\nimpl ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.deployer_public_key.x,\n self.deployer_public_key.y,\n self.constructor_vk_hash,\n self.function_tree_root,\n self.contract_address_salt,\n self.portal_contract_address,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\nstruct PrivateContextInputs {\n call_context : CallContext,\n block_data: HistoricBlockData,\n\n contract_deployment_data: ContractDeploymentData,\n\n private_global_variables: PrivateGlobalVariables,\n}\n\n// PublicContextInputs are expected to be provided to each public function\nstruct PublicContextInputs {\n call_context: CallContext,\n block_data: HistoricBlockData,\n\n public_global_variables: PublicGlobalVariables,\n}\n\nstruct CallContext {\n msg_sender : Field,\n storage_contract_address : Field,\n portal_contract_address : Field,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment: bool,\n}\n\nimpl CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender,\n self.storage_contract_address,\n self.portal_contract_address,\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\n }\n}\n\nstruct HistoricBlockData {\n private_data_tree_root : Field,\n nullifier_tree_root : Field,\n contract_tree_root : Field,\n l1_to_l2_messages_tree_root : Field,\n blocks_tree_root: Field,\n public_data_tree_root: Field,\n global_variables_hash: Field,\n}\n\nimpl HistoricBlockData {\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\n [\n self.private_data_tree_root,\n self.nullifier_tree_root,\n self.contract_tree_root,\n self.l1_to_l2_messages_tree_root,\n self.blocks_tree_root,\n self.public_data_tree_root,\n self.global_variables_hash,\n ]\n }\n\n fn empty() -> Self {\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\n }\n}\n\nstruct FunctionData {\n function_selector: Field,\n is_internal: bool,\n is_private: bool,\n is_constructor: bool,\n}\n\nimpl FunctionData {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator([\n self.function_selector,\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n // Explore introducing a new type like uint256 (similar to Point), so it's more explicit that\n // we're talking about a single number backed by two field elements.\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n contract_deployment_data: ContractDeploymentData,\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push(self.call_context.hash());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.nullified_commitments);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.contract_deployment_data.hash());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.storage\n }\n}\n\nstruct ContractStorageRead {\n storage_slot: Field,\n value: Field,\n}\n\nimpl ContractStorageRead {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, value: 0 }\n }\n}\n\nstruct ContractStorageUpdateRequest {\n storage_slot: Field,\n old_value: Field,\n new_value: Field,\n}\n\nimpl ContractStorageUpdateRequest {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.old_value, self.new_value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\n }\n}\n\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n prover_address: Field,\n\n // TODO: include globals in here and check them elsewhere\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\n}\n\nimpl PublicCircuitPublicInputs {\n \n fn hash(self) -> Field {\n let mut inputs: BoundedVec = BoundedVec::new(0);\n inputs.push(self.call_context.hash());\n inputs.push(self.args_hash);\n inputs.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n inputs.push(self.contract_storage_update_requests[i].hash());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n inputs.push(self.contract_storage_read[i].hash());\n }\n inputs.push_array(self.public_call_stack);\n inputs.push_array(self.new_commitments);\n inputs.push_array(self.new_nullifiers);\n inputs.push_array(self.new_l2_to_l1_msgs);\n\n // We do not include block_data since it's not in the cpp hash\n\n inputs.push_array(self.unencrypted_logs_hash);\n inputs.push(self.unencrypted_log_preimages_length);\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\n inputs.push(self.prover_address);\n\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.push_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.push_array(self.contract_storage_read[i].serialize());\n }\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.prover_address);\n fields.storage\n }\n}\n\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\n\nfn hash_args(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\n }\n chunks_hashes[i] = chunk_hash;\n }\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/abi" }, "32": { - "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, msg: Field) {\n self.new_l2_to_l1_msgs.push(msg);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context" + "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/context" }, "33": { "source": "use crate::context::PrivateContext;\nuse crate::oracle;\nuse crate::types::point::Point;\n\nfn emit_encrypted_log(\n context: &mut PrivateContext,\n contract_address: Field,\n storage_slot: Field,\n encryption_pub_key: Point,\n log: [Field; N],\n) {\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\n context.accumulate_encrypted_logs(log);\n}\n\nfn emit_unencrypted_log(\n context: &mut PrivateContext,\n log: T,\n) {\n let _ = oracle::logs::emit_unencrypted_log(log);\n context.accumulate_unencrypted_logs(log);\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/log" }, "39": { - "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_inner_note_hash,\n};\nuse crate::oracle::create_commitment::create_commitment;\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\n\nfn create_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(*note);\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn create_note_hash_from_public(\n context: PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = context.this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n create_commitment(inner_note_hash);\n}\n\nfn destroy_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: Note,\n note_interface: NoteInterface,\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(note);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // 0 nonce implies \"transient\" nullifier (must nullify a commitment in this TX).\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullier to its output.\n if (header.nonce == 0) {\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle" + "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_inner_note_hash,\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\n\nfn create_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(*note);\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn create_note_hash_from_public(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn destroy_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: Note,\n note_interface: NoteInterface,\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(note);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // 0 nonce implies \"transient\" nullifier (must nullify a commitment in this TX).\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullier to its output.\n if (header.nonce == 0) {\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle" }, "40": { - "source": "use dep::std::option::Option;\nuse crate::constants_gen::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::NoteGetterOptions,\n note_interface::NoteInterface,\n note_header::NoteHeader,\n utils::compute_note_hash_for_read_or_nullify,\n utils::compute_unique_siloed_note_hash,\n utils::compute_inner_note_hash,\n utils::compute_siloed_note_hash,\n};\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\nuse crate::oracle;\n\nfn check_note_header(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: Note,\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address == contract_address);\n assert(header.storage_slot == storage_slot);\n}\n\nfn ensure_note_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n let saved_note = get_note_internal(storage_slot, note_interface);\n\n // Only copy over the header to the original note to make sure the preimage is the same.\n let get_header = note_interface.get_header;\n let set_header = note_interface.set_header;\n let note_header = get_header(saved_note);\n set_header(note, note_header);\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\n context.push_read_request(note_hash_for_read_request);\n}\n\n// Ensure a note's hash exists in the tree without retrieving the entire\n// notes via the oracle.\n// Modifies the note by populating it with header info.\nfn ensure_note_hash_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\n // - storage slot (used in inner note hash)\n // - the contract address (used in siloed note hash)\n // - and the nonce (used in the unique siloed note hash)\n let set_header = note_interface.set_header;\n let note_header = NoteHeader {\n contract_address: (*context).this_address(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // real nonce (once public kernel applies nonces).\n nonce: 0,\n storage_slot\n };\n set_header(note, note_header);\n\n // Get a note from oracle and early out if it doesn't exist.\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // unique_siloed_note_hash once public kernel applies nonces\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\n\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\n\n context.push_read_request(computed_siloed_note_hash);\n}\n\nfn get_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\nfn get_notes(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; S] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n let mut note_hash_for_read_request = 0;\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n check_note_header(*context, storage_slot, note_interface, note);\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n };\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n };\n\n // TODO(#1660)\n // Move it back to get_notes_internal and only make read request for selected notes.\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained fn get_note_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields,\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let sort_by = options.sort_by;\n let mut sort_by_indices = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sort_by.len() {\n sort_by_indices[i] = sort_by[i].field_index;\n sort_order[i] = sort_by[i].order;\n };\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n sort_by_indices,\n sort_order,\n MAX_READ_REQUESTS_PER_CALL as u32,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn view_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n limit: u32,\n offset: u32,\n) -> [Option; MAX_NOTES_PER_PAGE] {\n let sort_by = [0; N];\n let sort_order = [0; N];\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(storage_slot, note_interface, sort_by, sort_order, limit, offset, placeholder_opt_notes, placeholder_fields)\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter" + "source": "use dep::std::option::Option;\nuse crate::constants_gen::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::{NoteGetterOptions, Select, Sort},\n note_interface::NoteInterface,\n note_header::NoteHeader,\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_or_nullify,\n utils::compute_unique_siloed_note_hash,\n utils::compute_inner_note_hash,\n utils::compute_siloed_note_hash,\n};\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\nuse crate::oracle;\nuse crate::types::vec::BoundedVec;\n\nfn check_note_header(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: Note,\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address == contract_address);\n assert(header.storage_slot == storage_slot);\n}\n\nfn ensure_note_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n let saved_note = get_note_internal(storage_slot, note_interface);\n\n // Only copy over the header to the original note to make sure the preimage is the same.\n let get_header = note_interface.get_header;\n let set_header = note_interface.set_header;\n let note_header = get_header(saved_note);\n set_header(note, note_header);\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\n context.push_read_request(note_hash_for_read_request);\n}\n\n// Ensure a note's hash exists in the tree without retrieving the entire\n// notes via the oracle.\n// Modifies the note by populating it with header info.\nfn ensure_note_hash_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\n // - storage slot (used in inner note hash)\n // - the contract address (used in siloed note hash)\n // - and the nonce (used in the unique siloed note hash)\n let set_header = note_interface.set_header;\n let note_header = NoteHeader {\n contract_address: (*context).this_address(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // real nonce (once public kernel applies nonces).\n nonce: 0,\n storage_slot\n };\n set_header(note, note_header);\n\n // Get a note from oracle and early out if it doesn't exist.\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // unique_siloed_note_hash once public kernel applies nonces\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\n\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\n\n context.push_read_request(computed_siloed_note_hash);\n}\n\nfn get_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\nfn get_notes(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n let mut note_hash_for_read_request = 0;\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n check_note_header(*context, storage_slot, note_interface, note);\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n };\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n };\n\n // TODO(#1660)\n // Move it back to get_notes_internal and only make read request for selected notes.\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained fn get_note_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n 0,\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields,\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn view_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteViewerOptions,\n) -> [Option; MAX_NOTES_PER_PAGE] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn flatten_options(\n selects: BoundedVec, N>,\n sorts: BoundedVec, N>,\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\n let mut num_selects = 0;\n let mut select_by = [0; N];\n let mut select_values = [0; N];\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by[num_selects] = select.unwrap_unchecked().field_index;\n select_values[num_selects] = select.unwrap_unchecked().value;\n num_selects += 1;\n };\n };\n\n let mut sort_by = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by[i] = sort.unwrap_unchecked().field_index;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n };\n\n (num_selects, select_by, select_values, sort_by, sort_order)\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter" }, "42": { "source": "use dep::std::hash::{pedersen, pedersen_with_separator};\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\n\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\n // TODO(#1205) Do we need a generator index here?\n pedersen([storage_slot, note_hash])[0]\n}\n\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\n let inputs = [contract_address, inner_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\n}\n\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash" }, - "45": { + "46": { "source": "use crate::note::{\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\nfn compute_inner_note_hash(\n note_interface: NoteInterface,\n note: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n\n compute_inner_hash(header.storage_slot, note_hash)\n}\n\nfn compute_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\n\n compute_siloed_hash(header.contract_address, inner_note_hash)\n}\n\nfn compute_unique_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\n\n compute_unique_hash(header.nonce, siloed_note_hash)\n}\n\nfn compute_note_hash_for_read_or_nullify(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n if (header.nonce == 0) {\n // when nonce is zero, that means we are reading a pending note (doesn't have a nonce yet),\n // so we just read the inner_note_hash (kernel will silo by contract address)\n compute_inner_note_hash(note_interface, note_with_header)\n } else {\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\n // contract address and then nonce. This hash will match the existing leaf in the private\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\n compute_unique_siloed_note_hash(note_interface, note_with_header)\n }\n\n}\n\nfn compute_note_hash_and_nullifier(\n note_interface: NoteInterface,\n note_header: NoteHeader,\n preimage: [Field; S],\n) -> [Field; 4] {\n let deserialise = note_interface.deserialise;\n let set_header = note_interface.set_header;\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\n set_header(&mut note, note_header);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\n\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\n\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\n\n let compute_nullifier = note_interface.compute_nullifier;\n let inner_nullifier = compute_nullifier(note);\n\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/note/utils" }, - "47": { - "source": "use dep::std::hash::pedersen_with_separator;\nuse crate::context::PrivateContext;\nuse crate::note::lifecycle::create_note;\nuse crate::note::note_getter::get_note;\nuse crate::note::note_interface::NoteInterface;\nuse crate::oracle;\nuse crate::constants_gen::{\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\n EMPTY_NULLIFIED_COMMITMENT,\n};\n\nstruct ImmutableSingleton {\n storage_slot: Field,\n note_interface: NoteInterface,\n}\n\nimpl ImmutableSingleton {\n fn new(storage_slot: Field, note_interface: NoteInterface) -> Self {\n ImmutableSingleton { storage_slot, note_interface }\n }\n\n unconstrained fn is_initialised(self) -> bool {\n let nullifier = self.compute_initialisation_nullifier();\n oracle::notes::is_nullifier_emitted(nullifier)\n }\n\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\n // Nullify the storage slot.\n let nullifier = self.compute_initialisation_nullifier();\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\n\n create_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn compute_initialisation_nullifier(self) -> Field {\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\n }\n \n fn get_note(self, context: &mut PrivateContext) -> Note {\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot, self.note_interface)\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton" + "48": { + "source": "use dep::std::hash::pedersen_with_separator;\nuse crate::context::PrivateContext;\nuse crate::note::{\n lifecycle::create_note,\n note_getter::{get_note, view_notes},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle;\nuse crate::constants_gen::{\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\n EMPTY_NULLIFIED_COMMITMENT,\n};\n\nstruct ImmutableSingleton {\n storage_slot: Field,\n note_interface: NoteInterface,\n}\n\nimpl ImmutableSingleton {\n fn new(storage_slot: Field, note_interface: NoteInterface) -> Self {\n ImmutableSingleton { storage_slot, note_interface }\n }\n\n unconstrained fn is_initialised(self) -> bool {\n let nullifier = self.compute_initialisation_nullifier();\n oracle::notes::is_nullifier_emitted(nullifier)\n }\n\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\n // Nullify the storage slot.\n let nullifier = self.compute_initialisation_nullifier();\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\n\n create_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn compute_initialisation_nullifier(self) -> Field {\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\n }\n \n fn get_note(self, context: &mut PrivateContext) -> Note {\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot, self.note_interface)\n }\n\n unconstrained fn view_note(self) -> Note {\n let options = NoteViewerOptions::new().set_limit(1);\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\n }\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton" }, - "54": { + "55": { "source": "\nstruct BoundedVec {\n storage: [T; MaxLen],\n len: Field,\n}\n\nimpl BoundedVec {\n fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\n }\n\n fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64);\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n fn push_array(&mut self, array: [T; Len]) {\n let newLen = self.len + array.len();\n assert(newLen as u64 <= MaxLen as u64);\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = newLen;\n }\n\n fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n\n let elem = self.storage[self.len - 1];\n self.len -= 1;\n elem\n }\n}\n\n// #[test]\n// fn test_vec() {\n// let vec: BoundedVec = BoundedVec::new(0);\n// assert(vec.len == 0);\n// let vec1 = vec.push(1);\n// assert(vec1.len == 1);\n// let vec2 = vec1.push(1);\n// assert(vec2.len == 2);\n// let vec3 = vec2.push(1);\n// assert(vec3.len == 3);\n// let x = vec3.pop();\n// assert(x == 1);\n// }", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" }, - "72": { + "70": { "source": "use crate::types::point::Point;\nuse dep::std::hash;\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\n\n#[oracle(getPublicKey)]\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\n\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\n get_public_key_oracle(address)\n}\n\nfn get_public_key(address: Field) -> Point {\n let result = get_public_key_internal(address);\n let pub_key_x = result[0];\n let pub_key_y = result[1];\n let partial_address = result[2];\n \n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\n assert(calculated_address == address);\n \n Point::new(pub_key_x, pub_key_y)\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key" }, - "80": { + "78": { "source": "use crate::abi;\nuse crate::types::vec::BoundedVec;\nuse crate::context::PrivateContext;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem; \n\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\nglobal ACCOUNT_MAX_CALLS: Field = 4;\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\nglobal FUNCTION_CALL_SIZE: Field = 3;\n\nstruct FunctionCall {\n args_hash: Field,\n function_selector: Field,\n target_address: Field,\n}\n\nimpl FunctionCall {\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\n [self.args_hash, self.function_selector, self.target_address]\n }\n}\n\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\n\nstruct EntrypointPayload {\n // Noir doesnt support nested arrays or structs yet so we flatten everything\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n\nimpl EntrypointPayload {\n // TODO(#1207) Do we need a generator index?\n fn hash(self) -> Field {\n dep::std::hash::pedersen(self.serialize())[0]\n }\n\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.flattened_args_hashes);\n fields.push_array(self.flattened_selectors);\n fields.push_array(self.flattened_targets);\n fields.push(self.nonce);\n fields.storage\n }\n\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\n\n let args_len = self.flattened_args_hashes.len();\n let selectors_len = self.flattened_selectors.len();\n let targets_len = self.flattened_targets.len();\n\n for i in 0..args_len {\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..selectors_len {\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..targets_len {\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n \n let item_bytes = self.nonce.to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\n }\n\n bytes\n }\n\n // Executes all private and public calls \n fn execute_calls(self, context: &mut PrivateContext) {\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" } } } diff --git a/yarn-project/aztec.js/src/abis/schnorr_single_key_account_contract.json b/yarn-project/aztec.js/src/abis/schnorr_single_key_account_contract.json index 025bfd098f0..7cc0f4e7c54 100644 --- a/yarn-project/aztec.js/src/abis/schnorr_single_key_account_contract.json +++ b/yarn-project/aztec.js/src/abis/schnorr_single_key_account_contract.json @@ -2238,7 +2238,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "309": [ @@ -2254,7 +2254,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "310": [ @@ -2270,7 +2270,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "311": [ @@ -2286,7 +2286,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2309,7 +2309,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2332,7 +2332,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2355,7 +2355,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2378,7 +2378,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2401,7 +2401,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2424,7 +2424,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2447,7 +2447,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2470,7 +2470,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2493,7 +2493,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2516,7 +2516,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2539,7 +2539,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2562,7 +2562,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2585,7 +2585,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2608,7 +2608,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2631,7 +2631,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2654,7 +2654,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2677,7 +2677,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2700,7 +2700,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2723,7 +2723,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2746,7 +2746,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2769,7 +2769,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2792,7 +2792,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2815,7 +2815,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2838,7 +2838,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2861,7 +2861,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2884,7 +2884,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2907,7 +2907,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2930,7 +2930,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2953,7 +2953,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2976,7 +2976,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -2999,7 +2999,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3022,7 +3022,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3045,7 +3045,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3068,7 +3068,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3091,7 +3091,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3114,7 +3114,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3137,7 +3137,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3160,7 +3160,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3183,7 +3183,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3206,7 +3206,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3229,7 +3229,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3252,7 +3252,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3275,7 +3275,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3298,7 +3298,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3321,7 +3321,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3344,7 +3344,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3367,7 +3367,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3390,7 +3390,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3413,7 +3413,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3436,7 +3436,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3459,7 +3459,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3482,7 +3482,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3505,7 +3505,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3528,7 +3528,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3551,7 +3551,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3574,7 +3574,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3597,7 +3597,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3620,7 +3620,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3643,7 +3643,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3666,7 +3666,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3689,7 +3689,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3712,7 +3712,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3735,7 +3735,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3758,7 +3758,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3781,7 +3781,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3804,7 +3804,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3827,7 +3827,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3850,7 +3850,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3873,7 +3873,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3896,7 +3896,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3919,7 +3919,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3942,7 +3942,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3965,7 +3965,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -3988,7 +3988,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4011,7 +4011,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4034,7 +4034,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4057,7 +4057,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4080,7 +4080,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4103,7 +4103,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4126,7 +4126,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4149,7 +4149,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4172,7 +4172,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4195,7 +4195,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4218,7 +4218,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4241,7 +4241,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4264,7 +4264,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4287,7 +4287,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4310,7 +4310,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4333,7 +4333,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4356,7 +4356,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4379,7 +4379,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4402,7 +4402,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4425,7 +4425,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4448,7 +4448,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4471,7 +4471,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4494,7 +4494,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4517,7 +4517,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4540,7 +4540,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4563,7 +4563,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4586,7 +4586,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4609,7 +4609,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4632,7 +4632,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4655,7 +4655,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4678,7 +4678,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4701,7 +4701,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4724,7 +4724,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4747,7 +4747,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4770,7 +4770,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4793,7 +4793,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4816,7 +4816,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4839,7 +4839,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4862,7 +4862,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4885,7 +4885,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4908,7 +4908,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4931,7 +4931,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4954,7 +4954,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -4968,7 +4968,7 @@ "start": 374, "end": 575 }, - "file": 60 + "file": 61 } ], "433": [ @@ -4984,7 +4984,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "434": [ @@ -5000,7 +5000,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "435": [ @@ -5016,7 +5016,7 @@ "start": 3064, "end": 3082 }, - "file": 80 + "file": 78 } ], "436": [ @@ -5032,7 +5032,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5055,7 +5055,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5078,7 +5078,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5101,7 +5101,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5124,7 +5124,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5147,7 +5147,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5170,7 +5170,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5193,7 +5193,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5216,7 +5216,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5239,7 +5239,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5262,7 +5262,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5285,7 +5285,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5308,7 +5308,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5331,7 +5331,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5354,7 +5354,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5377,7 +5377,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5400,7 +5400,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5423,7 +5423,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5446,7 +5446,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5469,7 +5469,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5492,7 +5492,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5515,7 +5515,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5538,7 +5538,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5561,7 +5561,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5584,7 +5584,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5607,7 +5607,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5630,7 +5630,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5653,7 +5653,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5676,7 +5676,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5699,7 +5699,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5722,7 +5722,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5745,7 +5745,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5768,7 +5768,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5791,7 +5791,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5814,7 +5814,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5837,7 +5837,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5860,7 +5860,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5883,7 +5883,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5906,7 +5906,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5929,7 +5929,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5952,7 +5952,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5975,7 +5975,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -5998,7 +5998,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6021,7 +6021,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6044,7 +6044,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6067,7 +6067,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6090,7 +6090,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6113,7 +6113,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6136,7 +6136,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6159,7 +6159,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6182,7 +6182,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6205,7 +6205,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6228,7 +6228,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6251,7 +6251,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6274,7 +6274,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6297,7 +6297,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6320,7 +6320,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6343,7 +6343,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6366,7 +6366,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6389,7 +6389,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6412,7 +6412,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6435,7 +6435,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6458,7 +6458,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6481,7 +6481,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6504,7 +6504,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6527,7 +6527,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6550,7 +6550,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6573,7 +6573,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6596,7 +6596,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6619,7 +6619,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6642,7 +6642,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6665,7 +6665,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6688,7 +6688,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6711,7 +6711,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6734,7 +6734,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6757,7 +6757,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6780,7 +6780,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6803,7 +6803,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6826,7 +6826,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6849,7 +6849,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6872,7 +6872,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6895,7 +6895,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6918,7 +6918,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6941,7 +6941,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6964,7 +6964,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -6987,7 +6987,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7010,7 +7010,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7033,7 +7033,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7056,7 +7056,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7079,7 +7079,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7102,7 +7102,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7125,7 +7125,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7148,7 +7148,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7171,7 +7171,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7194,7 +7194,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7217,7 +7217,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7240,7 +7240,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7263,7 +7263,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7286,7 +7286,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7309,7 +7309,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7332,7 +7332,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7355,7 +7355,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7378,7 +7378,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7401,7 +7401,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7424,7 +7424,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7447,7 +7447,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7470,7 +7470,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7493,7 +7493,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7516,7 +7516,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7539,7 +7539,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7562,7 +7562,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7585,7 +7585,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7608,7 +7608,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7631,7 +7631,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7654,7 +7654,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7677,7 +7677,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7700,7 +7700,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7714,7 +7714,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "558": [ @@ -7730,7 +7730,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7744,7 +7744,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "559": [ @@ -7760,7 +7760,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7774,7 +7774,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "560": [ @@ -7790,7 +7790,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7804,7 +7804,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "561": [ @@ -7820,7 +7820,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7834,7 +7834,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "562": [ @@ -7850,7 +7850,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7864,7 +7864,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "563": [ @@ -7880,7 +7880,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7894,7 +7894,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "564": [ @@ -7910,7 +7910,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7924,7 +7924,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "565": [ @@ -7940,7 +7940,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7954,7 +7954,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "566": [ @@ -7970,7 +7970,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -7984,7 +7984,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "567": [ @@ -8000,7 +8000,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8014,7 +8014,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "568": [ @@ -8030,7 +8030,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8044,7 +8044,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "569": [ @@ -8060,7 +8060,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8074,7 +8074,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "570": [ @@ -8090,7 +8090,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8104,7 +8104,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "571": [ @@ -8120,7 +8120,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8134,7 +8134,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "572": [ @@ -8150,7 +8150,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8164,7 +8164,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "573": [ @@ -8180,7 +8180,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8194,7 +8194,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "574": [ @@ -8210,7 +8210,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8224,7 +8224,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "575": [ @@ -8240,7 +8240,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8254,7 +8254,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "576": [ @@ -8270,7 +8270,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8284,7 +8284,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "577": [ @@ -8300,7 +8300,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8314,7 +8314,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "578": [ @@ -8330,7 +8330,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8344,7 +8344,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "579": [ @@ -8360,7 +8360,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8374,7 +8374,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "580": [ @@ -8390,7 +8390,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8404,7 +8404,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "581": [ @@ -8420,7 +8420,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8434,7 +8434,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "582": [ @@ -8450,7 +8450,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8464,7 +8464,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "583": [ @@ -8480,7 +8480,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8494,7 +8494,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "585": [ @@ -8510,7 +8510,7 @@ "start": 3243, "end": 3334 }, - "file": 80 + "file": 78 }, { "span": { @@ -8524,7 +8524,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "600": [ @@ -8540,7 +8540,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "601": [ @@ -8556,7 +8556,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "602": [ @@ -8572,7 +8572,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "603": [ @@ -8588,7 +8588,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8611,7 +8611,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8634,7 +8634,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8657,7 +8657,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8680,7 +8680,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8703,7 +8703,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8726,7 +8726,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8749,7 +8749,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8772,7 +8772,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8795,7 +8795,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8818,7 +8818,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8841,7 +8841,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8864,7 +8864,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8887,7 +8887,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8910,7 +8910,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8933,7 +8933,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8956,7 +8956,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -8979,7 +8979,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9002,7 +9002,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9025,7 +9025,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9048,7 +9048,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9071,7 +9071,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9094,7 +9094,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9117,7 +9117,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9140,7 +9140,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9163,7 +9163,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9186,7 +9186,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9209,7 +9209,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9232,7 +9232,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9255,7 +9255,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9278,7 +9278,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9301,7 +9301,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9324,7 +9324,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9347,7 +9347,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9370,7 +9370,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9393,7 +9393,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9416,7 +9416,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9439,7 +9439,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9462,7 +9462,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9485,7 +9485,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9508,7 +9508,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9531,7 +9531,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9554,7 +9554,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9577,7 +9577,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9600,7 +9600,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9623,7 +9623,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9646,7 +9646,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9669,7 +9669,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9692,7 +9692,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9715,7 +9715,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9738,7 +9738,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9761,7 +9761,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9784,7 +9784,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9807,7 +9807,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9830,7 +9830,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9853,7 +9853,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9876,7 +9876,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9899,7 +9899,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9922,7 +9922,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9945,7 +9945,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9968,7 +9968,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -9991,7 +9991,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10014,7 +10014,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10037,7 +10037,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10060,7 +10060,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10083,7 +10083,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10106,7 +10106,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10129,7 +10129,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10152,7 +10152,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10175,7 +10175,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10198,7 +10198,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10221,7 +10221,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10244,7 +10244,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10267,7 +10267,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10290,7 +10290,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10313,7 +10313,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10336,7 +10336,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10359,7 +10359,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10382,7 +10382,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10405,7 +10405,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10428,7 +10428,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10451,7 +10451,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10474,7 +10474,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10497,7 +10497,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10520,7 +10520,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10543,7 +10543,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10566,7 +10566,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10589,7 +10589,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10612,7 +10612,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10635,7 +10635,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10658,7 +10658,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10681,7 +10681,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10704,7 +10704,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10727,7 +10727,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10750,7 +10750,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10773,7 +10773,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10796,7 +10796,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10819,7 +10819,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10842,7 +10842,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10865,7 +10865,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10888,7 +10888,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10911,7 +10911,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10934,7 +10934,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10957,7 +10957,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10980,7 +10980,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -10994,7 +10994,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11024,7 +11024,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11038,7 +11038,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11068,7 +11068,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11082,7 +11082,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11112,7 +11112,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11126,7 +11126,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11156,7 +11156,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11170,7 +11170,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11200,7 +11200,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11214,7 +11214,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11244,7 +11244,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11258,7 +11258,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11288,7 +11288,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11302,7 +11302,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11332,7 +11332,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11346,7 +11346,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11376,7 +11376,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11390,7 +11390,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11420,7 +11420,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11434,7 +11434,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11464,7 +11464,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11478,7 +11478,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11508,7 +11508,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11522,7 +11522,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11552,7 +11552,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11566,7 +11566,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11596,7 +11596,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11610,7 +11610,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11640,7 +11640,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11654,7 +11654,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11684,7 +11684,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11698,7 +11698,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11728,7 +11728,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11742,7 +11742,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11772,7 +11772,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11786,7 +11786,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11816,7 +11816,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11830,7 +11830,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11860,7 +11860,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11874,7 +11874,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11904,7 +11904,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11918,7 +11918,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11948,7 +11948,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -11962,7 +11962,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -11992,7 +11992,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12006,7 +12006,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12036,7 +12036,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12050,7 +12050,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12080,7 +12080,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12094,7 +12094,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12124,7 +12124,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12138,7 +12138,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12168,7 +12168,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12182,7 +12182,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12212,7 +12212,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12226,7 +12226,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12256,7 +12256,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12270,7 +12270,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12300,7 +12300,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12314,7 +12314,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12344,7 +12344,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12358,7 +12358,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12388,7 +12388,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12402,7 +12402,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12432,7 +12432,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12446,7 +12446,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12476,7 +12476,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12490,7 +12490,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12520,7 +12520,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12534,7 +12534,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12564,7 +12564,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12578,7 +12578,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12608,7 +12608,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12622,7 +12622,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12652,7 +12652,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12666,7 +12666,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12696,7 +12696,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12710,7 +12710,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12740,7 +12740,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12754,7 +12754,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12777,7 +12777,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12791,7 +12791,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12814,7 +12814,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12828,7 +12828,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12851,7 +12851,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12865,7 +12865,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12888,7 +12888,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12902,7 +12902,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12925,7 +12925,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12939,7 +12939,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12962,7 +12962,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -12976,7 +12976,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -12999,7 +12999,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13013,7 +13013,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13036,7 +13036,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13050,7 +13050,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13073,7 +13073,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13087,7 +13087,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13110,7 +13110,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13124,7 +13124,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13147,7 +13147,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13161,7 +13161,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13184,7 +13184,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13198,7 +13198,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13221,7 +13221,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13235,7 +13235,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13258,7 +13258,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13272,7 +13272,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13295,7 +13295,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13309,7 +13309,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13332,7 +13332,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13346,7 +13346,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13369,7 +13369,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13383,7 +13383,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13406,7 +13406,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13420,7 +13420,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13443,7 +13443,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13457,7 +13457,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13480,7 +13480,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13494,7 +13494,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13517,7 +13517,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13531,7 +13531,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13554,7 +13554,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13568,7 +13568,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13591,7 +13591,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13605,7 +13605,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13628,7 +13628,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13642,7 +13642,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13665,7 +13665,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13679,7 +13679,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13702,7 +13702,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13716,7 +13716,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13739,7 +13739,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13753,7 +13753,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13776,7 +13776,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13790,7 +13790,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -13813,7 +13813,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "798": [ @@ -13829,7 +13829,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "799": [ @@ -13845,7 +13845,7 @@ "start": 3480, "end": 3498 }, - "file": 80 + "file": 78 } ], "800": [ @@ -13861,7 +13861,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13884,7 +13884,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13907,7 +13907,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13930,7 +13930,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13953,7 +13953,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13976,7 +13976,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -13999,7 +13999,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14022,7 +14022,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14045,7 +14045,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14068,7 +14068,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14091,7 +14091,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14114,7 +14114,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14137,7 +14137,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14160,7 +14160,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14183,7 +14183,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14206,7 +14206,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14229,7 +14229,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14252,7 +14252,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14275,7 +14275,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14298,7 +14298,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14321,7 +14321,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14344,7 +14344,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14367,7 +14367,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14390,7 +14390,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14413,7 +14413,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14436,7 +14436,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14459,7 +14459,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14482,7 +14482,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14505,7 +14505,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14528,7 +14528,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14551,7 +14551,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14574,7 +14574,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14597,7 +14597,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14620,7 +14620,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14643,7 +14643,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14666,7 +14666,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14689,7 +14689,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14712,7 +14712,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14735,7 +14735,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14758,7 +14758,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14781,7 +14781,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14804,7 +14804,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14827,7 +14827,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14850,7 +14850,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14873,7 +14873,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14896,7 +14896,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14919,7 +14919,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14942,7 +14942,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14965,7 +14965,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -14988,7 +14988,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15011,7 +15011,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15034,7 +15034,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15057,7 +15057,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15080,7 +15080,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15103,7 +15103,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15126,7 +15126,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15149,7 +15149,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15172,7 +15172,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15195,7 +15195,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15218,7 +15218,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15241,7 +15241,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15264,7 +15264,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15287,7 +15287,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15310,7 +15310,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15333,7 +15333,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15356,7 +15356,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15379,7 +15379,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15402,7 +15402,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15425,7 +15425,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15448,7 +15448,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15471,7 +15471,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15494,7 +15494,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15517,7 +15517,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15540,7 +15540,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15563,7 +15563,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15586,7 +15586,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15609,7 +15609,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15632,7 +15632,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15655,7 +15655,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15678,7 +15678,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15701,7 +15701,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15724,7 +15724,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15747,7 +15747,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15770,7 +15770,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15793,7 +15793,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15816,7 +15816,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15839,7 +15839,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15862,7 +15862,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15885,7 +15885,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15908,7 +15908,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15931,7 +15931,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15954,7 +15954,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -15977,7 +15977,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16000,7 +16000,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16023,7 +16023,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16046,7 +16046,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16069,7 +16069,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16092,7 +16092,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16115,7 +16115,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16138,7 +16138,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16161,7 +16161,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16184,7 +16184,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16207,7 +16207,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16230,7 +16230,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16253,7 +16253,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16267,7 +16267,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16297,7 +16297,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16311,7 +16311,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16341,7 +16341,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16355,7 +16355,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16385,7 +16385,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16399,7 +16399,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16429,7 +16429,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16443,7 +16443,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16473,7 +16473,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16487,7 +16487,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16517,7 +16517,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16531,7 +16531,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16561,7 +16561,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16575,7 +16575,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16605,7 +16605,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16619,7 +16619,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16649,7 +16649,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16663,7 +16663,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16693,7 +16693,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16707,7 +16707,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16737,7 +16737,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16751,7 +16751,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16781,7 +16781,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16795,7 +16795,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16825,7 +16825,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16839,7 +16839,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16869,7 +16869,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16883,7 +16883,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16913,7 +16913,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16927,7 +16927,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -16957,7 +16957,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -16971,7 +16971,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17001,7 +17001,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17015,7 +17015,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17045,7 +17045,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17059,7 +17059,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17089,7 +17089,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17103,7 +17103,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17133,7 +17133,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17147,7 +17147,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17177,7 +17177,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17191,7 +17191,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17221,7 +17221,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17235,7 +17235,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17265,7 +17265,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17279,7 +17279,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17309,7 +17309,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17323,7 +17323,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17353,7 +17353,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17367,7 +17367,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17397,7 +17397,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17411,7 +17411,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17441,7 +17441,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17455,7 +17455,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17485,7 +17485,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17499,7 +17499,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17529,7 +17529,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17543,7 +17543,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17573,7 +17573,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17587,7 +17587,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17617,7 +17617,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17631,7 +17631,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17661,7 +17661,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17675,7 +17675,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17705,7 +17705,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17719,7 +17719,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17749,7 +17749,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17763,7 +17763,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17793,7 +17793,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17807,7 +17807,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17837,7 +17837,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17851,7 +17851,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17881,7 +17881,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17895,7 +17895,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17925,7 +17925,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17939,7 +17939,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -17969,7 +17969,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -17983,7 +17983,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18013,7 +18013,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18027,7 +18027,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18050,7 +18050,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18064,7 +18064,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18087,7 +18087,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18101,7 +18101,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18124,7 +18124,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18138,7 +18138,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18161,7 +18161,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18175,7 +18175,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18198,7 +18198,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18212,7 +18212,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18235,7 +18235,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18249,7 +18249,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18272,7 +18272,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18286,7 +18286,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18309,7 +18309,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18323,7 +18323,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18346,7 +18346,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18360,7 +18360,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18383,7 +18383,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18397,7 +18397,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18420,7 +18420,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18434,7 +18434,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18457,7 +18457,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18471,7 +18471,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18494,7 +18494,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18508,7 +18508,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18531,7 +18531,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18545,7 +18545,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18568,7 +18568,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18582,7 +18582,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18605,7 +18605,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18619,7 +18619,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18642,7 +18642,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18656,7 +18656,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18679,7 +18679,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18693,7 +18693,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18716,7 +18716,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18730,7 +18730,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18753,7 +18753,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18767,7 +18767,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18790,7 +18790,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18804,7 +18804,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18827,7 +18827,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18841,7 +18841,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18864,7 +18864,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18878,7 +18878,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18901,7 +18901,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18915,7 +18915,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18938,7 +18938,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18952,7 +18952,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -18975,7 +18975,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -18989,7 +18989,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19012,7 +19012,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19026,7 +19026,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19049,7 +19049,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19063,7 +19063,7 @@ "start": 669, "end": 693 }, - "file": 61 + "file": 62 }, { "span": { @@ -19086,7 +19086,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19100,7 +19100,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "994": [ @@ -19116,7 +19116,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19130,7 +19130,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "995": [ @@ -19146,7 +19146,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19160,7 +19160,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "996": [ @@ -19176,7 +19176,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19190,7 +19190,7 @@ "start": 407, "end": 421 }, - "file": 54 + "file": 55 } ], "997": [ @@ -19206,7 +19206,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19220,7 +19220,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "998": [ @@ -19236,7 +19236,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19250,7 +19250,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "999": [ @@ -19266,7 +19266,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19280,7 +19280,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1000": [ @@ -19296,7 +19296,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19310,7 +19310,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1001": [ @@ -19326,7 +19326,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19340,7 +19340,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1002": [ @@ -19356,7 +19356,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19370,7 +19370,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1003": [ @@ -19386,7 +19386,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19400,7 +19400,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1004": [ @@ -19416,7 +19416,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19430,7 +19430,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1005": [ @@ -19446,7 +19446,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19460,7 +19460,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1006": [ @@ -19476,7 +19476,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19490,7 +19490,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1007": [ @@ -19506,7 +19506,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19520,7 +19520,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1008": [ @@ -19536,7 +19536,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19550,7 +19550,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1009": [ @@ -19566,7 +19566,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19580,7 +19580,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1010": [ @@ -19596,7 +19596,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19610,7 +19610,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1011": [ @@ -19626,7 +19626,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19640,7 +19640,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1012": [ @@ -19656,7 +19656,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19670,7 +19670,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1013": [ @@ -19686,7 +19686,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19700,7 +19700,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1014": [ @@ -19716,7 +19716,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19730,7 +19730,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1015": [ @@ -19746,7 +19746,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19760,7 +19760,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1016": [ @@ -19776,7 +19776,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19790,7 +19790,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1017": [ @@ -19806,7 +19806,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19820,7 +19820,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1018": [ @@ -19836,7 +19836,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19850,7 +19850,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1019": [ @@ -19866,7 +19866,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19880,7 +19880,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ], "1021": [ @@ -19896,7 +19896,7 @@ "start": 3659, "end": 3749 }, - "file": 80 + "file": 78 }, { "span": { @@ -19910,7 +19910,7 @@ "start": 407, "end": 437 }, - "file": 54 + "file": 55 } ] } @@ -19919,7 +19919,7 @@ "fileMap": { "0": { "source": "// Account contract that uses Schnorr signatures for authentication. The signing key is the same as the\n// encryption key, and as such is not stored in the contract but part of the address preimage, so it can\n// be verified by passing in the partial address.\ncontract SchnorrSingleKeyAccount {\n use dep::std;\n use dep::aztec::entrypoint;\n use dep::aztec::entrypoint::EntrypointPayload;\n use dep::aztec::abi;\n use dep::aztec::abi::PrivateContextInputs;\n use dep::aztec::abi::CallContext;\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\n use dep::aztec::context::PrivateContext;\n use dep::aztec::types::vec::BoundedVec;\n use dep::aztec::types::point::Point;\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\n\n fn entrypoint(\n inputs: pub PrivateContextInputs,\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\n owner: pub [u8;64], // pubkey x and y coordinates concatenated\n signature: pub [u8;64], // schnorr signature of the payload hash\n partial_address: pub Field,\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n // Initialize context\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64 + 64 + 1\n let mut args: BoundedVec = BoundedVec::new(0);\n args.push_array(payload.serialize());\n for byte in owner { args.push(byte as Field); }\n for byte in signature { args.push(byte as Field); }\n args.push(partial_address);\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\n\n // Verify payload signature\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\n let message_bytes = message_field.to_be_bytes(32);\n\n // Convert owner pubkey into fields\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n for i in 0..32 {\n let bytex: Field = owner[31 - i] as Field;\n x = x + (bytex * mul);\n let bytey: Field = owner[63 - i] as Field;\n y = y + (bytey * mul);\n mul *= 256;\n }\n \n // Verify signature of the payload hash\n // TODO: Find out why this signature verification never fails\n let verification = std::schnorr::verify_signature(x, y, signature, message_bytes);\n assert(verification == true);\n\n // Verify public key against address\n let reproduced_address = dep::std::hash::pedersen_with_separator([x, y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\n assert(reproduced_address == context.this_address());\n\n // Execute calls\n payload.execute_calls(&mut context);\n\n context.finish()\n }\n\n // Constructs the contract\n fn constructor(\n inputs: pub PrivateContextInputs,\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\n // Return private circuit public inputs. All private functions need to return this as it is part of the input of the private kernel.\n PrivateContext::new(inputs, 0).finish()\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_single_key_account_contract/src/main" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-contracts/src/contracts/schnorr_single_key_account_contract/src/main" }, "18": { "source": "\nimpl Field {\n #[builtin(to_le_bits)]\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\n #[builtin(to_be_bits)]\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\n\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\n x.to_le_radix(256, byte_size)\n }\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\n x.to_be_radix(256, byte_size)\n }\n\n #[builtin(to_le_radix)]\n //decompose _x into a _result_len vector over the _radix basis\n //_radix must be less than 256\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\n #[builtin(to_be_radix)]\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n fn sgn0(self) -> u1 {\n self as u1\n }\n}\n\n#[builtin(modulus_num_bits)]\nfn modulus_num_bits() -> Field {}\n\n#[builtin(modulus_be_bits)]\nfn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\nfn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\nfn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\nfn modulus_le_bytes() -> [u8] {}\n", @@ -19927,23 +19927,23 @@ }, "31": { "source": "use crate::constants_gen::{\n RETURN_VALUES_LENGTH,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n GENERATOR_INDEX__FUNCTION_ARGS,\n HISTORIC_BLOCK_DATA_LENGTH,\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n CALL_CONTEXT_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\n CONTRACT_STORAGE_READ_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__FUNCTION_DATA,\n GENERATOR_INDEX__PUBLIC_DATA_READ,\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\n GENERATOR_INDEX__CALL_CONTEXT,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n};\n\nuse crate::oracle::debug_log;\nuse crate::types::vec::BoundedVec;\nuse crate::types::point::Point;\n\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n\nimpl PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\nstruct ContractDeploymentData {\n deployer_public_key: Point,\n constructor_vk_hash : Field,\n function_tree_root : Field,\n contract_address_salt : Field,\n portal_contract_address : Field,\n}\n\nimpl ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.deployer_public_key.x,\n self.deployer_public_key.y,\n self.constructor_vk_hash,\n self.function_tree_root,\n self.contract_address_salt,\n self.portal_contract_address,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\nstruct PrivateContextInputs {\n call_context : CallContext,\n block_data: HistoricBlockData,\n\n contract_deployment_data: ContractDeploymentData,\n\n private_global_variables: PrivateGlobalVariables,\n}\n\n// PublicContextInputs are expected to be provided to each public function\nstruct PublicContextInputs {\n call_context: CallContext,\n block_data: HistoricBlockData,\n\n public_global_variables: PublicGlobalVariables,\n}\n\nstruct CallContext {\n msg_sender : Field,\n storage_contract_address : Field,\n portal_contract_address : Field,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment: bool,\n}\n\nimpl CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender,\n self.storage_contract_address,\n self.portal_contract_address,\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\n }\n}\n\nstruct HistoricBlockData {\n private_data_tree_root : Field,\n nullifier_tree_root : Field,\n contract_tree_root : Field,\n l1_to_l2_messages_tree_root : Field,\n blocks_tree_root: Field,\n public_data_tree_root: Field,\n global_variables_hash: Field,\n}\n\nimpl HistoricBlockData {\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\n [\n self.private_data_tree_root,\n self.nullifier_tree_root,\n self.contract_tree_root,\n self.l1_to_l2_messages_tree_root,\n self.blocks_tree_root,\n self.public_data_tree_root,\n self.global_variables_hash,\n ]\n }\n\n fn empty() -> Self {\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\n }\n}\n\nstruct FunctionData {\n function_selector: Field,\n is_internal: bool,\n is_private: bool,\n is_constructor: bool,\n}\n\nimpl FunctionData {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator([\n self.function_selector,\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n // Explore introducing a new type like uint256 (similar to Point), so it's more explicit that\n // we're talking about a single number backed by two field elements.\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n contract_deployment_data: ContractDeploymentData,\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push(self.call_context.hash());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.nullified_commitments);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.contract_deployment_data.hash());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.storage\n }\n}\n\nstruct ContractStorageRead {\n storage_slot: Field,\n value: Field,\n}\n\nimpl ContractStorageRead {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, value: 0 }\n }\n}\n\nstruct ContractStorageUpdateRequest {\n storage_slot: Field,\n old_value: Field,\n new_value: Field,\n}\n\nimpl ContractStorageUpdateRequest {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.old_value, self.new_value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\n }\n}\n\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n prover_address: Field,\n\n // TODO: include globals in here and check them elsewhere\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\n}\n\nimpl PublicCircuitPublicInputs {\n \n fn hash(self) -> Field {\n let mut inputs: BoundedVec = BoundedVec::new(0);\n inputs.push(self.call_context.hash());\n inputs.push(self.args_hash);\n inputs.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n inputs.push(self.contract_storage_update_requests[i].hash());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n inputs.push(self.contract_storage_read[i].hash());\n }\n inputs.push_array(self.public_call_stack);\n inputs.push_array(self.new_commitments);\n inputs.push_array(self.new_nullifiers);\n inputs.push_array(self.new_l2_to_l1_msgs);\n\n // We do not include block_data since it's not in the cpp hash\n\n inputs.push_array(self.unencrypted_logs_hash);\n inputs.push(self.unencrypted_log_preimages_length);\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\n inputs.push(self.prover_address);\n\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.push_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.push_array(self.contract_storage_read[i].serialize());\n }\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.prover_address);\n fields.storage\n }\n}\n\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\n\nfn hash_args(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\n }\n chunks_hashes[i] = chunk_hash;\n }\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\n }\n}\n", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/abi" }, "32": { - "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, msg: Field) {\n self.new_l2_to_l1_msgs.push(msg);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context" + "source": "use crate::constants_gen::{\n EMPTY_NULLIFIED_COMMITMENT,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n};\n\nuse crate::abi;\n\nuse crate::abi::{\n hash_args,\n CallContext,\n ContractDeploymentData,\n HistoricBlockData,\n FunctionData,\n PrivateCircuitPublicInputs,\n PublicCircuitPublicInputs,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// l1 to l2 messaging\nuse crate::messaging::process_l1_to_l2_message;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem;\n\nuse crate::types::{\n vec::BoundedVec,\n point::Point,\n};\n\nuse crate::utils::arr_copy_slice;\n\nuse crate::oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n};\n\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n inputs: abi::PrivateContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n read_requests: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n nullified_commitments: BoundedVec,\n\n private_call_stack : BoundedVec,\n public_call_stack : BoundedVec,\n new_l2_to_l1_msgs : BoundedVec,\n\n block_data: HistoricBlockData,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec,\n // unencrypted_logs_preimages: Vec,\n}\n\nimpl PrivateContext {\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n nullified_commitments: BoundedVec::new(0),\n\n block_data: inputs.block_data,\n\n private_call_stack: BoundedVec::new(0),\n public_call_stack: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n nullified_commitments: self.nullified_commitments.storage,\n private_call_stack: self.private_call_stack.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.block_data,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n fn push_read_request(&mut self, read_request: Field) {\n self.read_requests.push(read_request);\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n self.nullified_commitments.push(nullified_commitment);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_private_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_private_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_private_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PrivateCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n // TODO handle the offsets as a variable incremented during extraction?\n args_hash: fields[11],\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\n encrypted_log_preimages_length: fields[46],\n unencrypted_log_preimages_length: fields[47],\n block_data: HistoricBlockData {\n // Must match order in `private_circuit_public_inputs.hpp`\n private_data_tree_root : fields[48],\n nullifier_tree_root : fields[49],\n contract_tree_root : fields[50],\n l1_to_l2_messages_tree_root : fields[51],\n blocks_tree_root : fields[52],\n public_data_tree_root: fields[53],\n global_variables_hash: fields[54],\n },\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: Point::new(fields[55], fields[56]),\n constructor_vk_hash : fields[57],\n function_tree_root : fields[58],\n contract_address_salt : fields[59],\n portal_contract_address : fields[60],\n },\n chain_id: fields[61],\n version: fields[62],\n },\n is_execution_request: fields[63] as bool,\n };\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.private_call_stack.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n fn call_public_function(\n &mut self,\n contract_address: Field, \n function_selector: Field, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n fn call_public_function_no_args(\n &mut self,\n contract_address: Field, \n function_selector: Field,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n fn call_public_function_with_packed_args(\n &mut self,\n contract_address: Field,\n function_selector: Field,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash\n );\n let item = PublicCallStackItem {\n contract_address: fields[0],\n function_data: FunctionData {\n function_selector: fields[1],\n is_internal: fields[2] as bool,\n is_private: fields[3] as bool,\n is_constructor: fields[4] as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : fields[5],\n storage_contract_address : fields[6],\n portal_contract_address : fields[7],\n \n is_delegate_call : fields[8] as bool,\n is_static_call : fields[9] as bool,\n is_contract_deployment: fields[10] as bool,\n },\n args_hash: fields[11],\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n block_data: HistoricBlockData::empty(),\n prover_address: 0,\n },\n is_execution_request: true,\n };\n\n assert(contract_address == item.contract_address);\n assert(function_selector == item.function_data.function_selector);\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\n\n self.public_call_stack.push(item.hash());\n }\n}\n\nuse crate::abi::{\n ContractStorageRead,\n ContractStorageUpdateRequest\n};\n\nstruct PublicContext {\n inputs: abi::PublicContextInputs,\n\n args_hash : Field,\n return_values : BoundedVec,\n\n contract_storage_update_requests: BoundedVec,\n contract_storage_read: BoundedVec,\n public_call_stack: BoundedVec,\n\n new_commitments: BoundedVec,\n new_nullifiers: BoundedVec,\n\n new_l2_to_l1_msgs: BoundedVec,\n\n unencrypted_logs_hash: BoundedVec,\n unencrypted_logs_preimages_length: Field,\n\n block_data: HistoricBlockData,\n prover_address: Field,\n}\n\nimpl PublicContext {\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = ContractStorageRead::empty();\n let empty_storage_update = ContractStorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_read: BoundedVec::new(empty_storage_read),\n public_call_stack: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(0),\n new_nullifiers: BoundedVec::new(0),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n block_data: inputs.block_data,\n prover_address: 0,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n fn msg_sender(self) -> Field {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> Field {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> Field {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n fn finish(self) -> abi::PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_read: self.contract_storage_read.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack: self.public_call_stack.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n block_data: self.inputs.block_data,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n self.new_commitments.push(note_hash);\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n self.new_nullifiers.push(nullifier);\n }\n\n fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\n }\n\n fn accumulate_encrypted_logs(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = abi::hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n fn call_public_function_no_args(\n _self: Self,\n contract_address: Field, \n function_selector: Field,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}", + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/context" }, - "54": { + "55": { "source": "\nstruct BoundedVec {\n storage: [T; MaxLen],\n len: Field,\n}\n\nimpl BoundedVec {\n fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\n }\n\n fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64);\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n fn push_array(&mut self, array: [T; Len]) {\n let newLen = self.len + array.len();\n assert(newLen as u64 <= MaxLen as u64);\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = newLen;\n }\n\n fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n\n let elem = self.storage[self.len - 1];\n self.len -= 1;\n elem\n }\n}\n\n// #[test]\n// fn test_vec() {\n// let vec: BoundedVec = BoundedVec::new(0);\n// assert(vec.len == 0);\n// let vec1 = vec.push(1);\n// assert(vec1.len == 1);\n// let vec2 = vec1.push(1);\n// assert(vec2.len == 2);\n// let vec3 = vec2.push(1);\n// assert(vec3.len == 3);\n// let x = vec3.pop();\n// assert(x == 1);\n// }", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" }, - "60": { + "61": { "source": "use crate::abi::FunctionData;\nuse crate::abi::PrivateCircuitPublicInputs;\nuse crate::constants_gen::GENERATOR_INDEX__CALL_STACK_ITEM;\n\nstruct PrivateCallStackItem {\n contract_address: Field,\n function_data: FunctionData,\n public_inputs: PrivateCircuitPublicInputs,\n is_execution_request: bool,\n}\n\nimpl PrivateCallStackItem {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator([\n self.contract_address,\n self.function_data.hash(),\n self.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)[0]\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/private_call_stack_item" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/private_call_stack_item" }, - "80": { + "78": { "source": "use crate::abi;\nuse crate::types::vec::BoundedVec;\nuse crate::context::PrivateContext;\nuse crate::private_call_stack_item::PrivateCallStackItem;\nuse crate::public_call_stack_item::PublicCallStackItem; \n\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\nglobal ACCOUNT_MAX_CALLS: Field = 4;\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\nglobal FUNCTION_CALL_SIZE: Field = 3;\n\nstruct FunctionCall {\n args_hash: Field,\n function_selector: Field,\n target_address: Field,\n}\n\nimpl FunctionCall {\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\n [self.args_hash, self.function_selector, self.target_address]\n }\n}\n\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\n\nstruct EntrypointPayload {\n // Noir doesnt support nested arrays or structs yet so we flatten everything\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n\nimpl EntrypointPayload {\n // TODO(#1207) Do we need a generator index?\n fn hash(self) -> Field {\n dep::std::hash::pedersen(self.serialize())[0]\n }\n\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.flattened_args_hashes);\n fields.push_array(self.flattened_selectors);\n fields.push_array(self.flattened_targets);\n fields.push(self.nonce);\n fields.storage\n }\n\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\n\n let args_len = self.flattened_args_hashes.len();\n let selectors_len = self.flattened_selectors.len();\n let targets_len = self.flattened_targets.len();\n\n for i in 0..args_len {\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..selectors_len {\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n\n for i in 0..targets_len {\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\n }\n }\n \n let item_bytes = self.nonce.to_be_bytes(32);\n for j in 0..32 { \n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\n }\n\n bytes\n }\n\n // Executes all private and public calls \n fn execute_calls(self, context: &mut PrivateContext) {\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\n let target_address = self.flattened_targets[i];\n if target_address != 0 {\n let function_selector = self.flattened_selectors[i];\n let args_hash = self.flattened_args_hashes[i];\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\n }\n }\n }\n}", - "path": "/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" + "path": "/mnt/user-data/lasse/aztec3-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint" } } } diff --git a/yarn-project/noir-contracts/src/contracts/lending_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/lending_contract/src/main.nr index 516f2b094a1..c76e84a6e48 100644 --- a/yarn-project/noir-contracts/src/contracts/lending_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/lending_contract/src/main.nr @@ -11,10 +11,7 @@ contract Lending { PrivateContext, PublicContext }; - use dep::aztec::oracle::{ - logs::emit_unencrypted_log, - create_nullifier::create_nullifier, - }; + use dep::aztec::oracle::{logs::emit_unencrypted_log}; use dep::aztec::public_call_stack_item::PublicCallStackItem; use crate::storage::{Storage, Tot, Account}; diff --git a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr index f9d277c1b9f..45bd2acee9c 100644 --- a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr @@ -50,17 +50,8 @@ contract NonNativeToken { }, }; - // oracles - use dep::aztec::oracle::{ - create_l2_to_l1_message::create_l2_to_l1_message, - }; - - // public messaging - use dep::aztec::messaging::consume_l1_to_l2_message_public; use dep::aztec::public_call_stack_item::PublicCallStackItem; - use dep::aztec::oracle::create_commitment::create_commitment; - fn constructor( //*********************************/ // Should eventually be hidden: @@ -164,7 +155,7 @@ contract NonNativeToken { let content_hash = get_mint_content_hash(amount, owner_address, canceller); // Consume message and emit nullifier - consume_l1_to_l2_message_public(inputs, msg_key, content_hash, secret); + context.consume_l1_to_l2_message(msg_key, content_hash, secret); // Update the public balance let recipient_balance = public_balances.at(owner_address); @@ -206,8 +197,7 @@ contract NonNativeToken { let content = get_withdraw_content_hash(amount, recipient, callerOnL1); // Emit the l2 to l1 message - // TODO: make in the context - create_l2_to_l1_message(content); + context.message_portal(content); // Push the return value into the context context.finish() @@ -267,7 +257,7 @@ contract NonNativeToken { // and insert it into the set of "pending_shields" and therefore // (eventually) the private data tree. let mut note = TransparentNote::new(amount, secretHash); - pending_shields.insert_from_public(context, &mut note); + pending_shields.insert_from_public(&mut context, &mut note); context.finish() } diff --git a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/transparent_note.nr b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/transparent_note.nr index 1a673ad8c8d..0b5286cd5e6 100644 --- a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/transparent_note.nr +++ b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/transparent_note.nr @@ -5,9 +5,6 @@ use dep::aztec::note::{ note_interface::NoteInterface, utils::compute_siloed_note_hash, }; -use dep::aztec::oracle::{ - create_l2_to_l1_message::create_l2_to_l1_message, -}; use dep::aztec::constants_gen::GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET; global TRANSPARENT_NOTE_LEN: Field = 2; diff --git a/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr index c8efeae1edb..82457759902 100644 --- a/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr @@ -14,8 +14,6 @@ contract Test { }; use dep::aztec::oracle::{ - create_l2_to_l1_message::create_l2_to_l1_message, - create_nullifier::create_nullifier, get_public_key::get_public_key, context::get_portal_address, rand::rand, @@ -112,7 +110,7 @@ contract Test { let note = DummyNote::new(amount, secretHash); // Public oracle call to emit new commitment. - create_l2_to_l1_message(note.get_commitment()); + context.message_portal(note.get_commitment()); context.finish() } @@ -129,7 +127,7 @@ contract Test { let note = DummyNote::new(amount, secretHash); // Public oracle call to emit new commitment. - create_nullifier(note.get_commitment()); + context.push_new_nullifier(note.get_commitment(), 0); context.finish() } diff --git a/yarn-project/noir-libs/noir-aztec/src/context.nr b/yarn-project/noir-libs/noir-aztec/src/context.nr index b7da9ee519c..6d6b9647e5c 100644 --- a/yarn-project/noir-libs/noir-aztec/src/context.nr +++ b/yarn-project/noir-libs/noir-aztec/src/context.nr @@ -495,8 +495,8 @@ impl PublicContext { self.new_nullifiers.push(nullifier); } - fn message_portal(&mut self, msg: Field) { - self.new_l2_to_l1_msgs.push(msg); + fn message_portal(&mut self, content: Field) { + self.new_l2_to_l1_msgs.push(content); } // PrivateContextInputs must be temporarily passed in to prevent too many unknowns diff --git a/yarn-project/noir-libs/noir-aztec/src/messaging.nr b/yarn-project/noir-libs/noir-aztec/src/messaging.nr index d3e5185de1f..c9ee3be0a3e 100644 --- a/yarn-project/noir-libs/noir-aztec/src/messaging.nr +++ b/yarn-project/noir-libs/noir-aztec/src/messaging.nr @@ -5,17 +5,8 @@ mod l1_to_l2_message_getter_data; use l1_to_l2_message_getter_data::make_l1_to_l2_message_getter_data; use crate::abi::PublicContextInputs; -use crate::oracle::create_nullifier::create_nullifier; use crate::oracle::get_l1_to_l2_message::get_l1_to_l2_message_call; -// TODO(Maddiaa): Where to put this code?, a context would make sense but public calls dont _really_ have one? - come back to. -fn consume_l1_to_l2_message_public(pub_context: PublicContextInputs, msg_key: Field, content: Field, secret: Field) { - let nullifier = process_l1_to_l2_message(pub_context.block_data.l1_to_l2_messages_tree_root, pub_context.call_context.storage_contract_address, msg_key, content, secret); - - // Push nullifier - create_nullifier(nullifier); -} - // Returns the nullifier for the message fn process_l1_to_l2_message(l1_to_l2_root: Field, storage_contract_address: Field, msg_key: Field, content: Field, secret: Field) -> Field{ diff --git a/yarn-project/noir-libs/noir-aztec/src/note/lifecycle.nr b/yarn-project/noir-libs/noir-aztec/src/note/lifecycle.nr index ea065a2b2dd..f56622e3d2c 100644 --- a/yarn-project/noir-libs/noir-aztec/src/note/lifecycle.nr +++ b/yarn-project/noir-libs/noir-aztec/src/note/lifecycle.nr @@ -9,7 +9,6 @@ use crate::note::{ note_interface::NoteInterface, utils::compute_inner_note_hash, }; -use crate::oracle::create_commitment::create_commitment; use crate::oracle::notes::{notify_created_note, notify_nullified_note}; use crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT; @@ -34,19 +33,19 @@ fn create_note( } fn create_note_hash_from_public( - context: PublicContext, + context: &mut PublicContext, storage_slot: Field, note: &mut Note, note_interface: NoteInterface, ) { - let contract_address = context.this_address(); + let contract_address = (*context).this_address(); let header = NoteHeader { contract_address, storage_slot, nonce: 0 }; let set_header = note_interface.set_header; set_header(note, header); let inner_note_hash = compute_inner_note_hash(note_interface, *note); - create_commitment(inner_note_hash); + context.push_new_note_hash(inner_note_hash); } fn destroy_note( diff --git a/yarn-project/noir-libs/noir-aztec/src/oracle.nr b/yarn-project/noir-libs/noir-aztec/src/oracle.nr index 13834c14dc6..4133c00fc99 100644 --- a/yarn-project/noir-libs/noir-aztec/src/oracle.nr +++ b/yarn-project/noir-libs/noir-aztec/src/oracle.nr @@ -1,9 +1,6 @@ mod arguments; mod call_private_function; mod context; -mod create_commitment; -mod create_l2_to_l1_message; -mod create_nullifier; mod debug_log; mod get_commitment; mod get_l1_to_l2_message; diff --git a/yarn-project/noir-libs/noir-aztec/src/oracle/create_l2_to_l1_message.nr b/yarn-project/noir-libs/noir-aztec/src/oracle/create_l2_to_l1_message.nr deleted file mode 100644 index 1bcbc5fa6f5..00000000000 --- a/yarn-project/noir-libs/noir-aztec/src/oracle/create_l2_to_l1_message.nr +++ /dev/null @@ -1,7 +0,0 @@ - -#[oracle(createL2ToL1Message)] -fn create_l2_to_l1_message_oracle(_message: Field) -> Field {} - -unconstrained fn create_l2_to_l1_message(message: Field) { - assert(create_l2_to_l1_message_oracle(message) == 0); -} diff --git a/yarn-project/noir-libs/noir-aztec/src/oracle/create_nullifier.nr b/yarn-project/noir-libs/noir-aztec/src/oracle/create_nullifier.nr deleted file mode 100644 index 876eef03bd5..00000000000 --- a/yarn-project/noir-libs/noir-aztec/src/oracle/create_nullifier.nr +++ /dev/null @@ -1,7 +0,0 @@ -// Create a nullifier -#[oracle(createNullifier)] -fn create_nullifier_oracle(_nullifier: Field) -> Field {} - -unconstrained fn create_nullifier(nullifier: Field) { - assert(create_nullifier_oracle(nullifier) == 0); -} diff --git a/yarn-project/noir-libs/noir-aztec/src/state_vars/set.nr b/yarn-project/noir-libs/noir-aztec/src/state_vars/set.nr index 035f139455c..4c898437611 100644 --- a/yarn-project/noir-libs/noir-aztec/src/state_vars/set.nr +++ b/yarn-project/noir-libs/noir-aztec/src/state_vars/set.nr @@ -28,7 +28,7 @@ impl Set { create_note(context, self.storage_slot, note, self.note_interface); } - fn insert_from_public(self, context: PublicContext, note: &mut Note) { + fn insert_from_public(self, context: &mut PublicContext, note: &mut Note) { create_note_hash_from_public(context, self.storage_slot, note, self.note_interface); }