From a2d16d83e6cd10a08e297670f9d64afe4ed0431b Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:41:21 +0100 Subject: [PATCH 01/10] [trace-debug] Global location write fix --- .../trace-adapter/src/trace_utils.ts | 32 ++- .../tests/global_write/Move.toml | 10 + .../build/global_write/bytecode_modules/m.mv | Bin 0 -> 447 bytes .../dependencies/MoveStdlib/option.json | 1 + .../dependencies/Sui/dynamic_field.json | 1 + .../dependencies/Sui/linked_table.json | 1 + .../source_maps/dependencies/Sui/object.json | 1 + .../build/global_write/source_maps/m.json | 1 + .../dependencies/MoveStdlib/option.move | 251 ++++++++++++++++++ .../dependencies/Sui/dynamic_field.move | 170 ++++++++++++ .../dependencies/Sui/linked_table.move | 199 ++++++++++++++ .../sources/dependencies/Sui/object.move | 233 ++++++++++++++++ .../build/global_write/sources/m.move | 19 ++ .../tests/global_write/sources/m.move | 19 ++ .../trace-adapter/tests/global_write/test.exp | 0 .../tests/global_write/trace.spec.js | 4 + .../traces/global_write__m__test.json | 1 + 17 files changed, 929 insertions(+), 14 deletions(-) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/bytecode_modules/m.mv create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/option.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/dynamic_field.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/linked_table.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/object.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/m.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/option.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/dynamic_field.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/linked_table.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/object.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/m.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/test.exp create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/trace.spec.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/traces/global_write__m__test.json diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/src/trace_utils.ts b/external-crates/move/crates/move-analyzer/trace-adapter/src/trace_utils.ts index 47d22e1cc0e93..2e5e80c08b5b1 100644 --- a/external-crates/move/crates/move-analyzer/trace-adapter/src/trace_utils.ts +++ b/external-crates/move/crates/move-analyzer/trace-adapter/src/trace_utils.ts @@ -519,21 +519,25 @@ export function readTrace( const location = effect.Write ? effect.Write.location : effect.Read!.location; const loc = processJSONLocalLocation(location, localLifetimeEnds); if (effect.Write) { - if (!loc) { - throw new Error('Unsupported location type in Write effect'); + if (loc !== undefined) { + // Process a write only if the location is supported. + // We can see global location here in some cases when source-level + // assignment does not involve an explicit local variable, along + // the lines of: + // + // field::borrow_mut(...).next = ... + const value = 'RuntimeValue' in effect.Write.root_value_after_write + ? traceRuntimeValueFromJSON(effect.Write.root_value_after_write.RuntimeValue.value) + : traceRefValueFromJSON(effect.Write.root_value_after_write); + events.push({ + type: TraceEventKind.Effect, + effect: { + type: TraceEffectKind.Write, + loc, + value + } + }); } - // process a write only if the location is supported - const value = 'RuntimeValue' in effect.Write.root_value_after_write - ? traceRuntimeValueFromJSON(effect.Write.root_value_after_write.RuntimeValue.value) - : traceRefValueFromJSON(effect.Write.root_value_after_write); - events.push({ - type: TraceEventKind.Effect, - effect: { - type: TraceEffectKind.Write, - loc, - value - } - }); } } if (effect.ExecutionError) { diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml new file mode 100644 index 0000000000000..a2ce64a6b2e40 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml @@ -0,0 +1,10 @@ +[package] +name = "global_write" +edition = "2024.beta" + +[dependencies] +Sui = { local = "/Users/adamwelc/sui/crates/sui-framework/packages/sui-framework/" } + +[addresses] +global_write = "0x0" +Sui = "0x2" diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/bytecode_modules/m.mv b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/bytecode_modules/m.mv new file mode 100644 index 0000000000000000000000000000000000000000..529f7146954fbba6aaf647bd77985c9a8a22ff57 GIT binary patch literal 447 zcmbu6u};G<5Qgv0j_o9_)JjZ<7oZXYTNb8DOpM)4o0t-{aiYW#Vdq77C*FdU2f!{Z zD+4Fp>3-?HU%I>ZtIu2jfI?8DG`qOwcOqHc$nFi*7e49_x(9(dC6p0plE9H60i*!} z9TG_@AeI10L6RpSNr|91<3PY!!WaWmn1?Asg|SM7QKyh1lcy$%;GOCGp>}&)tvB0) zP1n<^b>2??vh3}~TQk%v&+8@>UzfIM#i literal 0 HcmV?d00001 diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/option.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/option.json new file mode 100644 index 0000000000000..87118deb61e55 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/option.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":186,"end":192},"module_name":["0000000000000000000000000000000000000000000000000000000000000001","option"],"struct_map":{"0":{"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":360,"end":366},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":367,"end":374}]],"fields":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":404,"end":407}]}},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":780,"end":863},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":791,"end":795},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":796,"end":803}]],"parameters":[],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":808,"end":823}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":844,"end":859},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":830,"end":861}},"is_native":false},"1":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":903,"end":1001},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":914,"end":918},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":919,"end":926}]],"parameters":[["e#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":928,"end":929}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":941,"end":956}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":995,"end":996},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":977,"end":997},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":963,"end":999}},"is_native":false},"2":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1048,"end":1127},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1059,"end":1066},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1067,"end":1074}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1076,"end":1077}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1098,"end":1102}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1109,"end":1110},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1109,"end":1114},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1109,"end":1125}},"is_native":false},"3":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1166,"end":1246},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1177,"end":1184},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1185,"end":1192}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1194,"end":1195}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1216,"end":1220}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1228,"end":1229},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1228,"end":1233},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1228,"end":1244},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1227,"end":1228},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1227,"end":1244}},"is_native":false},"4":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1360,"end":1462},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1371,"end":1379},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1380,"end":1387}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1389,"end":1390}],["e_ref#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1410,"end":1415}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1428,"end":1432}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1439,"end":1440},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1439,"end":1444},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1454,"end":1459},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1439,"end":1460}},"is_native":false},"5":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1562,"end":1680},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1573,"end":1579},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1580,"end":1587}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1589,"end":1590}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1611,"end":1619}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1634,"end":1635},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1634,"end":1645},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1626,"end":1663},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1647,"end":1662},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1626,"end":1663},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1670,"end":1671},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1670,"end":1678},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1676,"end":1677},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1669,"end":1678}},"is_native":false},"6":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1799,"end":1983},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1810,"end":1829},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1830,"end":1837}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1839,"end":1840}],["default_ref#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1860,"end":1871}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1884,"end":1892}],"locals":[["%#1",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1925,"end":1981}],["vec_ref#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1903,"end":1910}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1914,"end":1915},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1913,"end":1919},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1903,"end":1910},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1929,"end":1936},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1929,"end":1947},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1925,"end":1981},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1949,"end":1960},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1925,"end":1981},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1970,"end":1981},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1971,"end":1978},"14":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1979,"end":1980},"15":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1970,"end":1981},"16":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":1925,"end":1981}},"is_native":false},"7":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2083,"end":2266},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2094,"end":2110},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2111,"end":2118}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2133,"end":2134}],["default#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2154,"end":2161}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2173,"end":2180}],"locals":[["%#1",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2213,"end":2264}],["vec_ref#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2191,"end":2198}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2202,"end":2203},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2201,"end":2207},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2191,"end":2198},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2217,"end":2224},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2217,"end":2235},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2213,"end":2264},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2237,"end":2244},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2213,"end":2264},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2254,"end":2261},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2262,"end":2263},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2254,"end":2264},"15":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2213,"end":2264}},"is_native":false},"8":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2372,"end":2546},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2383,"end":2387},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2388,"end":2395}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2397,"end":2398}],["e#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2422,"end":2423}]],"returns":[],"locals":[["vec_ref#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2444,"end":2451}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2459,"end":2460},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2454,"end":2464},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2444,"end":2451},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2474,"end":2481},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2474,"end":2492},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2470,"end":2544},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2524,"end":2544},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2530,"end":2544},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2524,"end":2544},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2494,"end":2501},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2512,"end":2513},"14":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2494,"end":2514},"15":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2470,"end":2544}},"is_native":false},"9":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2682,"end":2811},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2693,"end":2700},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2701,"end":2708}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2710,"end":2711}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2736,"end":2743}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2758,"end":2759},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2758,"end":2769},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2750,"end":2787},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2771,"end":2786},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2750,"end":2787},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2793,"end":2794},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2793,"end":2798},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2793,"end":2809}},"is_native":false},"10":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2908,"end":3042},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2919,"end":2929},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2930,"end":2937}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2939,"end":2940}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2965,"end":2977}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2992,"end":2993},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2992,"end":3003},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2984,"end":3021},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3005,"end":3020},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":2984,"end":3021},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3032,"end":3033},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3032,"end":3040},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3038,"end":3039},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3027,"end":3040}},"is_native":false},"11":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3152,"end":3379},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3163,"end":3167},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3168,"end":3175}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3177,"end":3178}],["e#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3202,"end":3203}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3215,"end":3222}],"locals":[["old_value#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3306,"end":3315}],["vec_ref#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3276,"end":3283}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3237,"end":3238},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3237,"end":3248},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3229,"end":3266},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3250,"end":3265},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3229,"end":3266},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3291,"end":3292},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3286,"end":3296},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3276,"end":3283},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3318,"end":3325},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3318,"end":3336},"14":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3306,"end":3315},"15":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3342,"end":3349},"16":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3360,"end":3361},"17":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3342,"end":3362},"18":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3368,"end":3377}},"is_native":false},"12":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3579,"end":3825},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3590,"end":3602},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3603,"end":3610}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3612,"end":3613}],["e#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3637,"end":3638}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3650,"end":3665}],"locals":[["%#1",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3718,"end":3782}],["old_value#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3706,"end":3715}],["vec_ref#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3676,"end":3683}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3691,"end":3692},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3686,"end":3696},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3676,"end":3683},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3722,"end":3729},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3722,"end":3740},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3718,"end":3782},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3742,"end":3748},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3718,"end":3782},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3763,"end":3770},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3763,"end":3781},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3758,"end":3782},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3718,"end":3782},"15":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3706,"end":3715},"16":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3788,"end":3795},"17":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3806,"end":3807},"18":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3788,"end":3808},"19":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3814,"end":3823}},"is_native":false},"13":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3906,"end":4091},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3917,"end":3937},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3938,"end":3945}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3953,"end":3954}],["default#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3973,"end":3980}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":3992,"end":3999}],"locals":[["%#1",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4038,"end":4089}],["vec#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4023,"end":4026}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4031,"end":4032},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4010,"end":4028},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4023,"end":4026},"3":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4042,"end":4045},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4042,"end":4056},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4038,"end":4089},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4058,"end":4065},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4038,"end":4089},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4075,"end":4078},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4075,"end":4089},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4038,"end":4089}},"is_native":false},"14":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4172,"end":4377},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4183,"end":4195},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4196,"end":4203}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4205,"end":4206}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4226,"end":4233}],"locals":[["elem#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4319,"end":4323}],["vec#1#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4300,"end":4303}]],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4248,"end":4249},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4248,"end":4259},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4240,"end":4277},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4261,"end":4276},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4240,"end":4277},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4308,"end":4309},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4287,"end":4305},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4300,"end":4303},"9":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4326,"end":4329},"10":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4326,"end":4340},"11":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4319,"end":4323},"12":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4346,"end":4349},"13":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4346,"end":4365},"14":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4371,"end":4375}},"is_native":false},"15":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4426,"end":4576},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4437,"end":4449},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4450,"end":4457}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4459,"end":4460}]],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4493,"end":4494},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4493,"end":4504},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4485,"end":4521},"4":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4506,"end":4520},"5":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4485,"end":4521},"6":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4548,"end":4549},"7":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4531,"end":4545},"8":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4555,"end":4574}},"is_native":false},"16":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4671,"end":4774},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4682,"end":4688},"type_parameters":[["Element",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4689,"end":4696}]],"parameters":[["t#0#0",{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4698,"end":4699}]],"returns":[{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4719,"end":4734}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4762,"end":4763},"1":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4745,"end":4759},"2":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":4769,"end":4772}},"is_native":false},"17":{"location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":174,"end":8259},"definition_location":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":174,"end":8259},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[98,80,24,160,2,133,100,123,184,109,246,20,71,170,171,51,138,42,247,156,58,151,38,146,185,128,73,253,178,88,2,117],"start":174,"end":8259}},"is_native":false}},"constant_map":{"EOPTION_IS_SET":0,"EOPTION_NOT_SET":1}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/dynamic_field.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/dynamic_field.json new file mode 100644 index 0000000000000..4ab037ad97448 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/dynamic_field.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":631,"end":644},"module_name":["0000000000000000000000000000000000000000000000000000000000000002","dynamic_field"],"struct_map":{"0":{"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1327,"end":1332},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1333,"end":1337}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1360,"end":1365}]],"fields":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1518,"end":1520},{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1576,"end":1580},{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1630,"end":1635}]}},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1832,"end":2323},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1843,"end":1846},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1847,"end":1851}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1874,"end":1879}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1952,"end":1958}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1974,"end":1978}],["value#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":1990,"end":1995}]],"returns":[],"locals":[["field#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2184,"end":2189}],["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2059,"end":2063}],["object_addr#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2016,"end":2027}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2030,"end":2036},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2030,"end":2049},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2016,"end":2027},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2084,"end":2095},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2097,"end":2101},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2066,"end":2102},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2059,"end":2063},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2134,"end":2145},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2147,"end":2151},"10":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2117,"end":2152},"11":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2116,"end":2117},"12":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2108,"end":2174},"14":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2154,"end":2173},"15":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2108,"end":2174},"16":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2238,"end":2242},"17":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2212,"end":2243},"18":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2253,"end":2257},"19":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2267,"end":2272},"20":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2192,"end":2279},"21":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2184,"end":2189},"22":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2302,"end":2313},"23":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2315,"end":2320},"24":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2285,"end":2321}},"is_native":false},"1":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2615,"end":2895},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2626,"end":2632},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2633,"end":2637}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2660,"end":2665}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2674,"end":2680}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2688,"end":2692}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2701,"end":2707}],"locals":[["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2761,"end":2765}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2732,"end":2738},"1":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2732,"end":2751},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2799,"end":2803},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2768,"end":2804},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2761,"end":2765},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2862,"end":2868},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2870,"end":2874},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2822,"end":2875},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":2881,"end":2893}},"is_native":false},"2":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3185,"end":3496},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3196,"end":3206},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3207,"end":3211}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3234,"end":3239}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3253,"end":3259}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3275,"end":3279}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3290,"end":3300}],"locals":[["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3354,"end":3358}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3325,"end":3331},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3325,"end":3344},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3392,"end":3396},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3361,"end":3397},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3354,"end":3358},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3459,"end":3465},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3467,"end":3471},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3415,"end":3472},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3478,"end":3494}},"is_native":false},"3":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3810,"end":4131},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3821,"end":3827},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3828,"end":3832}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3855,"end":3860}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3869,"end":3875}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3887,"end":3891}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3900,"end":3905}],"locals":[["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3959,"end":3963}],["object_addr#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3916,"end":3927}],["value#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4033,"end":4038}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3930,"end":3936},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3930,"end":3949},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3916,"end":3927},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3984,"end":3995},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3997,"end":4001},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3966,"end":4002},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":3959,"end":3963},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4083,"end":4094},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4096,"end":4100},"10":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4043,"end":4101},"11":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4012,"end":4040},"12":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4033,"end":4038},"13":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4030,"end":4031},"14":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4107,"end":4118},"15":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4124,"end":4129}},"is_native":false},"4":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4282,"end":4499},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4293,"end":4300},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4301,"end":4305}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4328,"end":4334}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4342,"end":4346}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4355,"end":4359}],"locals":[["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4413,"end":4417}],["object_addr#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4370,"end":4381}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4384,"end":4390},"1":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4384,"end":4403},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4370,"end":4381},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4438,"end":4449},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4451,"end":4455},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4420,"end":4456},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4413,"end":4417},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4479,"end":4490},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4492,"end":4496},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4462,"end":4497}},"is_native":false},"5":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4603,"end":4855},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4614,"end":4630},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4631,"end":4635}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4658,"end":4663}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4677,"end":4683}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4699,"end":4703}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4714,"end":4727}],"locals":[["%#1",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4734,"end":4853}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4752,"end":4758},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4760,"end":4764},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4738,"end":4765},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4734,"end":4853},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4797,"end":4803},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4805,"end":4809},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4790,"end":4810},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4777,"end":4811},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4734,"end":4853},"11":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4833,"end":4847},"14":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":4734,"end":4853}},"is_native":false},"6":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5006,"end":5285},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5017,"end":5033},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5034,"end":5038}],["Value",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5061,"end":5066}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5080,"end":5086}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5098,"end":5102}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5113,"end":5117}],"locals":[["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5171,"end":5175}],["object_addr#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5128,"end":5139}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5142,"end":5148},"1":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5142,"end":5161},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5128,"end":5139},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5196,"end":5207},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5209,"end":5213},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5178,"end":5214},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5171,"end":5175},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5265,"end":5276},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5278,"end":5282},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5220,"end":5283}},"is_native":false},"7":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5287,"end":5618},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5307,"end":5317},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5318,"end":5322}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5350,"end":5356}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5368,"end":5372}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5384,"end":5388},{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5390,"end":5397}],"locals":[["%#1",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5505,"end":5533}],["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5452,"end":5456}],["id#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5513,"end":5515}],["value#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5526,"end":5531}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5423,"end":5429},"1":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5423,"end":5442},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5490,"end":5494},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5459,"end":5495},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5452,"end":5456},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5573,"end":5579},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5581,"end":5585},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5536,"end":5586},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5505,"end":5533},"10":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5513,"end":5515},"12":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5505,"end":5533},"13":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5523,"end":5524},"15":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5505,"end":5533},"16":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5526,"end":5531},"18":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5593,"end":5595},"19":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5597,"end":5602},"20":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5597,"end":5615},"21":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5592,"end":5616}},"is_native":false},"8":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5620,"end":5967},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5640,"end":5654},"type_parameters":[["Name",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5655,"end":5659}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5687,"end":5693}],["name#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5709,"end":5713}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5725,"end":5733},{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5735,"end":5742}],"locals":[["%#1",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5850,"end":5878}],["hash#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5797,"end":5801}],["id#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5858,"end":5860}],["value#1#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5871,"end":5876}]],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5768,"end":5774},"2":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5768,"end":5787},"3":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5835,"end":5839},"4":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5804,"end":5840},"5":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5797,"end":5801},"6":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5922,"end":5928},"7":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5930,"end":5934},"8":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5881,"end":5935},"9":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5850,"end":5878},"11":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5858,"end":5860},"13":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5850,"end":5878},"14":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5868,"end":5869},"16":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5850,"end":5878},"17":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5871,"end":5876},"19":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5942,"end":5944},"20":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5946,"end":5951},"22":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5946,"end":5964},"23":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":5941,"end":5965}},"is_native":false},"9":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6016,"end":6128},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6043,"end":6060},"type_parameters":[["K",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6061,"end":6062}]],"parameters":[["parent#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6090,"end":6096}],["k#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6111,"end":6112}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6120,"end":6127}],"locals":[],"nops":{},"code_map":{},"is_native":true},"10":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6130,"end":6217},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6157,"end":6173},"type_parameters":[["Child",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6174,"end":6179}]],"parameters":[["parent#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6186,"end":6192}],["child#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6203,"end":6208}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"11":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6478,"end":6572},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6505,"end":6524},"type_parameters":[["Child",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6525,"end":6530}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6537,"end":6543}],["id#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6551,"end":6553}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6565,"end":6571}],"locals":[],"nops":{},"code_map":{},"is_native":true},"12":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6574,"end":6691},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6601,"end":6624},"type_parameters":[["Child",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6625,"end":6630}]],"parameters":[["object#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6642,"end":6648}],["id#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6664,"end":6666}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6680,"end":6690}],"locals":[],"nops":{},"code_map":{},"is_native":true},"13":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6883,"end":6979},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6910,"end":6929},"type_parameters":[["Child",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6930,"end":6935}]],"parameters":[["parent#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6942,"end":6948}],["id#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6959,"end":6961}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6973,"end":6978}],"locals":[],"nops":{},"code_map":{},"is_native":true},"14":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":6981,"end":7061},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7008,"end":7024},"type_parameters":[],"parameters":[["parent#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7025,"end":7031}],["id#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7042,"end":7044}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7056,"end":7060}],"locals":[],"nops":{},"code_map":{},"is_native":true},"15":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7063,"end":7163},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7090,"end":7114},"type_parameters":[["Child",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7115,"end":7120}]],"parameters":[["parent#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7127,"end":7133}],["id#0#0",{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7144,"end":7146}]],"returns":[{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":7158,"end":7162}],"locals":[],"nops":{},"code_map":{},"is_native":true},"16":{"location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":619,"end":7163},"definition_location":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":619,"end":7163},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[63,177,94,81,68,114,103,117,80,253,139,95,159,220,7,255,246,128,191,217,112,182,184,120,128,154,245,150,245,191,15,225],"start":619,"end":7163}},"is_native":false}},"constant_map":{"EBCSSerializationFailure":3,"EFieldAlreadyExists":0,"EFieldDoesNotExist":1,"EFieldTypeMismatch":2,"ESharedObjectOperationNotSupported":4}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/linked_table.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/linked_table.json new file mode 100644 index 0000000000000..00c7579cdcb0b --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/linked_table.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":198,"end":210},"module_name":["0000000000000000000000000000000000000000000000000000000000000002","linked_table"],"struct_map":{"0":{"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":424,"end":435},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":436,"end":437}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":468,"end":469}]],"fields":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":528,"end":530},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":592,"end":596},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":671,"end":675},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":754,"end":758}]},"1":{"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":788,"end":792},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":793,"end":794}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":817,"end":818}]],"fields":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":868,"end":872},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":910,"end":914},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":962,"end":967}]}},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1006,"end":1229},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1017,"end":1020},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1021,"end":1022}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1045,"end":1046}]],"parameters":[["ctx#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1055,"end":1058}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1077,"end":1094}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1139,"end":1142},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1127,"end":1143},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1159,"end":1160},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1176,"end":1190},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1206,"end":1220},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1101,"end":1227}},"is_native":false},"1":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1317,"end":1426},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1328,"end":1333},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1334,"end":1335}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1358,"end":1359}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1368,"end":1373}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1396,"end":1406}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1414,"end":1419},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1413,"end":1424}},"is_native":false},"2":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1513,"end":1621},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1524,"end":1528},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1529,"end":1530}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1553,"end":1554}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1563,"end":1568}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1591,"end":1601}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1609,"end":1614},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1608,"end":1619}},"is_native":false},"3":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1869,"end":2472},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1880,"end":1890},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1891,"end":1892}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1915,"end":1916}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1930,"end":1935}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1965,"end":1966}],["value#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1975,"end":1980}]],"returns":[],"locals":[["%#1",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2132,"end":2374}],["next#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2125,"end":2129}],["old_head#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1997,"end":2005}],["old_head_k#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2170,"end":2180}],["prev#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2094,"end":2098}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2008,"end":2013},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2008,"end":2018},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2032,"end":2033},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2008,"end":2034},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":1997,"end":2005},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2044,"end":2049},"6":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2044,"end":2054},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2044,"end":2064},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2040,"end":2084},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2066,"end":2071},"10":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2066,"end":2076},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2082,"end":2083},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2066,"end":2084},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2101,"end":2115},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2094,"end":2098},"15":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2136,"end":2144},"16":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2136,"end":2154},"17":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2132,"end":2374},"18":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2183,"end":2191},"19":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2183,"end":2206},"20":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2170,"end":2180},"21":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2296,"end":2297},"22":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2283,"end":2298},"23":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2254,"end":2259},"24":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2249,"end":2262},"25":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2264,"end":2274},"26":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2216,"end":2275},"27":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2216,"end":2280},"28":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2216,"end":2298},"29":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2321,"end":2331},"30":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2308,"end":2332},"31":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2132,"end":2374},"33":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2354,"end":2368},"34":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2132,"end":2374},"36":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2125,"end":2129},"37":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2396,"end":2401},"38":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2391,"end":2404},"39":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2406,"end":2407},"40":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2416,"end":2420},"41":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2422,"end":2426},"42":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2428,"end":2433},"43":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2409,"end":2435},"44":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2380,"end":2436},"45":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2455,"end":2460},"46":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2455,"end":2465},"48":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2468,"end":2469},"49":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2466,"end":2467},"50":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2442,"end":2447},"51":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2442,"end":2452},"52":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2442,"end":2469},"53":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2469,"end":2470}},"is_native":false},"4":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2718,"end":3320},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2729,"end":2738},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2739,"end":2740}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2763,"end":2764}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2778,"end":2783}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2813,"end":2814}],["value#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2823,"end":2828}]],"returns":[],"locals":[["%#1",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2949,"end":3191}],["next#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3201,"end":3205}],["old_tail#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2895,"end":2903}],["old_tail_k#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2987,"end":2997}],["prev#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2942,"end":2946}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2845,"end":2850},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2845,"end":2855},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2845,"end":2865},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2841,"end":2885},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2867,"end":2872},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2867,"end":2877},"6":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2883,"end":2884},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2867,"end":2885},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2906,"end":2911},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2906,"end":2916},"10":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2930,"end":2931},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2906,"end":2932},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2895,"end":2903},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2953,"end":2961},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2953,"end":2971},"15":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2949,"end":3191},"16":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3000,"end":3008},"17":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3000,"end":3023},"18":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2987,"end":2997},"19":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3113,"end":3114},"20":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3100,"end":3115},"21":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3071,"end":3076},"22":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3066,"end":3079},"23":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3081,"end":3091},"24":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3033,"end":3092},"25":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3033,"end":3097},"26":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3033,"end":3115},"27":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3138,"end":3148},"28":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3125,"end":3149},"29":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2949,"end":3191},"31":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3171,"end":3185},"32":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2949,"end":3191},"34":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":2942,"end":2946},"35":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3208,"end":3222},"36":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3201,"end":3205},"37":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3244,"end":3249},"38":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3239,"end":3252},"39":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3254,"end":3255},"40":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3264,"end":3268},"41":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3270,"end":3274},"42":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3276,"end":3281},"43":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3257,"end":3283},"44":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3228,"end":3284},"45":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3303,"end":3308},"46":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3303,"end":3313},"48":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3316,"end":3317},"49":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3314,"end":3315},"50":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3290,"end":3295},"51":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3290,"end":3300},"52":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3290,"end":3317},"53":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3317,"end":3318}},"is_native":false},"5":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3556,"end":3702},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3567,"end":3573},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3574,"end":3575}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3598,"end":3599}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3608,"end":3613}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3635,"end":3636}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3642,"end":3644}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3682,"end":3687},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3681,"end":3690},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3692,"end":3693},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3652,"end":3694},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3651,"end":3700}},"is_native":false},"6":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3940,"end":4121},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3951,"end":3961},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3962,"end":3963}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":3986,"end":3987}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4001,"end":4006}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4036,"end":4037}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4045,"end":4051}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4101,"end":4106},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4096,"end":4109},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4111,"end":4112},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4063,"end":4113},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4058,"end":4119}},"is_native":false},"7":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4413,"end":4564},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4424,"end":4428},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4429,"end":4430}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4453,"end":4454}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4463,"end":4468}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4490,"end":4491}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4497,"end":4507}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4545,"end":4550},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4544,"end":4553},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4555,"end":4556},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4515,"end":4557},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4514,"end":4562}},"is_native":false},"8":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4852,"end":5003},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4863,"end":4867},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4868,"end":4869}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4892,"end":4893}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4902,"end":4907}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4929,"end":4930}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4936,"end":4946}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4984,"end":4989},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4983,"end":4992},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4994,"end":4995},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4954,"end":4996},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":4953,"end":5001}},"is_native":false},"9":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5330,"end":5886},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5341,"end":5347},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5348,"end":5349}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5372,"end":5373}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5382,"end":5387}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5413,"end":5414}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5420,"end":5421}],"locals":[["next#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5451,"end":5455}],["prev#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5445,"end":5449}],["value#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5457,"end":5462}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5486,"end":5491},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5481,"end":5494},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5496,"end":5497},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5467,"end":5498},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5432,"end":5464},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5457,"end":5462},"6":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5451,"end":5455},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5445,"end":5449},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5517,"end":5522},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5517,"end":5527},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5530,"end":5531},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5528,"end":5529},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5504,"end":5509},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5504,"end":5514},"15":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5504,"end":5531},"16":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5541,"end":5545},"17":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5541,"end":5555},"18":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5537,"end":5648},"19":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5638,"end":5642},"20":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5605,"end":5610},"21":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5600,"end":5613},"22":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5616,"end":5620},"23":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5616,"end":5629},"24":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5615,"end":5629},"25":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5567,"end":5630},"26":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5567,"end":5635},"27":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5567,"end":5642},"28":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5658,"end":5662},"29":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5658,"end":5672},"30":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5654,"end":5765},"31":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5755,"end":5759},"32":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5722,"end":5727},"33":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5717,"end":5730},"34":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5733,"end":5737},"35":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5733,"end":5746},"36":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5732,"end":5746},"37":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5684,"end":5747},"38":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5684,"end":5752},"39":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5684,"end":5759},"40":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5775,"end":5780},"41":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5775,"end":5785},"42":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5775,"end":5794},"43":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5798,"end":5800},"44":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5795,"end":5797},"45":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5771,"end":5819},"46":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5815,"end":5819},"47":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5802,"end":5807},"48":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5802,"end":5812},"49":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5802,"end":5819},"50":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5829,"end":5834},"51":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5829,"end":5839},"52":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5829,"end":5848},"53":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5852,"end":5854},"54":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5849,"end":5851},"55":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5825,"end":5873},"56":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5869,"end":5873},"57":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5856,"end":5861},"58":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5856,"end":5866},"59":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5856,"end":5873},"60":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5825,"end":5873},"63":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":5879,"end":5884}},"is_native":false},"10":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6032,"end":6247},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6043,"end":6052},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6053,"end":6054}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6077,"end":6078}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6087,"end":6092}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6120,"end":6121},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6123,"end":6124}],"locals":[["head#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6186,"end":6190}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6140,"end":6145},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6140,"end":6150},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6140,"end":6160},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6132,"end":6176},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6162,"end":6175},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6132,"end":6176},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6194,"end":6199},"10":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6194,"end":6204},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6194,"end":6213},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6193,"end":6213},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6186,"end":6190},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6220,"end":6224},"15":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6226,"end":6231},"16":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6239,"end":6243},"17":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6226,"end":6244},"18":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6219,"end":6245}},"is_native":false},"11":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6392,"end":6606},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6403,"end":6411},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6412,"end":6413}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6436,"end":6437}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6446,"end":6451}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6479,"end":6480},{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6482,"end":6483}],"locals":[["tail#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6545,"end":6549}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6499,"end":6504},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6499,"end":6509},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6499,"end":6519},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6491,"end":6535},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6521,"end":6534},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6491,"end":6535},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6553,"end":6558},"10":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6553,"end":6563},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6553,"end":6572},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6552,"end":6572},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6545,"end":6549},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6579,"end":6583},"15":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6585,"end":6590},"16":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6598,"end":6602},"17":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6585,"end":6603},"18":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6578,"end":6604}},"is_native":false},"12":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6718,"end":6871},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6729,"end":6737},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6738,"end":6739}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6762,"end":6763}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6772,"end":6777}],["k#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6799,"end":6800}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6806,"end":6810}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6857,"end":6862},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6856,"end":6865},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6867,"end":6868},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6817,"end":6869}},"is_native":false},"13":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6938,"end":7040},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6949,"end":6955},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6956,"end":6957}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6980,"end":6981}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":6990,"end":6995}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7018,"end":7021}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7028,"end":7033},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7028,"end":7038}},"is_native":false},"14":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7108,"end":7218},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7119,"end":7127},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7128,"end":7129}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7152,"end":7153}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7162,"end":7167}]],"returns":[{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7190,"end":7194}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7201,"end":7206},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7201,"end":7211},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7215,"end":7216},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7212,"end":7214},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7201,"end":7216}},"is_native":false},"15":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7316,"end":7520},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7327,"end":7340},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7341,"end":7342}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7365,"end":7366}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7375,"end":7380}]],"returns":[],"locals":[["id#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7425,"end":7427}],["size#1#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7429,"end":7433}]],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7456,"end":7461},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7411,"end":7453},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7450,"end":7451},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7441,"end":7442},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7429,"end":7433},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7425,"end":7427},"6":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7475,"end":7479},"7":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7483,"end":7484},"8":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7480,"end":7482},"9":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7467,"end":7501},"11":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7486,"end":7500},"12":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7467,"end":7501},"13":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7507,"end":7509},"14":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7507,"end":7518}},"is_native":false},"16":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7620,"end":7785},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7631,"end":7635},"type_parameters":[["K",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7636,"end":7637}],["V",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7660,"end":7661}]],"parameters":[["table#0#0",{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7677,"end":7682}]],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7761,"end":7766},"1":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7713,"end":7758},"2":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7755,"end":7756},"3":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7746,"end":7747},"4":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7737,"end":7738},"5":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":7772,"end":7783}},"is_native":false},"17":{"location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":186,"end":7785},"definition_location":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":186,"end":7785},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[172,98,154,2,203,165,81,8,195,23,207,200,165,130,162,221,230,96,63,240,58,139,85,89,221,206,114,78,96,99,2,138],"start":186,"end":7785}},"is_native":false}},"constant_map":{"ETableIsEmpty":1,"ETableNotEmpty":0}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/object.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/object.json new file mode 100644 index 0000000000000..b20ebd7fd723d --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/object.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":114,"end":120},"module_name":["0000000000000000000000000000000000000000000000000000000000000002","object"],"struct_map":{"0":{"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":1986,"end":1988},"type_parameters":[],"fields":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2345,"end":2350}]},"1":{"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2882,"end":2885},"type_parameters":[],"fields":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2902,"end":2904}]}},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2960,"end":3036},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2971,"end":2982},"type_parameters":[],"parameters":[["id#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2983,"end":2985}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":2993,"end":3003}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3025,"end":3027},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3024,"end":3033},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3010,"end":3034}},"is_native":false},"1":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3085,"end":3144},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3096,"end":3109},"type_parameters":[],"parameters":[["id#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3110,"end":3112}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3120,"end":3127}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3134,"end":3136},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3134,"end":3142}},"is_native":false},"2":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3179,"end":3269},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3190,"end":3203},"type_parameters":[],"parameters":[["bytes#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3204,"end":3209}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3224,"end":3226}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3253,"end":3258},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3233,"end":3259},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3233,"end":3267}},"is_native":false},"3":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3305,"end":3372},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3316,"end":3331},"type_parameters":[],"parameters":[["bytes#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3332,"end":3337}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3349,"end":3351}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3363,"end":3368},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3358,"end":3370}},"is_native":false},"4":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3535,"end":3705},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3539,"end":3555},"type_parameters":[],"parameters":[["ctx#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3556,"end":3559}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3574,"end":3577}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3592,"end":3595},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3592,"end":3604},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3608,"end":3612},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3605,"end":3607},"4":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3584,"end":3632},"6":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3614,"end":3631},"7":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3584,"end":3632},"8":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3668,"end":3694},"9":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3656,"end":3696},"10":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3638,"end":3703}},"is_native":false},"5":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3812,"end":3911},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3832,"end":3837},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3841,"end":3844}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3881,"end":3900},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3869,"end":3902},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":3851,"end":3909}},"is_native":false},"6":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4045,"end":4165},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4065,"end":4084},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4088,"end":4091}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4128,"end":4154},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4116,"end":4156},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4098,"end":4163}},"is_native":false},"7":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4274,"end":4378},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4294,"end":4310},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4314,"end":4317}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4354,"end":4367},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4342,"end":4369},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4324,"end":4376}},"is_native":false},"8":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4492,"end":4613},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4512,"end":4535},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4539,"end":4542}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4579,"end":4602},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4567,"end":4604},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4549,"end":4611}},"is_native":false},"9":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4748,"end":4826},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4752,"end":4758},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4762,"end":4765}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4802,"end":4815},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4790,"end":4817},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4772,"end":4824}},"is_native":false},"10":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4860,"end":4915},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4871,"end":4883},"type_parameters":[],"parameters":[["uid#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4884,"end":4887}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4896,"end":4899}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4907,"end":4910},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4906,"end":4913}},"is_native":false},"11":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4963,"end":5016},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4974,"end":4986},"type_parameters":[],"parameters":[["uid#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4987,"end":4990}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":4999,"end":5001}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5008,"end":5011},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5008,"end":5014}},"is_native":false},"12":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5051,"end":5134},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5062,"end":5074},"type_parameters":[],"parameters":[["uid#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5075,"end":5078}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5087,"end":5097}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5119,"end":5122},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5119,"end":5131},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5118,"end":5131},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5104,"end":5132}},"is_native":false},"13":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5183,"end":5249},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5194,"end":5208},"type_parameters":[],"parameters":[["uid#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5209,"end":5212}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5221,"end":5228}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5235,"end":5238},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5235,"end":5247}},"is_native":false},"14":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5397,"end":5511},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5408,"end":5411},"type_parameters":[],"parameters":[["ctx#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5412,"end":5415}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5434,"end":5437}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5474,"end":5477},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5474,"end":5500},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5462,"end":5502},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5444,"end":5509}},"is_native":false},"15":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5849,"end":5941},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5860,"end":5866},"type_parameters":[],"parameters":[["id#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5867,"end":5869}]],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5913,"end":5915},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5886,"end":5910},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5896,"end":5908},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5921,"end":5939}},"is_native":false},"16":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5980,"end":6041},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5991,"end":5993},"type_parameters":[["T",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":5994,"end":5995}]],"parameters":[["obj#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6002,"end":6005}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6012,"end":6014}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6032,"end":6035},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6021,"end":6036},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6021,"end":6039}},"is_native":false},"17":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6083,"end":6153},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6094,"end":6103},"type_parameters":[["T",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6104,"end":6105}]],"parameters":[["obj#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6112,"end":6115}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6122,"end":6125}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6144,"end":6147},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6133,"end":6148},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6132,"end":6151}},"is_native":false},"18":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6210,"end":6301},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6221,"end":6229},"type_parameters":[["T",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6230,"end":6231}]],"parameters":[["obj#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6238,"end":6241}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6248,"end":6258}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6291,"end":6294},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6280,"end":6295},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6279,"end":6298},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6265,"end":6299}},"is_native":false},"19":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6360,"end":6440},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6371,"end":6381},"type_parameters":[["T",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6382,"end":6383}]],"parameters":[["obj#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6390,"end":6393}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6400,"end":6407}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6425,"end":6428},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6414,"end":6429},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6414,"end":6438}},"is_native":false},"20":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6750,"end":6795},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6761,"end":6771},"type_parameters":[["T",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6772,"end":6773}]],"parameters":[["obj#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6780,"end":6783}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6790,"end":6794}],"locals":[],"nops":{},"code_map":{},"is_native":true},"21":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6869,"end":6987},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6889,"end":6906},"type_parameters":[],"parameters":[["bytes#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6907,"end":6912}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6924,"end":6927}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6949,"end":6954},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6934,"end":6955},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6976,"end":6981},"3":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6971,"end":6983},"4":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":6961,"end":6985}},"is_native":false},"22":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7041,"end":7077},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7052,"end":7063},"type_parameters":[],"parameters":[["id#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7064,"end":7066}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"23":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7117,"end":7156},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7128,"end":7142},"type_parameters":[],"parameters":[["id#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7143,"end":7145}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"24":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7217,"end":7312},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7228,"end":7240},"type_parameters":[],"parameters":[["ctx#0#0",{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7241,"end":7244}]],"returns":[{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7259,"end":7261}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7280,"end":7283},"1":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7280,"end":7308},"2":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":7268,"end":7310}},"is_native":false},"25":{"location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":102,"end":7312},"definition_location":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":102,"end":7312},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[103,169,24,233,31,232,113,209,174,110,82,17,119,136,52,139,67,161,201,191,142,219,94,29,103,80,209,55,36,30,13,204],"start":102,"end":7312}},"is_native":false}},"constant_map":{"ENotSystemAddress":6,"SUI_AUTHENTICATOR_STATE_ID":2,"SUI_BRIDGE_ID":5,"SUI_CLOCK_OBJECT_ID":1,"SUI_DENY_LIST_OBJECT_ID":4,"SUI_RANDOM_ID":3,"SUI_SYSTEM_STATE_OBJECT_ID":0}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/m.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/m.json new file mode 100644 index 0000000000000..0498b3e81cfb4 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/m.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":86,"end":87},"module_name":["0000000000000000000000000000000000000000000000000000000000000000","m"],"struct_map":{},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":122,"end":665},"definition_location":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":126,"end":130},"type_parameters":[],"parameters":[],"returns":[],"locals":[["%#1",{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":154,"end":173}],["table#1#0",{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":187,"end":192}]],"nops":{},"code_map":{"0":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":154,"end":173},"2":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":149,"end":173},"3":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":195,"end":226},"4":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":183,"end":192},"5":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":232,"end":237},"6":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":248,"end":249},"7":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":251,"end":253},"8":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":232,"end":254},"9":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":622,"end":627},"10":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":638,"end":640},"11":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":642,"end":643},"12":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":622,"end":644},"13":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":650,"end":655},"14":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":650,"end":662},"15":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":662,"end":663}},"is_native":false},"1":{"location":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":65,"end":665},"definition_location":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":65,"end":665},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[236,192,52,171,254,22,100,62,124,245,221,113,238,213,97,152,169,36,102,67,48,142,226,112,206,244,8,26,40,241,165,204],"start":65,"end":665}},"is_native":false}},"constant_map":{}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/option.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/option.move new file mode 100644 index 0000000000000..857e76ae0d2bb --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/option.move @@ -0,0 +1,251 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/// This module defines the Option type and its methods to represent and handle an optional value. +module std::option; + +/// Abstraction of a value that may or may not be present. Implemented with a vector of size +/// zero or one because Move bytecode does not have ADTs. +public struct Option has copy, drop, store { + vec: vector, +} + +/// The `Option` is in an invalid state for the operation attempted. +/// The `Option` is `Some` while it should be `None`. +const EOPTION_IS_SET: u64 = 0x40000; +/// The `Option` is in an invalid state for the operation attempted. +/// The `Option` is `None` while it should be `Some`. +const EOPTION_NOT_SET: u64 = 0x40001; + +/// Return an empty `Option` +public fun none(): Option { + Option { vec: vector::empty() } +} + +/// Return an `Option` containing `e` +public fun some(e: Element): Option { + Option { vec: vector::singleton(e) } +} + +/// Return true if `t` does not hold a value +public fun is_none(t: &Option): bool { + t.vec.is_empty() +} + +/// Return true if `t` holds a value +public fun is_some(t: &Option): bool { + !t.vec.is_empty() +} + +/// Return true if the value in `t` is equal to `e_ref` +/// Always returns `false` if `t` does not hold a value +public fun contains(t: &Option, e_ref: &Element): bool { + t.vec.contains(e_ref) +} + +/// Return an immutable reference to the value inside `t` +/// Aborts if `t` does not hold a value +public fun borrow(t: &Option): &Element { + assert!(t.is_some(), EOPTION_NOT_SET); + &t.vec[0] +} + +/// Return a reference to the value inside `t` if it holds one +/// Return `default_ref` if `t` does not hold a value +public fun borrow_with_default(t: &Option, default_ref: &Element): &Element { + let vec_ref = &t.vec; + if (vec_ref.is_empty()) default_ref + else &vec_ref[0] +} + +/// Return the value inside `t` if it holds one +/// Return `default` if `t` does not hold a value +public fun get_with_default(t: &Option, default: Element): Element { + let vec_ref = &t.vec; + if (vec_ref.is_empty()) default + else vec_ref[0] +} + +/// Convert the none option `t` to a some option by adding `e`. +/// Aborts if `t` already holds a value +public fun fill(t: &mut Option, e: Element) { + let vec_ref = &mut t.vec; + if (vec_ref.is_empty()) vec_ref.push_back(e) + else abort EOPTION_IS_SET +} + +/// Convert a `some` option to a `none` by removing and returning the value stored inside `t` +/// Aborts if `t` does not hold a value +public fun extract(t: &mut Option): Element { + assert!(t.is_some(), EOPTION_NOT_SET); + t.vec.pop_back() +} + +/// Return a mutable reference to the value inside `t` +/// Aborts if `t` does not hold a value +public fun borrow_mut(t: &mut Option): &mut Element { + assert!(t.is_some(), EOPTION_NOT_SET); + &mut t.vec[0] +} + +/// Swap the old value inside `t` with `e` and return the old value +/// Aborts if `t` does not hold a value +public fun swap(t: &mut Option, e: Element): Element { + assert!(t.is_some(), EOPTION_NOT_SET); + let vec_ref = &mut t.vec; + let old_value = vec_ref.pop_back(); + vec_ref.push_back(e); + old_value +} + +/// Swap the old value inside `t` with `e` and return the old value; +/// or if there is no old value, fill it with `e`. +/// Different from swap(), swap_or_fill() allows for `t` not holding a value. +public fun swap_or_fill(t: &mut Option, e: Element): Option { + let vec_ref = &mut t.vec; + let old_value = if (vec_ref.is_empty()) none() + else some(vec_ref.pop_back()); + vec_ref.push_back(e); + old_value +} + +/// Destroys `t.` If `t` holds a value, return it. Returns `default` otherwise +public fun destroy_with_default(t: Option, default: Element): Element { + let Option { mut vec } = t; + if (vec.is_empty()) default + else vec.pop_back() +} + +/// Unpack `t` and return its contents +/// Aborts if `t` does not hold a value +public fun destroy_some(t: Option): Element { + assert!(t.is_some(), EOPTION_NOT_SET); + let Option { mut vec } = t; + let elem = vec.pop_back(); + vec.destroy_empty(); + elem +} + +/// Unpack `t` +/// Aborts if `t` holds a value +public fun destroy_none(t: Option) { + assert!(t.is_none(), EOPTION_IS_SET); + let Option { vec } = t; + vec.destroy_empty() +} + +/// Convert `t` into a vector of length 1 if it is `Some`, +/// and an empty vector otherwise +public fun to_vec(t: Option): vector { + let Option { vec } = t; + vec +} + +// === Macro Functions === + +/// Destroy `Option` and call the closure `f` on the value inside if it holds one. +public macro fun destroy<$T>($o: Option<$T>, $f: |$T|) { + let o = $o; + o.do!($f); +} + +/// Destroy `Option` and call the closure `f` on the value inside if it holds one. +public macro fun do<$T>($o: Option<$T>, $f: |$T|) { + let o = $o; + if (o.is_some()) $f(o.destroy_some()) + else o.destroy_none() +} + +/// Execute a closure on the value inside `t` if it holds one. +public macro fun do_ref<$T>($o: &Option<$T>, $f: |&$T|) { + let o = $o; + if (o.is_some()) $f(o.borrow()); +} + +/// Execute a closure on the mutable reference to the value inside `t` if it holds one. +public macro fun do_mut<$T>($o: &mut Option<$T>, $f: |&mut $T|) { + let o = $o; + if (o.is_some()) $f(o.borrow_mut()); +} + +/// Select the first `Some` value from the two options, or `None` if both are `None`. +/// Equivalent to Rust's `a.or(b)`. +public macro fun or<$T>($o: Option<$T>, $default: Option<$T>): Option<$T> { + let o = $o; + if (o.is_some()) { + o + } else { + o.destroy_none(); + $default + } +} + +/// If the value is `Some`, call the closure `f` on it. Otherwise, return `None`. +/// Equivalent to Rust's `t.and_then(f)`. +public macro fun and<$T, $U>($o: Option<$T>, $f: |$T| -> Option<$U>): Option<$U> { + let o = $o; + if (o.is_some()) { + $f(o.destroy_some()) + } else { + o.destroy_none(); + none() + } +} + +/// If the value is `Some`, call the closure `f` on it. Otherwise, return `None`. +/// Equivalent to Rust's `t.and_then(f)`. +public macro fun and_ref<$T, $U>($o: &Option<$T>, $f: |&$T| -> Option<$U>): Option<$U> { + let o = $o; + if (o.is_some()) $f(o.borrow()) + else none() +} + +/// Map an `Option` to `Option` by applying a function to a contained value. +/// Equivalent to Rust's `t.map(f)`. +public macro fun map<$T, $U>($o: Option<$T>, $f: |$T| -> $U): Option<$U> { + let o = $o; + if (o.is_some()) { + some($f(o.destroy_some())) + } else { + o.destroy_none(); + none() + } +} + +/// Map an `Option` value to `Option` by applying a function to a contained value by reference. +/// Original `Option` is preserved. +/// Equivalent to Rust's `t.map(f)`. +public macro fun map_ref<$T, $U>($o: &Option<$T>, $f: |&$T| -> $U): Option<$U> { + let o = $o; + if (o.is_some()) some($f(o.borrow())) + else none() +} + +/// Return `None` if the value is `None`, otherwise return `Option` if the predicate `f` returns true. +public macro fun filter<$T: drop>($o: Option<$T>, $f: |&$T| -> bool): Option<$T> { + let o = $o; + if (o.is_some() && $f(o.borrow())) o + else none() +} + +/// Return `false` if the value is `None`, otherwise return the result of the predicate `f`. +public macro fun is_some_and<$T>($o: &Option<$T>, $f: |&$T| -> bool): bool { + let o = $o; + o.is_some() && $f(o.borrow()) +} + +/// Destroy `Option` and return the value inside if it holds one, or `default` otherwise. +/// Equivalent to Rust's `t.unwrap_or(default)`. +/// +/// Note: this function is a more efficient version of `destroy_with_default`, as it does not +/// evaluate the default value unless necessary. The `destroy_with_default` function should be +/// deprecated in favor of this function. +public macro fun destroy_or<$T>($o: Option<$T>, $default: $T): $T { + let o = $o; + if (o.is_some()) { + o.destroy_some() + } else { + o.destroy_none(); + $default + } +} diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/dynamic_field.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/dynamic_field.move new file mode 100644 index 0000000000000..8b83d9b192aee --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/dynamic_field.move @@ -0,0 +1,170 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +#[allow(unused_const)] +/// In addition to the fields declared in its type definition, a Sui object can have dynamic fields +/// that can be added after the object has been constructed. Unlike ordinary field names +/// (which are always statically declared identifiers) a dynamic field name can be any value with +/// the `copy`, `drop`, and `store` abilities, e.g. an integer, a boolean, or a string. +/// This gives Sui programmers the flexibility to extend objects on-the-fly, and it also serves as a +/// building block for core collection types +module sui::dynamic_field; + +/// The object already has a dynamic field with this name (with the value and type specified) +const EFieldAlreadyExists: u64 = 0; +/// Cannot load dynamic field. +/// The object does not have a dynamic field with this name (with the value and type specified) +const EFieldDoesNotExist: u64 = 1; +/// The object has a field with that name, but the value type does not match +const EFieldTypeMismatch: u64 = 2; +/// Failed to serialize the field's name +const EBCSSerializationFailure: u64 = 3; +/// The object added as a dynamic field was previously a shared object +const ESharedObjectOperationNotSupported: u64 = 4; + +/// Internal object used for storing the field and value +public struct Field has key { + /// Determined by the hash of the object ID, the field name value and it's type, + /// i.e. hash(parent.id || name || Name) + id: UID, + /// The value for the name of this field + name: Name, + /// The value bound to this field + value: Value, +} + +/// Adds a dynamic field to the object `object: &mut UID` at field specified by `name: Name`. +/// Aborts with `EFieldAlreadyExists` if the object already has that field with that name. +public fun add( + // we use &mut UID in several spots for access control + object: &mut UID, + name: Name, + value: Value, +) { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + assert!(!has_child_object(object_addr, hash), EFieldAlreadyExists); + let field = Field { + id: object::new_uid_from_hash(hash), + name, + value, + }; + add_child_object(object_addr, field) +} + +/// Immutably borrows the `object`s dynamic field with the name specified by `name: Name`. +/// Aborts with `EFieldDoesNotExist` if the object does not have a field with that name. +/// Aborts with `EFieldTypeMismatch` if the field exists, but the value does not have the specified +/// type. +public fun borrow(object: &UID, name: Name): &Value { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + let field = borrow_child_object>(object, hash); + &field.value +} + +/// Mutably borrows the `object`s dynamic field with the name specified by `name: Name`. +/// Aborts with `EFieldDoesNotExist` if the object does not have a field with that name. +/// Aborts with `EFieldTypeMismatch` if the field exists, but the value does not have the specified +/// type. +public fun borrow_mut( + object: &mut UID, + name: Name, +): &mut Value { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + let field = borrow_child_object_mut>(object, hash); + &mut field.value +} + +/// Removes the `object`s dynamic field with the name specified by `name: Name` and returns the +/// bound value. +/// Aborts with `EFieldDoesNotExist` if the object does not have a field with that name. +/// Aborts with `EFieldTypeMismatch` if the field exists, but the value does not have the specified +/// type. +public fun remove(object: &mut UID, name: Name): Value { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + let Field { id, name: _, value } = remove_child_object>(object_addr, hash); + id.delete(); + value +} + +/// Returns true if and only if the `object` has a dynamic field with the name specified by +/// `name: Name` but without specifying the `Value` type +public fun exists_(object: &UID, name: Name): bool { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + has_child_object(object_addr, hash) +} + +/// Removes the dynamic field if it exists. Returns the `some(Value)` if it exists or none otherwise. +public fun remove_if_exists( + object: &mut UID, + name: Name, +): Option { + if (exists_(object, name)) { + option::some(remove(object, name)) + } else { + option::none() + } +} + +/// Returns true if and only if the `object` has a dynamic field with the name specified by +/// `name: Name` with an assigned value of type `Value`. +public fun exists_with_type( + object: &UID, + name: Name, +): bool { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + has_child_object_with_ty>(object_addr, hash) +} + +public(package) fun field_info( + object: &UID, + name: Name, +): (&UID, address) { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + let Field { id, name: _, value } = borrow_child_object>(object, hash); + (id, value.to_address()) +} + +public(package) fun field_info_mut( + object: &mut UID, + name: Name, +): (&mut UID, address) { + let object_addr = object.to_address(); + let hash = hash_type_and_key(object_addr, name); + let Field { id, name: _, value } = borrow_child_object_mut>(object, hash); + (id, value.to_address()) +} + +/// May abort with `EBCSSerializationFailure`. +public(package) native fun hash_type_and_key( + parent: address, + k: K, +): address; + +public(package) native fun add_child_object(parent: address, child: Child); + +/// throws `EFieldDoesNotExist` if a child does not exist with that ID +/// or throws `EFieldTypeMismatch` if the type does not match, +/// and may also abort with `EBCSSerializationFailure` +/// we need two versions to return a reference or a mutable reference +public(package) native fun borrow_child_object(object: &UID, id: address): &Child; + +public(package) native fun borrow_child_object_mut( + object: &mut UID, + id: address, +): &mut Child; + +/// throws `EFieldDoesNotExist` if a child does not exist with that ID +/// or throws `EFieldTypeMismatch` if the type does not match, +/// and may also abort with `EBCSSerializationFailure`. +public(package) native fun remove_child_object(parent: address, id: address): Child; + +public(package) native fun has_child_object(parent: address, id: address): bool; + +public(package) native fun has_child_object_with_ty(parent: address, id: address): bool; diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/linked_table.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/linked_table.move new file mode 100644 index 0000000000000..31bb50f0e4e69 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/linked_table.move @@ -0,0 +1,199 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/// Similar to `sui::table` but the values are linked together, allowing for ordered insertion and +/// removal +module sui::linked_table; + +use sui::dynamic_field as field; + +// Attempted to destroy a non-empty table +const ETableNotEmpty: u64 = 0; +// Attempted to remove the front or back of an empty table +const ETableIsEmpty: u64 = 1; + +public struct LinkedTable has key, store { + /// the ID of this table + id: UID, + /// the number of key-value pairs in the table + size: u64, + /// the front of the table, i.e. the key of the first entry + head: Option, + /// the back of the table, i.e. the key of the last entry + tail: Option, +} + +public struct Node has store { + /// the previous key + prev: Option, + /// the next key + next: Option, + /// the value being stored + value: V, +} + +/// Creates a new, empty table +public fun new(ctx: &mut TxContext): LinkedTable { + LinkedTable { + id: object::new(ctx), + size: 0, + head: option::none(), + tail: option::none(), + } +} + +/// Returns the key for the first element in the table, or None if the table is empty +public fun front(table: &LinkedTable): &Option { + &table.head +} + +/// Returns the key for the last element in the table, or None if the table is empty +public fun back(table: &LinkedTable): &Option { + &table.tail +} + +/// Inserts a key-value pair at the front of the table, i.e. the newly inserted pair will be +/// the first element in the table +/// Aborts with `sui::dynamic_field::EFieldAlreadyExists` if the table already has an entry with +/// that key `k: K`. +public fun push_front( + table: &mut LinkedTable, + k: K, + value: V, +) { + let old_head = table.head.swap_or_fill(k); + if (table.tail.is_none()) table.tail.fill(k); + let prev = option::none(); + let next = if (old_head.is_some()) { + let old_head_k = old_head.destroy_some(); + field::borrow_mut>(&mut table.id, old_head_k).prev = option::some(k); + option::some(old_head_k) + } else { + option::none() + }; + field::add(&mut table.id, k, Node { prev, next, value }); + table.size = table.size + 1; +} + +/// Inserts a key-value pair at the back of the table, i.e. the newly inserted pair will be +/// the last element in the table +/// Aborts with `sui::dynamic_field::EFieldAlreadyExists` if the table already has an entry with +/// that key `k: K`. +public fun push_back( + table: &mut LinkedTable, + k: K, + value: V, +) { + if (table.head.is_none()) table.head.fill(k); + let old_tail = table.tail.swap_or_fill(k); + let prev = if (old_tail.is_some()) { + let old_tail_k = old_tail.destroy_some(); + field::borrow_mut>(&mut table.id, old_tail_k).next = option::some(k); + option::some(old_tail_k) + } else { + option::none() + }; + let next = option::none(); + field::add(&mut table.id, k, Node { prev, next, value }); + table.size = table.size + 1; +} + +#[syntax(index)] +/// Immutable borrows the value associated with the key in the table `table: &LinkedTable`. +/// Aborts with `sui::dynamic_field::EFieldDoesNotExist` if the table does not have an entry with +/// that key `k: K`. +public fun borrow(table: &LinkedTable, k: K): &V { + &field::borrow>(&table.id, k).value +} + +#[syntax(index)] +/// Mutably borrows the value associated with the key in the table `table: &mut LinkedTable`. +/// Aborts with `sui::dynamic_field::EFieldDoesNotExist` if the table does not have an entry with +/// that key `k: K`. +public fun borrow_mut( + table: &mut LinkedTable, + k: K, +): &mut V { + &mut field::borrow_mut>(&mut table.id, k).value +} + +/// Borrows the key for the previous entry of the specified key `k: K` in the table +/// `table: &LinkedTable`. Returns None if the entry does not have a predecessor. +/// Aborts with `sui::dynamic_field::EFieldDoesNotExist` if the table does not have an entry with +/// that key `k: K` +public fun prev(table: &LinkedTable, k: K): &Option { + &field::borrow>(&table.id, k).prev +} + +/// Borrows the key for the next entry of the specified key `k: K` in the table +/// `table: &LinkedTable`. Returns None if the entry does not have a predecessor. +/// Aborts with `sui::dynamic_field::EFieldDoesNotExist` if the table does not have an entry with +/// that key `k: K` +public fun next(table: &LinkedTable, k: K): &Option { + &field::borrow>(&table.id, k).next +} + +/// Removes the key-value pair in the table `table: &mut LinkedTable` and returns the value. +/// This splices the element out of the ordering. +/// Aborts with `sui::dynamic_field::EFieldDoesNotExist` if the table does not have an entry with +/// that key `k: K`. Note: this is also what happens when the table is empty. +public fun remove(table: &mut LinkedTable, k: K): V { + let Node { prev, next, value } = field::remove(&mut table.id, k); + table.size = table.size - 1; + if (prev.is_some()) { + field::borrow_mut>(&mut table.id, *prev.borrow()).next = next + }; + if (next.is_some()) { + field::borrow_mut>(&mut table.id, *next.borrow()).prev = prev + }; + if (table.head.borrow() == &k) table.head = next; + if (table.tail.borrow() == &k) table.tail = prev; + value +} + +/// Removes the front of the table `table: &mut LinkedTable` and returns the value. +/// Aborts with `ETableIsEmpty` if the table is empty +public fun pop_front(table: &mut LinkedTable): (K, V) { + assert!(table.head.is_some(), ETableIsEmpty); + let head = *table.head.borrow(); + (head, table.remove(head)) +} + +/// Removes the back of the table `table: &mut LinkedTable` and returns the value. +/// Aborts with `ETableIsEmpty` if the table is empty +public fun pop_back(table: &mut LinkedTable): (K, V) { + assert!(table.tail.is_some(), ETableIsEmpty); + let tail = *table.tail.borrow(); + (tail, table.remove(tail)) +} + +/// Returns true iff there is a value associated with the key `k: K` in table +/// `table: &LinkedTable` +public fun contains(table: &LinkedTable, k: K): bool { + field::exists_with_type>(&table.id, k) +} + +/// Returns the size of the table, the number of key-value pairs +public fun length(table: &LinkedTable): u64 { + table.size +} + +/// Returns true iff the table is empty (if `length` returns `0`) +public fun is_empty(table: &LinkedTable): bool { + table.size == 0 +} + +/// Destroys an empty table +/// Aborts with `ETableNotEmpty` if the table still contains values +public fun destroy_empty(table: LinkedTable) { + let LinkedTable { id, size, head: _, tail: _ } = table; + assert!(size == 0, ETableNotEmpty); + id.delete() +} + +/// Drop a possibly non-empty table. +/// Usable only if the value type `V` has the `drop` ability +public fun drop(table: LinkedTable) { + let LinkedTable { id, size: _, head: _, tail: _ } = table; + id.delete() +} diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/object.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/object.move new file mode 100644 index 0000000000000..8bc0c67c38fc8 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/object.move @@ -0,0 +1,233 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/// Sui object identifiers +module sui::object; + +use std::bcs; +use sui::address; + +/// Allows calling `.to_address` on an `ID` to get an `address`. +public use fun id_to_address as ID.to_address; + +/// Allows calling `.to_bytes` on an `ID` to get a `vector`. +public use fun id_to_bytes as ID.to_bytes; + +/// Allows calling `.as_inner` on a `UID` to get an `&ID`. +public use fun uid_as_inner as UID.as_inner; + +/// Allows calling `.to_inner` on a `UID` to get an `ID`. +public use fun uid_to_inner as UID.to_inner; + +/// Allows calling `.to_address` on a `UID` to get an `address`. +public use fun uid_to_address as UID.to_address; + +/// Allows calling `.to_bytes` on a `UID` to get a `vector`. +public use fun uid_to_bytes as UID.to_bytes; + +/// The hardcoded ID for the singleton Sui System State Object. +const SUI_SYSTEM_STATE_OBJECT_ID: address = @0x5; + +/// The hardcoded ID for the singleton Clock Object. +const SUI_CLOCK_OBJECT_ID: address = @0x6; + +/// The hardcoded ID for the singleton AuthenticatorState Object. +const SUI_AUTHENTICATOR_STATE_ID: address = @0x7; + +/// The hardcoded ID for the singleton Random Object. +const SUI_RANDOM_ID: address = @0x8; + +/// The hardcoded ID for the singleton DenyList. +const SUI_DENY_LIST_OBJECT_ID: address = @0x403; + +/// The hardcoded ID for the Bridge Object. +const SUI_BRIDGE_ID: address = @0x9; + +/// Sender is not @0x0 the system address. +const ENotSystemAddress: u64 = 0; + +/// An object ID. This is used to reference Sui Objects. +/// This is *not* guaranteed to be globally unique--anyone can create an `ID` from a `UID` or +/// from an object, and ID's can be freely copied and dropped. +/// Here, the values are not globally unique because there can be multiple values of type `ID` +/// with the same underlying bytes. For example, `object::id(&obj)` can be called as many times +/// as you want for a given `obj`, and each `ID` value will be identical. +public struct ID has copy, drop, store { + // We use `address` instead of `vector` here because `address` has a more + // compact serialization. `address` is serialized as a BCS fixed-length sequence, + // which saves us the length prefix we would pay for if this were `vector`. + // See https://github.com/diem/bcs#fixed-and-variable-length-sequences. + bytes: address, +} + +/// Globally unique IDs that define an object's ID in storage. Any Sui Object, that is a struct +/// with the `key` ability, must have `id: UID` as its first field. +/// These are globally unique in the sense that no two values of type `UID` are ever equal, in +/// other words for any two values `id1: UID` and `id2: UID`, `id1` != `id2`. +/// This is a privileged type that can only be derived from a `TxContext`. +/// `UID` doesn't have the `drop` ability, so deleting a `UID` requires a call to `delete`. +public struct UID has store { + id: ID, +} + +// === id === + +/// Get the raw bytes of a `ID` +public fun id_to_bytes(id: &ID): vector { + bcs::to_bytes(&id.bytes) +} + +/// Get the inner bytes of `id` as an address. +public fun id_to_address(id: &ID): address { + id.bytes +} + +/// Make an `ID` from raw bytes. +public fun id_from_bytes(bytes: vector): ID { + address::from_bytes(bytes).to_id() +} + +/// Make an `ID` from an address. +public fun id_from_address(bytes: address): ID { + ID { bytes } +} + +// === uid === + +#[allow(unused_function)] +/// Create the `UID` for the singleton `SuiSystemState` object. +/// This should only be called once from `sui_system`. +fun sui_system_state(ctx: &TxContext): UID { + assert!(ctx.sender() == @0x0, ENotSystemAddress); + UID { + id: ID { bytes: SUI_SYSTEM_STATE_OBJECT_ID }, + } +} + +/// Create the `UID` for the singleton `Clock` object. +/// This should only be called once from `clock`. +public(package) fun clock(): UID { + UID { + id: ID { bytes: SUI_CLOCK_OBJECT_ID }, + } +} + +/// Create the `UID` for the singleton `AuthenticatorState` object. +/// This should only be called once from `authenticator_state`. +public(package) fun authenticator_state(): UID { + UID { + id: ID { bytes: SUI_AUTHENTICATOR_STATE_ID }, + } +} + +/// Create the `UID` for the singleton `Random` object. +/// This should only be called once from `random`. +public(package) fun randomness_state(): UID { + UID { + id: ID { bytes: SUI_RANDOM_ID }, + } +} + +/// Create the `UID` for the singleton `DenyList` object. +/// This should only be called once from `deny_list`. +public(package) fun sui_deny_list_object_id(): UID { + UID { + id: ID { bytes: SUI_DENY_LIST_OBJECT_ID }, + } +} + +#[allow(unused_function)] +/// Create the `UID` for the singleton `Bridge` object. +/// This should only be called once from `bridge`. +fun bridge(): UID { + UID { + id: ID { bytes: SUI_BRIDGE_ID }, + } +} + +/// Get the inner `ID` of `uid` +public fun uid_as_inner(uid: &UID): &ID { + &uid.id +} + +/// Get the raw bytes of a `uid`'s inner `ID` +public fun uid_to_inner(uid: &UID): ID { + uid.id +} + +/// Get the raw bytes of a `UID` +public fun uid_to_bytes(uid: &UID): vector { + bcs::to_bytes(&uid.id.bytes) +} + +/// Get the inner bytes of `id` as an address. +public fun uid_to_address(uid: &UID): address { + uid.id.bytes +} + +// === any object === + +/// Create a new object. Returns the `UID` that must be stored in a Sui object. +/// This is the only way to create `UID`s. +public fun new(ctx: &mut TxContext): UID { + UID { + id: ID { bytes: ctx.fresh_object_address() }, + } +} + +/// Delete the object and it's `UID`. This is the only way to eliminate a `UID`. +// This exists to inform Sui of object deletions. When an object +// gets unpacked, the programmer will have to do something with its +// `UID`. The implementation of this function emits a deleted +// system event so Sui knows to process the object deletion +public fun delete(id: UID) { + let UID { id: ID { bytes } } = id; + delete_impl(bytes) +} + +/// Get the underlying `ID` of `obj` +public fun id(obj: &T): ID { + borrow_uid(obj).id +} + +/// Borrow the underlying `ID` of `obj` +public fun borrow_id(obj: &T): &ID { + &borrow_uid(obj).id +} + +/// Get the raw bytes for the underlying `ID` of `obj` +public fun id_bytes(obj: &T): vector { + bcs::to_bytes(&borrow_uid(obj).id) +} + +/// Get the inner bytes for the underlying `ID` of `obj` +public fun id_address(obj: &T): address { + borrow_uid(obj).id.bytes +} + +/// Get the `UID` for `obj`. +/// Safe because Sui has an extra bytecode verifier pass that forces every struct with +/// the `key` ability to have a distinguished `UID` field. +/// Cannot be made public as the access to `UID` for a given object must be privileged, and +/// restrictable in the object's module. +native fun borrow_uid(obj: &T): &UID; + +/// Generate a new UID specifically used for creating a UID from a hash +public(package) fun new_uid_from_hash(bytes: address): UID { + record_new_uid(bytes); + UID { id: ID { bytes } } +} + +// === internal functions === + +// helper for delete +native fun delete_impl(id: address); + +// marks newly created UIDs from hash +native fun record_new_uid(id: address); + +#[test_only] +/// Return the most recent created object ID. +public fun last_created(ctx: &TxContext): ID { + ID { bytes: ctx.last_created_object_id() } +} diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/m.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/m.move new file mode 100644 index 0000000000000..d76d07984738d --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/m.move @@ -0,0 +1,19 @@ +// Test that write to a global location is handled +// correctly. +module global_write::m; + +use sui::linked_table; + +#[test] +fun test() { + let ctx = &mut tx_context::dummy(); + let mut table = linked_table::new(ctx); + table.push_back(7, 42); + // linked table contains the following line which (interestingly) uses global location + // for the write of `next` but only if we call the `push_back` function twice (otherwise + // it looks like it creates a temporary local variable for this assignment) + // + // field::borrow_mut>(&mut table.id, old_tail_k).next = option::some(k); + table.push_back(42, 7); + table.drop(); +} diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move new file mode 100644 index 0000000000000..d76d07984738d --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move @@ -0,0 +1,19 @@ +// Test that write to a global location is handled +// correctly. +module global_write::m; + +use sui::linked_table; + +#[test] +fun test() { + let ctx = &mut tx_context::dummy(); + let mut table = linked_table::new(ctx); + table.push_back(7, 42); + // linked table contains the following line which (interestingly) uses global location + // for the write of `next` but only if we call the `push_back` function twice (otherwise + // it looks like it creates a temporary local variable for this assignment) + // + // field::borrow_mut>(&mut table.id, old_tail_k).next = option::some(k); + table.push_back(42, 7); + table.drop(); +} diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/test.exp b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/test.exp new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/trace.spec.js b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/trace.spec.js new file mode 100644 index 0000000000000..5f351cee9ddb1 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/trace.spec.js @@ -0,0 +1,4 @@ +let action = (runtime) => { + return ''; +}; +run_spec(__dirname, action); diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/traces/global_write__m__test.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/traces/global_write__m__test.json new file mode 100644 index 0000000000000..1a3737eccca68 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/traces/global_write__m__test.json @@ -0,0 +1 @@ +{"version":1,"events":[{"OpenFrame":{"frame":{"frame_id":0,"function_name":"test","module":{"address":"0000000000000000000000000000000000000000000000000000000000000000","name":"m"},"binary_member_index":0,"type_instantiation":[],"parameters":[],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"LinkedTable","type_args":["u64","u8"]}},"ref_type":null}],"is_native":false},"gas_left":1000000000}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":1000000000,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":2,"function_name":"dummy","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"tx_context"},"binary_member_index":9,"type_instantiation":[],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":1000000000}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999965,"instruction":"LD_CONST"}},{"Effect":{"Push":{"RuntimeValue":{"value":"0000000000000000000000000000000000000000000000000000000000000000"}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999930,"instruction":"LD_CONST"}},{"Effect":{"Push":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999927,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999924,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999921,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999999921,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":14,"function_name":"new","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"tx_context"},"binary_member_index":7,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"0000000000000000000000000000000000000000000000000000000000000000"}},{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}},{"RuntimeValue":{"value":0}},{"RuntimeValue":{"value":0}},{"RuntimeValue":{"value":0}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":{"vector":"u8"},"ref_type":null},{"type_":"u64","ref_type":null},{"type_":"u64","ref_type":null},{"type_":"u64","ref_type":null}],"is_native":false},"gas_left":999999921}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999910,"instruction":"IMM_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,1]},"root_value_read":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}},"moved":false}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[14,1]},"snapshot":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999907,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Local":[14,1]},"snapshot":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":32}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999897,"instruction":"LD_CONST"}},{"Effect":{"Push":{"RuntimeValue":{"value":32}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999862,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":32}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":32}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999861,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999999860,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999999826,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,0]},"root_value_read":{"RuntimeValue":{"value":"0000000000000000000000000000000000000000000000000000000000000000"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"0000000000000000000000000000000000000000000000000000000000000000"}}}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999999792,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,1]},"root_value_read":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999999774,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,2]},"root_value_read":{"RuntimeValue":{"value":0}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999999756,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,3]},"root_value_read":{"RuntimeValue":{"value":0}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999999738,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[14,4]},"root_value_read":{"RuntimeValue":{"value":0}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999999734,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":"0000000000000000000000000000000000000000000000000000000000000000"}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999999733,"instruction":"RET"}},{"CloseFrame":{"frame_id":14,"return_":[{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}],"gas_left":999999733}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999732,"instruction":"RET"}},{"CloseFrame":{"frame_id":2,"return_":[{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}],"gas_left":999999732}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999731,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Write":{"location":{"Local":[0,0]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999721,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[0,0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999721,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":63,"function_name":"new","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"linked_table"},"binary_member_index":0,"type_instantiation":["u64","u8"],"parameters":[{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"LinkedTable","type_args":["u64","u8"]}},"ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":"Mut"}],"is_native":false},"gas_left":999999721}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999710,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[63,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999710,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":68,"function_name":"new","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":14,"type_instantiation":[],"parameters":[{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":"Mut"}],"is_native":false},"gas_left":999999710}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999699,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[68,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999699,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":73,"function_name":"fresh_object_address","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"tx_context"},"binary_member_index":4,"type_instantiation":[],"parameters":[{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"tx_context","name":"TxContext","type_args":[]}},"ref_type":"Mut"},{"type_":"address","ref_type":null},{"type_":"u64","ref_type":null}],"is_native":false},"gas_left":999999699}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999688,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999678,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,0]},4]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999660,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,0]},4]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Local":[0,0]},4]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999659,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Write":{"location":{"Local":[73,2]},"root_value_after_write":{"RuntimeValue":{"value":0}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999649,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999999639,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,0]},1]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999605,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,0]},1]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Local":[0,0]},1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999999587,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,2]},"root_value_read":{"RuntimeValue":{"value":0}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999999587,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":101,"function_name":"derive_id","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"tx_context"},"binary_member_index":6,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50]}},{"RuntimeValue":{"value":0}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":{"vector":"u8"},"ref_type":null},{"type_":"u64","ref_type":null}],"is_native":true},"gas_left":999999587}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"CloseFrame":{"frame_id":101,"return_":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"gas_left":999999500}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999999499,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Effect":{"Write":{"location":{"Local":[73,1]},"root_value_after_write":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999999481,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,2]},"root_value_read":{"RuntimeValue":{"value":0}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999999478,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999999475,"instruction":"ADD"}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999999465,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999999455,"instruction":"MUT_BORROW_FIELD"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,0]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,0]},4]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999999437,"instruction":"WRITE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,0]},4]},"snapshot":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":0}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Local":[0,0]},4]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::tx_context::TxContext","fields":{"sender":"0000000000000000000000000000000000000000000000000000000000000000","tx_hash":[58,152,93,167,79,226,37,178,4,92,23,45,107,211,144,189,133,95,8,110,62,157,82,91,70,191,226,69,17,67,21,50],"epoch":0,"epoch_timestamp_ms":0,"ids_created":1}}}}}}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999999403,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[73,1]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999999402,"instruction":"RET"}},{"CloseFrame":{"frame_id":73,"return_":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"gas_left":999999402}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999398,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999394,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999393,"instruction":"RET"}},{"CloseFrame":{"frame_id":68,"return_":[{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}],"gas_left":999999393}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999390,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999390,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":142,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999999390}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999379,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999999375,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999374,"instruction":"RET"}},{"CloseFrame":{"frame_id":142,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999999374}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999374,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":151,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999999374}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999363,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999999359,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999358,"instruction":"RET"}},{"CloseFrame":{"frame_id":151,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999999358}},{"Instruction":{"type_parameters":["u64","u8"],"pc":5,"gas_left":999999354,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999353,"instruction":"RET"}},{"CloseFrame":{"frame_id":63,"return_":[{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}],"gas_left":999999353}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999352,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Local":[0,1]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999999342,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[0,1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999339,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999999336,"instruction":"LD_U8"}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999999336,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":178,"function_name":"push_back","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"linked_table"},"binary_member_index":4,"type_instantiation":["u64","u8"],"parameters":[{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"RuntimeValue":{"value":7}},{"RuntimeValue":{"value":42}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"LinkedTable","type_args":["u64","u8"]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":"u8","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"is_native":false},"gas_left":999999336}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999325,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":1,"gas_left":999999315,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999315,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":186,"function_name":"is_none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":2,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999999315}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999304,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[186,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999999294,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999294,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":194,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999999294}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999283,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[194,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999280,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999277,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999242,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999241,"instruction":"RET"}},{"CloseFrame":{"frame_id":194,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999999241}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999240,"instruction":"RET"}},{"CloseFrame":{"frame_id":186,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999999240}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999239,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999229,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":5,"gas_left":999999219,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999201,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999999201,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":223,"function_name":"fill","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":8,"type_instantiation":["u64"],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"RuntimeValue":{"value":7}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":{"vector":"u64"},"ref_type":"Mut"}],"is_native":false},"gas_left":999999201}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999190,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[223,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999999180,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999179,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Local":[223,2]},"root_value_after_write":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999169,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[223,2]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999159,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999999159,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":240,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999999159}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999148,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[240,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999999145,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999142,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999107,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999999106,"instruction":"RET"}},{"CloseFrame":{"frame_id":240,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999999106}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999999105,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999999104,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999999094,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[223,2]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999999076,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[223,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999999075,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999999074,"instruction":"RET"}},{"CloseFrame":{"frame_id":223,"return_":[],"gas_left":999999074}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999999064,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":9,"gas_left":999999054,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999999036,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999999036,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":280,"function_name":"swap_or_fill","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":12,"type_instantiation":["u64"],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"vector":"u64"},"ref_type":"Mut"}],"is_native":false},"gas_left":999999036}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999999025,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999999015,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999999014,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Local":[280,4]},"root_value_after_write":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999999004,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,4]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998994,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999998994,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":297,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999998994}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998983,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[297,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999998980,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998977,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999998942,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998941,"instruction":"RET"}},{"CloseFrame":{"frame_id":297,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999998941}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999998940,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999998940,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":315,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999998940}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998929,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999998925,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998924,"instruction":"RET"}},{"CloseFrame":{"frame_id":315,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999998924}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999998923,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[280,2]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999998922,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999998918,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,2]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999998917,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[280,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999998907,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,4]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999998889,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":18,"gas_left":999998888,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":19,"gas_left":999998884,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[280,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":20,"gas_left":999998883,"instruction":"RET"}},{"CloseFrame":{"frame_id":280,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999998883}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999998882,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[178,5]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999998872,"instruction":"IMM_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,5]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":false}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[178,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999998872,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":355,"function_name":"is_some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":3,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Local":[178,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999998872}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998861,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[355,0]},"root_value_read":{"ImmRef":{"location":{"Local":[178,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[178,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999998851,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Local":[178,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[178,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998851,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":363,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[178,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999998851}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998840,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[363,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[178,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[178,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999998837,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[178,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998834,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999998799,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998798,"instruction":"RET"}},{"CloseFrame":{"frame_id":363,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999998798}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999998795,"instruction":"NOT"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998794,"instruction":"RET"}},{"CloseFrame":{"frame_id":355,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999998794}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999998793,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":31,"gas_left":999998793,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":386,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999998793}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998782,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999998778,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998777,"instruction":"RET"}},{"CloseFrame":{"frame_id":386,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999998777}},{"Instruction":{"type_parameters":[],"pc":32,"gas_left":999998776,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[178,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":33,"gas_left":999998772,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":34,"gas_left":999998771,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[178,7]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":35,"gas_left":999998771,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":404,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999998771}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998760,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999998756,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998755,"instruction":"RET"}},{"CloseFrame":{"frame_id":404,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999998755}},{"Instruction":{"type_parameters":[],"pc":36,"gas_left":999998754,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[178,4]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":37,"gas_left":999998744,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":38,"gas_left":999998734,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":39,"gas_left":999998716,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":40,"gas_left":999998712,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,7]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":41,"gas_left":999998708,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,4]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":42,"gas_left":999998690,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,2]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":43,"gas_left":999998686,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":42}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}},{"Instruction":{"type_parameters":[],"pc":44,"gas_left":999998686,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":439,"function_name":"add","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":0,"type_instantiation":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"RuntimeValue":{"value":7}},{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}},"ref_type":null},{"type_":"address","ref_type":null},{"type_":"address","ref_type":null}],"is_native":false},"gas_left":999998686}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998675,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999998665,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998665,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":447,"function_name":"uid_to_address","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":13,"type_instantiation":[],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999998665}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998654,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[447,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999998644,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999998634,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999998600,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998599,"instruction":"RET"}},{"CloseFrame":{"frame_id":447,"return_":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"gas_left":999998599}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999998598,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Effect":{"Write":{"location":{"Local":[439,5]},"root_value_after_write":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999998564,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999998546,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999998546,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":473,"function_name":"hash_type_and_key","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":9,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":7}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":"u64","ref_type":null}],"is_native":true},"gas_left":999998546}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"CloseFrame":{"frame_id":473,"return_":[{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"gas_left":999998329}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999998328,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Effect":{"Write":{"location":{"Local":[439,4]},"root_value_after_write":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999998294,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999998260,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,4]},"root_value_read":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999998260,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":486,"function_name":"has_child_object","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":14,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999998260}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"CloseFrame":{"frame_id":486,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999998141}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999998138,"instruction":"NOT"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999998137,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999998136,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999998102,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,4]},"root_value_read":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999998102,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":499,"function_name":"new_uid_from_hash","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":21,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":null}],"locals_types":[{"type_":"address","ref_type":null}],"is_native":false},"gas_left":999998102}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999998067,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[499,0]},"root_value_read":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999998067,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":504,"function_name":"record_new_uid","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":23,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"return_types":[],"locals_types":[{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999998067}},{"CloseFrame":{"frame_id":504,"return_":[],"gas_left":999998013}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999997979,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[499,0]},"root_value_read":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999997975,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999997971,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999997970,"instruction":"RET"}},{"CloseFrame":{"frame_id":499,"return_":[{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}}}],"gas_left":999997970}},{"Instruction":{"type_parameters":[],"pc":18,"gas_left":999997952,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":19,"gas_left":999997928,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,2]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}},{"Instruction":{"type_parameters":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"pc":20,"gas_left":999997924,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Instruction":{"type_parameters":[],"pc":21,"gas_left":999997923,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Effect":{"Write":{"location":{"Local":[439,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":22,"gas_left":999997889,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":23,"gas_left":999997811,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[439,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Instruction":{"type_parameters":[],"pc":24,"gas_left":999997811,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":538,"function_name":"add_child_object","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":10,"type_instantiation":[{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}}],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}],"return_types":[],"locals_types":[{"type_":"address","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}},"ref_type":null}],"is_native":true},"gas_left":999997811}},{"CloseFrame":{"frame_id":538,"return_":[],"gas_left":999994959}},{"Instruction":{"type_parameters":[],"pc":25,"gas_left":999994958,"instruction":"RET"}},{"CloseFrame":{"frame_id":439,"return_":[],"gas_left":999994958}},{"Instruction":{"type_parameters":[],"pc":45,"gas_left":999994948,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":46,"gas_left":999994938,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":47,"gas_left":999994920,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Local":[0,1]},1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":48,"gas_left":999994917,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":49,"gas_left":999994914,"instruction":"ADD"}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":50,"gas_left":999994904,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[178,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":51,"gas_left":999994894,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":52,"gas_left":999994876,"instruction":"WRITE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":0,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Local":[0,1]},1]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":53,"gas_left":999994875,"instruction":"RET"}},{"CloseFrame":{"frame_id":178,"return_":[],"gas_left":999994875}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999994865,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[0,1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999994862,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999994859,"instruction":"LD_U8"}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999994859,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":578,"function_name":"push_back","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"linked_table"},"binary_member_index":4,"type_instantiation":["u64","u8"],"parameters":[{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"RuntimeValue":{"value":42}},{"RuntimeValue":{"value":7}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"LinkedTable","type_args":["u64","u8"]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":"u8","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"is_native":false},"gas_left":999994859}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994848,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":1,"gas_left":999994838,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994838,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":586,"function_name":"is_none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":2,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999994838}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994827,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[586,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999994817,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},2]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994817,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":594,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999994817}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994806,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[594,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994803,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},2]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994800,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994765,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994764,"instruction":"RET"}},{"CloseFrame":{"frame_id":594,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999994764}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994763,"instruction":"RET"}},{"CloseFrame":{"frame_id":586,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999994763}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994762,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999994752,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":9,"gas_left":999994742,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999994724,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999994724,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":623,"function_name":"swap_or_fill","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":12,"type_instantiation":["u64"],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"RuntimeValue":{"value":42}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":{"vector":"u64"},"ref_type":"Mut"}],"is_native":false},"gas_left":999994724}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994713,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999994703,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},3]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994702,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Write":{"location":{"Local":[623,4]},"root_value_after_write":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994692,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,4]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994682,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999994682,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":640,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999994682}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994671,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[640,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994668,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994665,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994630,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994629,"instruction":"RET"}},{"CloseFrame":{"frame_id":640,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999994629}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999994628,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999994618,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,4]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999994616,"instruction":"VEC_POP_BACK"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999994616,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":664,"function_name":"some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":1,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null}],"is_native":false},"gas_left":999994616}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994597,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[664,0]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994597,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":669,"function_name":"singleton","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":8,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"vector":"u64"},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null},{"type_":{"vector":"u64"},"ref_type":null}],"is_native":false},"gas_left":999994597}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994586,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994585,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Write":{"location":{"Local":[669,1]},"root_value_after_write":{"RuntimeValue":{"value":[]}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994575,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[669,1]},"root_value_read":{"RuntimeValue":{"value":[]}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[669,1]},"snapshot":[]}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994557,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[669,0]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994556,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[669,1]},"snapshot":[]}}}},{"Effect":{"Write":{"location":{"Local":[669,1]},"root_value_after_write":{"RuntimeValue":{"value":[7]}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999994546,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[669,1]},"root_value_read":{"RuntimeValue":{"value":[7]}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":[7]}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999994545,"instruction":"RET"}},{"CloseFrame":{"frame_id":669,"return_":[{"RuntimeValue":{"value":[7]}}],"gas_left":999994545}},{"Instruction":{"type_parameters":["u64"],"pc":2,"gas_left":999994541,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[7]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994540,"instruction":"RET"}},{"CloseFrame":{"frame_id":664,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"gas_left":999994540}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999994539,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Write":{"location":{"Local":[623,2]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999994527,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,2]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999994526,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Write":{"location":{"Local":[623,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999994516,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,4]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999994498,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":18,"gas_left":999994497,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":42}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},3]},0]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":19,"gas_left":999994485,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[623,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":20,"gas_left":999994484,"instruction":"RET"}},{"CloseFrame":{"frame_id":623,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"gas_left":999994484}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999994483,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Write":{"location":{"Local":[578,5]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999994473,"instruction":"IMM_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,5]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":false}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[578,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999994473,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":726,"function_name":"is_some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":3,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Local":[578,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999994473}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994462,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[726,0]},"root_value_read":{"ImmRef":{"location":{"Local":[578,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[578,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999994452,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Local":[578,5]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[578,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994452,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":734,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[578,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999994452}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994441,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[734,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[578,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[578,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994438,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[578,5]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994435,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994400,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994399,"instruction":"RET"}},{"CloseFrame":{"frame_id":734,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999994399}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994396,"instruction":"NOT"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994395,"instruction":"RET"}},{"CloseFrame":{"frame_id":726,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999994395}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999994394,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999994382,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,5]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999994382,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":760,"function_name":"destroy_some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":14,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"return_types":[{"type_":"u64","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null},{"type_":"u64","ref_type":null},{"type_":{"vector":"u64"},"ref_type":null}],"is_native":false},"gas_left":999994382}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994371,"instruction":"IMM_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[760,0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":false}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[760,0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994371,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":765,"function_name":"is_some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":3,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Local":[760,0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999994371}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994360,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[765,0]},"root_value_read":{"ImmRef":{"location":{"Local":[760,0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Local":[760,0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999994350,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Local":[760,0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[760,0]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994350,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":773,"function_name":"is_empty","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":11,"type_instantiation":["u64"],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[760,0]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":{"vector":"u64"},"ref_type":"Imm"}],"is_native":false},"gas_left":999994350}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994339,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[773,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[760,0]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[760,0]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994336,"instruction":"VEC_LEN"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[760,0]},0]},"snapshot":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994333,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":0}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994298,"instruction":"EQ"}},{"Effect":{"Pop":{"RuntimeValue":{"value":0}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994297,"instruction":"RET"}},{"CloseFrame":{"frame_id":773,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999994297}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994294,"instruction":"NOT"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994293,"instruction":"RET"}},{"CloseFrame":{"frame_id":765,"return_":[{"RuntimeValue":{"value":true}}],"gas_left":999994293}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994292,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994291,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999994279,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[760,0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999994277,"instruction":"UNPACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":[7]}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999994276,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[7]}}}},{"Effect":{"Write":{"location":{"Local":[760,2]},"root_value_after_write":{"RuntimeValue":{"value":[7]}}}}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999994266,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[760,2]},"root_value_read":{"RuntimeValue":{"value":[7]}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[760,2]},"snapshot":[7]}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999994264,"instruction":"VEC_POP_BACK"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[760,2]},"snapshot":[7]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999994263,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Write":{"location":{"Local":[760,1]},"root_value_after_write":{"RuntimeValue":{"value":7}}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999994261,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[760,2]},"root_value_read":{"RuntimeValue":{"value":[]}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999994260,"instruction":"VEC_UNPACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999994242,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[760,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999994241,"instruction":"RET"}},{"CloseFrame":{"frame_id":760,"return_":[{"RuntimeValue":{"value":7}}],"gas_left":999994241}},{"Instruction":{"type_parameters":[],"pc":18,"gas_left":999994240,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Write":{"location":{"Local":[578,6]},"root_value_after_write":{"RuntimeValue":{"value":7}}}}},{"Instruction":{"type_parameters":[],"pc":19,"gas_left":999994222,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":20,"gas_left":999994222,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":831,"function_name":"some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":1,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":42}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null}],"is_native":false},"gas_left":999994222}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994203,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[831,0]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994203,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":836,"function_name":"singleton","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":8,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":42}}],"return_types":[{"type_":{"vector":"u64"},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null},{"type_":{"vector":"u64"},"ref_type":null}],"is_native":false},"gas_left":999994203}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994192,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994191,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Write":{"location":{"Local":[836,1]},"root_value_after_write":{"RuntimeValue":{"value":[]}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994181,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[836,1]},"root_value_read":{"RuntimeValue":{"value":[]}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[836,1]},"snapshot":[]}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994163,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[836,0]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994162,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":42}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[836,1]},"snapshot":[]}}}},{"Effect":{"Write":{"location":{"Local":[836,1]},"root_value_after_write":{"RuntimeValue":{"value":[42]}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999994152,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[836,1]},"root_value_read":{"RuntimeValue":{"value":[42]}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":[42]}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999994151,"instruction":"RET"}},{"CloseFrame":{"frame_id":836,"return_":[{"RuntimeValue":{"value":[42]}}],"gas_left":999994151}},{"Instruction":{"type_parameters":["u64"],"pc":2,"gas_left":999994147,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[42]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994146,"instruction":"RET"}},{"CloseFrame":{"frame_id":831,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}],"gas_left":999994146}},{"Instruction":{"type_parameters":[],"pc":21,"gas_left":999994136,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":22,"gas_left":999994126,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":23,"gas_left":999994108,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,6]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":24,"gas_left":999994108,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":872,"function_name":"borrow_mut","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":2,"type_instantiation":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}},"ref_type":"Mut"}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":"address","ref_type":null}],"is_native":false},"gas_left":999994108}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994097,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[872,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994087,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994087,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":880,"function_name":"uid_to_address","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":13,"type_instantiation":[],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999994087}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999994076,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[880,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999994066,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999994056,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994022,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994021,"instruction":"RET"}},{"CloseFrame":{"frame_id":880,"return_":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"gas_left":999994021}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999994003,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[872,1]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999994003,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":900,"function_name":"hash_type_and_key","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":9,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":7}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":"u64","ref_type":null}],"is_native":true},"gas_left":999994003}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"CloseFrame":{"frame_id":900,"return_":[{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"gas_left":999993786}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999993785,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Effect":{"Write":{"location":{"Local":[872,2]},"root_value_after_write":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999993775,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[872,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999993741,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[872,2]},"root_value_read":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999993741,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":913,"function_name":"borrow_child_object_mut","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":12,"type_instantiation":[{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}}],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"RuntimeValue":{"value":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}},"ref_type":"Mut"}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Mut"},{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999993741}},{"Effect":{"DataLoad":{"ref_type":"Mut","location":{"Global":914},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Global":914},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"CloseFrame":{"frame_id":913,"return_":[{"MutRef":{"location":{"Global":914},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}],"gas_left":999993500}},{"Instruction":{"type_parameters":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"pc":9,"gas_left":999993490,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Global":914},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Global":914},2]},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999993489,"instruction":"RET"}},{"CloseFrame":{"frame_id":872,"return_":[{"MutRef":{"location":{"Indexed":[{"Global":914},2]},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}],"gas_left":999993489}},{"Instruction":{"type_parameters":["u64","u8"],"pc":25,"gas_left":999993479,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Global":914},2]},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Global":914},2]},1]},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Instruction":{"type_parameters":[],"pc":26,"gas_left":999993467,"instruction":"WRITE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Indexed":[{"Global":914},2]},1]},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Indexed":[{"Global":914},2]},1]},"root_value_after_write":{"MutRef":{"location":{"Global":914},"snapshot":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"7a7c970a2d2d96f16bd55c21ad8386296c539e7901bb6cd685faaf41250c094e"}}}},"name":7,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":42}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":27,"gas_left":999993449,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,6]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":28,"gas_left":999993449,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":933,"function_name":"some","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":1,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null}],"is_native":false},"gas_left":999993449}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999993430,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[933,0]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999993430,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":938,"function_name":"singleton","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"vector"},"binary_member_index":8,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":7}}],"return_types":[{"type_":{"vector":"u64"},"ref_type":null}],"locals_types":[{"type_":"u64","ref_type":null},{"type_":{"vector":"u64"},"ref_type":null}],"is_native":false},"gas_left":999993430}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999993419,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999993418,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Write":{"location":{"Local":[938,1]},"root_value_after_write":{"RuntimeValue":{"value":[]}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999993408,"instruction":"MUT_BORROW_LOC"}},{"Effect":{"Read":{"location":{"Local":[938,1]},"root_value_read":{"RuntimeValue":{"value":[]}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[938,1]},"snapshot":[]}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999993390,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[938,0]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999993389,"instruction":"VEC_PUSH_BACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[938,1]},"snapshot":[]}}}},{"Effect":{"Write":{"location":{"Local":[938,1]},"root_value_after_write":{"RuntimeValue":{"value":[7]}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999993379,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[938,1]},"root_value_read":{"RuntimeValue":{"value":[7]}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":[7]}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999993378,"instruction":"RET"}},{"CloseFrame":{"frame_id":938,"return_":[{"RuntimeValue":{"value":[7]}}],"gas_left":999993378}},{"Instruction":{"type_parameters":["u64"],"pc":2,"gas_left":999993374,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[7]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999993373,"instruction":"RET"}},{"CloseFrame":{"frame_id":933,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}],"gas_left":999993373}},{"Instruction":{"type_parameters":[],"pc":29,"gas_left":999993372,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Write":{"location":{"Local":[578,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}},{"Instruction":{"type_parameters":[],"pc":30,"gas_left":999993371,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":33,"gas_left":999993359,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":34,"gas_left":999993358,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Write":{"location":{"Local":[578,7]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}}},{"Instruction":{"type_parameters":[],"pc":35,"gas_left":999993358,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":975,"function_name":"none","module":{"address":"0000000000000000000000000000000000000000000000000000000000000001","name":"option"},"binary_member_index":0,"type_instantiation":["u64"],"parameters":[],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000001","module":"option","name":"Option","type_args":["u64"]}},"ref_type":null}],"locals_types":[],"is_native":false},"gas_left":999993358}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999993347,"instruction":"VEC_PACK"}},{"Effect":{"Push":{"RuntimeValue":{"value":[]}}}},{"Instruction":{"type_parameters":["u64"],"pc":1,"gas_left":999993343,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":[]}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999993342,"instruction":"RET"}},{"CloseFrame":{"frame_id":975,"return_":[{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}],"gas_left":999993342}},{"Instruction":{"type_parameters":[],"pc":36,"gas_left":999993341,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Write":{"location":{"Local":[578,4]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}}},{"Instruction":{"type_parameters":[],"pc":37,"gas_left":999993331,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":38,"gas_left":999993321,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":39,"gas_left":999993303,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":40,"gas_left":999993291,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,7]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":41,"gas_left":999993287,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,4]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Instruction":{"type_parameters":[],"pc":42,"gas_left":999993269,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,2]},"root_value_read":{"RuntimeValue":{"value":7}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":7}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":43,"gas_left":999993265,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":7}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[]}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}},{"Instruction":{"type_parameters":[],"pc":44,"gas_left":999993265,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":1010,"function_name":"add","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":0,"type_instantiation":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"parameters":[{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"RuntimeValue":{"value":42}},{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Mut"},{"type_":"u64","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}},"ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}},"ref_type":null},{"type_":"address","ref_type":null},{"type_":"address","ref_type":null}],"is_native":false},"gas_left":999993265}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999993254,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,0]},"root_value_read":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999993244,"instruction":"FREEZE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999993244,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1018,"function_name":"uid_to_address","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":13,"type_instantiation":[],"parameters":[{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":"Imm"}],"is_native":false},"gas_left":999993244}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999993233,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1018,0]},"root_value_read":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999993223,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999993213,"instruction":"IMM_BORROW_FIELD"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999993179,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Indexed":[{"Indexed":[{"Local":[0,1]},0]},0]},0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999993178,"instruction":"RET"}},{"CloseFrame":{"frame_id":1018,"return_":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"gas_left":999993178}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999993177,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Effect":{"Write":{"location":{"Local":[1010,5]},"root_value_after_write":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999993143,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999993125,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999993125,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":1044,"function_name":"hash_type_and_key","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":9,"type_instantiation":["u64"],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":42}}],"return_types":[{"type_":"address","ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":"u64","ref_type":null}],"is_native":true},"gas_left":999993125}},{"Effect":{"Push":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"CloseFrame":{"frame_id":1044,"return_":[{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}],"gas_left":999992908}},{"Instruction":{"type_parameters":[],"pc":7,"gas_left":999992907,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Effect":{"Write":{"location":{"Local":[1010,4]},"root_value_after_write":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}},{"Instruction":{"type_parameters":[],"pc":8,"gas_left":999992873,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":9,"gas_left":999992839,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,4]},"root_value_read":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Instruction":{"type_parameters":[],"pc":10,"gas_left":999992839,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1057,"function_name":"has_child_object","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":14,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}],"return_types":[{"type_":"bool","ref_type":null}],"locals_types":[{"type_":"address","ref_type":null},{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999992839}},{"Effect":{"Push":{"RuntimeValue":{"value":false}}}},{"CloseFrame":{"frame_id":1057,"return_":[{"RuntimeValue":{"value":false}}],"gas_left":999992720}},{"Instruction":{"type_parameters":[],"pc":11,"gas_left":999992717,"instruction":"NOT"}},{"Effect":{"Pop":{"RuntimeValue":{"value":false}}}},{"Effect":{"Push":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":12,"gas_left":999992716,"instruction":"BR_FALSE"}},{"Effect":{"Pop":{"RuntimeValue":{"value":true}}}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999992715,"instruction":"BRANCH"}},{"Instruction":{"type_parameters":[],"pc":16,"gas_left":999992681,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,4]},"root_value_read":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Instruction":{"type_parameters":[],"pc":17,"gas_left":999992681,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1070,"function_name":"new_uid_from_hash","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":21,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}],"return_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":null}],"locals_types":[{"type_":"address","ref_type":null}],"is_native":false},"gas_left":999992681}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999992646,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[1070,0]},"root_value_read":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999992646,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1075,"function_name":"record_new_uid","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":23,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}],"return_types":[],"locals_types":[{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999992646}},{"CloseFrame":{"frame_id":1075,"return_":[],"gas_left":999992592}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999992558,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1070,0]},"root_value_read":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999992554,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999992550,"instruction":"PACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999992549,"instruction":"RET"}},{"CloseFrame":{"frame_id":1070,"return_":[{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}}}],"gas_left":999992549}},{"Instruction":{"type_parameters":[],"pc":18,"gas_left":999992531,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,1]},"root_value_read":{"RuntimeValue":{"value":42}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":42}}}},{"Instruction":{"type_parameters":[],"pc":19,"gas_left":999992499,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,2]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}},{"Instruction":{"type_parameters":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}],"pc":20,"gas_left":999992495,"instruction":"PACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":42}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}}}},{"Instruction":{"type_parameters":[],"pc":21,"gas_left":999992494,"instruction":"ST_LOC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}}}},{"Effect":{"Write":{"location":{"Local":[1010,3]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":22,"gas_left":999992460,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,5]},"root_value_read":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":23,"gas_left":999992374,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1010,3]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}}}},{"Instruction":{"type_parameters":[],"pc":24,"gas_left":999992374,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":1109,"function_name":"add_child_object","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"dynamic_field"},"binary_member_index":10,"type_instantiation":[{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}}],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}},{"RuntimeValue":{"value":{"type":"0x2::dynamic_field::Field>","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"ca7fbe0d5c44e48a8314750aed86b52302bc8db067948e28ec90a4292adb24cf"}}}},"name":42,"value":{"type":"0x2::linked_table::Node","fields":{"prev":{"type":"0x1::option::Option","fields":{"vec":[7]}},"next":{"type":"0x1::option::Option","fields":{"vec":[]}},"value":7}}}}}}],"return_types":[],"locals_types":[{"type_":"address","ref_type":null},{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"dynamic_field","name":"Field","type_args":["u64",{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"Node","type_args":["u64","u8"]}}]}},"ref_type":null}],"is_native":true},"gas_left":999992374}},{"CloseFrame":{"frame_id":1109,"return_":[],"gas_left":999989442}},{"Instruction":{"type_parameters":[],"pc":25,"gas_left":999989441,"instruction":"RET"}},{"CloseFrame":{"frame_id":1010,"return_":[],"gas_left":999989441}},{"Instruction":{"type_parameters":[],"pc":45,"gas_left":999989431,"instruction":"COPY_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":46,"gas_left":999989421,"instruction":"IMM_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":47,"gas_left":999989403,"instruction":"READ_REF"}},{"Effect":{"Pop":{"ImmRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Read":{"location":{"Indexed":[{"Local":[0,1]},1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":false}}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":48,"gas_left":999989400,"instruction":"LD_U64"}},{"Effect":{"Push":{"RuntimeValue":{"value":1}}}},{"Instruction":{"type_parameters":[],"pc":49,"gas_left":999989397,"instruction":"ADD"}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":1}}}},{"Effect":{"Push":{"RuntimeValue":{"value":2}}}},{"Instruction":{"type_parameters":[],"pc":50,"gas_left":999989387,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[578,0]},"root_value_read":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":["u64","u8"],"pc":51,"gas_left":999989377,"instruction":"MUT_BORROW_FIELD_GENERIC"}},{"Effect":{"Pop":{"MutRef":{"location":{"Local":[0,1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":52,"gas_left":999989359,"instruction":"WRITE_REF"}},{"Effect":{"Pop":{"MutRef":{"location":{"Indexed":[{"Local":[0,1]},1]},"snapshot":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":1,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Pop":{"RuntimeValue":{"value":2}}}},{"Effect":{"Write":{"location":{"Indexed":[{"Local":[0,1]},1]},"root_value_after_write":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}}},{"Instruction":{"type_parameters":[],"pc":53,"gas_left":999989358,"instruction":"RET"}},{"CloseFrame":{"frame_id":578,"return_":[],"gas_left":999989358}},{"Instruction":{"type_parameters":[],"pc":13,"gas_left":999989282,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[0,1]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":14,"gas_left":999989282,"instruction":"CALL_GENERIC"}},{"OpenFrame":{"frame":{"frame_id":1145,"function_name":"drop","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"linked_table"},"binary_member_index":16,"type_instantiation":["u64","u8"],"parameters":[{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"linked_table","name":"LinkedTable","type_args":["u64","u8"]}},"ref_type":null}],"is_native":false},"gas_left":999989282}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999989205,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1145,0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999989200,"instruction":"UNPACK_GENERIC"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::linked_table::LinkedTable","fields":{"id":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},"size":2,"head":{"type":"0x1::option::Option","fields":{"vec":[7]}},"tail":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":2}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999989199,"instruction":"POP"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[42]}}}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999989198,"instruction":"POP"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x1::option::Option","fields":{"vec":[7]}}}}}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999989197,"instruction":"POP"}},{"Effect":{"Pop":{"RuntimeValue":{"value":2}}}},{"Instruction":{"type_parameters":[],"pc":5,"gas_left":999989197,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1162,"function_name":"delete","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":15,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}],"return_types":[],"locals_types":[{"type_":{"struct":{"address":"0000000000000000000000000000000000000000000000000000000000000002","module":"object","name":"UID","type_args":[]}},"ref_type":null}],"is_native":false},"gas_left":999989197}},{"Instruction":{"type_parameters":[],"pc":0,"gas_left":999989158,"instruction":"MOVE_LOC"}},{"Effect":{"Read":{"location":{"Local":[1162,0]},"root_value_read":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}},"moved":true}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}}},{"Instruction":{"type_parameters":[],"pc":1,"gas_left":999989156,"instruction":"UNPACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::UID","fields":{"id":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}},{"Instruction":{"type_parameters":[],"pc":2,"gas_left":999989154,"instruction":"UNPACK"}},{"Effect":{"Pop":{"RuntimeValue":{"value":{"type":"0x2::object::ID","fields":{"bytes":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}}}},{"Effect":{"Push":{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}}},{"Instruction":{"type_parameters":[],"pc":3,"gas_left":999989154,"instruction":"CALL"}},{"OpenFrame":{"frame":{"frame_id":1173,"function_name":"delete_impl","module":{"address":"0000000000000000000000000000000000000000000000000000000000000002","name":"object"},"binary_member_index":22,"type_instantiation":[],"parameters":[{"RuntimeValue":{"value":"381dd9078c322a4663c392761a0211b527c127b29583851217f948d62131f409"}}],"return_types":[],"locals_types":[{"type_":"address","ref_type":null}],"is_native":true},"gas_left":999989154}},{"CloseFrame":{"frame_id":1173,"return_":[],"gas_left":999989100}},{"Instruction":{"type_parameters":[],"pc":4,"gas_left":999989099,"instruction":"RET"}},{"CloseFrame":{"frame_id":1162,"return_":[],"gas_left":999989099}},{"Instruction":{"type_parameters":[],"pc":6,"gas_left":999989098,"instruction":"RET"}},{"CloseFrame":{"frame_id":1145,"return_":[],"gas_left":999989098}},{"Instruction":{"type_parameters":[],"pc":15,"gas_left":999989097,"instruction":"RET"}},{"CloseFrame":{"frame_id":0,"return_":[],"gas_left":999989097}}]} \ No newline at end of file From d19cdc83483f00389d9fc64831caa941e107ee2c Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:44:45 +0100 Subject: [PATCH 02/10] Added missing dependency --- .../dependencies/Sui/tx_context.json | 1 + .../sources/dependencies/Sui/tx_context.move | 141 ++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/tx_context.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/tx_context.move diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/tx_context.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/tx_context.json new file mode 100644 index 0000000000000..c887b4de4abfb --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/Sui/tx_context.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":87,"end":97},"module_name":["0000000000000000000000000000000000000000000000000000000000000002","tx_context"],"struct_map":{"0":{"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":705,"end":714},"type_parameters":[],"fields":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":798,"end":804},{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":859,"end":866},{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":917,"end":922},{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":977,"end":995},{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1146,"end":1157}]}},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1242,"end":1306},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1253,"end":1259},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1260,"end":1264}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1279,"end":1286}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1293,"end":1297},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1293,"end":1304}},"is_native":false},"1":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1421,"end":1491},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1432,"end":1438},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1439,"end":1443}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1458,"end":1469}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1477,"end":1481},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1476,"end":1489}},"is_native":false},"2":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1522,"end":1580},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1533,"end":1538},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1539,"end":1543}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1558,"end":1561}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1568,"end":1572},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1568,"end":1578}},"is_native":false},"3":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1651,"end":1735},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1662,"end":1680},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1681,"end":1685}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1700,"end":1703}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1710,"end":1714},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1710,"end":1733}},"is_native":false},"4":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1938,"end":2140},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1949,"end":1969},"type_parameters":[],"parameters":[["ctx#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1970,"end":1973}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":1992,"end":1999}],"locals":[["id#1#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2049,"end":2051}],["ids_created#1#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2010,"end":2021}]],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2024,"end":2027},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2024,"end":2039},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2010,"end":2021},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2066,"end":2069},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2065,"end":2077},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2064,"end":2077},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2079,"end":2090},"8":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2054,"end":2091},"9":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2049,"end":2051},"10":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2115,"end":2126},"11":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2129,"end":2130},"12":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2127,"end":2128},"13":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2097,"end":2100},"14":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2097,"end":2112},"15":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2097,"end":2130},"16":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2136,"end":2138}},"is_native":false},"5":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2275,"end":2338},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2279,"end":2290},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2291,"end":2295}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2310,"end":2313}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2320,"end":2324},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2320,"end":2336}},"is_native":false},"6":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2412,"end":2481},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2423,"end":2432},"type_parameters":[],"parameters":[["tx_hash#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2433,"end":2440}],["ids_created#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2454,"end":2465}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2473,"end":2480}],"locals":[],"nops":{},"code_map":{},"is_native":true},"7":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2567,"end":2853},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2578,"end":2581},"type_parameters":[],"parameters":[["sender#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2587,"end":2593}],["tx_hash#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2608,"end":2615}],["epoch#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2633,"end":2638}],["epoch_timestamp_ms#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2649,"end":2667}],["ids_created#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2678,"end":2689}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2699,"end":2708}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2723,"end":2730},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2723,"end":2739},"2":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2743,"end":2757},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2740,"end":2742},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2715,"end":2776},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2759,"end":2775},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2715,"end":2776},"8":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2794,"end":2800},"9":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2802,"end":2809},"10":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2811,"end":2816},"11":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2818,"end":2836},"12":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2838,"end":2849},"13":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2782,"end":2851}},"is_native":false},"8":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2948,"end":3176},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2959,"end":2972},"type_parameters":[],"parameters":[["addr#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2978,"end":2982}],["hint#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":2997,"end":3001}],["epoch#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3012,"end":3017}],["epoch_timestamp_ms#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3028,"end":3046}],["ids_created#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3057,"end":3068}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3078,"end":3087}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3098,"end":3102},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3128,"end":3132},"2":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3104,"end":3133},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3135,"end":3140},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3142,"end":3160},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3162,"end":3173},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3094,"end":3174}},"is_native":false},"9":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3234,"end":3386},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3245,"end":3250},"type_parameters":[],"parameters":[],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3254,"end":3263}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3361,"end":3365},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3284,"end":3351},"2":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3376,"end":3377},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3379,"end":3380},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3382,"end":3383},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3357,"end":3384}},"is_native":false},"10":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3523,"end":3706},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3527,"end":3550},"type_parameters":[],"parameters":[["hint#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3551,"end":3555}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3563,"end":3573}],"locals":[["tx_hash#1#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3588,"end":3595}]],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3617,"end":3622},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3598,"end":3623},"2":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3584,"end":3595},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3636,"end":3643},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3636,"end":3652},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3655,"end":3669},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3653,"end":3654},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3629,"end":3691},"9":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3671,"end":3678},"10":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3689,"end":3690},"11":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3671,"end":3691},"12":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3629,"end":3691},"13":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3697,"end":3704}},"is_native":false},"11":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3721,"end":3796},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3732,"end":3747},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3748,"end":3752}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3767,"end":3770}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3789,"end":3793},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3777,"end":3794}},"is_native":false},"12":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3857,"end":4053},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3868,"end":3890},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3891,"end":3895}]],"returns":[{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3910,"end":3917}],"locals":[["ids_created#1#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3928,"end":3939}]],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3942,"end":3946},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3942,"end":3958},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3928,"end":3939},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3972,"end":3983},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3986,"end":3987},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3984,"end":3985},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3964,"end":4003},"11":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3989,"end":4002},"12":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":3964,"end":4003},"13":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4021,"end":4025},"14":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4020,"end":4033},"15":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4019,"end":4033},"16":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4035,"end":4046},"17":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4049,"end":4050},"18":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4047,"end":4048},"19":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4009,"end":4051}},"is_native":false},"13":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4068,"end":4159},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4079,"end":4101},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4102,"end":4106}]],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4143,"end":4147},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4143,"end":4153},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4156,"end":4157},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4154,"end":4155},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4130,"end":4134},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4130,"end":4140},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4130,"end":4157}},"is_native":false},"14":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4174,"end":4316},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4185,"end":4210},"type_parameters":[],"parameters":[["self#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4211,"end":4215}],["delta_ms#0#0",{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4233,"end":4241}]],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4280,"end":4284},"1":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4280,"end":4303},"3":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4306,"end":4314},"4":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4304,"end":4305},"5":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4254,"end":4258},"6":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4254,"end":4277},"7":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":4254,"end":4314}},"is_native":false},"15":{"location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":75,"end":4316},"definition_location":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":75,"end":4316},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[222,177,27,65,112,21,18,238,244,38,237,149,174,129,82,131,37,75,210,46,15,2,202,133,208,202,6,116,27,117,173,96],"start":75,"end":4316}},"is_native":false}},"constant_map":{"EBadTxHashLength":1,"ENoIDsCreated":2,"TX_HASH_LENGTH":0}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/tx_context.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/tx_context.move new file mode 100644 index 0000000000000..1fdef9ff83a81 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/Sui/tx_context.move @@ -0,0 +1,141 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +module sui::tx_context; + +#[test_only] +/// Number of bytes in an tx hash (which will be the transaction digest) +const TX_HASH_LENGTH: u64 = 32; + +#[test_only] +/// Expected an tx hash of length 32, but found a different length +const EBadTxHashLength: u64 = 0; + +#[test_only] +/// Attempt to get the most recent created object ID when none has been created. +const ENoIDsCreated: u64 = 1; + +/// Information about the transaction currently being executed. +/// This cannot be constructed by a transaction--it is a privileged object created by +/// the VM and passed in to the entrypoint of the transaction as `&mut TxContext`. +public struct TxContext has drop { + /// The address of the user that signed the current transaction + sender: address, + /// Hash of the current transaction + tx_hash: vector, + /// The current epoch number + epoch: u64, + /// Timestamp that the epoch started at + epoch_timestamp_ms: u64, + /// Counter recording the number of fresh id's created while executing + /// this transaction. Always 0 at the start of a transaction + ids_created: u64, +} + +/// Return the address of the user that signed the current +/// transaction +public fun sender(self: &TxContext): address { + self.sender +} + +/// Return the transaction digest (hash of transaction inputs). +/// Please do not use as a source of randomness. +public fun digest(self: &TxContext): &vector { + &self.tx_hash +} + +/// Return the current epoch +public fun epoch(self: &TxContext): u64 { + self.epoch +} + +/// Return the epoch start time as a unix timestamp in milliseconds. +public fun epoch_timestamp_ms(self: &TxContext): u64 { + self.epoch_timestamp_ms +} + +/// Create an `address` that has not been used. As it is an object address, it will never +/// occur as the address for a user. +/// In other words, the generated address is a globally unique object ID. +public fun fresh_object_address(ctx: &mut TxContext): address { + let ids_created = ctx.ids_created; + let id = derive_id(*&ctx.tx_hash, ids_created); + ctx.ids_created = ids_created + 1; + id +} + +#[allow(unused_function)] +/// Return the number of id's created by the current transaction. +/// Hidden for now, but may expose later +fun ids_created(self: &TxContext): u64 { + self.ids_created +} + +/// Native function for deriving an ID via hash(tx_hash || ids_created) +native fun derive_id(tx_hash: vector, ids_created: u64): address; + +// ==== test-only functions ==== + +#[test_only] +/// Create a `TxContext` for testing +public fun new( + sender: address, + tx_hash: vector, + epoch: u64, + epoch_timestamp_ms: u64, + ids_created: u64, +): TxContext { + assert!(tx_hash.length() == TX_HASH_LENGTH, EBadTxHashLength); + TxContext { sender, tx_hash, epoch, epoch_timestamp_ms, ids_created } +} + +#[test_only] +/// Create a `TxContext` for testing, with a potentially non-zero epoch number. +public fun new_from_hint( + addr: address, + hint: u64, + epoch: u64, + epoch_timestamp_ms: u64, + ids_created: u64, +): TxContext { + new(addr, dummy_tx_hash_with_hint(hint), epoch, epoch_timestamp_ms, ids_created) +} + +#[test_only] +/// Create a dummy `TxContext` for testing +public fun dummy(): TxContext { + let tx_hash = x"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532"; + new(@0x0, tx_hash, 0, 0, 0) +} + +#[test_only] +/// Utility for creating 256 unique input hashes. +/// These hashes are guaranteed to be unique given a unique `hint: u64` +fun dummy_tx_hash_with_hint(hint: u64): vector { + let mut tx_hash = std::bcs::to_bytes(&hint); + while (tx_hash.length() < TX_HASH_LENGTH) tx_hash.push_back(0); + tx_hash +} + +#[test_only] +public fun get_ids_created(self: &TxContext): u64 { + ids_created(self) +} + +#[test_only] +/// Return the most recent created object ID. +public fun last_created_object_id(self: &TxContext): address { + let ids_created = self.ids_created; + assert!(ids_created > 0, ENoIDsCreated); + derive_id(*&self.tx_hash, ids_created - 1) +} + +#[test_only] +public fun increment_epoch_number(self: &mut TxContext) { + self.epoch = self.epoch + 1 +} + +#[test_only] +public fun increment_epoch_timestamp(self: &mut TxContext, delta_ms: u64) { + self.epoch_timestamp_ms = self.epoch_timestamp_ms + delta_ms +} From f7e692c219883f1cf71c7775b368488de86c714b Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:45:52 +0100 Subject: [PATCH 03/10] Added missing dependency --- .../dependencies/MoveStdlib/vector.json | 1 + .../dependencies/MoveStdlib/vector.move | 372 ++++++++++++++++++ 2 files changed, 373 insertions(+) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/vector.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/vector.move diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/vector.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/vector.json new file mode 100644 index 0000000000000..e7c5d21dddf81 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/vector.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":261,"end":267},"module_name":["0000000000000000000000000000000000000000000000000000000000000001","vector"],"struct_map":{},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1124,"end":1176},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1142,"end":1147},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1148,"end":1155}]],"parameters":[],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1160,"end":1175}],"locals":[],"nops":{},"code_map":{},"is_native":true},"1":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1239,"end":1299},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1257,"end":1263},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1264,"end":1271}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1273,"end":1274}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1295,"end":1298}],"locals":[],"nops":{},"code_map":{},"is_native":true},"2":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1453,"end":1526},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1471,"end":1477},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1478,"end":1485}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1487,"end":1488}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1508,"end":1509}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1517,"end":1525}],"locals":[],"nops":{},"code_map":{},"is_native":true},"3":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1602,"end":1676},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1620,"end":1629},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1630,"end":1637}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1639,"end":1640}],["e#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1664,"end":1665}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"4":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1826,"end":1911},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1844,"end":1854},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1855,"end":1862}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1864,"end":1865}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1889,"end":1890}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":1898,"end":1910}],"locals":[],"nops":{},"code_map":{},"is_native":true},"5":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2012,"end":2082},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2030,"end":2038},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2039,"end":2046}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2048,"end":2049}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2074,"end":2081}],"locals":[],"nops":{},"code_map":{},"is_native":true},"6":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2168,"end":2229},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2186,"end":2199},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2200,"end":2207}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2209,"end":2210}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"7":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2371,"end":2444},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2389,"end":2393},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2394,"end":2401}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2403,"end":2404}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2428,"end":2429}],["j#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2436,"end":2437}]],"returns":[],"locals":[],"nops":{},"code_map":{},"is_native":true},"8":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2503,"end":2616},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2514,"end":2523},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2524,"end":2531}]],"parameters":[["e#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2533,"end":2534}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2546,"end":2561}],"locals":[["v#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2576,"end":2577}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2580,"end":2587},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2572,"end":2577},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2593,"end":2594},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2605,"end":2606},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2593,"end":2607},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2613,"end":2614}},"is_native":false},"9":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2685,"end":3022},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2696,"end":2703},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2704,"end":2711}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2713,"end":2714}]],"returns":[],"locals":[["back_index#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2837,"end":2847}],["front_index#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2808,"end":2819}],["len#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2748,"end":2751}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2754,"end":2755},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2754,"end":2764},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2748,"end":2751},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2774,"end":2777},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2781,"end":2782},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2778,"end":2780},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2770,"end":2793},"8":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2784,"end":2793},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2822,"end":2823},"12":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2804,"end":2819},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2850,"end":2853},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2856,"end":2857},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2854,"end":2855},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2833,"end":2847},"17":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2870,"end":2881},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2884,"end":2894},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2882,"end":2883},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2863,"end":3020},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2906,"end":2907},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2913,"end":2924},"23":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2926,"end":2936},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2906,"end":2937},"25":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2961,"end":2972},"26":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2975,"end":2976},"27":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2973,"end":2974},"28":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2947,"end":2958},"29":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2999,"end":3009},"30":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3012,"end":3013},"31":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3010,"end":3011},"32":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2986,"end":2996},"33":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":2863,"end":3020}},"is_native":false},"10":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3100,"end":3218},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3111,"end":3117},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3118,"end":3125}]],"parameters":[["lhs#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3127,"end":3130}],["other#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3154,"end":3159}]],"returns":[],"locals":[["$stop#0#3",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3011,"end":3016}],["e#1#10",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3195,"end":3196}],["i#1#6",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1807,"end":1808}],["stop#1#6",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1827,"end":1831}],["v#1#1",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6250,"end":6251}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3184,"end":3189},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6246,"end":6251},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6262,"end":6263},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6262,"end":6273},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6279,"end":6280},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6279,"end":6289},"6":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3011,"end":3016},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2483,"end":2484},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1803,"end":1808},"9":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3057,"end":3062},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1827,"end":1831},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1852,"end":1853},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1856,"end":1860},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1854,"end":1855},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1845,"end":1903},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1875,"end":1876},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6295,"end":6296},"17":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6301,"end":6302},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6301,"end":6313},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3195,"end":3196},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3198,"end":3201},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3212,"end":3213},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3198,"end":3214},"23":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1891,"end":1892},"24":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1895,"end":1896},"25":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1893,"end":1894},"26":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1887,"end":1888},"27":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1845,"end":1903},"28":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2473,"end":2496},"30":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6321,"end":6322},"31":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6321,"end":6338},"32":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3215,"end":3216}},"is_native":false},"11":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3295,"end":3374},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3306,"end":3314},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3315,"end":3322}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3324,"end":3325}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3346,"end":3350}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3357,"end":3358},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3357,"end":3367},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3371,"end":3372},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3368,"end":3370},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3357,"end":3372}},"is_native":false},"12":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3451,"end":3663},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3462,"end":3470},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3471,"end":3478}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3480,"end":3481}],["e#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3501,"end":3502}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3515,"end":3519}],"locals":[["i#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3534,"end":3535}],["len#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3549,"end":3552}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3538,"end":3539},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3530,"end":3535},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3555,"end":3556},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3555,"end":3565},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3549,"end":3552},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3578,"end":3579},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3582,"end":3585},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3580,"end":3581},"8":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3571,"end":3650},"10":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3602,"end":3603},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3604,"end":3605},"12":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3601,"end":3606},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3610,"end":3611},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3607,"end":3609},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3597,"end":3624},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3613,"end":3624},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3620,"end":3624},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3613,"end":3624},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3638,"end":3639},"23":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3642,"end":3643},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3640,"end":3641},"25":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3634,"end":3635},"26":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3571,"end":3650},"27":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3656,"end":3661}},"is_native":false},"13":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3767,"end":3996},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3778,"end":3786},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3787,"end":3794}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3796,"end":3797}],["e#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3817,"end":3818}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3832,"end":3836},{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3838,"end":3841}],"locals":[["i#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3857,"end":3858}],["len#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3872,"end":3875}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3861,"end":3862},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3853,"end":3858},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3878,"end":3879},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3878,"end":3888},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3872,"end":3875},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3901,"end":3902},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3905,"end":3908},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3903,"end":3904},"8":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3894,"end":3978},"10":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3925,"end":3926},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3927,"end":3928},"12":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3924,"end":3929},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3933,"end":3934},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3930,"end":3932},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3920,"end":3952},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3936,"end":3952},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3944,"end":3948},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3950,"end":3951},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3936,"end":3952},"23":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3966,"end":3967},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3970,"end":3971},"25":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3968,"end":3969},"26":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3962,"end":3963},"27":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3894,"end":3978},"28":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3984,"end":3994},"32":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3985,"end":3990},"33":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3992,"end":3993},"34":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":3984,"end":3994}},"is_native":false},"14":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4183,"end":4471},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4194,"end":4200},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4201,"end":4208}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4210,"end":4211}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4239,"end":4240}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4248,"end":4255}],"locals":[["%#1",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4411,"end":4412}],["%#2",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4404,"end":4405}],["len#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4270,"end":4273}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4276,"end":4277},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4276,"end":4286},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4266,"end":4273},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4326,"end":4327},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4331,"end":4334},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4328,"end":4330},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4322,"end":4362},"8":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4336,"end":4362},"10":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4342,"end":4362},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4336,"end":4362},"12":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4375,"end":4378},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4381,"end":4382},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4379,"end":4380},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4369,"end":4372},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4395,"end":4396},"17":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4399,"end":4402},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4397,"end":4398},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4388,"end":4451},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4404,"end":4405},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4411,"end":4412},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4428,"end":4429},"25":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4432,"end":4433},"26":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4430,"end":4431},"27":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4424,"end":4425},"28":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4404,"end":4405},"29":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4411,"end":4412},"30":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4443,"end":4444},"31":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4404,"end":4451},"32":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4388,"end":4451},"33":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4457,"end":4458},"34":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4457,"end":4469}},"is_native":false},"15":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4781,"end":5045},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4792,"end":4798},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4799,"end":4806}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4808,"end":4809}],["e#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4833,"end":4834}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4849,"end":4850}]],"returns":[],"locals":[["len#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4867,"end":4870}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4873,"end":4874},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4873,"end":4883},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4867,"end":4870},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4916,"end":4917},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4920,"end":4923},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4918,"end":4919},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4912,"end":4951},"8":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4925,"end":4951},"10":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4931,"end":4951},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4925,"end":4951},"12":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4958,"end":4959},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4970,"end":4971},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4958,"end":4972},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4985,"end":4986},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4989,"end":4992},"17":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4987,"end":4988},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4978,"end":5043},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5004,"end":5005},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5011,"end":5012},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5014,"end":5017},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5004,"end":5018},"23":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5032,"end":5033},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5036,"end":5037},"25":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5034,"end":5035},"26":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5028,"end":5029},"27":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":4978,"end":5043}},"is_native":false},"16":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5251,"end":5457},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5262,"end":5273},"type_parameters":[["Element",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5274,"end":5281}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5283,"end":5284}],["i#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5308,"end":5309}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5317,"end":5324}],"locals":[["last_idx#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5387,"end":5395}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5339,"end":5340},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5339,"end":5349},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5353,"end":5354},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5350,"end":5352},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5331,"end":5377},"9":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5356,"end":5376},"10":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5331,"end":5377},"11":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5398,"end":5399},"13":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5398,"end":5408},"14":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5411,"end":5412},"15":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5409,"end":5410},"16":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5387,"end":5395},"17":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5418,"end":5419},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5425,"end":5426},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5428,"end":5436},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5418,"end":5437},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5443,"end":5444},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":5443,"end":5455}},"is_native":false},"17":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9357,"end":9475},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9368,"end":9375},"type_parameters":[["T",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9376,"end":9377}]],"parameters":[["v#0#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9379,"end":9380}]],"returns":[{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9402,"end":9411}],"locals":[["$stop#0#3",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3011,"end":3016}],["i#1#6",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1807,"end":1808}],["r#1#0",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9426,"end":9427}],["stop#1#6",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1827,"end":1831}],["u#1#10",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9451,"end":9452}],["v#1#1",{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6250,"end":6251}]],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9430,"end":9438},"1":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9422,"end":9427},"2":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9444,"end":9445},"3":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6246,"end":6251},"4":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6262,"end":6263},"5":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6262,"end":6273},"6":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6279,"end":6280},"7":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6279,"end":6289},"8":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3011,"end":3016},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2483,"end":2484},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1803,"end":1808},"11":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":3057,"end":3062},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1827,"end":1831},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1852,"end":1853},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1856,"end":1860},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1854,"end":1855},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1845,"end":1903},"17":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1875,"end":1876},"18":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6295,"end":6296},"19":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6301,"end":6302},"20":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6301,"end":6313},"21":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9451,"end":9452},"22":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9454,"end":9455},"23":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9463,"end":9464},"24":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9454,"end":9465},"25":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1891,"end":1892},"26":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1895,"end":1896},"27":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1893,"end":1894},"28":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1887,"end":1888},"29":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1845,"end":1903},"30":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6321,"end":6322},"31":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":6321,"end":6338},"32":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":9472,"end":9473}},"is_native":false},"18":{"location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":249,"end":12891},"definition_location":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":249,"end":12891},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[33,65,53,21,173,210,149,248,68,255,113,64,207,86,68,171,127,88,238,181,50,225,143,139,229,157,71,97,188,207,100,141],"start":249,"end":12891}},"is_native":false}},"constant_map":{"EINDEX_OUT_OF_BOUNDS":0}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/vector.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/vector.move new file mode 100644 index 0000000000000..a24d0cd3db9e3 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/vector.move @@ -0,0 +1,372 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +#[defines_primitive(vector)] +/// A variable-sized container that can hold any type. Indexing is 0-based, and +/// vectors are growable. This module has many native functions. +module std::vector; + +/// Allows calling `.to_string()` on a vector of `u8` to get a utf8 `String`. +public use fun std::string::utf8 as vector.to_string; + +/// Allows calling `.try_to_string()` on a vector of `u8` to get a utf8 `String`. +/// This will return `None` if the vector is not valid utf8. +public use fun std::string::try_utf8 as vector.try_to_string; + +/// Allows calling `.to_ascii_string()` on a vector of `u8` to get an `ascii::String`. +public use fun std::ascii::string as vector.to_ascii_string; + +/// Allows calling `.try_to_ascii_string()` on a vector of `u8` to get an +/// `ascii::String`. This will return `None` if the vector is not valid ascii. +public use fun std::ascii::try_string as vector.try_to_ascii_string; + +/// The index into the vector is out of bounds +const EINDEX_OUT_OF_BOUNDS: u64 = 0x20000; + +#[bytecode_instruction] +/// Create an empty vector. +public native fun empty(): vector; + +#[bytecode_instruction] +/// Return the length of the vector. +public native fun length(v: &vector): u64; + +#[syntax(index)] +#[bytecode_instruction] +/// Acquire an immutable reference to the `i`th element of the vector `v`. +/// Aborts if `i` is out of bounds. +public native fun borrow(v: &vector, i: u64): ∈ + +#[bytecode_instruction] +/// Add element `e` to the end of the vector `v`. +public native fun push_back(v: &mut vector, e: Element); + +#[syntax(index)] +#[bytecode_instruction] +/// Return a mutable reference to the `i`th element in the vector `v`. +/// Aborts if `i` is out of bounds. +public native fun borrow_mut(v: &mut vector, i: u64): &mut Element; + +#[bytecode_instruction] +/// Pop an element from the end of vector `v`. +/// Aborts if `v` is empty. +public native fun pop_back(v: &mut vector): Element; + +#[bytecode_instruction] +/// Destroy the vector `v`. +/// Aborts if `v` is not empty. +public native fun destroy_empty(v: vector); + +#[bytecode_instruction] +/// Swaps the elements at the `i`th and `j`th indices in the vector `v`. +/// Aborts if `i` or `j` is out of bounds. +public native fun swap(v: &mut vector, i: u64, j: u64); + +/// Return an vector of size one containing element `e`. +public fun singleton(e: Element): vector { + let mut v = empty(); + v.push_back(e); + v +} + +/// Reverses the order of the elements in the vector `v` in place. +public fun reverse(v: &mut vector) { + let len = v.length(); + if (len == 0) return (); + + let mut front_index = 0; + let mut back_index = len - 1; + while (front_index < back_index) { + v.swap(front_index, back_index); + front_index = front_index + 1; + back_index = back_index - 1; + } +} + +/// Pushes all of the elements of the `other` vector into the `lhs` vector. +public fun append(lhs: &mut vector, other: vector) { + other.do!(|e| lhs.push_back(e)); +} + +/// Return `true` if the vector `v` has no elements and `false` otherwise. +public fun is_empty(v: &vector): bool { + v.length() == 0 +} + +/// Return true if `e` is in the vector `v`. +/// Otherwise, returns false. +public fun contains(v: &vector, e: &Element): bool { + let mut i = 0; + let len = v.length(); + while (i < len) { + if (&v[i] == e) return true; + i = i + 1; + }; + false +} + +/// Return `(true, i)` if `e` is in the vector `v` at index `i`. +/// Otherwise, returns `(false, 0)`. +public fun index_of(v: &vector, e: &Element): (bool, u64) { + let mut i = 0; + let len = v.length(); + while (i < len) { + if (&v[i] == e) return (true, i); + i = i + 1; + }; + (false, 0) +} + +/// Remove the `i`th element of the vector `v`, shifting all subsequent elements. +/// This is O(n) and preserves ordering of elements in the vector. +/// Aborts if `i` is out of bounds. +public fun remove(v: &mut vector, mut i: u64): Element { + let mut len = v.length(); + // i out of bounds; abort + if (i >= len) abort EINDEX_OUT_OF_BOUNDS; + + len = len - 1; + while (i < len) v.swap(i, { + i = i + 1; + i + }); + v.pop_back() +} + +/// Insert `e` at position `i` in the vector `v`. +/// If `i` is in bounds, this shifts the old `v[i]` and all subsequent elements to the right. +/// If `i == v.length()`, this adds `e` to the end of the vector. +/// This is O(n) and preserves ordering of elements in the vector. +/// Aborts if `i > v.length()` +public fun insert(v: &mut vector, e: Element, mut i: u64) { + let len = v.length(); + // i too big abort + if (i > len) abort EINDEX_OUT_OF_BOUNDS; + + v.push_back(e); + while (i < len) { + v.swap(i, len); + i = i + 1 + } +} + +/// Swap the `i`th element of the vector `v` with the last element and then pop the vector. +/// This is O(1), but does not preserve ordering of elements in the vector. +/// Aborts if `i` is out of bounds. +public fun swap_remove(v: &mut vector, i: u64): Element { + assert!(v.length() != 0, EINDEX_OUT_OF_BOUNDS); + let last_idx = v.length() - 1; + v.swap(i, last_idx); + v.pop_back() +} + +// === Macros === + +/// Create a vector of length `n` by calling the function `f` on each index. +public macro fun tabulate<$T>($n: u64, $f: |u64| -> $T): vector<$T> { + let mut v = vector[]; + let n = $n; + n.do!(|i| v.push_back($f(i))); + v +} + +/// Destroy the vector `v` by calling `f` on each element and then destroying the vector. +/// Does not preserve the order of elements in the vector (starts from the end of the vector). +public macro fun destroy<$T>($v: vector<$T>, $f: |$T|) { + let mut v = $v; + while (v.length() != 0) $f(v.pop_back()); + v.destroy_empty(); +} + +/// Destroy the vector `v` by calling `f` on each element and then destroying the vector. +/// Preserves the order of elements in the vector. +public macro fun do<$T>($v: vector<$T>, $f: |$T|) { + let mut v = $v; + v.reverse(); + v.length().do!(|_| $f(v.pop_back())); + v.destroy_empty(); +} + +/// Perform an action `f` on each element of the vector `v`. The vector is not modified. +public macro fun do_ref<$T>($v: &vector<$T>, $f: |&$T|) { + let v = $v; + v.length().do!(|i| $f(&v[i])) +} + +/// Perform an action `f` on each element of the vector `v`. +/// The function `f` takes a mutable reference to the element. +public macro fun do_mut<$T>($v: &mut vector<$T>, $f: |&mut $T|) { + let v = $v; + v.length().do!(|i| $f(&mut v[i])) +} + +/// Map the vector `v` to a new vector by applying the function `f` to each element. +/// Preserves the order of elements in the vector, first is called first. +public macro fun map<$T, $U>($v: vector<$T>, $f: |$T| -> $U): vector<$U> { + let v = $v; + let mut r = vector[]; + v.do!(|e| r.push_back($f(e))); + r +} + +/// Map the vector `v` to a new vector by applying the function `f` to each element. +/// Preserves the order of elements in the vector, first is called first. +public macro fun map_ref<$T, $U>($v: &vector<$T>, $f: |&$T| -> $U): vector<$U> { + let v = $v; + let mut r = vector[]; + v.do_ref!(|e| r.push_back($f(e))); + r +} + +/// Filter the vector `v` by applying the function `f` to each element. +/// Return a new vector containing only the elements for which `f` returns `true`. +public macro fun filter<$T: drop>($v: vector<$T>, $f: |&$T| -> bool): vector<$T> { + let v = $v; + let mut r = vector[]; + v.do!(|e| if ($f(&e)) r.push_back(e)); + r +} + +/// Split the vector `v` into two vectors by applying the function `f` to each element. +/// Return a tuple containing two vectors: the first containing the elements for which `f` returns `true`, +/// and the second containing the elements for which `f` returns `false`. +public macro fun partition<$T>($v: vector<$T>, $f: |&$T| -> bool): (vector<$T>, vector<$T>) { + let v = $v; + let mut r1 = vector[]; + let mut r2 = vector[]; + v.do!(|e| if ($f(&e)) r1.push_back(e) else r2.push_back(e)); + (r1, r2) +} + +/// Finds the index of first element in the vector `v` that satisfies the predicate `f`. +/// Returns `some(index)` if such an element is found, otherwise `none()`. +public macro fun find_index<$T>($v: &vector<$T>, $f: |&$T| -> bool): Option { + let v = $v; + 'find_index: { + v.length().do!(|i| if ($f(&v[i])) return 'find_index option::some(i)); + option::none() + } +} + +/// Count how many elements in the vector `v` satisfy the predicate `f`. +public macro fun count<$T>($v: &vector<$T>, $f: |&$T| -> bool): u64 { + let v = $v; + let mut count = 0; + v.do_ref!(|e| if ($f(e)) count = count + 1); + count +} + +/// Reduce the vector `v` to a single value by applying the function `f` to each element. +/// Similar to `fold_left` in Rust and `reduce` in Python and JavaScript. +public macro fun fold<$T, $Acc>($v: vector<$T>, $init: $Acc, $f: |$Acc, $T| -> $Acc): $Acc { + let v = $v; + let mut acc = $init; + v.do!(|e| acc = $f(acc, e)); + acc +} + +/// Concatenate the vectors of `v` into a single vector, keeping the order of the elements. +public fun flatten(v: vector>): vector { + let mut r = vector[]; + v.do!(|u| r.append(u)); + r +} + +/// Whether any element in the vector `v` satisfies the predicate `f`. +/// If the vector is empty, returns `false`. +public macro fun any<$T>($v: &vector<$T>, $f: |&$T| -> bool): bool { + let v = $v; + 'any: { + v.do_ref!(|e| if ($f(e)) return 'any true); + false + } +} + +/// Whether all elements in the vector `v` satisfy the predicate `f`. +/// If the vector is empty, returns `true`. +public macro fun all<$T>($v: &vector<$T>, $f: |&$T| -> bool): bool { + let v = $v; + 'all: { + v.do_ref!(|e| if (!$f(e)) return 'all false); + true + } +} + +/// Destroys two vectors `v1` and `v2` by calling `f` to each pair of elements. +/// Aborts if the vectors are not of the same length. +/// The order of elements in the vectors is preserved. +public macro fun zip_do<$T1, $T2>($v1: vector<$T1>, $v2: vector<$T2>, $f: |$T1, $T2|) { + let v1 = $v1; + let mut v2 = $v2; + v2.reverse(); + let len = v1.length(); + assert!(len == v2.length()); + v1.do!(|el1| $f(el1, v2.pop_back())); +} + +/// Destroys two vectors `v1` and `v2` by calling `f` to each pair of elements. +/// Aborts if the vectors are not of the same length. +/// Starts from the end of the vectors. +public macro fun zip_do_reverse<$T1, $T2>($v1: vector<$T1>, $v2: vector<$T2>, $f: |$T1, $T2|) { + let v1 = $v1; + let mut v2 = $v2; + let len = v1.length(); + assert!(len == v2.length()); + v1.destroy!(|el1| $f(el1, v2.pop_back())); +} + +/// Iterate through `v1` and `v2` and apply the function `f` to references of each pair of +/// elements. The vectors are not modified. +/// Aborts if the vectors are not of the same length. +/// The order of elements in the vectors is preserved. +public macro fun zip_do_ref<$T1, $T2>($v1: &vector<$T1>, $v2: &vector<$T2>, $f: |&$T1, &$T2|) { + let v1 = $v1; + let v2 = $v2; + let len = v1.length(); + assert!(len == v2.length()); + len.do!(|i| $f(&v1[i], &v2[i])); +} + +/// Iterate through `v1` and `v2` and apply the function `f` to mutable references of each pair +/// of elements. The vectors may be modified. +/// Aborts if the vectors are not of the same length. +/// The order of elements in the vectors is preserved. +public macro fun zip_do_mut<$T1, $T2>( + $v1: &mut vector<$T1>, + $v2: &mut vector<$T2>, + $f: |&mut $T1, &mut $T2|, +) { + let v1 = $v1; + let v2 = $v2; + let len = v1.length(); + assert!(len == v2.length()); + len.do!(|i| $f(&mut v1[i], &mut v2[i])); +} + +/// Destroys two vectors `v1` and `v2` by applying the function `f` to each pair of elements. +/// The returned values are collected into a new vector. +/// Aborts if the vectors are not of the same length. +/// The order of elements in the vectors is preserved. +public macro fun zip_map<$T1, $T2, $U>( + $v1: vector<$T1>, + $v2: vector<$T2>, + $f: |$T1, $T2| -> $U, +): vector<$U> { + let mut r = vector[]; + zip_do!($v1, $v2, |el1, el2| r.push_back($f(el1, el2))); + r +} + +/// Iterate through `v1` and `v2` and apply the function `f` to references of each pair of +/// elements. The returned values are collected into a new vector. +/// Aborts if the vectors are not of the same length. +/// The order of elements in the vectors is preserved. +public macro fun zip_map_ref<$T1, $T2, $U>( + $v1: &vector<$T1>, + $v2: &vector<$T2>, + $f: |&$T1, &$T2| -> $U, +): vector<$U> { + let mut r = vector[]; + zip_do_ref!($v1, $v2, |el1, el2| r.push_back($f(el1, el2))); + r +} From 1b37a84a60c00933bd70d113be9471e95429a327 Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:51:42 +0100 Subject: [PATCH 04/10] Added missing dependency --- .../dependencies/MoveStdlib/u64.json | 1 + .../sources/dependencies/MoveStdlib/u64.move | 111 ++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/u64.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/u64.move diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/u64.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/u64.json new file mode 100644 index 0000000000000..f108aff023993 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/u64.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":113,"end":116},"module_name":["0000000000000000000000000000000000000000000000000000000000000001","u64"],"struct_map":{},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":251,"end":311},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":262,"end":273},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":274,"end":275}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":283,"end":286}],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":293,"end":294},"1":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2511,"end":2532},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":295,"end":296},"3":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":293,"end":309}},"is_native":false},"1":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":350,"end":421},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":361,"end":364},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":365,"end":366}],["y#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":373,"end":374}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":382,"end":385}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":270,"end":293}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":242,"end":243}],["y#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":258,"end":259}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":414,"end":415},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":242,"end":243},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":417,"end":418},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":258,"end":259},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":274,"end":275},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":278,"end":279},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":276,"end":277},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":270,"end":293},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":281,"end":282},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":270,"end":293},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":292,"end":293},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":270,"end":293},"14":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":392,"end":419}},"is_native":false},"2":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":461,"end":532},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":472,"end":475},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":476,"end":477}],["y#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":484,"end":485}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":493,"end":496}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":377,"end":400}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":349,"end":350}],["y#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":365,"end":366}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":525,"end":526},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":349,"end":350},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":528,"end":529},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":365,"end":366},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":381,"end":382},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":385,"end":386},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":383,"end":384},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":377,"end":400},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":388,"end":389},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":377,"end":400},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":399,"end":400},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":377,"end":400},"14":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":503,"end":530}},"is_native":false},"3":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":573,"end":646},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":584,"end":588},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":589,"end":590}],["y#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":597,"end":598}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":606,"end":609}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":485,"end":516}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":457,"end":458}],["y#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":473,"end":474}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":639,"end":640},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":457,"end":458},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":642,"end":643},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":473,"end":474},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":489,"end":490},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":493,"end":494},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":491,"end":492},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":485,"end":516},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":496,"end":497},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":500,"end":501},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":498,"end":499},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":485,"end":516},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":511,"end":512},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":515,"end":516},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":513,"end":514},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":485,"end":516},"18":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":616,"end":644}},"is_native":false},"4":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":694,"end":797},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":705,"end":724},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":725,"end":726}],["y#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":733,"end":734}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":742,"end":745}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":616,"end":656}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":588,"end":589}],["y#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":604,"end":605}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":790,"end":791},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":588,"end":589},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":793,"end":794},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":604,"end":605},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":620,"end":621},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":624,"end":625},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":622,"end":623},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":629,"end":630},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":626,"end":628},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":616,"end":656},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":632,"end":633},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":636,"end":637},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":634,"end":635},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":616,"end":656},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":647,"end":648},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":651,"end":652},"17":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":649,"end":650},"18":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":655,"end":656},"19":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":653,"end":654},"20":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":616,"end":656},"22":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":752,"end":795}},"is_native":false},"5":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":848,"end":938},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":859,"end":862},"type_parameters":[],"parameters":[["base#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":863,"end":867}],["exponent#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":874,"end":882}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":889,"end":892}],"locals":[["base#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":727,"end":731}],["exponent#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":753,"end":761}],["res#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":787,"end":790}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":921,"end":925},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":723,"end":731},"2":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":927,"end":935},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":749,"end":761},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":793,"end":794},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":783,"end":790},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":807,"end":815},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":819,"end":820},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":816,"end":818},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":800,"end":1025},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":836,"end":844},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":847,"end":848},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":845,"end":846},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":852,"end":853},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":849,"end":851},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":832,"end":1019},"17":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":876,"end":880},"18":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":883,"end":887},"19":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":881,"end":882},"20":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":869,"end":873},"21":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":912,"end":920},"22":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":923,"end":924},"23":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":921,"end":922},"24":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":901,"end":909},"25":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":832,"end":1019},"26":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":961,"end":964},"27":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":967,"end":971},"28":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":965,"end":966},"29":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":955,"end":958},"30":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":996,"end":1004},"31":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1007,"end":1008},"32":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1005,"end":1006},"33":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":985,"end":993},"34":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":832,"end":1019},"35":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1032,"end":1035},"36":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":899,"end":936}},"is_native":false},"6":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1806,"end":1883},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1817,"end":1821},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1822,"end":1823}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1831,"end":1834}],"locals":[["bit#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1129,"end":1132}],["res#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1168,"end":1171}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1109,"end":1110}],["x#2#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1195,"end":1196}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1875,"end":1876},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1109,"end":1110},"2":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1135,"end":1154},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1125,"end":1132},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1175,"end":1176},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1164,"end":1171},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1199,"end":1200},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1199,"end":1206},"8":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1191,"end":1196},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1220,"end":1223},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1227,"end":1228},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1224,"end":1226},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1213,"end":1416},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1244,"end":1245},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1249,"end":1252},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1255,"end":1258},"17":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1253,"end":1254},"18":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1246,"end":1248},"19":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1240,"end":1385},"20":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1278,"end":1279},"21":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1283,"end":1286},"22":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1289,"end":1292},"23":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1287,"end":1288},"24":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1280,"end":1281},"25":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1274,"end":1275},"26":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1314,"end":1317},"27":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1321,"end":1322},"28":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1318,"end":1320},"29":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1326,"end":1329},"30":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1324,"end":1325},"31":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1307,"end":1310},"32":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1240,"end":1385},"33":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1366,"end":1369},"34":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1373,"end":1374},"35":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1370,"end":1372},"36":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1360,"end":1363},"37":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1401,"end":1404},"38":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1408,"end":1409},"39":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1405,"end":1407},"40":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1395,"end":1398},"41":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1213,"end":1416},"42":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1423,"end":1426},"43":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1423,"end":1432},"44":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1841,"end":1881}},"is_native":false},"7":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1965,"end":2040},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1976,"end":1985},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1986,"end":1987}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":1995,"end":2005}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2646,"end":2705}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2634,"end":2635}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2036,"end":2037},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2634,"end":2635},"2":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2650,"end":2651},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2654,"end":2658},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2652,"end":2653},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2646,"end":2705},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2660,"end":2674},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2646,"end":2705},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2697,"end":2698},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2697,"end":2704},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2684,"end":2705},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2646,"end":2705},"14":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2012,"end":2038}},"is_native":false},"8":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2123,"end":2201},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2134,"end":2144},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2145,"end":2146}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2154,"end":2165}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2779,"end":2841}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2767,"end":2768}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2197,"end":2198},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2767,"end":2768},"2":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2783,"end":2784},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2787,"end":2793},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2785,"end":2786},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2779,"end":2841},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2795,"end":2809},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2779,"end":2841},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2832,"end":2833},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2832,"end":2840},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2819,"end":2841},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2779,"end":2841},"14":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2172,"end":2199}},"is_native":false},"9":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2284,"end":2362},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2295,"end":2305},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2306,"end":2307}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2315,"end":2326}],"locals":[["%#2",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2915,"end":2982}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2903,"end":2904}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2358,"end":2359},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2903,"end":2904},"2":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2919,"end":2920},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2923,"end":2934},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2921,"end":2922},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2915,"end":2982},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2936,"end":2950},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2915,"end":2982},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2973,"end":2974},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2973,"end":2981},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2960,"end":2982},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":2915,"end":2982},"14":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2333,"end":2360}},"is_native":false},"10":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2364,"end":2439},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2375,"end":2384},"type_parameters":[],"parameters":[["x#0#0",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2385,"end":2386}]],"returns":[{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2394,"end":2400}],"locals":[["%#1",{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2407,"end":2437}],["buffer#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1573,"end":1579}],["x#1#1",{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1496,"end":1497}]],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2435,"end":2436},"1":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1492,"end":1497},"2":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1512,"end":1513},"3":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1517,"end":1518},"4":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1514,"end":1516},"5":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1508,"end":1559},"6":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1537,"end":1541},"7":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1537,"end":1553},"8":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2407,"end":2437},"9":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1530,"end":1553},"10":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1582,"end":1590},"11":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1569,"end":1579},"12":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1603,"end":1604},"13":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1608,"end":1609},"14":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1605,"end":1607},"15":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1596,"end":1687},"16":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1621,"end":1627},"17":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1640,"end":1642},"18":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1645,"end":1646},"19":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1649,"end":1651},"20":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1647,"end":1648},"21":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1643,"end":1644},"22":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1639,"end":1658},"23":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1621,"end":1660},"24":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1674,"end":1675},"25":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1678,"end":1680},"26":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1676,"end":1677},"27":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1670,"end":1671},"28":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1596,"end":1687},"29":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1693,"end":1699},"30":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1693,"end":1709},"31":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1715,"end":1721},"32":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":1715,"end":1733},"33":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":2407,"end":2437}},"is_native":false},"11":{"location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":101,"end":3226},"definition_location":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":101,"end":3226},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[3,242,225,165,131,28,203,43,156,143,119,249,217,74,162,205,53,158,49,25,139,175,4,223,95,212,226,104,217,167,38,26],"start":101,"end":3226}},"is_native":false}},"constant_map":{}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/u64.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/u64.move new file mode 100644 index 0000000000000..e3bc76cc45f92 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/u64.move @@ -0,0 +1,111 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +#[defines_primitive(u64)] +module std::u64; + +use std::string::String; + +/// Returns the bitwise not of the value. +/// Each bit that is 1 becomes 0. Each bit that is 0 becomes 1. +public fun bitwise_not(x: u64): u64 { + x ^ max_value!() +} + +/// Return the larger of `x` and `y` +public fun max(x: u64, y: u64): u64 { + std::macros::num_max!(x, y) +} + +/// Return the smaller of `x` and `y` +public fun min(x: u64, y: u64): u64 { + std::macros::num_min!(x, y) +} + +/// Return the absolute value of x - y +public fun diff(x: u64, y: u64): u64 { + std::macros::num_diff!(x, y) +} + +/// Calculate x / y, but round up the result. +public fun divide_and_round_up(x: u64, y: u64): u64 { + std::macros::num_divide_and_round_up!(x, y) +} + +/// Return the value of a base raised to a power +public fun pow(base: u64, exponent: u8): u64 { + std::macros::num_pow!(base, exponent) +} + +/// Get a nearest lower integer Square Root for `x`. Given that this +/// function can only operate with integers, it is impossible +/// to get perfect (or precise) integer square root for some numbers. +/// +/// Example: +/// ``` +/// math::sqrt(9) => 3 +/// math::sqrt(8) => 2 // the nearest lower square root is 4; +/// ``` +/// +/// In integer math, one of the possible ways to get results with more +/// precision is to use higher values or temporarily multiply the +/// value by some bigger number. Ideally if this is a square of 10 or 100. +/// +/// Example: +/// ``` +/// math::sqrt(8) => 2; +/// math::sqrt(8 * 10000) => 282; +/// // now we can use this value as if it was 2.82; +/// // but to get the actual result, this value needs +/// // to be divided by 100 (because sqrt(10000)). +/// +/// +/// math::sqrt(8 * 1000000) => 2828; // same as above, 2828 / 1000 (2.828) +/// ``` +public fun sqrt(x: u64): u64 { + std::macros::num_sqrt!(x, 64) +} + +/// Try to convert a `u64` to a `u8`. Returns `None` if the value is too large. +public fun try_as_u8(x: u64): Option { + std::macros::try_as_u8!(x) +} + +/// Try to convert a `u64` to a `u16`. Returns `None` if the value is too large. +public fun try_as_u16(x: u64): Option { + std::macros::try_as_u16!(x) +} + +/// Try to convert a `u64` to a `u32`. Returns `None` if the value is too large. +public fun try_as_u32(x: u64): Option { + std::macros::try_as_u32!(x) +} + +public fun to_string(x: u64): String { + std::macros::num_to_string!(x) +} + +/// Maximum value for a `u64` +public macro fun max_value(): u64 { + 0xFFFF_FFFF_FFFF_FFFF +} + +/// Loops applying `$f` to each number from `$start` to `$stop` (exclusive) +public macro fun range_do($start: u64, $stop: u64, $f: |u64|) { + std::macros::range_do!($start, $stop, $f) +} + +/// Loops applying `$f` to each number from `$start` to `$stop` (inclusive) +public macro fun range_do_eq($start: u64, $stop: u64, $f: |u64|) { + std::macros::range_do_eq!($start, $stop, $f) +} + +/// Loops applying `$f` to each number from `0` to `$stop` (exclusive) +public macro fun do($stop: u64, $f: |u64|) { + std::macros::do!($stop, $f) +} + +/// Loops applying `$f` to each number from `0` to `$stop` (inclusive) +public macro fun do_eq($stop: u64, $f: |u64|) { + std::macros::do_eq!($stop, $f) +} From 2deb9a2356a5a2ed93aa47eb6ff1cc54a13ee1fc Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:54:04 +0100 Subject: [PATCH 05/10] Added missing dependency --- .../dependencies/MoveStdlib/macros.json | 1 + .../dependencies/MoveStdlib/macros.move | 245 ++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/macros.json create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/macros.move diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/macros.json b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/macros.json new file mode 100644 index 0000000000000..f154339eff2c0 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/source_maps/dependencies/MoveStdlib/macros.json @@ -0,0 +1 @@ +{"definition_location":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":155,"end":161},"module_name":["0000000000000000000000000000000000000000000000000000000000000001","macros"],"struct_map":{},"enum_map":{},"function_map":{"0":{"location":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":143,"end":6955},"definition_location":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":143,"end":6955},"type_parameters":[],"parameters":[],"returns":[],"locals":[],"nops":{},"code_map":{"0":{"file_hash":[54,47,138,104,171,115,23,224,131,176,160,65,21,99,189,119,64,168,202,80,38,98,202,231,44,226,206,16,224,130,113,119],"start":143,"end":6955}},"is_native":false}},"constant_map":{}} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/macros.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/macros.move new file mode 100644 index 0000000000000..48680c899d702 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/build/global_write/sources/dependencies/MoveStdlib/macros.move @@ -0,0 +1,245 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/// This module holds shared implementation of macros used in `std` +module std::macros; + +use std::string::String; + +public macro fun num_max($x: _, $y: _): _ { + let x = $x; + let y = $y; + if (x > y) x + else y +} + +public macro fun num_min($x: _, $y: _): _ { + let x = $x; + let y = $y; + if (x < y) x + else y +} + +public macro fun num_diff($x: _, $y: _): _ { + let x = $x; + let y = $y; + if (x > y) x - y + else y - x +} + +public macro fun num_divide_and_round_up($x: _, $y: _): _ { + let x = $x; + let y = $y; + if (x % y == 0) x / y + else x / y + 1 +} + +public macro fun num_pow($base: _, $exponent: u8): _ { + let mut base = $base; + let mut exponent = $exponent; + let mut res = 1; + while (exponent >= 1) { + if (exponent % 2 == 0) { + base = base * base; + exponent = exponent / 2; + } else { + res = res * base; + exponent = exponent - 1; + } + }; + + res +} + +public macro fun num_sqrt<$T, $U>($x: $T, $bitsize: u8): $T { + let x = $x; + let mut bit = (1: $U) << $bitsize; + let mut res = (0: $U); + let mut x = x as $U; + + while (bit != 0) { + if (x >= res + bit) { + x = x - (res + bit); + res = (res >> 1) + bit; + } else { + res = res >> 1; + }; + bit = bit >> 2; + }; + + res as $T +} + +public macro fun num_to_string($x: _): String { + let mut x = $x; + if (x == 0) { + return b"0".to_string() + }; + let mut buffer = vector[]; + while (x != 0) { + buffer.push_back(((48 + x % 10) as u8)); + x = x / 10; + }; + buffer.reverse(); + buffer.to_string() +} + +public macro fun range_do($start: _, $stop: _, $f: |_|) { + let mut i = $start; + let stop = $stop; + while (i < stop) { + $f(i); + i = i + 1; + } +} + +public macro fun range_do_eq($start: _, $stop: _, $f: |_|) { + let mut i = $start; + let stop = $stop; + // we check `i >= stop` inside the loop instead of `i <= stop` as `while` condition to avoid + // incrementing `i` past the MAX integer value. + // Because of this, we need to check if `i > stop` and return early--instead of letting the + // loop bound handle it, like in the `range_do` macro. + if (i > stop) return; + loop { + $f(i); + if (i >= stop) break; + i = i + 1; + } +} + +public macro fun do($stop: _, $f: |_|) { + range_do!(0, $stop, $f) +} + +public macro fun do_eq($stop: _, $f: |_|) { + range_do_eq!(0, $stop, $f) +} + +public macro fun try_as_u8($x: _): Option { + let x = $x; + if (x > 0xFF) option::none() + else option::some(x as u8) +} + +public macro fun try_as_u16($x: _): Option { + let x = $x; + if (x > 0xFFFF) option::none() + else option::some(x as u16) +} + +public macro fun try_as_u32($x: _): Option { + let x = $x; + if (x > 0xFFFF_FFFF) option::none() + else option::some(x as u32) +} + +public macro fun try_as_u64($x: _): Option { + let x = $x; + if (x > 0xFFFF_FFFF_FFFF_FFFF) option::none() + else option::some(x as u64) +} + +public macro fun try_as_u128($x: _): Option { + let x = $x; + if (x > 0xFFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF) option::none() + else option::some(x as u128) +} + +/// Creates a fixed-point value from a quotient specified by its numerator and denominator. +/// `$T` is the underlying integer type for the fixed-point value, where `$T` has `$t_bits` bits. +/// `$U` is the type used for intermediate calculations, where `$U` is the next larger integer type. +/// `$max_t` is the maximum value that can be represented by `$T`. +/// `$t_bits` (as mentioned above) is the total number of bits in the fixed-point value (integer +/// plus fractional). +/// `$fractional_bits` is the number of fractional bits in the fixed-point value. +public macro fun uq_from_quotient<$T, $U>( + $numerator: $T, + $denominator: $T, + $max_t: $T, + $t_bits: u8, + $fractional_bits: u8, + $abort_denominator: _, + $abort_quotient_too_small: _, + $abort_quotient_too_large: _, +): $T { + let numerator = $numerator; + let denominator = $denominator; + if (denominator == 0) $abort_denominator; + + // Scale the numerator to have `$t_bits` fractional bits and the denominator to have + // `$t_bits - $fractional_bits` fractional bits, so that the quotient will have + // `$fractional_bits` fractional bits. + let scaled_numerator = numerator as $U << $t_bits; + let scaled_denominator = denominator as $U << ($t_bits - $fractional_bits); + let quotient = scaled_numerator / scaled_denominator; + + // The quotient can only be zero if the numerator is also zero. + if (quotient == 0 && numerator != 0) $abort_quotient_too_small; + + // Return the quotient as a fixed-point number. We first need to check whether the cast + // can succeed. + if (quotient > $max_t as $U) $abort_quotient_too_large; + quotient as $T +} + +public macro fun uq_from_int<$T, $U>($integer: $T, $fractional_bits: u8): $U { + ($integer as $U) << $fractional_bits +} + +public macro fun uq_add<$T, $U>($a: $T, $b: $T, $max_t: $T, $abort_overflow: _): $T { + let sum = $a as $U + ($b as $U); + if (sum > $max_t as $U) $abort_overflow; + sum as $T +} + +public macro fun uq_sub<$T>($a: $T, $b: $T, $abort_overflow: _): $T { + let a = $a; + let b = $b; + if (a < b) $abort_overflow; + a - b +} + +public macro fun uq_to_int<$T, $U>($a: $U, $fractional_bits: u8): $T { + ($a >> $fractional_bits) as $T +} + +public macro fun uq_int_mul<$T, $U>( + $val: $T, + $multiplier: $T, + $max_t: $T, + $fractional_bits: u8, + $abort_overflow: _, +): $T { + // The product of two `$T` bit values has the same number of bits as `$U`, so perform the + // multiplication with `$U` types and keep the full `$U` bit product + // to avoid losing accuracy. + let unscaled_product = $val as $U * ($multiplier as $U); + // The unscaled product has `$fractional_bits` fractional bits (from the multiplier) + // so rescale it by shifting away the low bits. + let product = unscaled_product >> $fractional_bits; + // Check whether the value is too large. + if (product > $max_t as $U) $abort_overflow; + product as $T +} + +public macro fun uq_int_div<$T, $U>( + $val: $T, + $divisor: $T, + $max_t: $T, + $fractional_bits: u8, + $abort_division_by_zero: _, + $abort_overflow: _, +): $T { + let val = $val; + let divisor = $divisor; + // Check for division by zero. + if (divisor == 0) $abort_division_by_zero; + // First convert to $U to increase the number of bits to the next integer size + // and then shift left to add `$fractional_bits` fractional zero bits to the dividend. + let scaled_value = val as $U << $fractional_bits; + let quotient = scaled_value / (divisor as $U); + // Check whether the value is too large. + if (quotient > $max_t as $U) $abort_overflow; + quotient as $T +} From b1dc2aa075f5db11649bfc432646f491338b6ceb Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Thu, 26 Dec 2024 18:55:27 +0100 Subject: [PATCH 06/10] Updated Sui dependency to the global one --- .../trace-adapter/out/adapter.js | 435 +++++++++ .../trace-adapter/out/adapter.js.map | 1 + .../trace-adapter/out/runtime.js | 833 ++++++++++++++++++ .../trace-adapter/out/runtime.js.map | 1 + .../move-analyzer/trace-adapter/out/server.js | 7 + .../trace-adapter/out/server.js.map | 1 + .../trace-adapter/out/source_map_utils.js | 253 ++++++ .../trace-adapter/out/source_map_utils.js.map | 1 + .../trace-adapter/out/trace_utils.js | 687 +++++++++++++++ .../trace-adapter/out/trace_utils.js.map | 1 + .../move-analyzer/trace-adapter/out/utils.js | 12 + .../trace-adapter/out/utils.js.map | 1 + .../tests/global_write/Move.toml | 2 +- 13 files changed, 2234 insertions(+), 1 deletion(-) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/server.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js new file mode 100644 index 0000000000000..ee51909882935 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js @@ -0,0 +1,435 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MoveDebugSession = void 0; +const debugadapter_1 = require("@vscode/debugadapter"); +const path = __importStar(require("path")); +const runtime_1 = require("./runtime"); +/** + * Converts a log level string to a Logger.LogLevel. + * + * @param level log level as string + * @returns log level as Logger.LogLevel + */ +function convertLoggerLogLevel(level) { + switch (level) { + case "log" /* LogLevel.Log */: + return debugadapter_1.Logger.LogLevel.Log; + case "verbose" /* LogLevel.Verbose */: + return debugadapter_1.Logger.LogLevel.Verbose; + default: + return debugadapter_1.Logger.LogLevel.Stop; + } +} +class MoveDebugSession extends debugadapter_1.LoggingDebugSession { + /** + * We only even have one thread so we can hardcode its ID. + */ + static THREAD_ID = 1; + /** + * DAP-independent runtime maintaining state during + * trace viewing session. + */ + runtime; + /** + * Handles to create variable scopes and compound variable values. + */ + variableHandles; + constructor() { + super(); + this.setDebuggerLinesStartAt1(false); + this.setDebuggerColumnsStartAt1(false); + this.runtime = new runtime_1.Runtime(); + this.variableHandles = new debugadapter_1.Handles(); + // setup event handlers + this.runtime.on(runtime_1.RuntimeEvents.stopOnStep, () => { + this.sendEvent(new debugadapter_1.StoppedEvent('step', MoveDebugSession.THREAD_ID)); + }); + this.runtime.on(runtime_1.RuntimeEvents.stopOnLineBreakpoint, () => { + this.sendEvent(new debugadapter_1.StoppedEvent('breakpoint', MoveDebugSession.THREAD_ID)); + }); + this.runtime.on(runtime_1.RuntimeEvents.stopOnException, (msg) => { + this.sendEvent(new debugadapter_1.StoppedEvent('exception', MoveDebugSession.THREAD_ID, msg)); + }); + this.runtime.on(runtime_1.RuntimeEvents.end, () => { + this.sendEvent(new debugadapter_1.TerminatedEvent()); + }); + } + initializeRequest(response, args) { + // build and return the capabilities of this debug adapter (enable as needed) + response.body = response.body || {}; + // the adapter implements the configurationDone request + response.body.supportsConfigurationDoneRequest = false; + // the adapter supports conditional breakpoints + response.body.supportsConditionalBreakpoints = false; + // the adapter supports breakpoints that break execution after a specified number of hits + response.body.supportsHitConditionalBreakpoints = false; + // make VS Code use 'evaluate' when hovering over source + response.body.supportsEvaluateForHovers = false; + // make VS Code show a 'step back' button + response.body.supportsStepBack = false; + // make VS Code support data breakpoints + response.body.supportsDataBreakpoints = false; + // make VS Code support completion in REPL + response.body.supportsCompletionsRequest = false; + response.body.completionTriggerCharacters = []; + // make VS Code send cancel request + response.body.supportsCancelRequest = false; + // make VS Code send the breakpointLocations request + response.body.supportsBreakpointLocationsRequest = false; + // make VS Code provide "Step in Target" functionality + response.body.supportsStepInTargetsRequest = false; + // the adapter defines two exceptions filters, one with support for conditions. + response.body.supportsExceptionFilterOptions = false; + response.body.exceptionBreakpointFilters = []; + // make VS Code send exceptionInfo request + response.body.supportsExceptionInfoRequest = false; + // make VS Code send setVariable request + response.body.supportsSetVariable = false; + // make VS Code send setExpression request + response.body.supportsSetExpression = false; + // make VS Code send disassemble request + response.body.supportsDisassembleRequest = false; + response.body.supportsSteppingGranularity = false; + response.body.supportsInstructionBreakpoints = false; + // make VS Code able to read and write variable memory + response.body.supportsReadMemoryRequest = false; + response.body.supportsWriteMemoryRequest = false; + response.body.supportSuspendDebuggee = false; + response.body.supportTerminateDebuggee = false; + response.body.supportsFunctionBreakpoints = false; + response.body.supportsDelayedStackTraceLoading = false; + this.sendResponse(response); + this.sendEvent(new debugadapter_1.InitializedEvent()); + } + async launchRequest(response, args) { + debugadapter_1.logger.setup(convertLoggerLogLevel(args.logLevel ?? "none" /* LogLevel.None */), false); + debugadapter_1.logger.log(`Launching trace viewer for file: ${args.source} and trace: ${args.traceInfo}`); + try { + await this.runtime.start(args.source, args.traceInfo, args.stopOnEntry || false); + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + this.sendResponse(response); + this.sendEvent(new debugadapter_1.StoppedEvent('entry', MoveDebugSession.THREAD_ID)); + } + threadsRequest(response) { + response.body = { + threads: [ + new debugadapter_1.Thread(MoveDebugSession.THREAD_ID, 'Main Thread') + ] + }; + this.sendResponse(response); + } + stackTraceRequest(response, _args) { + try { + const runtimeStack = this.runtime.stack(); + const stack_height = runtimeStack.frames.length; + response.body = { + stackFrames: runtimeStack.frames.map(frame => { + const fileName = path.basename(frame.file); + return new debugadapter_1.StackFrame(frame.id, frame.name, new debugadapter_1.Source(fileName, frame.file), frame.line); + }).reverse(), + totalFrames: stack_height, + optimized_lines: stack_height > 0 + ? runtimeStack.frames[stack_height - 1].optimizedLines + : [] + }; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + this.sendResponse(response); + } + /** + * Gets the scopes for a given frame. + * + * @param frameID identifier of the frame scopes are requested for. + * @returns an array of scopes. + * @throws Error with a descriptive error message if scopes cannot be retrieved. + */ + getScopes(frameID) { + const runtimeStack = this.runtime.stack(); + const frame = runtimeStack.frames.find(frame => frame.id === frameID); + if (!frame) { + throw new Error(`No frame found for id: ${frameID} when getting scopes`); + } + const scopes = []; + if (frame.locals.length > 0) { + for (let i = frame.locals.length - 1; i > 0; i--) { + const shadowedScopeReference = this.variableHandles.create({ locals: frame.locals[i] }); + const shadowedScope = new debugadapter_1.Scope(`shadowed(${i}): ${frame.name}`, shadowedScopeReference, false); + scopes.push(shadowedScope); + } + } + // don't have to check if scope 0 exists as it's created whenever a new frame is created + // and it's never disposed of + const localScopeReference = this.variableHandles.create({ locals: frame.locals[0] }); + const localScope = new debugadapter_1.Scope(`locals: ${frame.name}`, localScopeReference, false); + scopes.push(localScope); + return scopes; + } + scopesRequest(response, args) { + try { + const scopes = this.getScopes(args.frameId); + response.body = { + scopes + }; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + this.sendResponse(response); + } + /** + * Converts a runtime reference value to a DAP variable. + * + * @param value reference value. + * @param name name of variable containing the reference value. + * @param type optional type of the variable containing the reference value. + * @returns a DAP variable. + * @throws Error with a descriptive error message if conversion fails. + */ + convertRefValue(value, name, type) { + const frameID = value.loc.frameID; + const localIndex = value.loc.localIndex; + const runtimeStack = this.runtime.stack(); + const frame = runtimeStack.frames.find(frame => frame.id === frameID); + if (!frame) { + throw new Error('No frame found for id ' + + frameID + + ' when converting ref value for local index ' + + localIndex); + } + // a local will be in one of the scopes at a position corresponding to its local index + let local = undefined; + for (const scope of frame.locals) { + local = scope[localIndex]; + if (local) { + break; + } + } + if (!local) { + throw new Error('No local found for index ' + + localIndex + + ' when converting ref value for frame id ' + + frameID); + } + return this.convertRuntimeValue(local.value, name, type); + } + /** + * Converts a runtime value to a DAP variable. + * + * @param value variable value + * @param name variable name + * @param type optional variable type + * @returns a DAP variable. + */ + convertRuntimeValue(value, name, type) { + if (typeof value === 'string') { + return { + name, + type, + value, + variablesReference: 0 + }; + } + else if (Array.isArray(value)) { + const compoundValueReference = this.variableHandles.create(value); + return { + name, + type, + value: '(' + value.length + ')[...]', + variablesReference: compoundValueReference + }; + } + else if ('fields' in value) { + const compoundValueReference = this.variableHandles.create(value); + // use type if available as it will have information about whether + // it's a reference or not (e.g., `&mut 0x42::mod::SomeStruct`), + // as opposed to the type that come with the value + // (e.g., `0x42::mod::SomeStruct`) + const actualType = type ? type : value.type; + const accessChainParts = actualType.split('::'); + const datatypeName = accessChainParts[accessChainParts.length - 1]; + return { + name, + type: value.variantName + ? actualType + '::' + value.variantName + : actualType, + value: (value.variantName + ? datatypeName + '::' + value.variantName + : datatypeName) + '{...}', + variablesReference: compoundValueReference + }; + } + else { + return this.convertRefValue(value, name, type); + } + } + /** + * Converts runtime variables to DAP variables. + * + * @param runtimeScope runtime variables scope, + * @returns an array of DAP variables. + */ + convertRuntimeVariables(runtimeScope) { + const variables = []; + const runtimeVariables = runtimeScope.locals; + runtimeVariables.forEach(v => { + if (v) { + variables.push(this.convertRuntimeValue(v.value, v.name, v.type)); + } + }); + return variables; + } + variablesRequest(response, args) { + try { + const variableHandle = this.variableHandles.get(args.variablesReference); + let variables = []; + if (variableHandle) { + if ('locals' in variableHandle) { + // we are dealing with a scope + variables = this.convertRuntimeVariables(variableHandle); + } + else { + // we are dealing with a compound value + if (Array.isArray(variableHandle)) { + for (let i = 0; i < variableHandle.length; i++) { + const v = variableHandle[i]; + variables.push(this.convertRuntimeValue(v, String(i))); + } + } + else { + variableHandle.fields.forEach(([fname, fvalue]) => { + variables.push(this.convertRuntimeValue(fvalue, fname)); + }); + } + } + } + if (variables.length > 0) { + response.body = { + variables + }; + } + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + this.sendResponse(response); + } + nextRequest(response, _args) { + let terminate = false; + try { + const executionResult = this.runtime.step(/* next */ true, /* stopAtCloseFrame */ false); + terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + if (terminate) { + this.sendEvent(new debugadapter_1.TerminatedEvent()); + } + this.sendResponse(response); + } + stepInRequest(response, _args) { + let terminate = false; + try { + const executionResult = this.runtime.step(/* next */ false, /* stopAtCloseFrame */ false); + terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + if (terminate) { + this.sendEvent(new debugadapter_1.TerminatedEvent()); + } + this.sendResponse(response); + } + stepOutRequest(response, _args) { + let terminate = false; + try { + const executionResult = this.runtime.stepOut(/* next */ false); + terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + if (terminate) { + this.sendEvent(new debugadapter_1.TerminatedEvent()); + } + this.sendResponse(response); + } + continueRequest(response, _args) { + let terminate = false; + try { + const executionResult = this.runtime.continue(); + terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + if (terminate) { + this.sendEvent(new debugadapter_1.TerminatedEvent()); + } + this.sendResponse(response); + } + setBreakPointsRequest(response, args) { + try { + const finalBreakpoints = []; + if (args.breakpoints && args.source.path) { + const breakpointLines = args.breakpoints.map(bp => bp.line); + const validatedBreakpoints = this.runtime.setLineBreakpoints(args.source.path, breakpointLines); + for (let i = 0; i < breakpointLines.length; i++) { + finalBreakpoints.push(new debugadapter_1.Breakpoint(validatedBreakpoints[i], breakpointLines[i])); + } + } + response.body = { + breakpoints: finalBreakpoints + }; + } + catch (err) { + response.success = false; + response.message = err instanceof Error ? err.message : String(err); + } + this.sendResponse(response); + } + disconnectRequest(response, _args) { + // Cleanup and terminate the debug session + this.sendEvent(new debugadapter_1.TerminatedEvent()); + this.sendResponse(response); + } +} +exports.MoveDebugSession = MoveDebugSession; +//# sourceMappingURL=adapter.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map new file mode 100644 index 0000000000000..b3e2c3c0e786e --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js new file mode 100644 index 0000000000000..bf815311d9c30 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js @@ -0,0 +1,833 @@ +"use strict"; +// Copyright (c) The Move Contributors +// SPDX-License-Identifier: Apache-2.0 +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Runtime = exports.ExecutionResult = exports.RuntimeEvents = void 0; +const events_1 = require("events"); +const crypto = __importStar(require("crypto")); +const fs = __importStar(require("fs")); +const path = __importStar(require("path")); +const toml_1 = __importDefault(require("toml")); +const source_map_utils_1 = require("./source_map_utils"); +const trace_utils_1 = require("./trace_utils"); +/** + * Events emitted by the runtime during trace viewing session. + */ +var RuntimeEvents; +(function (RuntimeEvents) { + /** + * Stop after step/next action is performed. + */ + RuntimeEvents["stopOnStep"] = "stopOnStep"; + /** + * Stop after a line breakpoint is hit. + */ + RuntimeEvents["stopOnLineBreakpoint"] = "stopOnLineBreakpoint"; + /** + * Stop after exception has been encountered. + */ + RuntimeEvents["stopOnException"] = "stopOnException"; + /** + * Finish trace viewing session. + */ + RuntimeEvents["end"] = "end"; +})(RuntimeEvents || (exports.RuntimeEvents = RuntimeEvents = {})); +/** + * Describes result of the execution. + */ +var ExecutionResult; +(function (ExecutionResult) { + ExecutionResult[ExecutionResult["Ok"] = 0] = "Ok"; + ExecutionResult[ExecutionResult["TraceEnd"] = 1] = "TraceEnd"; + ExecutionResult[ExecutionResult["Exception"] = 2] = "Exception"; +})(ExecutionResult || (exports.ExecutionResult = ExecutionResult = {})); +/** + * The runtime for viewing traces. + */ +class Runtime extends events_1.EventEmitter { + /** + * Trace being viewed. + */ + trace = { + events: [], + localLifetimeEnds: new Map(), + tracedLines: new Map() + }; + /** + * Index of the current trace event being processed. + */ + eventIndex = 0; + /** + * Current frame stack. + */ + frameStack = { frames: [] }; + /** + * Map of file hashes to file info. + */ + filesMap = new Map(); + /** + * Map of line breakpoints, keyed on a file path. + */ + lineBreakpoints = new Map(); + /** + * Start a trace viewing session and set up the initial state of the runtime. + * + * @param source path to the Move source file whose traces are to be viewed. + * @param traceInfo trace selected for viewing. + * @throws Error with a descriptive error message if starting runtime has failed. + * + */ + async start(source, traceInfo, stopOnEntry) { + const pkgRoot = await findPkgRoot(source); + if (!pkgRoot) { + throw new Error(`Cannot find package root for file: ${source}`); + } + const manifest_path = path.join(pkgRoot, 'Move.toml'); + // find package name from manifest file which corresponds `build` directory's subdirectory + // name containing this package's build files + const pkg_name = getPkgNameFromManifest(manifest_path); + if (!pkg_name) { + throw Error(`Cannot find package name in manifest file: ${manifest_path}`); + } + // create file maps for all files in the `build` directory, including both package source + // files and source files for dependencies + this.hashToFileMap(path.join(pkgRoot, 'build', pkg_name, 'sources')); + // update with files from the actual "sources" directory rather than from the "build" directory + this.hashToFileMap(path.join(pkgRoot, 'sources')); + // create source maps for all modules in the `build` directory + const sourceMapsModMap = (0, source_map_utils_1.readAllSourceMaps)(path.join(pkgRoot, 'build', pkg_name, 'source_maps'), this.filesMap); + // reconstruct trace file path from trace info + const traceFilePath = path.join(pkgRoot, 'traces', traceInfo.replace(/:/g, '_') + '.json'); + // create a mapping from file hash to its corresponding source map + const sourceMapsHashMap = new Map; + for (const [_, sourceMap] of sourceMapsModMap) { + sourceMapsHashMap.set(sourceMap.fileHash, sourceMap); + } + this.trace = (0, trace_utils_1.readTrace)(traceFilePath, sourceMapsModMap, sourceMapsHashMap, this.filesMap); + // start trace viewing session with the first trace event + this.eventIndex = 0; + // setup frame stack with the first frame + const currentEvent = this.trace.events[this.eventIndex]; + if (currentEvent.type !== trace_utils_1.TraceEventKind.OpenFrame) { + throw new Error(`First event in trace is not an OpenFrame event`); + } + const newFrame = this.newStackFrame(currentEvent.id, currentEvent.name, currentEvent.fileHash, currentEvent.localsTypes, currentEvent.localsNames, currentEvent.optimizedLines); + this.frameStack = { + frames: [newFrame] + }; + this.step(/* next */ false, /* stopAtCloseFrame */ false); + } + /** + * Handles "get current stack" adapter action. + * + * @returns current frame stack. + */ + stack() { + return this.frameStack; + } + /** + * Handles step/next adapter action. + * + * @param next determines if it's `next` (or otherwise `step`) action. + * @param stopAtCloseFrame determines if the action should stop at `CloseFrame` event + * (rather then proceed to the following instruction). + * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we + * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. + * @throws Error with a descriptive error message if the step event cannot be handled. + */ + step(next, stopAtCloseFrame) { + this.eventIndex++; + if (this.eventIndex >= this.trace.events.length) { + this.sendEvent(RuntimeEvents.stopOnStep); + return ExecutionResult.TraceEnd; + } + let currentEvent = this.trace.events[this.eventIndex]; + if (currentEvent.type === trace_utils_1.TraceEventKind.Instruction) { + const stackHeight = this.frameStack.frames.length; + if (stackHeight <= 0) { + throw new Error('No frame on the stack when processing Instruction event on line: ' + + currentEvent.loc.line + + ' in column: ' + + currentEvent.loc.column); + } + const currentFrame = this.frameStack.frames[stackHeight - 1]; + // remember last call instruction line before it (potentially) changes + // in the `instruction` call below + const lastCallInstructionLine = currentFrame.lastCallInstructionLine; + let [sameLine, currentLine] = this.instruction(currentFrame, currentEvent); + // do not attempt to skip events on the same line if the previous event + // was a switch to/from an inlined frame - we want execution to stop before + // the first instruction of the inlined frame is processed + const prevEvent = this.trace.events[this.eventIndex - 1]; + sameLine = sameLine && + !(prevEvent.type === trace_utils_1.TraceEventKind.ReplaceInlinedFrame + || prevEvent.type === trace_utils_1.TraceEventKind.OpenFrame && prevEvent.id < 0 + || prevEvent.type === trace_utils_1.TraceEventKind.CloseFrame && prevEvent.id < 0); + if (sameLine) { + if (!next && (currentEvent.kind === trace_utils_1.TraceInstructionKind.CALL + || currentEvent.kind === trace_utils_1.TraceInstructionKind.CALL_GENERIC) + && lastCallInstructionLine === currentLine) { + // We are about to step into another call on the same line + // but we should wait for user action to do so rather than + // having debugger step into it automatically. If we don't + // the user will observe a weird effect. For example, + // consider the following code: + // ``` + // foo(); + // assert(bar() == baz()); + // ``` + // In the code above, after executing `foo()`, the user + // will move to the next line and will expect to only + // step into `bar` rather than having debugger to step + // immediately into `baz` as well. At the same time, + // if the user intended to step over functions using `next`, + // we should skip over all calls on the same line (both `bar` + // and `baz` in the example above). + // + // The following explains a bit more formally what needs + // to happen both on on `next` and `step` actions when + // call and non-call instructions are interleaved: + // + // When `step` is called: + // + // When there is only one call on the same line, we want to + // stop on the first instruction of this line, then after + // user `step` action enter the call, and then after + // exiting the call go to the instruction on the next line: + // 6: instruction + // 7: instruction // stop here + // 7: call // enter call here + // 7: instruction + // 8: instruction // stop here + // + // When there is more than one call on the same line, we + // want to stop on the first instruction of this line, + // then after user `step` action enter the call, then + // after exiting the call stop on the next call instruction + // and wait for another `step` action from the user: + // 6: instruction + // 7: instruction // stop here + // 7: call // enter call here + // 7: instruction + // 7: call // stop and then enter call here + // 7: instruction + // 8: instruction // stop here + // + // When `next` is called, things have to happen differently, + // particularly when there are multiple calls on the same line: + // 6: instruction + // 7: instruction // stop here + // 7: call + // 7: instruction + // 7: call + // 7: instruction + // 8: instruction // stop here + // + // To support this, we need to keep track of the line number when + // the last call instruction in a give frame happened, and + // also we need to make `stepOut` aware of whether it is executed + // as part of `next` (which is how `next` is implemented) or not. + this.sendEvent(RuntimeEvents.stopOnStep); + return ExecutionResult.Ok; + } + else { + return this.step(next, stopAtCloseFrame); + } + } + this.sendEvent(RuntimeEvents.stopOnStep); + return ExecutionResult.Ok; + } + else if (currentEvent.type === trace_utils_1.TraceEventKind.ReplaceInlinedFrame) { + let currentFrame = this.frameStack.frames.pop(); + if (!currentFrame) { + throw new Error('No frame to pop when processing `ReplaceInlinedFrame` event'); + } + currentFrame.fileHash = currentEvent.fileHash; + currentFrame.optimizedLines = currentEvent.optimizedLines; + const currentFile = this.filesMap.get(currentFrame.fileHash); + if (!currentFile) { + throw new Error('Cannot find file with hash ' + + currentFrame.fileHash + + ' when processing `ReplaceInlinedFrame` event'); + } + currentFrame.file = currentFile.path; + this.frameStack.frames.push(currentFrame); + return this.step(next, stopAtCloseFrame); + } + else if (currentEvent.type === trace_utils_1.TraceEventKind.OpenFrame) { + // if function is native then the next event will be CloseFrame + if (currentEvent.isNative) { + // see if native function aborted + if (this.trace.events.length > this.eventIndex + 1) { + const nextEvent = this.trace.events[this.eventIndex + 1]; + if (nextEvent.type === trace_utils_1.TraceEventKind.Effect && + nextEvent.effect.type === trace_utils_1.TraceEffectKind.ExecutionError) { + this.sendEvent(RuntimeEvents.stopOnException, nextEvent.effect.msg); + return ExecutionResult.Exception; + } + } + // if native function executed successfully, then the next event + // should be CloseFrame + if (this.trace.events.length <= this.eventIndex + 1 || + this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.CloseFrame) { + throw new Error('Expected an CloseFrame event after native OpenFrame event'); + } + // skip over CloseFrame as there is no frame to pop + this.eventIndex++; + return this.step(next, stopAtCloseFrame); + } + // create a new frame and push it onto the stack + const newFrame = this.newStackFrame(currentEvent.id, currentEvent.name, currentEvent.fileHash, currentEvent.localsTypes, currentEvent.localsNames, currentEvent.optimizedLines); + // set values of parameters in the new frame + this.frameStack.frames.push(newFrame); + for (let i = 0; i < currentEvent.paramValues.length; i++) { + localWrite(newFrame, i, currentEvent.paramValues[i]); + } + if (next) { + // step out of the frame right away + return this.stepOut(next); + } + else { + return this.step(next, stopAtCloseFrame); + } + } + else if (currentEvent.type === trace_utils_1.TraceEventKind.CloseFrame) { + if (stopAtCloseFrame) { + // don't do anything as the caller needs to inspect + // the event before proceeding + return ExecutionResult.Ok; + } + else { + // pop the top frame from the stack + if (this.frameStack.frames.length <= 0) { + throw new Error('No frame to pop at CloseFrame event with ID: ' + + currentEvent.id); + } + this.frameStack.frames.pop(); + return this.step(next, stopAtCloseFrame); + } + } + else if (currentEvent.type === trace_utils_1.TraceEventKind.Effect) { + const effect = currentEvent.effect; + if (effect.type === trace_utils_1.TraceEffectKind.ExecutionError) { + this.sendEvent(RuntimeEvents.stopOnException, effect.msg); + return ExecutionResult.Exception; + } + if (effect.type === trace_utils_1.TraceEffectKind.Write) { + const traceLocation = effect.loc; + const traceValue = effect.value; + const frame = this.frameStack.frames.find(frame => frame.id === traceLocation.frameID); + if (!frame) { + throw new Error('Cannot find frame with ID: ' + + traceLocation.frameID + + ' when processing Write effect for local variable at index: ' + + traceLocation.localIndex); + } + localWrite(frame, traceLocation.localIndex, traceValue); + } + return this.step(next, stopAtCloseFrame); + } + else { + // ignore other events + return this.step(next, stopAtCloseFrame); + } + } + /** + * Handles "step out" adapter action. + * + * @param next determines if it's part of `next` (or otherwise `step`) action. + * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we + * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. + * @throws Error with a descriptive error message if the step out event cannot be handled. + */ + stepOut(next) { + const stackHeight = this.frameStack.frames.length; + if (stackHeight <= 1) { + // do nothing as there is no frame to step out to + this.sendEvent(RuntimeEvents.stopOnStep); + return ExecutionResult.Ok; + } + // newest frame is at the top of the stack + const currentFrame = this.frameStack.frames[stackHeight - 1]; + let currentEvent = this.trace.events[this.eventIndex]; + // skip all events until the corresponding CloseFrame event, + // pop the top frame from the stack, and proceed to the next event + while (true) { + // when calling `step` in the loop below, we need to avoid + // skipping over calls next-style otherwise we can miss seeing + // the actual close frame event that we are looking for + // and have the loop execute too far + const executionResult = this.step(/* next */ false, /* stopAtCloseFrame */ true); + if (executionResult === ExecutionResult.Exception) { + return executionResult; + } + if (executionResult === ExecutionResult.TraceEnd) { + throw new Error('Cannot find corresponding CloseFrame event for function: ' + + currentFrame.name); + } + currentEvent = this.trace.events[this.eventIndex]; + if (currentEvent.type === trace_utils_1.TraceEventKind.CloseFrame) { + const currentFrameID = currentFrame.id; + // `step` call finished at the CloseFrame event + // but did not process it so we need pop the frame here + this.frameStack.frames.pop(); + if (currentEvent.id === currentFrameID) { + break; + } + } + } + return this.step(next, /* stopAtCloseFrame */ false); + } + /** + * Handles "continue" adapter action. + * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we + * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. + * @throws Error with a descriptive error message if the continue event cannot be handled. + */ + continue() { + while (true) { + const executionResult = this.step(/* next */ false, /* stopAtCloseFrame */ false); + if (executionResult === ExecutionResult.TraceEnd || + executionResult === ExecutionResult.Exception) { + return executionResult; + } + let currentEvent = this.trace.events[this.eventIndex]; + if (currentEvent.type === trace_utils_1.TraceEventKind.Instruction) { + const stackHeight = this.frameStack.frames.length; + if (stackHeight <= 0) { + throw new Error('No frame on the stack when processing Instruction event on line: ' + + currentEvent.loc.line + + ' in column: ' + + currentEvent.loc.column); + } + const currentFrame = this.frameStack.frames[stackHeight - 1]; + const breakpoints = this.lineBreakpoints.get(currentFrame.file); + if (!breakpoints) { + continue; + } + if (breakpoints.has(currentEvent.loc.line)) { + this.sendEvent(RuntimeEvents.stopOnLineBreakpoint); + return ExecutionResult.Ok; + } + } + } + } + /** + * Sets line breakpoints for a file (resetting any existing ones). + * + * @param path file path. + * @param lines breakpoints lines. + * @returns array of booleans indicating if a breakpoint was set on a line. + * @throws Error with a descriptive error message if breakpoints cannot be set. + */ + setLineBreakpoints(path, lines) { + const breakpoints = new Set(); + const tracedLines = this.trace.tracedLines.get(path); + // Set all breakpoints to invalid and validate the correct ones in the loop, + // otherwise let them all be invalid if there are no traced lines. + // Valid breakpoints are those that are on lines that have at least + // one instruction in the trace on them. + const validated = lines.map(() => false); + if (tracedLines) { + for (let i = 0; i < lines.length; i++) { + if (tracedLines.has(lines[i])) { + validated[i] = true; + breakpoints.add(lines[i]); + } + } + } + this.lineBreakpoints.set(path, breakpoints); + return validated; + } + /** + * Handles `Instruction` trace event which represents instruction in the current stack frame. + * + * @param instructionEvent `Instruction` trace event. + * @returns `true` if the instruction is on the same line as the one in the current frame, + * `false` otherwise (so that instructions on the same line can be skipped). + * @throws Error with a descriptive error message if instruction event cannot be handled. + */ + instruction(currentFrame, instructionEvent) { + // if current instruction ends lifetime of a local variable, mark this in the + // local variable array + const frameLocalLifetimeEnds = this.trace.localLifetimeEnds.get(currentFrame.id); + if (frameLocalLifetimeEnds) { + const localsLength = currentFrame.locals.length; + for (let i = 0; i < localsLength; i++) { + for (let j = 0; j < currentFrame.locals[i].length; j++) { + if (frameLocalLifetimeEnds[j] === instructionEvent.pc) { + currentFrame.locals[i][j] = undefined; + } + } + } + // trim shadowed scopes that have no live variables in them + for (let i = localsLength - 1; i > 0; i--) { + const liveVar = currentFrame.locals[i].find(runtimeVar => { + return runtimeVar !== undefined; + }); + if (!liveVar) { + currentFrame.locals.pop(); + } + } + } + const loc = instructionEvent.loc; + if (instructionEvent.kind === trace_utils_1.TraceInstructionKind.CALL || + instructionEvent.kind === trace_utils_1.TraceInstructionKind.CALL_GENERIC) { + currentFrame.lastCallInstructionLine = loc.line; + } + if (loc.line === currentFrame.line) { + // so that instructions on the same line can be bypassed + return [true, loc.line]; + } + else { + currentFrame.line = loc.line; + return [false, loc.line]; + } + } + /** + * Creates a new runtime stack frame based on info from the `OpenFrame` trace event. + * + * @param frameID frame identifier from the trace event. + * @param funName function name. + * @param modInfo information about module containing the function. + * @param localsTypes types of local variables in the frame. + * @param localsNames names of local variables in the frame. + * @param optimizedLines lines that are not present in the source map. + * @returns new frame. + * @throws Error with a descriptive error message if frame cannot be constructed. + */ + newStackFrame(frameID, funName, fileHash, localsTypes, localsNames, optimizedLines) { + const currentFile = this.filesMap.get(fileHash); + if (!currentFile) { + throw new Error(`Cannot find file with hash: ${fileHash}`); + } + let locals = []; + // create first scope for local variables + locals[0] = []; + const stackFrame = { + id: frameID, + name: funName, + file: currentFile.path, + fileHash, + line: 0, // line will be updated when next event (Instruction) is processed + localsTypes, + localsNames, + locals, + lastCallInstructionLine: undefined, + optimizedLines + }; + if (this.trace.events.length <= this.eventIndex + 1 || + (this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.Instruction && + this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.OpenFrame)) { + throw new Error('Expected an Instruction or OpenFrame event after OpenFrame event'); + } + return stackFrame; + } + /** + * Emits an event to the adapter. + * + * @param event string representing the event. + * @param args optional arguments to be passed with the event. + */ + sendEvent(event, ...args) { + setTimeout(() => { + this.emit(event, ...args); + }, 0); + } + /** + * Creates a map from a file hash to file information for all Move source files in a directory. + * + * @param directory path to the directory containing Move source files. + * @param filesMap map to update with file information. + */ + hashToFileMap(directory) { + const processDirectory = (dir) => { + const files = fs.readdirSync(dir); + for (const f of files) { + const filePath = path.join(dir, f); + const stats = fs.statSync(filePath); + if (stats.isDirectory()) { + processDirectory(filePath); + } + else if (path.extname(f) === '.move') { + const content = fs.readFileSync(filePath, 'utf8'); + const numFileHash = computeFileHash(content); + const lines = content.split('\n'); + const fileInfo = { path: filePath, content, lines }; + const fileHash = Buffer.from(numFileHash).toString('base64'); + this.filesMap.set(fileHash, fileInfo); + } + } + }; + processDirectory(directory); + } + // + // Utility functions for testing and debugging. + // + /** + * Whitespace used for indentation in the string representation of the runtime. + */ + singleTab = ' '; + /** + * Returns a string representing the current state of the runtime. + * + * @returns string representation of the runtime. + */ + toString() { + let res = 'current frame stack:\n'; + for (const frame of this.frameStack.frames) { + const fileName = path.basename(frame.file); + res += this.singleTab + + 'function: ' + + frame.name + + ' (' + + fileName + + ':' + + frame.line + + ')\n'; + for (let i = 0; i < frame.locals.length; i++) { + res += this.singleTab + this.singleTab + 'scope ' + i + ' :\n'; + for (let j = 0; j < frame.locals[i].length; j++) { + const local = frame.locals[i][j]; + if (local) { + res += this.varToString(this.singleTab + + this.singleTab + + this.singleTab, local) + '\n'; + } + } + } + } + if (this.lineBreakpoints && this.lineBreakpoints.size > 0) { + res += 'line breakpoints\n'; + for (const [file, breakpoints] of this.lineBreakpoints) { + res += this.singleTab + path.basename(file) + '\n'; + for (const line of breakpoints) { + res += this.singleTab + this.singleTab + line + '\n'; + } + } + } + return res; + } + /** + * Returns a string representation of a runtime variable. + * + * @param variable runtime variable. + * @returns string representation of the variable. + */ + varToString(tabs, variable) { + return this.valueToString(tabs, variable.value, variable.name, variable.type); + } + /** + * Returns a string representation of a runtime compound value. + * + * @param compoundValue runtime compound value. + * @returns string representation of the compound value. + */ + compoundValueToString(tabs, compoundValue) { + const type = compoundValue.variantName + ? compoundValue.type + '::' + compoundValue.variantName + : compoundValue.type; + let res = '(' + type + ') {\n'; + for (const [name, value] of compoundValue.fields) { + res += this.valueToString(tabs + this.singleTab, value, name); + } + res += tabs + '}\n'; + return res; + } + /** + * Returns a string representation of a runtime reference value. + * + * @param refValue runtime reference value. + * @param name name of the variable containing reference value. + * @param type optional type of the variable containing reference value. + * @returns string representation of the reference value. + */ + refValueToString(tabs, refValue, name, type) { + let res = ''; + const frame = this.frameStack.frames.find(frame => frame.id === refValue.loc.frameID); + let local = undefined; + if (!frame) { + return res; + } + for (const scope of frame.locals) { + local = scope[refValue.loc.localIndex]; + if (local) { + break; + } + } + if (!local) { + return res; + } + return this.valueToString(tabs, local.value, name, type); + } + /** + * Returns a string representation of a runtime value. + * + * @param value runtime value. + * @param name name of the variable containing the value. + * @param type optional type of the variable containing the value. + * @returns string representation of the value. + */ + valueToString(tabs, value, name, type) { + let res = ''; + if (typeof value === 'string') { + res += tabs + name + ' : ' + value + '\n'; + if (type) { + res += tabs + 'type: ' + type + '\n'; + } + } + else if (Array.isArray(value)) { + res += tabs + name + ' : [\n'; + for (let i = 0; i < value.length; i++) { + res += this.valueToString(tabs + this.singleTab, value[i], String(i)); + } + res += tabs + ']\n'; + if (type) { + res += tabs + 'type: ' + type + '\n'; + } + return res; + } + else if ('fields' in value) { + res += tabs + name + ' : ' + this.compoundValueToString(tabs, value); + if (type) { + res += tabs + 'type: ' + type + '\n'; + } + } + else { + res += this.refValueToString(tabs, value, name, type); + } + return res; + } +} +exports.Runtime = Runtime; +/** + * Handles a write to a local variable in a stack frame. + * + * @param frame stack frame frame. + * @param localIndex variable index in the frame. + * @param runtimeValue variable value. + */ +function localWrite(frame, localIndex, value) { + const type = frame.localsTypes[localIndex]; + if (!type) { + throw new Error('Cannot find type for local variable at index: ' + + localIndex + + ' in function: ' + + frame.name); + } + const name = frame.localsNames[localIndex]; + if (!name) { + throw new Error('Cannot find local variable at index: ' + + localIndex + + ' in function: ' + + frame.name); + } + if (name.includes('%')) { + // don't show "artificial" variables generated by the compiler + // for enum and macro execution as they would be quite confusing + // for the user without knowing compilation internals + return; + } + const scopesCount = frame.locals.length; + if (scopesCount <= 0) { + throw new Error("There should be at least one variable scope in function" + + frame.name); + } + // If a variable has the same name but a different index (it is shadowed) + // it has to be put in a different scope (e.g., locals[1], locals[2], etc.). + // Find scope already containing variable name, if any, starting from + // the outermost one + let existingVarScope = -1; + for (let i = scopesCount - 1; i >= 0; i--) { + const existingVarIndex = frame.locals[i].findIndex(runtimeVar => { + return runtimeVar && runtimeVar.name === name; + }); + if (existingVarIndex !== -1 && existingVarIndex !== localIndex) { + existingVarScope = i; + break; + } + } + if (existingVarScope >= 0) { + const shadowedScope = frame.locals[existingVarScope + 1]; + if (!shadowedScope) { + frame.locals.push([]); + } + frame.locals[existingVarScope + 1][localIndex] = { name, value, type }; + } + else { + // put variable in the "main" locals scope + frame.locals[0][localIndex] = { name, value, type }; + } +} +/** + * Finds the root directory of the package containing the active file. + * + * @param active_file_path path to a file active in the editor. + * @returns root directory of the package containing the active file. + */ +async function findPkgRoot(active_file_path) { + const containsManifest = (dir) => { + const filesInDir = fs.readdirSync(dir); + return filesInDir.includes('Move.toml'); + }; + const activeFileDir = path.dirname(active_file_path); + let currentDir = activeFileDir; + while (currentDir !== path.parse(currentDir).root) { + if (containsManifest(currentDir)) { + return currentDir; + } + currentDir = path.resolve(currentDir, '..'); + } + if (containsManifest(currentDir)) { + return currentDir; + } + return undefined; +} +/** + * Find the package name in the manifest file. + * + * @param pkgRoot root directory of the package. + * @returns package name. + */ +function getPkgNameFromManifest(pkgRoot) { + const manifest = fs.readFileSync(pkgRoot, 'utf8'); + const parsedManifest = toml_1.default.parse(manifest); + const packageName = parsedManifest.package.name; + return packageName; +} +/** + * Computes the SHA-256 hash of a file's contents. + * + * @param fileContents contents of the file. + */ +function computeFileHash(fileContents) { + const hash = crypto.createHash('sha256').update(fileContents).digest(); + return new Uint8Array(hash); +} +//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map new file mode 100644 index 0000000000000..1ce2050bc4436 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js new file mode 100644 index 0000000000000..a5a5e70640016 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const debugadapter_1 = require("@vscode/debugadapter"); +const adapter_1 = require("./adapter"); +// Run the MoveDebugSession debug adapter using stdio +debugadapter_1.DebugSession.run(adapter_1.MoveDebugSession); +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map new file mode 100644 index 0000000000000..4ed822d0f02de --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map @@ -0,0 +1 @@ +{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AAAA,uDAAoD;AACpD,uCAA6C;AAE7C,qDAAqD;AACrD,2BAAY,CAAC,GAAG,CAAC,0BAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js new file mode 100644 index 0000000000000..74d1b03e31bd1 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js @@ -0,0 +1,253 @@ +"use strict"; +// Copyright (c) The Move Contributors +// SPDX-License-Identifier: Apache-2.0 +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readAllSourceMaps = readAllSourceMaps; +const fs = __importStar(require("fs")); +const path = __importStar(require("path")); +function readAllSourceMaps(directory, filesMap) { + const sourceMapsMap = new Map(); + const allSourceMapLinesMap = new Map; + const processDirectory = (dir) => { + const files = fs.readdirSync(dir); + for (const f of files) { + const filePath = path.join(dir, f); + const stats = fs.statSync(filePath); + if (stats.isDirectory()) { + processDirectory(filePath); + } + else if (path.extname(f) === '.json') { + const sourceMap = readSourceMap(filePath, filesMap, allSourceMapLinesMap); + sourceMapsMap.set(JSON.stringify(sourceMap.modInfo), sourceMap); + } + } + }; + processDirectory(directory); + for (const sourceMap of sourceMapsMap.values()) { + const fileHash = sourceMap.fileHash; + const sourceMapLines = allSourceMapLinesMap.get(fileHash); + const fileInfo = filesMap.get(fileHash); + if (sourceMapLines && fileInfo) { + for (let i = 0; i < fileInfo.lines.length; i++) { + if (!sourceMapLines.has(i + 1)) { // allSourceMapLines is 1-based + sourceMap.optimizedLines.push(i); // result must be 0-based + } + } + } + } + return sourceMapsMap; +} +/** + * Reads a Move VM source map from a JSON file. + * + * @param sourceMapPath path to the source map JSON file. + * @param filesMap map from file hash to file information. + * @param sourceMapLinesMap map from file hash to set of lines present + * in all source maps for a given file (a given source map may contain + * source lines for different files due to inlining). + * @returns source map. + * @throws Error if with a descriptive error message if the source map cannot be read. + */ +function readSourceMap(sourceMapPath, filesMap, sourceMapLinesMap) { + const sourceMapJSON = JSON.parse(fs.readFileSync(sourceMapPath, 'utf8')); + const fileHash = Buffer.from(sourceMapJSON.definition_location.file_hash).toString('base64'); + const modInfo = { + addr: sourceMapJSON.module_name[0], + name: sourceMapJSON.module_name[1] + }; + const functions = new Map(); + const fileInfo = filesMap.get(fileHash); + if (!fileInfo) { + throw new Error('Could not find file with hash: ' + + fileHash + + ' when processing source map at: ' + + sourceMapPath); + } + const sourceMapLines = sourceMapLinesMap.get(fileHash) ?? new Set; + prePopulateSourceMapLines(sourceMapJSON, fileInfo, sourceMapLines); + sourceMapLinesMap.set(fileHash, sourceMapLines); + const functionMap = sourceMapJSON.function_map; + for (const funEntry of Object.values(functionMap)) { + let nameStart = funEntry.definition_location.start; + let nameEnd = funEntry.definition_location.end; + const funName = fileInfo.content.slice(nameStart, nameEnd); + const pcLocs = []; + let prevPC = 0; + // we need to initialize `prevFileLoc` to make the compiler happy but it's never + // going to be used as the first PC in the frame is always 0 so the inner + // loop never gets executed during first iteration of the outer loop + let prevLoc = { + fileHash: "", + loc: { line: -1, column: -1 } + }; + // create a list of locations for each PC, even those not explicitly listed + // in the source map + for (const [pc, defLocation] of Object.entries(funEntry.code_map)) { + const currentPC = parseInt(pc); + const defLocFileHash = Buffer.from(defLocation.file_hash).toString('base64'); + const fileInfo = filesMap.get(defLocFileHash); + if (!fileInfo) { + throw new Error('Could not find file with hash: ' + + fileHash + + ' when processing source map at: ' + + sourceMapPath); + } + const currentStartLoc = byteOffsetToLineColumn(fileInfo, defLocation.start); + const currentFileStartLoc = { + fileHash: defLocFileHash, + loc: currentStartLoc + }; + const sourceMapLines = sourceMapLinesMap.get(defLocFileHash) ?? new Set; + sourceMapLines.add(currentStartLoc.line); + // add the end line to the set as well even if we don't need it for pcLocs + const currentEndLoc = byteOffsetToLineColumn(fileInfo, defLocation.end); + sourceMapLines.add(currentEndLoc.line); + sourceMapLinesMap.set(defLocFileHash, sourceMapLines); + for (let i = prevPC + 1; i < currentPC; i++) { + pcLocs.push(prevLoc); + } + pcLocs.push(currentFileStartLoc); + prevPC = currentPC; + prevLoc = currentFileStartLoc; + } + const localsNames = []; + for (const param of funEntry.parameters) { + const paramName = param[0].split("#")[0]; + if (!paramName) { + localsNames.push(param[0]); + } + else { + localsNames.push(paramName); + } + } + for (const local of funEntry.locals) { + const localsName = local[0].split("#")[0]; + if (!localsName) { + localsNames.push(local[0]); + } + else { + localsNames.push(localsName); + } + } + // compute start and end of function definition + const startLoc = byteOffsetToLineColumn(fileInfo, funEntry.location.start); + const endLoc = byteOffsetToLineColumn(fileInfo, funEntry.location.end); + functions.set(funName, { pcLocs, localsNames, startLoc, endLoc }); + } + return { filePath: fileInfo.path, fileHash, modInfo, functions, optimizedLines: [] }; +} +/** + * Pre-populates the set of source file lines that are present in the source map + * with lines corresponding to the definitions of module, structs, enums, and functions + * (excluding location of instructions in the function body which are handled elsewhere). + * Constants do not have location information in the source map and must be handled separately. + * + * @param sourceMapJSON + * @param fileInfo + * @param sourceMapLines + */ +function prePopulateSourceMapLines(sourceMapJSON, fileInfo, sourceMapLines) { + addLinesForLocation(sourceMapJSON.definition_location, fileInfo, sourceMapLines); + const structMap = sourceMapJSON.struct_map; + for (const structEntry of Object.values(structMap)) { + addLinesForLocation(structEntry.definition_location, fileInfo, sourceMapLines); + for (const typeParam of structEntry.type_parameters) { + addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); + } + for (const fieldDef of structEntry.fields) { + addLinesForLocation(fieldDef, fileInfo, sourceMapLines); + } + } + const enumMap = sourceMapJSON.enum_map; + for (const enumEntry of Object.values(enumMap)) { + addLinesForLocation(enumEntry.definition_location, fileInfo, sourceMapLines); + for (const typeParam of enumEntry.type_parameters) { + addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); + } + for (const variant of enumEntry.variants) { + addLinesForLocation(variant[0][1], fileInfo, sourceMapLines); + for (const fieldDef of variant[1]) { + addLinesForLocation(fieldDef, fileInfo, sourceMapLines); + } + } + } + const functionMap = sourceMapJSON.function_map; + for (const funEntry of Object.values(functionMap)) { + addLinesForLocation(funEntry.definition_location, fileInfo, sourceMapLines); + for (const typeParam of funEntry.type_parameters) { + addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); + } + for (const param of funEntry.parameters) { + addLinesForLocation(param[1], fileInfo, sourceMapLines); + } + for (const local of funEntry.locals) { + addLinesForLocation(local[1], fileInfo, sourceMapLines); + } + } +} +/** + * Adds source file lines for the given location to the set. + * + * @param loc location in the source file. + * @param fileInfo source file information. + * @param sourceMapLines set of source file lines. + */ +function addLinesForLocation(loc, fileInfo, sourceMapLines) { + const startLine = byteOffsetToLineColumn(fileInfo, loc.start).line; + sourceMapLines.add(startLine); + const endLine = byteOffsetToLineColumn(fileInfo, loc.end).line; + sourceMapLines.add(endLine); +} +/** + * Computes source file location (line/colum) from the byte offset + * (assumes that lines and columns are 1-based). + * + * @param fileInfo source file information. + * @param offset byte offset in the source file. + * @returns Source file location (line/column). + */ +function byteOffsetToLineColumn(fileInfo, offset) { + if (offset < 0) { + return { line: 1, column: 1 }; + } + const lines = fileInfo.lines; + if (offset >= fileInfo.content.length) { + return { line: lines.length, column: lines[lines.length - 1].length + 1 /* 1-based */ }; + } + let accumulatedLength = 0; + for (let lineNumber = 0; lineNumber < lines.length; lineNumber++) { + const lineLength = lines[lineNumber].length + 1; // +1 for the newline character + if (accumulatedLength + lineLength > offset) { + return { + line: lineNumber + 1, // 1-based + column: offset - accumulatedLength + 1 // 1-based + }; + } + accumulatedLength += lineLength; + } + return { line: lines.length, column: lines[lines.length - 1].length + 1 /* 1-based */ }; +} +//# sourceMappingURL=source_map_utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map new file mode 100644 index 0000000000000..b33878e7f0a15 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"source_map_utils.js","sourceRoot":"","sources":["../src/source_map_utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js new file mode 100644 index 0000000000000..d8a70776cf9d2 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js @@ -0,0 +1,687 @@ +"use strict"; +// Copyright (c) The Move Contributors +// SPDX-License-Identifier: Apache-2.0 +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TraceEffectKind = exports.TraceEventKind = exports.TraceInstructionKind = void 0; +exports.readTrace = readTrace; +exports.traceEventsToString = traceEventsToString; +const fs = __importStar(require("fs")); +const utils_1 = require("./utils"); +var JSONTraceRefType; +(function (JSONTraceRefType) { + JSONTraceRefType["Mut"] = "Mut"; + JSONTraceRefType["Imm"] = "Imm"; +})(JSONTraceRefType || (JSONTraceRefType = {})); +// Runtime data types. +/** + * Kind of instruction in the trace. Enum member names correspond to instruction names. + * (other than UNKNOWN which is used for instructions whose kind does not matter). + */ +var TraceInstructionKind; +(function (TraceInstructionKind) { + /** + * Call instruction. + */ + TraceInstructionKind[TraceInstructionKind["CALL"] = 0] = "CALL"; + /** + * Generic call instruction. + */ + TraceInstructionKind[TraceInstructionKind["CALL_GENERIC"] = 1] = "CALL_GENERIC"; + // for now we don't care about other kinds of instructions + TraceInstructionKind[TraceInstructionKind["UNKNOWN"] = 2] = "UNKNOWN"; +})(TraceInstructionKind || (exports.TraceInstructionKind = TraceInstructionKind = {})); +/** + * Kind of a trace event. + */ +var TraceEventKind; +(function (TraceEventKind) { + /** + * Artificial event to replace the content of the current inlined frame + * with the content of another frame. This is to make sure that there is + * only one inlined frame on the stack at any given time as inlined frames + * are not being pushed and popped symmetrically and need to be handled + * differently than regular frames. + */ + TraceEventKind[TraceEventKind["ReplaceInlinedFrame"] = 0] = "ReplaceInlinedFrame"; + TraceEventKind[TraceEventKind["OpenFrame"] = 1] = "OpenFrame"; + TraceEventKind[TraceEventKind["CloseFrame"] = 2] = "CloseFrame"; + TraceEventKind[TraceEventKind["Instruction"] = 3] = "Instruction"; + TraceEventKind[TraceEventKind["Effect"] = 4] = "Effect"; +})(TraceEventKind || (exports.TraceEventKind = TraceEventKind = {})); +/** + * Kind of an effect of an instruction. + */ +var TraceEffectKind; +(function (TraceEffectKind) { + TraceEffectKind["Write"] = "Write"; + TraceEffectKind["ExecutionError"] = "ExecutionError"; + // TODO: other effect types +})(TraceEffectKind || (exports.TraceEffectKind = TraceEffectKind = {})); +/** + * An ID of a virtual frame representing a macro defined in the same file + * where it is inlined. + */ +const INLINED_FRAME_ID_SAME_FILE = -1; +/** + * An ID of a virtual frame representing a macro defined in a different file + * than file where it is inlined. + */ +const INLINED_FRAME_ID_DIFFERENT_FILE = -2; +/** + * Reads a Move VM execution trace from a JSON file. + * + * @param traceFilePath path to the trace JSON file. + * @param sourceMapsModMap a map from stringified module info to a source map. + * @param sourceMapsHashMap a map from file hash to a source map. + * @returns execution trace. + * @throws Error with a descriptive error message if reading trace has failed. + */ +function readTrace(traceFilePath, sourceMapsModMap, sourceMapsHashMap, filesMap) { + const traceJSON = JSON.parse(fs.readFileSync(traceFilePath, 'utf8')); + if (traceJSON.events.length === 0) { + throw new Error('Trace contains no events'); + } + const events = []; + // We compute the end of lifetime for a local variable as follows. + // When a given local variable is read or written in an effect, we set the end of its lifetime + // to FRAME_LIFETIME. When a new instruction is executed, we set the end of its lifetime + // to be the PC of this instruction. The caveat here is that we must use + // the largest PC of all encountered instructions for this to avoid incorrectly + // setting the end of lifetime to a smaller PC in case of a loop. + // + // For example, consider the following code: + // ``` + // while (x < foo()) { + // x = x + 1; + // } + // ``` + // In this case (simplifying a bit), `x` should be live throughout + // (unrolled in the trace) iterations of the loop. However, the last + // instruction executed after `x` is accessed for the last time + // will be `foo` whose PC is lower than PCs of instructions in/beyond + // the loop + const localLifetimeEnds = new Map(); + const localLifetimeEndsMax = new Map(); + const tracedLines = new Map(); + // stack of frame infos OpenFrame and popped on CloseFrame + const frameInfoStack = []; + for (const event of traceJSON.events) { + if (event.OpenFrame) { + const localsTypes = []; + const frame = event.OpenFrame.frame; + for (const type of frame.locals_types) { + localsTypes.push(JSONTraceTypeToString(type.type_, type.ref_type)); + } + // process parameters - store their values in trace and set their + // initial lifetimes + const paramValues = []; + const lifetimeEnds = localLifetimeEnds.get(frame.frame_id) || []; + for (let i = 0; i < frame.parameters.length; i++) { + const value = frame.parameters[i]; + if (value) { + const runtimeValue = 'RuntimeValue' in value + ? traceRuntimeValueFromJSON(value.RuntimeValue.value) + : traceRefValueFromJSON(value); + paramValues.push(runtimeValue); + lifetimeEnds[i] = utils_1.FRAME_LIFETIME; + } + } + localLifetimeEnds.set(frame.frame_id, lifetimeEnds); + const modInfo = { + addr: frame.module.address, + name: frame.module.name + }; + const sourceMap = sourceMapsModMap.get(JSON.stringify(modInfo)); + if (!sourceMap) { + throw new Error('Source map for module ' + + modInfo.name + + ' in package ' + + modInfo.addr + + ' not found'); + } + const funEntry = sourceMap.functions.get(frame.function_name); + if (!funEntry) { + throw new Error('Cannot find function entry in source map for function ' + + frame.function_name + + ' when processing OpenFrame event'); + } + events.push({ + type: TraceEventKind.OpenFrame, + id: frame.frame_id, + name: frame.function_name, + fileHash: sourceMap.fileHash, + isNative: frame.is_native, + localsTypes, + localsNames: funEntry.localsNames, + paramValues, + optimizedLines: sourceMap.optimizedLines + }); + const currentFile = filesMap.get(sourceMap.fileHash); + if (!currentFile) { + throw new Error(`Cannot find file with hash: ${sourceMap.fileHash}`); + } + frameInfoStack.push({ + ID: frame.frame_id, + pcLocs: funEntry.pcLocs, + filePath: currentFile.path, + fileHash: sourceMap.fileHash, + optimizedLines: sourceMap.optimizedLines, + funName: frame.function_name, + funEntry + }); + } + else if (event.CloseFrame) { + events.push({ + type: TraceEventKind.CloseFrame, + id: event.CloseFrame.frame_id + }); + frameInfoStack.pop(); + } + else if (event.Instruction) { + const name = event.Instruction.instruction; + let frameInfo = frameInfoStack[frameInfoStack.length - 1]; + const fid = frameInfo.ID; + const pcLocs = frameInfo.pcLocs; + // if map does not contain an entry for a PC that can be found in the trace file, + // it means that the position of the last PC in the source map should be used + let instLoc = event.Instruction.pc >= pcLocs.length + ? pcLocs[pcLocs.length - 1] + : pcLocs[event.Instruction.pc]; + if (!instLoc) { + throw new Error('Cannot find location for PC: ' + + event.Instruction.pc + + ' in frame: ' + + fid); + } + const differentFileVirtualFramePop = processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, event.Instruction.pc, instLoc); + if (differentFileVirtualFramePop) { + // if we pop a virtual frame for a macro defined in a different file, + // we may still land in a macro defined in the same file, in which case + // we need to push another virtual frame for this instruction right away + processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, event.Instruction.pc, instLoc); + } + // re-read frame info as it may have changed as a result of processing + // and inlined call + frameInfo = frameInfoStack[frameInfoStack.length - 1]; + const filePath = frameInfo.filePath; + const lines = tracedLines.get(filePath) || new Set(); + // floc is still good as the pc_locs used for its computation + // do not change as a result of processing inlined frames + lines.add(instLoc.loc.line); + tracedLines.set(filePath, lines); + events.push({ + type: TraceEventKind.Instruction, + pc: event.Instruction.pc, + loc: instLoc.loc, + kind: name in TraceInstructionKind + ? TraceInstructionKind[name] + : TraceInstructionKind.UNKNOWN + }); + // Set end of lifetime for all locals to the max instruction PC ever seen + // for a given local (if they are live after this instructions, they will + // be reset to FRAME_LIFETIME when processing subsequent effects). + // All instructions in a given function, regardless of whether they are + // in the inlined portion of the code or not, reset variable lifetimes. + const nonInlinedFrameID = frameInfo.ID !== INLINED_FRAME_ID_SAME_FILE && + frameInfo.ID !== INLINED_FRAME_ID_DIFFERENT_FILE + ? frameInfo.ID + : frameInfoStack[frameInfoStack.length - 2].ID; + const lifetimeEnds = localLifetimeEnds.get(nonInlinedFrameID) || []; + const lifetimeEndsMax = localLifetimeEndsMax.get(nonInlinedFrameID) || []; + for (let i = 0; i < lifetimeEnds.length; i++) { + if (lifetimeEnds[i] === undefined || lifetimeEnds[i] === utils_1.FRAME_LIFETIME) { + // only set new end of lifetime if it has not been set before + // or if variable is live + const pc = event.Instruction.pc; + if (lifetimeEndsMax[i] === undefined || lifetimeEndsMax[i] < pc) { + lifetimeEnds[i] = pc; + lifetimeEndsMax[i] = pc; + } + } + } + localLifetimeEnds.set(nonInlinedFrameID, lifetimeEnds); + localLifetimeEndsMax.set(nonInlinedFrameID, lifetimeEndsMax); + } + else if (event.Effect) { + const effect = event.Effect; + if (effect.Write || effect.Read) { + // if a local is read or written, set its end of lifetime + // to infinite (end of frame) + const location = effect.Write ? effect.Write.location : effect.Read.location; + const loc = processJSONLocalLocation(location, localLifetimeEnds); + if (effect.Write) { + if (loc !== undefined) { + // Process a write only if the location is supported. + // We can see global location here in some cases when source-level + // assignment does not involve an explicit local variable, along + // the lines of: + // + // field::borrow_mut(...).next = ... + const value = 'RuntimeValue' in effect.Write.root_value_after_write + ? traceRuntimeValueFromJSON(effect.Write.root_value_after_write.RuntimeValue.value) + : traceRefValueFromJSON(effect.Write.root_value_after_write); + events.push({ + type: TraceEventKind.Effect, + effect: { + type: TraceEffectKind.Write, + loc, + value + } + }); + } + } + } + if (effect.ExecutionError) { + events.push({ + type: TraceEventKind.Effect, + effect: { + type: TraceEffectKind.ExecutionError, + msg: effect.ExecutionError + } + }); + } + } + } + return { events, localLifetimeEnds, tracedLines }; +} +/** + * Additional processing of an instruction if it's detected that it belongs + * to an inlined macro. If this is the case, then virtual frames may be pushed + * to the stack or popped from it. + * + * @param sourceMapsHashMap a map from file hash to a source map. + * @param events trace events. + * @param frameInfoStack stack of frame infos used during trace generation. + * @param instPC PC of the instruction. + * @param instLoc location of the instruction. + * @returns `true` if this instruction caused a pop of a virtual frame for + * an inlined macro defined in a different file, `false` otherwise. + */ +function processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, instPC, instLoc) { + let frameInfo = frameInfoStack[frameInfoStack.length - 1]; + const fid = frameInfo.ID; + if (instLoc.fileHash !== frameInfo.fileHash) { + // This indicates that we are going to an instruction in the same function + // but in a different file, which can happen due to macro inlining. + // One could think of "outlining" the inlined code to create separate + // frames for each inlined macro but unfortunately this will not quite work. + // The reason is that we cannot rely on these the inlined frame pushes and pops + // being symmetric. Consider the following example: + //``` + // macro fun baz() { + // ... + // } + // macro fun bar() { + // baz!(); + // ... + // } + // fun foo() { + // bar!(); + // } + //``` + // In the example above, according to the trace, there will be only + // one inlined frame push as the first instruction of function `foo` + // will be an instruction in macro `baz` instead of an instruction + // in macro `bar`. Yet, when the control flow exits `baz`, it will go + // to `bar`, and then to `foo`. + // + // The high level idea of how to handle this situation is to always + // keep only a single inlined frame on the stack: + // - the first time we see different file hashes, we push an inlined + // frame on the stack + // - if an inlined frame is already on the stack, and the next file + // hash transition happens, then we do ond of the following: + // - if the next file hash is the same as the file hash of the frame + // before the current one, we pop the current inlined frame + // - otherwise, we replace the current inlined frame with the new one + // + // The exception to this single-inlined-frame rule is when we are already + // in an inlined frame for a macro defined in the same file, and go to + // a macro in a different file. In this case, we will have two inlined + // frames on the stack. + if (frameInfoStack.length > 1 && + frameInfoStack[frameInfoStack.length - 2].fileHash === instLoc.fileHash) { + frameInfoStack.pop(); + events.push({ + type: TraceEventKind.CloseFrame, + id: fid + }); + return true; + } + else { + const sourceMap = sourceMapsHashMap.get(instLoc.fileHash); + if (!sourceMap) { + throw new Error('Cannot find source map for file with hash: ' + + instLoc.fileHash + + ' when frame switching within frame ' + + fid + + ' at PC ' + + instPC); + } + if (frameInfo.ID === INLINED_FRAME_ID_DIFFERENT_FILE) { + events.push({ + type: TraceEventKind.ReplaceInlinedFrame, + fileHash: instLoc.fileHash, + optimizedLines: sourceMap.optimizedLines + }); + // pop the current inlined frame so that it can + // be replaced on the frame info stack below + frameInfoStack.pop(); + } + else { + events.push({ + type: TraceEventKind.OpenFrame, + id: INLINED_FRAME_ID_DIFFERENT_FILE, + name: '__inlined__', + fileHash: instLoc.fileHash, + isNative: false, + localsTypes: [], + localsNames: [], + paramValues: [], + optimizedLines: sourceMap.optimizedLines + }); + } + frameInfoStack.push({ + ID: INLINED_FRAME_ID_DIFFERENT_FILE, + // same pcLocs as before since we are in the same function + pcLocs: frameInfo.pcLocs, + filePath: sourceMap.filePath, + fileHash: sourceMap.fileHash, + optimizedLines: sourceMap.optimizedLines, + // same function name and source map as before since we are in the same function + funName: frameInfo.funName, + funEntry: frameInfo.funEntry + }); + } + } + else if (frameInfo.ID !== INLINED_FRAME_ID_DIFFERENT_FILE) { + // We are in the same file here, though perhaps this instruction + // belongs to an inlined macro. If we are already in an inlined + // frame for a macro defined in a different file, we don't do + // anything do avoid pushing a new inlined frame for a macro. + // + // Otherwise, below we check if instruction belongs to an inlined macro + // when this macro is defined in the same file to provide similar + // behavior as when the macro is defined in a different file + // (push/pop virtual inlined frames). The implementation here is + // a bit different, though, as we don't have explicit boundaries + // for when the code transitions from/to inlined code. Instead, + // we need to inspect each instruction and act as follows: + // - if the instruction is outside of the function (belongs to inlined macro): + // - if we are not in an inlined frame, we need to push one + // - if we are in an inlined frame, we don't need to do anything + // - if the instruction is in the function: + // - if we are in an inlined frame, we need to pop it + // - if we are not in an inlined frame, we don't need to do anything + if (instLoc.loc.line < frameInfo.funEntry.startLoc.line || + instLoc.loc.line > frameInfo.funEntry.endLoc.line || + (instLoc.loc.line === frameInfo.funEntry.startLoc.line && + instLoc.loc.column < frameInfo.funEntry.startLoc.column) || + (instLoc.loc.line === frameInfo.funEntry.endLoc.line && + instLoc.loc.column > frameInfo.funEntry.endLoc.column)) { + // the instruction is outside of the function + // (belongs to inlined macro) + if (frameInfo.ID !== INLINED_FRAME_ID_SAME_FILE) { + // if we are not in an inlined frame, we need to push one + events.push({ + type: TraceEventKind.OpenFrame, + id: INLINED_FRAME_ID_SAME_FILE, + name: '__inlined__', + fileHash: instLoc.fileHash, + isNative: false, + localsTypes: [], + localsNames: [], + paramValues: [], + optimizedLines: frameInfo.optimizedLines + }); + // we get a lot of data for the new frame info from the current on + // since we are still in the same function + frameInfoStack.push({ + ID: INLINED_FRAME_ID_SAME_FILE, + pcLocs: frameInfo.pcLocs, + filePath: frameInfo.filePath, + fileHash: instLoc.fileHash, + optimizedLines: frameInfo.optimizedLines, + funName: frameInfo.funName, + funEntry: frameInfo.funEntry + }); + } // else we are already in an inlined frame, so we don't need to do anything + } + else { + // the instruction is in the function + if (frameInfo.ID === INLINED_FRAME_ID_SAME_FILE) { + // If we are in an inlined frame, we need to pop it. + // This the place where we need different inlined frame id + // for macros defined in the same or different file than + // the file where they are inlined. Since this check is executed + // for each instruction that is within the function, we could + // accidentally (and incorrectly) at this point pop virtual inlined + // frame for a macro defined in a different file, if we did could not + // distinguish between the two cases. + events.push({ + type: TraceEventKind.CloseFrame, + id: INLINED_FRAME_ID_SAME_FILE + }); + frameInfoStack.pop(); + } // else we are not in an inlined frame, so we don't need to do anything + } + } + return false; +} +/** + * Converts a JSON trace type to a string representation. + */ +function JSONTraceTypeToString(baseType, refType) { + const refPrefix = refType === JSONTraceRefType.Mut + ? '&mut ' + : (refType === JSONTraceRefType.Imm + ? '&' + : ''); + if (typeof baseType === 'string') { + return refPrefix + baseType; + } + else if ('vector' in baseType) { + return refPrefix + `vector<${JSONTraceTypeToString(baseType.vector)}>`; + } + else { + return refPrefix + + JSONTraceAddressToHexString(baseType.struct.address) + + "::" + + baseType.struct.module + + "::" + + baseType.struct.name; + } +} +/** + * Attempts to convert an address found in the trace (which is a string + * representing a 32-byte number) to a shorter and more readable hex string. + * Returns original string address if conversion fails. + */ +function JSONTraceAddressToHexString(address) { + try { + const number = BigInt(address); + const hexAddress = number.toString(16); + return `0x${hexAddress}`; + } + catch (error) { + // Return the original string if it's not a valid number + return address; + } +} +/** + * Processes a location of a local variable in a JSON trace: sets the end of its lifetime + * when requested and returns its location + * @param traceLocation location in the trace. + * @param localLifetimeEnds map of local variable lifetimes (defined if local variable + * lifetime should happen). + * @returns variable location. + */ +function processJSONLocalLocation(traceLocation, localLifetimeEnds) { + if ('Local' in traceLocation) { + const frameID = traceLocation.Local[0]; + const localIndex = traceLocation.Local[1]; + if (localLifetimeEnds) { + const lifetimeEnds = localLifetimeEnds.get(frameID) || []; + lifetimeEnds[localIndex] = utils_1.FRAME_LIFETIME; + localLifetimeEnds.set(frameID, lifetimeEnds); + } + return { frameID, localIndex }; + } + else if ('Indexed' in traceLocation) { + return processJSONLocalLocation(traceLocation.Indexed[0], localLifetimeEnds); + } + else { + // Currently, there is nothing that needs to be done for 'Global' locations, + // neither with respect to lifetime nor with respect to location itself. + // This is because `Global` locations currently only represent read-only + // reference values returned from native functions. If there ever was + // a native function that would return a mutable reference, we should + // consider how to handle value changes via such reference, but it's unlikely + // that such a function would ever be added to either Move stdlib or + // the Sui framework. + return undefined; + } +} +/** + * Converts a JSON trace reference value to a runtime value. + * + * @param value JSON trace reference value. + * @returns runtime value. + * @throws Error with a descriptive error message if conversion has failed. + */ +function traceRefValueFromJSON(value) { + if ('MutRef' in value) { + const loc = processJSONLocalLocation(value.MutRef.location); + if (!loc) { + throw new Error('Unsupported location type in MutRef'); + } + const ret = { mutable: true, loc }; + return ret; + } + else { + const loc = processJSONLocalLocation(value.ImmRef.location); + if (!loc) { + throw new Error('Unsupported location type in ImmRef'); + } + const ret = { mutable: false, loc }; + return ret; + } +} +/** + * Converts a JSON trace runtime value to a runtime trace value. + * + * @param value JSON trace runtime value. + * @returns runtime trace value. + */ +function traceRuntimeValueFromJSON(value) { + if (typeof value === 'boolean' + || typeof value === 'number' + || typeof value === 'string') { + return String(value); + } + else if (Array.isArray(value)) { + return value.map(item => traceRuntimeValueFromJSON(item)); + } + else { + const fields = Object.entries(value.fields).map(([key, value]) => [key, traceRuntimeValueFromJSON(value)]); + const compoundValue = { + fields, + type: value.type, + variantName: value.variant_name, + variantTag: value.variant_tag + }; + return compoundValue; + } +} +// +// Utility functions for testing and debugging. +// +/** + * Converts trace events to an array of strings + * representing these events. + * + * @param trace trace. + * @returns array of strings representing trace events. + */ +function traceEventsToString(trace) { + return trace.events.map(event => eventToString(event)); +} +/** + * Converts a trace event to a string representation. + * + * @param event trace event. + * @returns string representation of the event. + */ +function eventToString(event) { + switch (event.type) { + case TraceEventKind.ReplaceInlinedFrame: + return 'ReplaceInlinedFrame'; + case TraceEventKind.OpenFrame: + return `OpenFrame ${event.id} for ${event.name}`; + case TraceEventKind.CloseFrame: + return `CloseFrame ${event.id}`; + case TraceEventKind.Instruction: + return 'Instruction ' + + instructionKindToString(event.kind) + + ' at PC ' + + event.pc + + ', line ' + + event.loc.line; + case TraceEventKind.Effect: + return `Effect ${effectToString(event.effect)}`; + } +} +/** + * Converts a trace instruction kind to a string representation. + * + * @param kind instruction kind. + * @returns string representation of the instruction kind. + */ +function instructionKindToString(kind) { + switch (kind) { + case TraceInstructionKind.CALL: + return 'CALL'; + case TraceInstructionKind.CALL_GENERIC: + return 'CALL_GENERIC'; + case TraceInstructionKind.UNKNOWN: + return 'UNKNOWN'; + } +} +/** + * Converts an effect of an instruction to a string representation. + * + * @param effect effect. + * @returns string representation of the effect. + */ +function effectToString(effect) { + switch (effect.type) { + case TraceEffectKind.Write: + return `Write at idx ${effect.loc.localIndex} in frame ${effect.loc.frameID}`; + case TraceEffectKind.ExecutionError: + return `ExecutionError ${effect.msg}`; + } +} +//# sourceMappingURL=trace_utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map new file mode 100644 index 0000000000000..6cc753c78d073 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"trace_utils.js","sourceRoot":"","sources":["../src/trace_utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js new file mode 100644 index 0000000000000..a3482d717dd19 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js @@ -0,0 +1,12 @@ +"use strict"; +// Copyright (c) The Move Contributors +// SPDX-License-Identifier: Apache-2.0 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FRAME_LIFETIME = void 0; +/** + * If end of lifetime for a local has this value, + * it means that it lives until the end of the current + * frame. + */ +exports.FRAME_LIFETIME = -1; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map new file mode 100644 index 0000000000000..00d6a6f280aa0 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml index a2ce64a6b2e40..0c0e3a8802e73 100644 --- a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/Move.toml @@ -3,7 +3,7 @@ name = "global_write" edition = "2024.beta" [dependencies] -Sui = { local = "/Users/adamwelc/sui/crates/sui-framework/packages/sui-framework/" } +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/mainnet" } [addresses] global_write = "0x0" From c86f1129fa422048901394bae7f3417717229c16 Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Fri, 27 Dec 2024 09:07:10 +0100 Subject: [PATCH 07/10] Finessed a comment --- .../trace-adapter/tests/global_write/sources/m.move | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move index d76d07984738d..abf3cb9f805dd 100644 --- a/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move +++ b/external-crates/move/crates/move-analyzer/trace-adapter/tests/global_write/sources/m.move @@ -9,9 +9,9 @@ fun test() { let ctx = &mut tx_context::dummy(); let mut table = linked_table::new(ctx); table.push_back(7, 42); - // linked table contains the following line which (interestingly) uses global location - // for the write of `next` but only if we call the `push_back` function twice (otherwise - // it looks like it creates a temporary local variable for this assignment) + // linked table contains the following line of code which uses global location + // for the write of `next` (we need to call `push_back` twice to actually exercise + // this line of code): // // field::borrow_mut>(&mut table.id, old_tail_k).next = option::some(k); table.push_back(42, 7); From 633956ff939c33fda1b6a0efe2a2bc2d91a7a8f7 Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Fri, 27 Dec 2024 09:09:29 +0100 Subject: [PATCH 08/10] Bumped up extension version --- .../move/crates/move-analyzer/trace-debug/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external-crates/move/crates/move-analyzer/trace-debug/package.json b/external-crates/move/crates/move-analyzer/trace-debug/package.json index d048bff472981..3c2f72c4d5a2a 100644 --- a/external-crates/move/crates/move-analyzer/trace-debug/package.json +++ b/external-crates/move/crates/move-analyzer/trace-debug/package.json @@ -5,7 +5,7 @@ "publisher": "mysten", "icon": "images/move.png", "license": "Apache-2.0", - "version": "0.0.1", + "version": "0.0.2", "preview": true, "repository": { "url": "https://github.com/MystenLabs/sui.git", From fd0ddb40b97aedf7bc6a69aef0f0059ef325103e Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Fri, 27 Dec 2024 16:47:30 -0800 Subject: [PATCH 09/10] Removed accidentally added JS files --- .../trace-adapter/out/adapter.js | 435 --------- .../trace-adapter/out/adapter.js.map | 1 - .../trace-adapter/out/runtime.js | 833 ------------------ .../trace-adapter/out/runtime.js.map | 1 - .../move-analyzer/trace-adapter/out/server.js | 7 - .../trace-adapter/out/server.js.map | 1 - .../trace-adapter/out/source_map_utils.js | 253 ------ .../trace-adapter/out/source_map_utils.js.map | 1 - .../trace-adapter/out/trace_utils.js | 687 --------------- .../trace-adapter/out/trace_utils.js.map | 1 - .../move-analyzer/trace-adapter/out/utils.js | 12 - .../trace-adapter/out/utils.js.map | 1 - 12 files changed, 2233 deletions(-) delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/server.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js delete mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js deleted file mode 100644 index ee51909882935..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js +++ /dev/null @@ -1,435 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MoveDebugSession = void 0; -const debugadapter_1 = require("@vscode/debugadapter"); -const path = __importStar(require("path")); -const runtime_1 = require("./runtime"); -/** - * Converts a log level string to a Logger.LogLevel. - * - * @param level log level as string - * @returns log level as Logger.LogLevel - */ -function convertLoggerLogLevel(level) { - switch (level) { - case "log" /* LogLevel.Log */: - return debugadapter_1.Logger.LogLevel.Log; - case "verbose" /* LogLevel.Verbose */: - return debugadapter_1.Logger.LogLevel.Verbose; - default: - return debugadapter_1.Logger.LogLevel.Stop; - } -} -class MoveDebugSession extends debugadapter_1.LoggingDebugSession { - /** - * We only even have one thread so we can hardcode its ID. - */ - static THREAD_ID = 1; - /** - * DAP-independent runtime maintaining state during - * trace viewing session. - */ - runtime; - /** - * Handles to create variable scopes and compound variable values. - */ - variableHandles; - constructor() { - super(); - this.setDebuggerLinesStartAt1(false); - this.setDebuggerColumnsStartAt1(false); - this.runtime = new runtime_1.Runtime(); - this.variableHandles = new debugadapter_1.Handles(); - // setup event handlers - this.runtime.on(runtime_1.RuntimeEvents.stopOnStep, () => { - this.sendEvent(new debugadapter_1.StoppedEvent('step', MoveDebugSession.THREAD_ID)); - }); - this.runtime.on(runtime_1.RuntimeEvents.stopOnLineBreakpoint, () => { - this.sendEvent(new debugadapter_1.StoppedEvent('breakpoint', MoveDebugSession.THREAD_ID)); - }); - this.runtime.on(runtime_1.RuntimeEvents.stopOnException, (msg) => { - this.sendEvent(new debugadapter_1.StoppedEvent('exception', MoveDebugSession.THREAD_ID, msg)); - }); - this.runtime.on(runtime_1.RuntimeEvents.end, () => { - this.sendEvent(new debugadapter_1.TerminatedEvent()); - }); - } - initializeRequest(response, args) { - // build and return the capabilities of this debug adapter (enable as needed) - response.body = response.body || {}; - // the adapter implements the configurationDone request - response.body.supportsConfigurationDoneRequest = false; - // the adapter supports conditional breakpoints - response.body.supportsConditionalBreakpoints = false; - // the adapter supports breakpoints that break execution after a specified number of hits - response.body.supportsHitConditionalBreakpoints = false; - // make VS Code use 'evaluate' when hovering over source - response.body.supportsEvaluateForHovers = false; - // make VS Code show a 'step back' button - response.body.supportsStepBack = false; - // make VS Code support data breakpoints - response.body.supportsDataBreakpoints = false; - // make VS Code support completion in REPL - response.body.supportsCompletionsRequest = false; - response.body.completionTriggerCharacters = []; - // make VS Code send cancel request - response.body.supportsCancelRequest = false; - // make VS Code send the breakpointLocations request - response.body.supportsBreakpointLocationsRequest = false; - // make VS Code provide "Step in Target" functionality - response.body.supportsStepInTargetsRequest = false; - // the adapter defines two exceptions filters, one with support for conditions. - response.body.supportsExceptionFilterOptions = false; - response.body.exceptionBreakpointFilters = []; - // make VS Code send exceptionInfo request - response.body.supportsExceptionInfoRequest = false; - // make VS Code send setVariable request - response.body.supportsSetVariable = false; - // make VS Code send setExpression request - response.body.supportsSetExpression = false; - // make VS Code send disassemble request - response.body.supportsDisassembleRequest = false; - response.body.supportsSteppingGranularity = false; - response.body.supportsInstructionBreakpoints = false; - // make VS Code able to read and write variable memory - response.body.supportsReadMemoryRequest = false; - response.body.supportsWriteMemoryRequest = false; - response.body.supportSuspendDebuggee = false; - response.body.supportTerminateDebuggee = false; - response.body.supportsFunctionBreakpoints = false; - response.body.supportsDelayedStackTraceLoading = false; - this.sendResponse(response); - this.sendEvent(new debugadapter_1.InitializedEvent()); - } - async launchRequest(response, args) { - debugadapter_1.logger.setup(convertLoggerLogLevel(args.logLevel ?? "none" /* LogLevel.None */), false); - debugadapter_1.logger.log(`Launching trace viewer for file: ${args.source} and trace: ${args.traceInfo}`); - try { - await this.runtime.start(args.source, args.traceInfo, args.stopOnEntry || false); - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - this.sendResponse(response); - this.sendEvent(new debugadapter_1.StoppedEvent('entry', MoveDebugSession.THREAD_ID)); - } - threadsRequest(response) { - response.body = { - threads: [ - new debugadapter_1.Thread(MoveDebugSession.THREAD_ID, 'Main Thread') - ] - }; - this.sendResponse(response); - } - stackTraceRequest(response, _args) { - try { - const runtimeStack = this.runtime.stack(); - const stack_height = runtimeStack.frames.length; - response.body = { - stackFrames: runtimeStack.frames.map(frame => { - const fileName = path.basename(frame.file); - return new debugadapter_1.StackFrame(frame.id, frame.name, new debugadapter_1.Source(fileName, frame.file), frame.line); - }).reverse(), - totalFrames: stack_height, - optimized_lines: stack_height > 0 - ? runtimeStack.frames[stack_height - 1].optimizedLines - : [] - }; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - this.sendResponse(response); - } - /** - * Gets the scopes for a given frame. - * - * @param frameID identifier of the frame scopes are requested for. - * @returns an array of scopes. - * @throws Error with a descriptive error message if scopes cannot be retrieved. - */ - getScopes(frameID) { - const runtimeStack = this.runtime.stack(); - const frame = runtimeStack.frames.find(frame => frame.id === frameID); - if (!frame) { - throw new Error(`No frame found for id: ${frameID} when getting scopes`); - } - const scopes = []; - if (frame.locals.length > 0) { - for (let i = frame.locals.length - 1; i > 0; i--) { - const shadowedScopeReference = this.variableHandles.create({ locals: frame.locals[i] }); - const shadowedScope = new debugadapter_1.Scope(`shadowed(${i}): ${frame.name}`, shadowedScopeReference, false); - scopes.push(shadowedScope); - } - } - // don't have to check if scope 0 exists as it's created whenever a new frame is created - // and it's never disposed of - const localScopeReference = this.variableHandles.create({ locals: frame.locals[0] }); - const localScope = new debugadapter_1.Scope(`locals: ${frame.name}`, localScopeReference, false); - scopes.push(localScope); - return scopes; - } - scopesRequest(response, args) { - try { - const scopes = this.getScopes(args.frameId); - response.body = { - scopes - }; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - this.sendResponse(response); - } - /** - * Converts a runtime reference value to a DAP variable. - * - * @param value reference value. - * @param name name of variable containing the reference value. - * @param type optional type of the variable containing the reference value. - * @returns a DAP variable. - * @throws Error with a descriptive error message if conversion fails. - */ - convertRefValue(value, name, type) { - const frameID = value.loc.frameID; - const localIndex = value.loc.localIndex; - const runtimeStack = this.runtime.stack(); - const frame = runtimeStack.frames.find(frame => frame.id === frameID); - if (!frame) { - throw new Error('No frame found for id ' - + frameID - + ' when converting ref value for local index ' - + localIndex); - } - // a local will be in one of the scopes at a position corresponding to its local index - let local = undefined; - for (const scope of frame.locals) { - local = scope[localIndex]; - if (local) { - break; - } - } - if (!local) { - throw new Error('No local found for index ' - + localIndex - + ' when converting ref value for frame id ' - + frameID); - } - return this.convertRuntimeValue(local.value, name, type); - } - /** - * Converts a runtime value to a DAP variable. - * - * @param value variable value - * @param name variable name - * @param type optional variable type - * @returns a DAP variable. - */ - convertRuntimeValue(value, name, type) { - if (typeof value === 'string') { - return { - name, - type, - value, - variablesReference: 0 - }; - } - else if (Array.isArray(value)) { - const compoundValueReference = this.variableHandles.create(value); - return { - name, - type, - value: '(' + value.length + ')[...]', - variablesReference: compoundValueReference - }; - } - else if ('fields' in value) { - const compoundValueReference = this.variableHandles.create(value); - // use type if available as it will have information about whether - // it's a reference or not (e.g., `&mut 0x42::mod::SomeStruct`), - // as opposed to the type that come with the value - // (e.g., `0x42::mod::SomeStruct`) - const actualType = type ? type : value.type; - const accessChainParts = actualType.split('::'); - const datatypeName = accessChainParts[accessChainParts.length - 1]; - return { - name, - type: value.variantName - ? actualType + '::' + value.variantName - : actualType, - value: (value.variantName - ? datatypeName + '::' + value.variantName - : datatypeName) + '{...}', - variablesReference: compoundValueReference - }; - } - else { - return this.convertRefValue(value, name, type); - } - } - /** - * Converts runtime variables to DAP variables. - * - * @param runtimeScope runtime variables scope, - * @returns an array of DAP variables. - */ - convertRuntimeVariables(runtimeScope) { - const variables = []; - const runtimeVariables = runtimeScope.locals; - runtimeVariables.forEach(v => { - if (v) { - variables.push(this.convertRuntimeValue(v.value, v.name, v.type)); - } - }); - return variables; - } - variablesRequest(response, args) { - try { - const variableHandle = this.variableHandles.get(args.variablesReference); - let variables = []; - if (variableHandle) { - if ('locals' in variableHandle) { - // we are dealing with a scope - variables = this.convertRuntimeVariables(variableHandle); - } - else { - // we are dealing with a compound value - if (Array.isArray(variableHandle)) { - for (let i = 0; i < variableHandle.length; i++) { - const v = variableHandle[i]; - variables.push(this.convertRuntimeValue(v, String(i))); - } - } - else { - variableHandle.fields.forEach(([fname, fvalue]) => { - variables.push(this.convertRuntimeValue(fvalue, fname)); - }); - } - } - } - if (variables.length > 0) { - response.body = { - variables - }; - } - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - this.sendResponse(response); - } - nextRequest(response, _args) { - let terminate = false; - try { - const executionResult = this.runtime.step(/* next */ true, /* stopAtCloseFrame */ false); - terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - if (terminate) { - this.sendEvent(new debugadapter_1.TerminatedEvent()); - } - this.sendResponse(response); - } - stepInRequest(response, _args) { - let terminate = false; - try { - const executionResult = this.runtime.step(/* next */ false, /* stopAtCloseFrame */ false); - terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - if (terminate) { - this.sendEvent(new debugadapter_1.TerminatedEvent()); - } - this.sendResponse(response); - } - stepOutRequest(response, _args) { - let terminate = false; - try { - const executionResult = this.runtime.stepOut(/* next */ false); - terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - if (terminate) { - this.sendEvent(new debugadapter_1.TerminatedEvent()); - } - this.sendResponse(response); - } - continueRequest(response, _args) { - let terminate = false; - try { - const executionResult = this.runtime.continue(); - terminate = executionResult === runtime_1.ExecutionResult.TraceEnd; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - if (terminate) { - this.sendEvent(new debugadapter_1.TerminatedEvent()); - } - this.sendResponse(response); - } - setBreakPointsRequest(response, args) { - try { - const finalBreakpoints = []; - if (args.breakpoints && args.source.path) { - const breakpointLines = args.breakpoints.map(bp => bp.line); - const validatedBreakpoints = this.runtime.setLineBreakpoints(args.source.path, breakpointLines); - for (let i = 0; i < breakpointLines.length; i++) { - finalBreakpoints.push(new debugadapter_1.Breakpoint(validatedBreakpoints[i], breakpointLines[i])); - } - } - response.body = { - breakpoints: finalBreakpoints - }; - } - catch (err) { - response.success = false; - response.message = err instanceof Error ? err.message : String(err); - } - this.sendResponse(response); - } - disconnectRequest(response, _args) { - // Cleanup and terminate the debug session - this.sendEvent(new debugadapter_1.TerminatedEvent()); - this.sendResponse(response); - } -} -exports.MoveDebugSession = MoveDebugSession; -//# sourceMappingURL=adapter.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map deleted file mode 100644 index b3e2c3c0e786e..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/adapter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js deleted file mode 100644 index bf815311d9c30..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js +++ /dev/null @@ -1,833 +0,0 @@ -"use strict"; -// Copyright (c) The Move Contributors -// SPDX-License-Identifier: Apache-2.0 -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Runtime = exports.ExecutionResult = exports.RuntimeEvents = void 0; -const events_1 = require("events"); -const crypto = __importStar(require("crypto")); -const fs = __importStar(require("fs")); -const path = __importStar(require("path")); -const toml_1 = __importDefault(require("toml")); -const source_map_utils_1 = require("./source_map_utils"); -const trace_utils_1 = require("./trace_utils"); -/** - * Events emitted by the runtime during trace viewing session. - */ -var RuntimeEvents; -(function (RuntimeEvents) { - /** - * Stop after step/next action is performed. - */ - RuntimeEvents["stopOnStep"] = "stopOnStep"; - /** - * Stop after a line breakpoint is hit. - */ - RuntimeEvents["stopOnLineBreakpoint"] = "stopOnLineBreakpoint"; - /** - * Stop after exception has been encountered. - */ - RuntimeEvents["stopOnException"] = "stopOnException"; - /** - * Finish trace viewing session. - */ - RuntimeEvents["end"] = "end"; -})(RuntimeEvents || (exports.RuntimeEvents = RuntimeEvents = {})); -/** - * Describes result of the execution. - */ -var ExecutionResult; -(function (ExecutionResult) { - ExecutionResult[ExecutionResult["Ok"] = 0] = "Ok"; - ExecutionResult[ExecutionResult["TraceEnd"] = 1] = "TraceEnd"; - ExecutionResult[ExecutionResult["Exception"] = 2] = "Exception"; -})(ExecutionResult || (exports.ExecutionResult = ExecutionResult = {})); -/** - * The runtime for viewing traces. - */ -class Runtime extends events_1.EventEmitter { - /** - * Trace being viewed. - */ - trace = { - events: [], - localLifetimeEnds: new Map(), - tracedLines: new Map() - }; - /** - * Index of the current trace event being processed. - */ - eventIndex = 0; - /** - * Current frame stack. - */ - frameStack = { frames: [] }; - /** - * Map of file hashes to file info. - */ - filesMap = new Map(); - /** - * Map of line breakpoints, keyed on a file path. - */ - lineBreakpoints = new Map(); - /** - * Start a trace viewing session and set up the initial state of the runtime. - * - * @param source path to the Move source file whose traces are to be viewed. - * @param traceInfo trace selected for viewing. - * @throws Error with a descriptive error message if starting runtime has failed. - * - */ - async start(source, traceInfo, stopOnEntry) { - const pkgRoot = await findPkgRoot(source); - if (!pkgRoot) { - throw new Error(`Cannot find package root for file: ${source}`); - } - const manifest_path = path.join(pkgRoot, 'Move.toml'); - // find package name from manifest file which corresponds `build` directory's subdirectory - // name containing this package's build files - const pkg_name = getPkgNameFromManifest(manifest_path); - if (!pkg_name) { - throw Error(`Cannot find package name in manifest file: ${manifest_path}`); - } - // create file maps for all files in the `build` directory, including both package source - // files and source files for dependencies - this.hashToFileMap(path.join(pkgRoot, 'build', pkg_name, 'sources')); - // update with files from the actual "sources" directory rather than from the "build" directory - this.hashToFileMap(path.join(pkgRoot, 'sources')); - // create source maps for all modules in the `build` directory - const sourceMapsModMap = (0, source_map_utils_1.readAllSourceMaps)(path.join(pkgRoot, 'build', pkg_name, 'source_maps'), this.filesMap); - // reconstruct trace file path from trace info - const traceFilePath = path.join(pkgRoot, 'traces', traceInfo.replace(/:/g, '_') + '.json'); - // create a mapping from file hash to its corresponding source map - const sourceMapsHashMap = new Map; - for (const [_, sourceMap] of sourceMapsModMap) { - sourceMapsHashMap.set(sourceMap.fileHash, sourceMap); - } - this.trace = (0, trace_utils_1.readTrace)(traceFilePath, sourceMapsModMap, sourceMapsHashMap, this.filesMap); - // start trace viewing session with the first trace event - this.eventIndex = 0; - // setup frame stack with the first frame - const currentEvent = this.trace.events[this.eventIndex]; - if (currentEvent.type !== trace_utils_1.TraceEventKind.OpenFrame) { - throw new Error(`First event in trace is not an OpenFrame event`); - } - const newFrame = this.newStackFrame(currentEvent.id, currentEvent.name, currentEvent.fileHash, currentEvent.localsTypes, currentEvent.localsNames, currentEvent.optimizedLines); - this.frameStack = { - frames: [newFrame] - }; - this.step(/* next */ false, /* stopAtCloseFrame */ false); - } - /** - * Handles "get current stack" adapter action. - * - * @returns current frame stack. - */ - stack() { - return this.frameStack; - } - /** - * Handles step/next adapter action. - * - * @param next determines if it's `next` (or otherwise `step`) action. - * @param stopAtCloseFrame determines if the action should stop at `CloseFrame` event - * (rather then proceed to the following instruction). - * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we - * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. - * @throws Error with a descriptive error message if the step event cannot be handled. - */ - step(next, stopAtCloseFrame) { - this.eventIndex++; - if (this.eventIndex >= this.trace.events.length) { - this.sendEvent(RuntimeEvents.stopOnStep); - return ExecutionResult.TraceEnd; - } - let currentEvent = this.trace.events[this.eventIndex]; - if (currentEvent.type === trace_utils_1.TraceEventKind.Instruction) { - const stackHeight = this.frameStack.frames.length; - if (stackHeight <= 0) { - throw new Error('No frame on the stack when processing Instruction event on line: ' - + currentEvent.loc.line - + ' in column: ' - + currentEvent.loc.column); - } - const currentFrame = this.frameStack.frames[stackHeight - 1]; - // remember last call instruction line before it (potentially) changes - // in the `instruction` call below - const lastCallInstructionLine = currentFrame.lastCallInstructionLine; - let [sameLine, currentLine] = this.instruction(currentFrame, currentEvent); - // do not attempt to skip events on the same line if the previous event - // was a switch to/from an inlined frame - we want execution to stop before - // the first instruction of the inlined frame is processed - const prevEvent = this.trace.events[this.eventIndex - 1]; - sameLine = sameLine && - !(prevEvent.type === trace_utils_1.TraceEventKind.ReplaceInlinedFrame - || prevEvent.type === trace_utils_1.TraceEventKind.OpenFrame && prevEvent.id < 0 - || prevEvent.type === trace_utils_1.TraceEventKind.CloseFrame && prevEvent.id < 0); - if (sameLine) { - if (!next && (currentEvent.kind === trace_utils_1.TraceInstructionKind.CALL - || currentEvent.kind === trace_utils_1.TraceInstructionKind.CALL_GENERIC) - && lastCallInstructionLine === currentLine) { - // We are about to step into another call on the same line - // but we should wait for user action to do so rather than - // having debugger step into it automatically. If we don't - // the user will observe a weird effect. For example, - // consider the following code: - // ``` - // foo(); - // assert(bar() == baz()); - // ``` - // In the code above, after executing `foo()`, the user - // will move to the next line and will expect to only - // step into `bar` rather than having debugger to step - // immediately into `baz` as well. At the same time, - // if the user intended to step over functions using `next`, - // we should skip over all calls on the same line (both `bar` - // and `baz` in the example above). - // - // The following explains a bit more formally what needs - // to happen both on on `next` and `step` actions when - // call and non-call instructions are interleaved: - // - // When `step` is called: - // - // When there is only one call on the same line, we want to - // stop on the first instruction of this line, then after - // user `step` action enter the call, and then after - // exiting the call go to the instruction on the next line: - // 6: instruction - // 7: instruction // stop here - // 7: call // enter call here - // 7: instruction - // 8: instruction // stop here - // - // When there is more than one call on the same line, we - // want to stop on the first instruction of this line, - // then after user `step` action enter the call, then - // after exiting the call stop on the next call instruction - // and wait for another `step` action from the user: - // 6: instruction - // 7: instruction // stop here - // 7: call // enter call here - // 7: instruction - // 7: call // stop and then enter call here - // 7: instruction - // 8: instruction // stop here - // - // When `next` is called, things have to happen differently, - // particularly when there are multiple calls on the same line: - // 6: instruction - // 7: instruction // stop here - // 7: call - // 7: instruction - // 7: call - // 7: instruction - // 8: instruction // stop here - // - // To support this, we need to keep track of the line number when - // the last call instruction in a give frame happened, and - // also we need to make `stepOut` aware of whether it is executed - // as part of `next` (which is how `next` is implemented) or not. - this.sendEvent(RuntimeEvents.stopOnStep); - return ExecutionResult.Ok; - } - else { - return this.step(next, stopAtCloseFrame); - } - } - this.sendEvent(RuntimeEvents.stopOnStep); - return ExecutionResult.Ok; - } - else if (currentEvent.type === trace_utils_1.TraceEventKind.ReplaceInlinedFrame) { - let currentFrame = this.frameStack.frames.pop(); - if (!currentFrame) { - throw new Error('No frame to pop when processing `ReplaceInlinedFrame` event'); - } - currentFrame.fileHash = currentEvent.fileHash; - currentFrame.optimizedLines = currentEvent.optimizedLines; - const currentFile = this.filesMap.get(currentFrame.fileHash); - if (!currentFile) { - throw new Error('Cannot find file with hash ' - + currentFrame.fileHash - + ' when processing `ReplaceInlinedFrame` event'); - } - currentFrame.file = currentFile.path; - this.frameStack.frames.push(currentFrame); - return this.step(next, stopAtCloseFrame); - } - else if (currentEvent.type === trace_utils_1.TraceEventKind.OpenFrame) { - // if function is native then the next event will be CloseFrame - if (currentEvent.isNative) { - // see if native function aborted - if (this.trace.events.length > this.eventIndex + 1) { - const nextEvent = this.trace.events[this.eventIndex + 1]; - if (nextEvent.type === trace_utils_1.TraceEventKind.Effect && - nextEvent.effect.type === trace_utils_1.TraceEffectKind.ExecutionError) { - this.sendEvent(RuntimeEvents.stopOnException, nextEvent.effect.msg); - return ExecutionResult.Exception; - } - } - // if native function executed successfully, then the next event - // should be CloseFrame - if (this.trace.events.length <= this.eventIndex + 1 || - this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.CloseFrame) { - throw new Error('Expected an CloseFrame event after native OpenFrame event'); - } - // skip over CloseFrame as there is no frame to pop - this.eventIndex++; - return this.step(next, stopAtCloseFrame); - } - // create a new frame and push it onto the stack - const newFrame = this.newStackFrame(currentEvent.id, currentEvent.name, currentEvent.fileHash, currentEvent.localsTypes, currentEvent.localsNames, currentEvent.optimizedLines); - // set values of parameters in the new frame - this.frameStack.frames.push(newFrame); - for (let i = 0; i < currentEvent.paramValues.length; i++) { - localWrite(newFrame, i, currentEvent.paramValues[i]); - } - if (next) { - // step out of the frame right away - return this.stepOut(next); - } - else { - return this.step(next, stopAtCloseFrame); - } - } - else if (currentEvent.type === trace_utils_1.TraceEventKind.CloseFrame) { - if (stopAtCloseFrame) { - // don't do anything as the caller needs to inspect - // the event before proceeding - return ExecutionResult.Ok; - } - else { - // pop the top frame from the stack - if (this.frameStack.frames.length <= 0) { - throw new Error('No frame to pop at CloseFrame event with ID: ' - + currentEvent.id); - } - this.frameStack.frames.pop(); - return this.step(next, stopAtCloseFrame); - } - } - else if (currentEvent.type === trace_utils_1.TraceEventKind.Effect) { - const effect = currentEvent.effect; - if (effect.type === trace_utils_1.TraceEffectKind.ExecutionError) { - this.sendEvent(RuntimeEvents.stopOnException, effect.msg); - return ExecutionResult.Exception; - } - if (effect.type === trace_utils_1.TraceEffectKind.Write) { - const traceLocation = effect.loc; - const traceValue = effect.value; - const frame = this.frameStack.frames.find(frame => frame.id === traceLocation.frameID); - if (!frame) { - throw new Error('Cannot find frame with ID: ' - + traceLocation.frameID - + ' when processing Write effect for local variable at index: ' - + traceLocation.localIndex); - } - localWrite(frame, traceLocation.localIndex, traceValue); - } - return this.step(next, stopAtCloseFrame); - } - else { - // ignore other events - return this.step(next, stopAtCloseFrame); - } - } - /** - * Handles "step out" adapter action. - * - * @param next determines if it's part of `next` (or otherwise `step`) action. - * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we - * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. - * @throws Error with a descriptive error message if the step out event cannot be handled. - */ - stepOut(next) { - const stackHeight = this.frameStack.frames.length; - if (stackHeight <= 1) { - // do nothing as there is no frame to step out to - this.sendEvent(RuntimeEvents.stopOnStep); - return ExecutionResult.Ok; - } - // newest frame is at the top of the stack - const currentFrame = this.frameStack.frames[stackHeight - 1]; - let currentEvent = this.trace.events[this.eventIndex]; - // skip all events until the corresponding CloseFrame event, - // pop the top frame from the stack, and proceed to the next event - while (true) { - // when calling `step` in the loop below, we need to avoid - // skipping over calls next-style otherwise we can miss seeing - // the actual close frame event that we are looking for - // and have the loop execute too far - const executionResult = this.step(/* next */ false, /* stopAtCloseFrame */ true); - if (executionResult === ExecutionResult.Exception) { - return executionResult; - } - if (executionResult === ExecutionResult.TraceEnd) { - throw new Error('Cannot find corresponding CloseFrame event for function: ' + - currentFrame.name); - } - currentEvent = this.trace.events[this.eventIndex]; - if (currentEvent.type === trace_utils_1.TraceEventKind.CloseFrame) { - const currentFrameID = currentFrame.id; - // `step` call finished at the CloseFrame event - // but did not process it so we need pop the frame here - this.frameStack.frames.pop(); - if (currentEvent.id === currentFrameID) { - break; - } - } - } - return this.step(next, /* stopAtCloseFrame */ false); - } - /** - * Handles "continue" adapter action. - * @returns ExecutionResult.Ok if the step action was successful, ExecutionResult.TraceEnd if we - * reached the end of the trace, and ExecutionResult.Exception if an exception was encountered. - * @throws Error with a descriptive error message if the continue event cannot be handled. - */ - continue() { - while (true) { - const executionResult = this.step(/* next */ false, /* stopAtCloseFrame */ false); - if (executionResult === ExecutionResult.TraceEnd || - executionResult === ExecutionResult.Exception) { - return executionResult; - } - let currentEvent = this.trace.events[this.eventIndex]; - if (currentEvent.type === trace_utils_1.TraceEventKind.Instruction) { - const stackHeight = this.frameStack.frames.length; - if (stackHeight <= 0) { - throw new Error('No frame on the stack when processing Instruction event on line: ' - + currentEvent.loc.line - + ' in column: ' - + currentEvent.loc.column); - } - const currentFrame = this.frameStack.frames[stackHeight - 1]; - const breakpoints = this.lineBreakpoints.get(currentFrame.file); - if (!breakpoints) { - continue; - } - if (breakpoints.has(currentEvent.loc.line)) { - this.sendEvent(RuntimeEvents.stopOnLineBreakpoint); - return ExecutionResult.Ok; - } - } - } - } - /** - * Sets line breakpoints for a file (resetting any existing ones). - * - * @param path file path. - * @param lines breakpoints lines. - * @returns array of booleans indicating if a breakpoint was set on a line. - * @throws Error with a descriptive error message if breakpoints cannot be set. - */ - setLineBreakpoints(path, lines) { - const breakpoints = new Set(); - const tracedLines = this.trace.tracedLines.get(path); - // Set all breakpoints to invalid and validate the correct ones in the loop, - // otherwise let them all be invalid if there are no traced lines. - // Valid breakpoints are those that are on lines that have at least - // one instruction in the trace on them. - const validated = lines.map(() => false); - if (tracedLines) { - for (let i = 0; i < lines.length; i++) { - if (tracedLines.has(lines[i])) { - validated[i] = true; - breakpoints.add(lines[i]); - } - } - } - this.lineBreakpoints.set(path, breakpoints); - return validated; - } - /** - * Handles `Instruction` trace event which represents instruction in the current stack frame. - * - * @param instructionEvent `Instruction` trace event. - * @returns `true` if the instruction is on the same line as the one in the current frame, - * `false` otherwise (so that instructions on the same line can be skipped). - * @throws Error with a descriptive error message if instruction event cannot be handled. - */ - instruction(currentFrame, instructionEvent) { - // if current instruction ends lifetime of a local variable, mark this in the - // local variable array - const frameLocalLifetimeEnds = this.trace.localLifetimeEnds.get(currentFrame.id); - if (frameLocalLifetimeEnds) { - const localsLength = currentFrame.locals.length; - for (let i = 0; i < localsLength; i++) { - for (let j = 0; j < currentFrame.locals[i].length; j++) { - if (frameLocalLifetimeEnds[j] === instructionEvent.pc) { - currentFrame.locals[i][j] = undefined; - } - } - } - // trim shadowed scopes that have no live variables in them - for (let i = localsLength - 1; i > 0; i--) { - const liveVar = currentFrame.locals[i].find(runtimeVar => { - return runtimeVar !== undefined; - }); - if (!liveVar) { - currentFrame.locals.pop(); - } - } - } - const loc = instructionEvent.loc; - if (instructionEvent.kind === trace_utils_1.TraceInstructionKind.CALL || - instructionEvent.kind === trace_utils_1.TraceInstructionKind.CALL_GENERIC) { - currentFrame.lastCallInstructionLine = loc.line; - } - if (loc.line === currentFrame.line) { - // so that instructions on the same line can be bypassed - return [true, loc.line]; - } - else { - currentFrame.line = loc.line; - return [false, loc.line]; - } - } - /** - * Creates a new runtime stack frame based on info from the `OpenFrame` trace event. - * - * @param frameID frame identifier from the trace event. - * @param funName function name. - * @param modInfo information about module containing the function. - * @param localsTypes types of local variables in the frame. - * @param localsNames names of local variables in the frame. - * @param optimizedLines lines that are not present in the source map. - * @returns new frame. - * @throws Error with a descriptive error message if frame cannot be constructed. - */ - newStackFrame(frameID, funName, fileHash, localsTypes, localsNames, optimizedLines) { - const currentFile = this.filesMap.get(fileHash); - if (!currentFile) { - throw new Error(`Cannot find file with hash: ${fileHash}`); - } - let locals = []; - // create first scope for local variables - locals[0] = []; - const stackFrame = { - id: frameID, - name: funName, - file: currentFile.path, - fileHash, - line: 0, // line will be updated when next event (Instruction) is processed - localsTypes, - localsNames, - locals, - lastCallInstructionLine: undefined, - optimizedLines - }; - if (this.trace.events.length <= this.eventIndex + 1 || - (this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.Instruction && - this.trace.events[this.eventIndex + 1].type !== trace_utils_1.TraceEventKind.OpenFrame)) { - throw new Error('Expected an Instruction or OpenFrame event after OpenFrame event'); - } - return stackFrame; - } - /** - * Emits an event to the adapter. - * - * @param event string representing the event. - * @param args optional arguments to be passed with the event. - */ - sendEvent(event, ...args) { - setTimeout(() => { - this.emit(event, ...args); - }, 0); - } - /** - * Creates a map from a file hash to file information for all Move source files in a directory. - * - * @param directory path to the directory containing Move source files. - * @param filesMap map to update with file information. - */ - hashToFileMap(directory) { - const processDirectory = (dir) => { - const files = fs.readdirSync(dir); - for (const f of files) { - const filePath = path.join(dir, f); - const stats = fs.statSync(filePath); - if (stats.isDirectory()) { - processDirectory(filePath); - } - else if (path.extname(f) === '.move') { - const content = fs.readFileSync(filePath, 'utf8'); - const numFileHash = computeFileHash(content); - const lines = content.split('\n'); - const fileInfo = { path: filePath, content, lines }; - const fileHash = Buffer.from(numFileHash).toString('base64'); - this.filesMap.set(fileHash, fileInfo); - } - } - }; - processDirectory(directory); - } - // - // Utility functions for testing and debugging. - // - /** - * Whitespace used for indentation in the string representation of the runtime. - */ - singleTab = ' '; - /** - * Returns a string representing the current state of the runtime. - * - * @returns string representation of the runtime. - */ - toString() { - let res = 'current frame stack:\n'; - for (const frame of this.frameStack.frames) { - const fileName = path.basename(frame.file); - res += this.singleTab - + 'function: ' - + frame.name - + ' (' - + fileName - + ':' - + frame.line - + ')\n'; - for (let i = 0; i < frame.locals.length; i++) { - res += this.singleTab + this.singleTab + 'scope ' + i + ' :\n'; - for (let j = 0; j < frame.locals[i].length; j++) { - const local = frame.locals[i][j]; - if (local) { - res += this.varToString(this.singleTab - + this.singleTab - + this.singleTab, local) + '\n'; - } - } - } - } - if (this.lineBreakpoints && this.lineBreakpoints.size > 0) { - res += 'line breakpoints\n'; - for (const [file, breakpoints] of this.lineBreakpoints) { - res += this.singleTab + path.basename(file) + '\n'; - for (const line of breakpoints) { - res += this.singleTab + this.singleTab + line + '\n'; - } - } - } - return res; - } - /** - * Returns a string representation of a runtime variable. - * - * @param variable runtime variable. - * @returns string representation of the variable. - */ - varToString(tabs, variable) { - return this.valueToString(tabs, variable.value, variable.name, variable.type); - } - /** - * Returns a string representation of a runtime compound value. - * - * @param compoundValue runtime compound value. - * @returns string representation of the compound value. - */ - compoundValueToString(tabs, compoundValue) { - const type = compoundValue.variantName - ? compoundValue.type + '::' + compoundValue.variantName - : compoundValue.type; - let res = '(' + type + ') {\n'; - for (const [name, value] of compoundValue.fields) { - res += this.valueToString(tabs + this.singleTab, value, name); - } - res += tabs + '}\n'; - return res; - } - /** - * Returns a string representation of a runtime reference value. - * - * @param refValue runtime reference value. - * @param name name of the variable containing reference value. - * @param type optional type of the variable containing reference value. - * @returns string representation of the reference value. - */ - refValueToString(tabs, refValue, name, type) { - let res = ''; - const frame = this.frameStack.frames.find(frame => frame.id === refValue.loc.frameID); - let local = undefined; - if (!frame) { - return res; - } - for (const scope of frame.locals) { - local = scope[refValue.loc.localIndex]; - if (local) { - break; - } - } - if (!local) { - return res; - } - return this.valueToString(tabs, local.value, name, type); - } - /** - * Returns a string representation of a runtime value. - * - * @param value runtime value. - * @param name name of the variable containing the value. - * @param type optional type of the variable containing the value. - * @returns string representation of the value. - */ - valueToString(tabs, value, name, type) { - let res = ''; - if (typeof value === 'string') { - res += tabs + name + ' : ' + value + '\n'; - if (type) { - res += tabs + 'type: ' + type + '\n'; - } - } - else if (Array.isArray(value)) { - res += tabs + name + ' : [\n'; - for (let i = 0; i < value.length; i++) { - res += this.valueToString(tabs + this.singleTab, value[i], String(i)); - } - res += tabs + ']\n'; - if (type) { - res += tabs + 'type: ' + type + '\n'; - } - return res; - } - else if ('fields' in value) { - res += tabs + name + ' : ' + this.compoundValueToString(tabs, value); - if (type) { - res += tabs + 'type: ' + type + '\n'; - } - } - else { - res += this.refValueToString(tabs, value, name, type); - } - return res; - } -} -exports.Runtime = Runtime; -/** - * Handles a write to a local variable in a stack frame. - * - * @param frame stack frame frame. - * @param localIndex variable index in the frame. - * @param runtimeValue variable value. - */ -function localWrite(frame, localIndex, value) { - const type = frame.localsTypes[localIndex]; - if (!type) { - throw new Error('Cannot find type for local variable at index: ' - + localIndex - + ' in function: ' - + frame.name); - } - const name = frame.localsNames[localIndex]; - if (!name) { - throw new Error('Cannot find local variable at index: ' - + localIndex - + ' in function: ' - + frame.name); - } - if (name.includes('%')) { - // don't show "artificial" variables generated by the compiler - // for enum and macro execution as they would be quite confusing - // for the user without knowing compilation internals - return; - } - const scopesCount = frame.locals.length; - if (scopesCount <= 0) { - throw new Error("There should be at least one variable scope in function" - + frame.name); - } - // If a variable has the same name but a different index (it is shadowed) - // it has to be put in a different scope (e.g., locals[1], locals[2], etc.). - // Find scope already containing variable name, if any, starting from - // the outermost one - let existingVarScope = -1; - for (let i = scopesCount - 1; i >= 0; i--) { - const existingVarIndex = frame.locals[i].findIndex(runtimeVar => { - return runtimeVar && runtimeVar.name === name; - }); - if (existingVarIndex !== -1 && existingVarIndex !== localIndex) { - existingVarScope = i; - break; - } - } - if (existingVarScope >= 0) { - const shadowedScope = frame.locals[existingVarScope + 1]; - if (!shadowedScope) { - frame.locals.push([]); - } - frame.locals[existingVarScope + 1][localIndex] = { name, value, type }; - } - else { - // put variable in the "main" locals scope - frame.locals[0][localIndex] = { name, value, type }; - } -} -/** - * Finds the root directory of the package containing the active file. - * - * @param active_file_path path to a file active in the editor. - * @returns root directory of the package containing the active file. - */ -async function findPkgRoot(active_file_path) { - const containsManifest = (dir) => { - const filesInDir = fs.readdirSync(dir); - return filesInDir.includes('Move.toml'); - }; - const activeFileDir = path.dirname(active_file_path); - let currentDir = activeFileDir; - while (currentDir !== path.parse(currentDir).root) { - if (containsManifest(currentDir)) { - return currentDir; - } - currentDir = path.resolve(currentDir, '..'); - } - if (containsManifest(currentDir)) { - return currentDir; - } - return undefined; -} -/** - * Find the package name in the manifest file. - * - * @param pkgRoot root directory of the package. - * @returns package name. - */ -function getPkgNameFromManifest(pkgRoot) { - const manifest = fs.readFileSync(pkgRoot, 'utf8'); - const parsedManifest = toml_1.default.parse(manifest); - const packageName = parsedManifest.package.name; - return packageName; -} -/** - * Computes the SHA-256 hash of a file's contents. - * - * @param fileContents contents of the file. - */ -function computeFileHash(fileContents) { - const hash = crypto.createHash('sha256').update(fileContents).digest(); - return new Uint8Array(hash); -} -//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map deleted file mode 100644 index 1ce2050bc4436..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/runtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js deleted file mode 100644 index a5a5e70640016..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const debugadapter_1 = require("@vscode/debugadapter"); -const adapter_1 = require("./adapter"); -// Run the MoveDebugSession debug adapter using stdio -debugadapter_1.DebugSession.run(adapter_1.MoveDebugSession); -//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map deleted file mode 100644 index 4ed822d0f02de..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/server.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AAAA,uDAAoD;AACpD,uCAA6C;AAE7C,qDAAqD;AACrD,2BAAY,CAAC,GAAG,CAAC,0BAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js deleted file mode 100644 index 74d1b03e31bd1..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js +++ /dev/null @@ -1,253 +0,0 @@ -"use strict"; -// Copyright (c) The Move Contributors -// SPDX-License-Identifier: Apache-2.0 -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.readAllSourceMaps = readAllSourceMaps; -const fs = __importStar(require("fs")); -const path = __importStar(require("path")); -function readAllSourceMaps(directory, filesMap) { - const sourceMapsMap = new Map(); - const allSourceMapLinesMap = new Map; - const processDirectory = (dir) => { - const files = fs.readdirSync(dir); - for (const f of files) { - const filePath = path.join(dir, f); - const stats = fs.statSync(filePath); - if (stats.isDirectory()) { - processDirectory(filePath); - } - else if (path.extname(f) === '.json') { - const sourceMap = readSourceMap(filePath, filesMap, allSourceMapLinesMap); - sourceMapsMap.set(JSON.stringify(sourceMap.modInfo), sourceMap); - } - } - }; - processDirectory(directory); - for (const sourceMap of sourceMapsMap.values()) { - const fileHash = sourceMap.fileHash; - const sourceMapLines = allSourceMapLinesMap.get(fileHash); - const fileInfo = filesMap.get(fileHash); - if (sourceMapLines && fileInfo) { - for (let i = 0; i < fileInfo.lines.length; i++) { - if (!sourceMapLines.has(i + 1)) { // allSourceMapLines is 1-based - sourceMap.optimizedLines.push(i); // result must be 0-based - } - } - } - } - return sourceMapsMap; -} -/** - * Reads a Move VM source map from a JSON file. - * - * @param sourceMapPath path to the source map JSON file. - * @param filesMap map from file hash to file information. - * @param sourceMapLinesMap map from file hash to set of lines present - * in all source maps for a given file (a given source map may contain - * source lines for different files due to inlining). - * @returns source map. - * @throws Error if with a descriptive error message if the source map cannot be read. - */ -function readSourceMap(sourceMapPath, filesMap, sourceMapLinesMap) { - const sourceMapJSON = JSON.parse(fs.readFileSync(sourceMapPath, 'utf8')); - const fileHash = Buffer.from(sourceMapJSON.definition_location.file_hash).toString('base64'); - const modInfo = { - addr: sourceMapJSON.module_name[0], - name: sourceMapJSON.module_name[1] - }; - const functions = new Map(); - const fileInfo = filesMap.get(fileHash); - if (!fileInfo) { - throw new Error('Could not find file with hash: ' - + fileHash - + ' when processing source map at: ' - + sourceMapPath); - } - const sourceMapLines = sourceMapLinesMap.get(fileHash) ?? new Set; - prePopulateSourceMapLines(sourceMapJSON, fileInfo, sourceMapLines); - sourceMapLinesMap.set(fileHash, sourceMapLines); - const functionMap = sourceMapJSON.function_map; - for (const funEntry of Object.values(functionMap)) { - let nameStart = funEntry.definition_location.start; - let nameEnd = funEntry.definition_location.end; - const funName = fileInfo.content.slice(nameStart, nameEnd); - const pcLocs = []; - let prevPC = 0; - // we need to initialize `prevFileLoc` to make the compiler happy but it's never - // going to be used as the first PC in the frame is always 0 so the inner - // loop never gets executed during first iteration of the outer loop - let prevLoc = { - fileHash: "", - loc: { line: -1, column: -1 } - }; - // create a list of locations for each PC, even those not explicitly listed - // in the source map - for (const [pc, defLocation] of Object.entries(funEntry.code_map)) { - const currentPC = parseInt(pc); - const defLocFileHash = Buffer.from(defLocation.file_hash).toString('base64'); - const fileInfo = filesMap.get(defLocFileHash); - if (!fileInfo) { - throw new Error('Could not find file with hash: ' - + fileHash - + ' when processing source map at: ' - + sourceMapPath); - } - const currentStartLoc = byteOffsetToLineColumn(fileInfo, defLocation.start); - const currentFileStartLoc = { - fileHash: defLocFileHash, - loc: currentStartLoc - }; - const sourceMapLines = sourceMapLinesMap.get(defLocFileHash) ?? new Set; - sourceMapLines.add(currentStartLoc.line); - // add the end line to the set as well even if we don't need it for pcLocs - const currentEndLoc = byteOffsetToLineColumn(fileInfo, defLocation.end); - sourceMapLines.add(currentEndLoc.line); - sourceMapLinesMap.set(defLocFileHash, sourceMapLines); - for (let i = prevPC + 1; i < currentPC; i++) { - pcLocs.push(prevLoc); - } - pcLocs.push(currentFileStartLoc); - prevPC = currentPC; - prevLoc = currentFileStartLoc; - } - const localsNames = []; - for (const param of funEntry.parameters) { - const paramName = param[0].split("#")[0]; - if (!paramName) { - localsNames.push(param[0]); - } - else { - localsNames.push(paramName); - } - } - for (const local of funEntry.locals) { - const localsName = local[0].split("#")[0]; - if (!localsName) { - localsNames.push(local[0]); - } - else { - localsNames.push(localsName); - } - } - // compute start and end of function definition - const startLoc = byteOffsetToLineColumn(fileInfo, funEntry.location.start); - const endLoc = byteOffsetToLineColumn(fileInfo, funEntry.location.end); - functions.set(funName, { pcLocs, localsNames, startLoc, endLoc }); - } - return { filePath: fileInfo.path, fileHash, modInfo, functions, optimizedLines: [] }; -} -/** - * Pre-populates the set of source file lines that are present in the source map - * with lines corresponding to the definitions of module, structs, enums, and functions - * (excluding location of instructions in the function body which are handled elsewhere). - * Constants do not have location information in the source map and must be handled separately. - * - * @param sourceMapJSON - * @param fileInfo - * @param sourceMapLines - */ -function prePopulateSourceMapLines(sourceMapJSON, fileInfo, sourceMapLines) { - addLinesForLocation(sourceMapJSON.definition_location, fileInfo, sourceMapLines); - const structMap = sourceMapJSON.struct_map; - for (const structEntry of Object.values(structMap)) { - addLinesForLocation(structEntry.definition_location, fileInfo, sourceMapLines); - for (const typeParam of structEntry.type_parameters) { - addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); - } - for (const fieldDef of structEntry.fields) { - addLinesForLocation(fieldDef, fileInfo, sourceMapLines); - } - } - const enumMap = sourceMapJSON.enum_map; - for (const enumEntry of Object.values(enumMap)) { - addLinesForLocation(enumEntry.definition_location, fileInfo, sourceMapLines); - for (const typeParam of enumEntry.type_parameters) { - addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); - } - for (const variant of enumEntry.variants) { - addLinesForLocation(variant[0][1], fileInfo, sourceMapLines); - for (const fieldDef of variant[1]) { - addLinesForLocation(fieldDef, fileInfo, sourceMapLines); - } - } - } - const functionMap = sourceMapJSON.function_map; - for (const funEntry of Object.values(functionMap)) { - addLinesForLocation(funEntry.definition_location, fileInfo, sourceMapLines); - for (const typeParam of funEntry.type_parameters) { - addLinesForLocation(typeParam[1], fileInfo, sourceMapLines); - } - for (const param of funEntry.parameters) { - addLinesForLocation(param[1], fileInfo, sourceMapLines); - } - for (const local of funEntry.locals) { - addLinesForLocation(local[1], fileInfo, sourceMapLines); - } - } -} -/** - * Adds source file lines for the given location to the set. - * - * @param loc location in the source file. - * @param fileInfo source file information. - * @param sourceMapLines set of source file lines. - */ -function addLinesForLocation(loc, fileInfo, sourceMapLines) { - const startLine = byteOffsetToLineColumn(fileInfo, loc.start).line; - sourceMapLines.add(startLine); - const endLine = byteOffsetToLineColumn(fileInfo, loc.end).line; - sourceMapLines.add(endLine); -} -/** - * Computes source file location (line/colum) from the byte offset - * (assumes that lines and columns are 1-based). - * - * @param fileInfo source file information. - * @param offset byte offset in the source file. - * @returns Source file location (line/column). - */ -function byteOffsetToLineColumn(fileInfo, offset) { - if (offset < 0) { - return { line: 1, column: 1 }; - } - const lines = fileInfo.lines; - if (offset >= fileInfo.content.length) { - return { line: lines.length, column: lines[lines.length - 1].length + 1 /* 1-based */ }; - } - let accumulatedLength = 0; - for (let lineNumber = 0; lineNumber < lines.length; lineNumber++) { - const lineLength = lines[lineNumber].length + 1; // +1 for the newline character - if (accumulatedLength + lineLength > offset) { - return { - line: lineNumber + 1, // 1-based - column: offset - accumulatedLength + 1 // 1-based - }; - } - accumulatedLength += lineLength; - } - return { line: lines.length, column: lines[lines.length - 1].length + 1 /* 1-based */ }; -} -//# sourceMappingURL=source_map_utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map deleted file mode 100644 index b33878e7f0a15..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/source_map_utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"source_map_utils.js","sourceRoot":"","sources":["../src/source_map_utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js deleted file mode 100644 index d8a70776cf9d2..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js +++ /dev/null @@ -1,687 +0,0 @@ -"use strict"; -// Copyright (c) The Move Contributors -// SPDX-License-Identifier: Apache-2.0 -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TraceEffectKind = exports.TraceEventKind = exports.TraceInstructionKind = void 0; -exports.readTrace = readTrace; -exports.traceEventsToString = traceEventsToString; -const fs = __importStar(require("fs")); -const utils_1 = require("./utils"); -var JSONTraceRefType; -(function (JSONTraceRefType) { - JSONTraceRefType["Mut"] = "Mut"; - JSONTraceRefType["Imm"] = "Imm"; -})(JSONTraceRefType || (JSONTraceRefType = {})); -// Runtime data types. -/** - * Kind of instruction in the trace. Enum member names correspond to instruction names. - * (other than UNKNOWN which is used for instructions whose kind does not matter). - */ -var TraceInstructionKind; -(function (TraceInstructionKind) { - /** - * Call instruction. - */ - TraceInstructionKind[TraceInstructionKind["CALL"] = 0] = "CALL"; - /** - * Generic call instruction. - */ - TraceInstructionKind[TraceInstructionKind["CALL_GENERIC"] = 1] = "CALL_GENERIC"; - // for now we don't care about other kinds of instructions - TraceInstructionKind[TraceInstructionKind["UNKNOWN"] = 2] = "UNKNOWN"; -})(TraceInstructionKind || (exports.TraceInstructionKind = TraceInstructionKind = {})); -/** - * Kind of a trace event. - */ -var TraceEventKind; -(function (TraceEventKind) { - /** - * Artificial event to replace the content of the current inlined frame - * with the content of another frame. This is to make sure that there is - * only one inlined frame on the stack at any given time as inlined frames - * are not being pushed and popped symmetrically and need to be handled - * differently than regular frames. - */ - TraceEventKind[TraceEventKind["ReplaceInlinedFrame"] = 0] = "ReplaceInlinedFrame"; - TraceEventKind[TraceEventKind["OpenFrame"] = 1] = "OpenFrame"; - TraceEventKind[TraceEventKind["CloseFrame"] = 2] = "CloseFrame"; - TraceEventKind[TraceEventKind["Instruction"] = 3] = "Instruction"; - TraceEventKind[TraceEventKind["Effect"] = 4] = "Effect"; -})(TraceEventKind || (exports.TraceEventKind = TraceEventKind = {})); -/** - * Kind of an effect of an instruction. - */ -var TraceEffectKind; -(function (TraceEffectKind) { - TraceEffectKind["Write"] = "Write"; - TraceEffectKind["ExecutionError"] = "ExecutionError"; - // TODO: other effect types -})(TraceEffectKind || (exports.TraceEffectKind = TraceEffectKind = {})); -/** - * An ID of a virtual frame representing a macro defined in the same file - * where it is inlined. - */ -const INLINED_FRAME_ID_SAME_FILE = -1; -/** - * An ID of a virtual frame representing a macro defined in a different file - * than file where it is inlined. - */ -const INLINED_FRAME_ID_DIFFERENT_FILE = -2; -/** - * Reads a Move VM execution trace from a JSON file. - * - * @param traceFilePath path to the trace JSON file. - * @param sourceMapsModMap a map from stringified module info to a source map. - * @param sourceMapsHashMap a map from file hash to a source map. - * @returns execution trace. - * @throws Error with a descriptive error message if reading trace has failed. - */ -function readTrace(traceFilePath, sourceMapsModMap, sourceMapsHashMap, filesMap) { - const traceJSON = JSON.parse(fs.readFileSync(traceFilePath, 'utf8')); - if (traceJSON.events.length === 0) { - throw new Error('Trace contains no events'); - } - const events = []; - // We compute the end of lifetime for a local variable as follows. - // When a given local variable is read or written in an effect, we set the end of its lifetime - // to FRAME_LIFETIME. When a new instruction is executed, we set the end of its lifetime - // to be the PC of this instruction. The caveat here is that we must use - // the largest PC of all encountered instructions for this to avoid incorrectly - // setting the end of lifetime to a smaller PC in case of a loop. - // - // For example, consider the following code: - // ``` - // while (x < foo()) { - // x = x + 1; - // } - // ``` - // In this case (simplifying a bit), `x` should be live throughout - // (unrolled in the trace) iterations of the loop. However, the last - // instruction executed after `x` is accessed for the last time - // will be `foo` whose PC is lower than PCs of instructions in/beyond - // the loop - const localLifetimeEnds = new Map(); - const localLifetimeEndsMax = new Map(); - const tracedLines = new Map(); - // stack of frame infos OpenFrame and popped on CloseFrame - const frameInfoStack = []; - for (const event of traceJSON.events) { - if (event.OpenFrame) { - const localsTypes = []; - const frame = event.OpenFrame.frame; - for (const type of frame.locals_types) { - localsTypes.push(JSONTraceTypeToString(type.type_, type.ref_type)); - } - // process parameters - store their values in trace and set their - // initial lifetimes - const paramValues = []; - const lifetimeEnds = localLifetimeEnds.get(frame.frame_id) || []; - for (let i = 0; i < frame.parameters.length; i++) { - const value = frame.parameters[i]; - if (value) { - const runtimeValue = 'RuntimeValue' in value - ? traceRuntimeValueFromJSON(value.RuntimeValue.value) - : traceRefValueFromJSON(value); - paramValues.push(runtimeValue); - lifetimeEnds[i] = utils_1.FRAME_LIFETIME; - } - } - localLifetimeEnds.set(frame.frame_id, lifetimeEnds); - const modInfo = { - addr: frame.module.address, - name: frame.module.name - }; - const sourceMap = sourceMapsModMap.get(JSON.stringify(modInfo)); - if (!sourceMap) { - throw new Error('Source map for module ' - + modInfo.name - + ' in package ' - + modInfo.addr - + ' not found'); - } - const funEntry = sourceMap.functions.get(frame.function_name); - if (!funEntry) { - throw new Error('Cannot find function entry in source map for function ' - + frame.function_name - + ' when processing OpenFrame event'); - } - events.push({ - type: TraceEventKind.OpenFrame, - id: frame.frame_id, - name: frame.function_name, - fileHash: sourceMap.fileHash, - isNative: frame.is_native, - localsTypes, - localsNames: funEntry.localsNames, - paramValues, - optimizedLines: sourceMap.optimizedLines - }); - const currentFile = filesMap.get(sourceMap.fileHash); - if (!currentFile) { - throw new Error(`Cannot find file with hash: ${sourceMap.fileHash}`); - } - frameInfoStack.push({ - ID: frame.frame_id, - pcLocs: funEntry.pcLocs, - filePath: currentFile.path, - fileHash: sourceMap.fileHash, - optimizedLines: sourceMap.optimizedLines, - funName: frame.function_name, - funEntry - }); - } - else if (event.CloseFrame) { - events.push({ - type: TraceEventKind.CloseFrame, - id: event.CloseFrame.frame_id - }); - frameInfoStack.pop(); - } - else if (event.Instruction) { - const name = event.Instruction.instruction; - let frameInfo = frameInfoStack[frameInfoStack.length - 1]; - const fid = frameInfo.ID; - const pcLocs = frameInfo.pcLocs; - // if map does not contain an entry for a PC that can be found in the trace file, - // it means that the position of the last PC in the source map should be used - let instLoc = event.Instruction.pc >= pcLocs.length - ? pcLocs[pcLocs.length - 1] - : pcLocs[event.Instruction.pc]; - if (!instLoc) { - throw new Error('Cannot find location for PC: ' - + event.Instruction.pc - + ' in frame: ' - + fid); - } - const differentFileVirtualFramePop = processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, event.Instruction.pc, instLoc); - if (differentFileVirtualFramePop) { - // if we pop a virtual frame for a macro defined in a different file, - // we may still land in a macro defined in the same file, in which case - // we need to push another virtual frame for this instruction right away - processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, event.Instruction.pc, instLoc); - } - // re-read frame info as it may have changed as a result of processing - // and inlined call - frameInfo = frameInfoStack[frameInfoStack.length - 1]; - const filePath = frameInfo.filePath; - const lines = tracedLines.get(filePath) || new Set(); - // floc is still good as the pc_locs used for its computation - // do not change as a result of processing inlined frames - lines.add(instLoc.loc.line); - tracedLines.set(filePath, lines); - events.push({ - type: TraceEventKind.Instruction, - pc: event.Instruction.pc, - loc: instLoc.loc, - kind: name in TraceInstructionKind - ? TraceInstructionKind[name] - : TraceInstructionKind.UNKNOWN - }); - // Set end of lifetime for all locals to the max instruction PC ever seen - // for a given local (if they are live after this instructions, they will - // be reset to FRAME_LIFETIME when processing subsequent effects). - // All instructions in a given function, regardless of whether they are - // in the inlined portion of the code or not, reset variable lifetimes. - const nonInlinedFrameID = frameInfo.ID !== INLINED_FRAME_ID_SAME_FILE && - frameInfo.ID !== INLINED_FRAME_ID_DIFFERENT_FILE - ? frameInfo.ID - : frameInfoStack[frameInfoStack.length - 2].ID; - const lifetimeEnds = localLifetimeEnds.get(nonInlinedFrameID) || []; - const lifetimeEndsMax = localLifetimeEndsMax.get(nonInlinedFrameID) || []; - for (let i = 0; i < lifetimeEnds.length; i++) { - if (lifetimeEnds[i] === undefined || lifetimeEnds[i] === utils_1.FRAME_LIFETIME) { - // only set new end of lifetime if it has not been set before - // or if variable is live - const pc = event.Instruction.pc; - if (lifetimeEndsMax[i] === undefined || lifetimeEndsMax[i] < pc) { - lifetimeEnds[i] = pc; - lifetimeEndsMax[i] = pc; - } - } - } - localLifetimeEnds.set(nonInlinedFrameID, lifetimeEnds); - localLifetimeEndsMax.set(nonInlinedFrameID, lifetimeEndsMax); - } - else if (event.Effect) { - const effect = event.Effect; - if (effect.Write || effect.Read) { - // if a local is read or written, set its end of lifetime - // to infinite (end of frame) - const location = effect.Write ? effect.Write.location : effect.Read.location; - const loc = processJSONLocalLocation(location, localLifetimeEnds); - if (effect.Write) { - if (loc !== undefined) { - // Process a write only if the location is supported. - // We can see global location here in some cases when source-level - // assignment does not involve an explicit local variable, along - // the lines of: - // - // field::borrow_mut(...).next = ... - const value = 'RuntimeValue' in effect.Write.root_value_after_write - ? traceRuntimeValueFromJSON(effect.Write.root_value_after_write.RuntimeValue.value) - : traceRefValueFromJSON(effect.Write.root_value_after_write); - events.push({ - type: TraceEventKind.Effect, - effect: { - type: TraceEffectKind.Write, - loc, - value - } - }); - } - } - } - if (effect.ExecutionError) { - events.push({ - type: TraceEventKind.Effect, - effect: { - type: TraceEffectKind.ExecutionError, - msg: effect.ExecutionError - } - }); - } - } - } - return { events, localLifetimeEnds, tracedLines }; -} -/** - * Additional processing of an instruction if it's detected that it belongs - * to an inlined macro. If this is the case, then virtual frames may be pushed - * to the stack or popped from it. - * - * @param sourceMapsHashMap a map from file hash to a source map. - * @param events trace events. - * @param frameInfoStack stack of frame infos used during trace generation. - * @param instPC PC of the instruction. - * @param instLoc location of the instruction. - * @returns `true` if this instruction caused a pop of a virtual frame for - * an inlined macro defined in a different file, `false` otherwise. - */ -function processInstructionIfMacro(sourceMapsHashMap, events, frameInfoStack, instPC, instLoc) { - let frameInfo = frameInfoStack[frameInfoStack.length - 1]; - const fid = frameInfo.ID; - if (instLoc.fileHash !== frameInfo.fileHash) { - // This indicates that we are going to an instruction in the same function - // but in a different file, which can happen due to macro inlining. - // One could think of "outlining" the inlined code to create separate - // frames for each inlined macro but unfortunately this will not quite work. - // The reason is that we cannot rely on these the inlined frame pushes and pops - // being symmetric. Consider the following example: - //``` - // macro fun baz() { - // ... - // } - // macro fun bar() { - // baz!(); - // ... - // } - // fun foo() { - // bar!(); - // } - //``` - // In the example above, according to the trace, there will be only - // one inlined frame push as the first instruction of function `foo` - // will be an instruction in macro `baz` instead of an instruction - // in macro `bar`. Yet, when the control flow exits `baz`, it will go - // to `bar`, and then to `foo`. - // - // The high level idea of how to handle this situation is to always - // keep only a single inlined frame on the stack: - // - the first time we see different file hashes, we push an inlined - // frame on the stack - // - if an inlined frame is already on the stack, and the next file - // hash transition happens, then we do ond of the following: - // - if the next file hash is the same as the file hash of the frame - // before the current one, we pop the current inlined frame - // - otherwise, we replace the current inlined frame with the new one - // - // The exception to this single-inlined-frame rule is when we are already - // in an inlined frame for a macro defined in the same file, and go to - // a macro in a different file. In this case, we will have two inlined - // frames on the stack. - if (frameInfoStack.length > 1 && - frameInfoStack[frameInfoStack.length - 2].fileHash === instLoc.fileHash) { - frameInfoStack.pop(); - events.push({ - type: TraceEventKind.CloseFrame, - id: fid - }); - return true; - } - else { - const sourceMap = sourceMapsHashMap.get(instLoc.fileHash); - if (!sourceMap) { - throw new Error('Cannot find source map for file with hash: ' - + instLoc.fileHash - + ' when frame switching within frame ' - + fid - + ' at PC ' - + instPC); - } - if (frameInfo.ID === INLINED_FRAME_ID_DIFFERENT_FILE) { - events.push({ - type: TraceEventKind.ReplaceInlinedFrame, - fileHash: instLoc.fileHash, - optimizedLines: sourceMap.optimizedLines - }); - // pop the current inlined frame so that it can - // be replaced on the frame info stack below - frameInfoStack.pop(); - } - else { - events.push({ - type: TraceEventKind.OpenFrame, - id: INLINED_FRAME_ID_DIFFERENT_FILE, - name: '__inlined__', - fileHash: instLoc.fileHash, - isNative: false, - localsTypes: [], - localsNames: [], - paramValues: [], - optimizedLines: sourceMap.optimizedLines - }); - } - frameInfoStack.push({ - ID: INLINED_FRAME_ID_DIFFERENT_FILE, - // same pcLocs as before since we are in the same function - pcLocs: frameInfo.pcLocs, - filePath: sourceMap.filePath, - fileHash: sourceMap.fileHash, - optimizedLines: sourceMap.optimizedLines, - // same function name and source map as before since we are in the same function - funName: frameInfo.funName, - funEntry: frameInfo.funEntry - }); - } - } - else if (frameInfo.ID !== INLINED_FRAME_ID_DIFFERENT_FILE) { - // We are in the same file here, though perhaps this instruction - // belongs to an inlined macro. If we are already in an inlined - // frame for a macro defined in a different file, we don't do - // anything do avoid pushing a new inlined frame for a macro. - // - // Otherwise, below we check if instruction belongs to an inlined macro - // when this macro is defined in the same file to provide similar - // behavior as when the macro is defined in a different file - // (push/pop virtual inlined frames). The implementation here is - // a bit different, though, as we don't have explicit boundaries - // for when the code transitions from/to inlined code. Instead, - // we need to inspect each instruction and act as follows: - // - if the instruction is outside of the function (belongs to inlined macro): - // - if we are not in an inlined frame, we need to push one - // - if we are in an inlined frame, we don't need to do anything - // - if the instruction is in the function: - // - if we are in an inlined frame, we need to pop it - // - if we are not in an inlined frame, we don't need to do anything - if (instLoc.loc.line < frameInfo.funEntry.startLoc.line || - instLoc.loc.line > frameInfo.funEntry.endLoc.line || - (instLoc.loc.line === frameInfo.funEntry.startLoc.line && - instLoc.loc.column < frameInfo.funEntry.startLoc.column) || - (instLoc.loc.line === frameInfo.funEntry.endLoc.line && - instLoc.loc.column > frameInfo.funEntry.endLoc.column)) { - // the instruction is outside of the function - // (belongs to inlined macro) - if (frameInfo.ID !== INLINED_FRAME_ID_SAME_FILE) { - // if we are not in an inlined frame, we need to push one - events.push({ - type: TraceEventKind.OpenFrame, - id: INLINED_FRAME_ID_SAME_FILE, - name: '__inlined__', - fileHash: instLoc.fileHash, - isNative: false, - localsTypes: [], - localsNames: [], - paramValues: [], - optimizedLines: frameInfo.optimizedLines - }); - // we get a lot of data for the new frame info from the current on - // since we are still in the same function - frameInfoStack.push({ - ID: INLINED_FRAME_ID_SAME_FILE, - pcLocs: frameInfo.pcLocs, - filePath: frameInfo.filePath, - fileHash: instLoc.fileHash, - optimizedLines: frameInfo.optimizedLines, - funName: frameInfo.funName, - funEntry: frameInfo.funEntry - }); - } // else we are already in an inlined frame, so we don't need to do anything - } - else { - // the instruction is in the function - if (frameInfo.ID === INLINED_FRAME_ID_SAME_FILE) { - // If we are in an inlined frame, we need to pop it. - // This the place where we need different inlined frame id - // for macros defined in the same or different file than - // the file where they are inlined. Since this check is executed - // for each instruction that is within the function, we could - // accidentally (and incorrectly) at this point pop virtual inlined - // frame for a macro defined in a different file, if we did could not - // distinguish between the two cases. - events.push({ - type: TraceEventKind.CloseFrame, - id: INLINED_FRAME_ID_SAME_FILE - }); - frameInfoStack.pop(); - } // else we are not in an inlined frame, so we don't need to do anything - } - } - return false; -} -/** - * Converts a JSON trace type to a string representation. - */ -function JSONTraceTypeToString(baseType, refType) { - const refPrefix = refType === JSONTraceRefType.Mut - ? '&mut ' - : (refType === JSONTraceRefType.Imm - ? '&' - : ''); - if (typeof baseType === 'string') { - return refPrefix + baseType; - } - else if ('vector' in baseType) { - return refPrefix + `vector<${JSONTraceTypeToString(baseType.vector)}>`; - } - else { - return refPrefix - + JSONTraceAddressToHexString(baseType.struct.address) - + "::" - + baseType.struct.module - + "::" - + baseType.struct.name; - } -} -/** - * Attempts to convert an address found in the trace (which is a string - * representing a 32-byte number) to a shorter and more readable hex string. - * Returns original string address if conversion fails. - */ -function JSONTraceAddressToHexString(address) { - try { - const number = BigInt(address); - const hexAddress = number.toString(16); - return `0x${hexAddress}`; - } - catch (error) { - // Return the original string if it's not a valid number - return address; - } -} -/** - * Processes a location of a local variable in a JSON trace: sets the end of its lifetime - * when requested and returns its location - * @param traceLocation location in the trace. - * @param localLifetimeEnds map of local variable lifetimes (defined if local variable - * lifetime should happen). - * @returns variable location. - */ -function processJSONLocalLocation(traceLocation, localLifetimeEnds) { - if ('Local' in traceLocation) { - const frameID = traceLocation.Local[0]; - const localIndex = traceLocation.Local[1]; - if (localLifetimeEnds) { - const lifetimeEnds = localLifetimeEnds.get(frameID) || []; - lifetimeEnds[localIndex] = utils_1.FRAME_LIFETIME; - localLifetimeEnds.set(frameID, lifetimeEnds); - } - return { frameID, localIndex }; - } - else if ('Indexed' in traceLocation) { - return processJSONLocalLocation(traceLocation.Indexed[0], localLifetimeEnds); - } - else { - // Currently, there is nothing that needs to be done for 'Global' locations, - // neither with respect to lifetime nor with respect to location itself. - // This is because `Global` locations currently only represent read-only - // reference values returned from native functions. If there ever was - // a native function that would return a mutable reference, we should - // consider how to handle value changes via such reference, but it's unlikely - // that such a function would ever be added to either Move stdlib or - // the Sui framework. - return undefined; - } -} -/** - * Converts a JSON trace reference value to a runtime value. - * - * @param value JSON trace reference value. - * @returns runtime value. - * @throws Error with a descriptive error message if conversion has failed. - */ -function traceRefValueFromJSON(value) { - if ('MutRef' in value) { - const loc = processJSONLocalLocation(value.MutRef.location); - if (!loc) { - throw new Error('Unsupported location type in MutRef'); - } - const ret = { mutable: true, loc }; - return ret; - } - else { - const loc = processJSONLocalLocation(value.ImmRef.location); - if (!loc) { - throw new Error('Unsupported location type in ImmRef'); - } - const ret = { mutable: false, loc }; - return ret; - } -} -/** - * Converts a JSON trace runtime value to a runtime trace value. - * - * @param value JSON trace runtime value. - * @returns runtime trace value. - */ -function traceRuntimeValueFromJSON(value) { - if (typeof value === 'boolean' - || typeof value === 'number' - || typeof value === 'string') { - return String(value); - } - else if (Array.isArray(value)) { - return value.map(item => traceRuntimeValueFromJSON(item)); - } - else { - const fields = Object.entries(value.fields).map(([key, value]) => [key, traceRuntimeValueFromJSON(value)]); - const compoundValue = { - fields, - type: value.type, - variantName: value.variant_name, - variantTag: value.variant_tag - }; - return compoundValue; - } -} -// -// Utility functions for testing and debugging. -// -/** - * Converts trace events to an array of strings - * representing these events. - * - * @param trace trace. - * @returns array of strings representing trace events. - */ -function traceEventsToString(trace) { - return trace.events.map(event => eventToString(event)); -} -/** - * Converts a trace event to a string representation. - * - * @param event trace event. - * @returns string representation of the event. - */ -function eventToString(event) { - switch (event.type) { - case TraceEventKind.ReplaceInlinedFrame: - return 'ReplaceInlinedFrame'; - case TraceEventKind.OpenFrame: - return `OpenFrame ${event.id} for ${event.name}`; - case TraceEventKind.CloseFrame: - return `CloseFrame ${event.id}`; - case TraceEventKind.Instruction: - return 'Instruction ' - + instructionKindToString(event.kind) - + ' at PC ' - + event.pc - + ', line ' - + event.loc.line; - case TraceEventKind.Effect: - return `Effect ${effectToString(event.effect)}`; - } -} -/** - * Converts a trace instruction kind to a string representation. - * - * @param kind instruction kind. - * @returns string representation of the instruction kind. - */ -function instructionKindToString(kind) { - switch (kind) { - case TraceInstructionKind.CALL: - return 'CALL'; - case TraceInstructionKind.CALL_GENERIC: - return 'CALL_GENERIC'; - case TraceInstructionKind.UNKNOWN: - return 'UNKNOWN'; - } -} -/** - * Converts an effect of an instruction to a string representation. - * - * @param effect effect. - * @returns string representation of the effect. - */ -function effectToString(effect) { - switch (effect.type) { - case TraceEffectKind.Write: - return `Write at idx ${effect.loc.localIndex} in frame ${effect.loc.frameID}`; - case TraceEffectKind.ExecutionError: - return `ExecutionError ${effect.msg}`; - } -} -//# sourceMappingURL=trace_utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map deleted file mode 100644 index 6cc753c78d073..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/trace_utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_utils.js","sourceRoot":"","sources":["../src/trace_utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js deleted file mode 100644 index a3482d717dd19..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -// Copyright (c) The Move Contributors -// SPDX-License-Identifier: Apache-2.0 -Object.defineProperty(exports, "__esModule", { value: true }); -exports.FRAME_LIFETIME = void 0; -/** - * If end of lifetime for a local has this value, - * it means that it lives until the end of the current - * frame. - */ -exports.FRAME_LIFETIME = -1; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map b/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map deleted file mode 100644 index 00d6a6f280aa0..0000000000000 --- a/external-crates/move/crates/move-analyzer/trace-adapter/out/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,CAAC,CAAC"} \ No newline at end of file From 529b67ab11f03f513eb2dfb633f4066c7bb5420d Mon Sep 17 00:00:00 2001 From: Adam Welc Date: Fri, 27 Dec 2024 16:52:19 -0800 Subject: [PATCH 10/10] Added gitignore files to ignore output directory --- .../move/crates/move-analyzer/trace-adapter/.gitignore | 1 + external-crates/move/crates/move-analyzer/trace-debug/.gitignore | 1 + 2 files changed, 2 insertions(+) create mode 100644 external-crates/move/crates/move-analyzer/trace-adapter/.gitignore create mode 100644 external-crates/move/crates/move-analyzer/trace-debug/.gitignore diff --git a/external-crates/move/crates/move-analyzer/trace-adapter/.gitignore b/external-crates/move/crates/move-analyzer/trace-adapter/.gitignore new file mode 100644 index 0000000000000..0fa8a76bdaf60 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-adapter/.gitignore @@ -0,0 +1 @@ +/out/ \ No newline at end of file diff --git a/external-crates/move/crates/move-analyzer/trace-debug/.gitignore b/external-crates/move/crates/move-analyzer/trace-debug/.gitignore new file mode 100644 index 0000000000000..0fa8a76bdaf60 --- /dev/null +++ b/external-crates/move/crates/move-analyzer/trace-debug/.gitignore @@ -0,0 +1 @@ +/out/ \ No newline at end of file